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 87449 : pattern3 (rtx x1, machine_mode i1)
57 : {
58 87449 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 87449 : int res ATTRIBUTE_UNUSED;
60 87449 : if (!register_operand (operands[0], i1)
61 85959 : || GET_MODE (x1) != i1
62 85959 : || !nonimmediate_operand (operands[1], i1)
63 164487 : || !nonimmediate_operand (operands[2], i1))
64 31835 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 226652 : pattern13 (rtx x1, int *pnum_clobbers)
70 : {
71 226652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 226652 : rtx x2, x3, x4, x5;
73 226652 : int res ATTRIBUTE_UNUSED;
74 226652 : if (pnum_clobbers == NULL)
75 : return -1;
76 226652 : x2 = XEXP (x1, 0);
77 226652 : operands[0] = x2;
78 226652 : x3 = XEXP (x1, 1);
79 226652 : x4 = XEXP (x3, 0);
80 226652 : operands[1] = x4;
81 226652 : x5 = XEXP (x3, 1);
82 226652 : operands[2] = x5;
83 226652 : switch (GET_MODE (operands[0]))
84 : {
85 41910 : case E_SImode:
86 41910 : return pattern12 (x3,
87 41910 : E_SImode); /* [-1, 0] */
88 :
89 184742 : case E_DImode:
90 184742 : if (pattern12 (x3,
91 : E_DImode) != 0)
92 : return -1;
93 : return 1;
94 :
95 : default:
96 : return -1;
97 : }
98 : }
99 :
100 : int
101 277896 : pattern20 (rtx x1, int *pnum_clobbers)
102 : {
103 277896 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
104 277896 : rtx x2, x3;
105 277896 : int res ATTRIBUTE_UNUSED;
106 277896 : if (pnum_clobbers == NULL)
107 : return -1;
108 274735 : x2 = XEXP (x1, 0);
109 274735 : operands[0] = x2;
110 274735 : x3 = XEXP (x1, 1);
111 274735 : return pattern19 (x3); /* [-1, 1] */
112 : }
113 :
114 : int
115 3108365 : pattern24 (rtx x1)
116 : {
117 3108365 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
118 3108365 : int res ATTRIBUTE_UNUSED;
119 3108365 : switch (GET_MODE (operands[0]))
120 : {
121 645482 : case E_SImode:
122 645482 : if (!register_operand (operands[0], E_SImode)
123 645482 : || GET_MODE (x1) != E_SImode)
124 : return -1;
125 : return 0;
126 :
127 1996585 : case E_DImode:
128 1996585 : if (!register_operand (operands[0], E_DImode)
129 1996585 : || GET_MODE (x1) != E_DImode)
130 : return -1;
131 : return 1;
132 :
133 : default:
134 : return -1;
135 : }
136 : }
137 :
138 : int
139 1095 : pattern31 (rtx x1)
140 : {
141 1095 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
142 1095 : int res ATTRIBUTE_UNUSED;
143 1095 : if (!register_operand (operands[0], E_V1TImode)
144 1080 : || GET_MODE (x1) != E_V1TImode
145 1080 : || !register_operand (operands[1], E_V1TImode)
146 2163 : || !const_0_to_255_operand (operands[2], E_SImode))
147 27 : return -1;
148 : return 0;
149 : }
150 :
151 : int
152 20114 : pattern33 (rtx x1)
153 : {
154 20114 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
155 20114 : rtx x2, x3, x4, x5;
156 20114 : int res ATTRIBUTE_UNUSED;
157 20114 : x2 = XEXP (x1, 0);
158 20114 : operands[0] = x2;
159 20114 : x3 = XEXP (x1, 1);
160 20114 : x4 = XEXP (x3, 0);
161 20114 : operands[1] = x4;
162 20114 : x5 = XEXP (x3, 1);
163 20114 : operands[2] = x5;
164 20114 : switch (GET_CODE (operands[2]))
165 : {
166 15310 : case CONST_INT:
167 15310 : switch (GET_MODE (operands[0]))
168 : {
169 248 : case E_V1TImode:
170 248 : return pattern31 (x3); /* [-1, 0] */
171 :
172 142 : case E_V16SImode:
173 142 : if (pattern32 (x3,
174 : E_V16SImode) != 0)
175 : return -1;
176 : return 1;
177 :
178 186 : case E_V8SImode:
179 186 : if (pattern32 (x3,
180 : E_V8SImode) != 0)
181 : return -1;
182 : return 2;
183 :
184 760 : case E_V4SImode:
185 760 : if (!register_operand (operands[0], E_V4SImode)
186 680 : || GET_MODE (x3) != E_V4SImode
187 1440 : || !nonimmediate_operand (operands[1], E_V4SImode))
188 105 : return -1;
189 : return 3;
190 :
191 132 : case E_V8DImode:
192 132 : if (pattern32 (x3,
193 : E_V8DImode) != 0)
194 : return -1;
195 : return 4;
196 :
197 132 : case E_V4DImode:
198 132 : if (pattern32 (x3,
199 : E_V4DImode) != 0)
200 : return -1;
201 : return 5;
202 :
203 378 : case E_V2DImode:
204 378 : if (!register_operand (operands[0], E_V2DImode)
205 343 : || GET_MODE (x3) != E_V2DImode
206 721 : || !nonimmediate_operand (operands[1], E_V2DImode))
207 35 : return -1;
208 : return 6;
209 :
210 412 : case E_V16QImode:
211 412 : if (!register_operand (operands[0], E_V16QImode)
212 343 : || GET_MODE (x3) != E_V16QImode
213 343 : || !nonimmediate_operand (operands[1], E_V16QImode)
214 755 : || !const_0_to_7_operand (operands[2], E_SImode))
215 69 : return -1;
216 : return 7;
217 :
218 188 : case E_V8HImode:
219 188 : if (!register_operand (operands[0], E_V8HImode)
220 157 : || GET_MODE (x3) != E_V8HImode
221 157 : || !nonimmediate_operand (operands[1], E_V8HImode)
222 345 : || !const_0_to_15_operand (operands[2], E_SImode))
223 31 : return -1;
224 : return 8;
225 :
226 : default:
227 : return -1;
228 : }
229 :
230 4613 : case REG:
231 4613 : case SUBREG:
232 4613 : case MEM:
233 4613 : switch (GET_MODE (operands[0]))
234 : {
235 154 : case E_V16SImode:
236 154 : if (pattern12 (x3,
237 : E_V16SImode) != 0)
238 : return -1;
239 : return 9;
240 :
241 154 : case E_V8SImode:
242 154 : if (pattern12 (x3,
243 : E_V8SImode) != 0)
244 : return -1;
245 : return 10;
246 :
247 137 : case E_V4SImode:
248 137 : if (pattern12 (x3,
249 : E_V4SImode) != 0)
250 : return -1;
251 : return 11;
252 :
253 148 : case E_V8DImode:
254 148 : if (pattern12 (x3,
255 : E_V8DImode) != 0)
256 : return -1;
257 : return 12;
258 :
259 148 : case E_V4DImode:
260 148 : if (pattern12 (x3,
261 : E_V4DImode) != 0)
262 : return -1;
263 : return 13;
264 :
265 120 : case E_V2DImode:
266 120 : if (pattern12 (x3,
267 : E_V2DImode) != 0)
268 : return -1;
269 : return 14;
270 :
271 : default:
272 : return -1;
273 : }
274 :
275 : default:
276 : return -1;
277 : }
278 : }
279 :
280 : int
281 497013 : pattern55 (rtx x1)
282 : {
283 497013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
284 497013 : rtx x2, x3, x4, x5;
285 497013 : int res ATTRIBUTE_UNUSED;
286 497013 : x2 = XEXP (x1, 0);
287 497013 : operands[0] = x2;
288 497013 : x3 = XEXP (x1, 1);
289 497013 : x4 = XEXP (x3, 0);
290 497013 : operands[1] = x4;
291 497013 : x5 = XEXP (x3, 1);
292 497013 : operands[2] = x5;
293 497013 : if (!const_int_operand (operands[2], E_VOIDmode))
294 : return -1;
295 477293 : switch (GET_MODE (operands[0]))
296 : {
297 2268 : case E_QImode:
298 2268 : if (!mask_reg_operand (operands[0], E_QImode)
299 0 : || GET_MODE (x3) != E_QImode
300 2268 : || !mask_reg_operand (operands[1], E_QImode))
301 2268 : return -1;
302 : return 0;
303 :
304 3273 : case E_HImode:
305 3273 : if (!mask_reg_operand (operands[0], E_HImode)
306 0 : || GET_MODE (x3) != E_HImode
307 3273 : || !mask_reg_operand (operands[1], E_HImode))
308 3273 : return -1;
309 : return 1;
310 :
311 41458 : case E_SImode:
312 41458 : if (!mask_reg_operand (operands[0], E_SImode)
313 0 : || GET_MODE (x3) != E_SImode
314 41458 : || !mask_reg_operand (operands[1], E_SImode))
315 41458 : return -1;
316 : return 2;
317 :
318 152688 : case E_DImode:
319 152688 : if (!mask_reg_operand (operands[0], E_DImode)
320 0 : || GET_MODE (x3) != E_DImode
321 152688 : || !mask_reg_operand (operands[1], E_DImode))
322 152688 : return -1;
323 : return 3;
324 :
325 : default:
326 : return -1;
327 : }
328 : }
329 :
330 : int
331 148196 : pattern68 (rtx x1)
332 : {
333 148196 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
334 148196 : rtx x2, x3, x4, x5;
335 148196 : int res ATTRIBUTE_UNUSED;
336 148196 : x2 = XEXP (x1, 0);
337 148196 : operands[0] = x2;
338 148196 : x3 = XEXP (x1, 1);
339 148196 : x4 = XVECEXP (x3, 0, 0);
340 148196 : operands[1] = x4;
341 148196 : x5 = XVECEXP (x3, 0, 1);
342 148196 : operands[2] = x5;
343 148196 : switch (GET_MODE (operands[0]))
344 : {
345 13743 : case E_V8QImode:
346 13743 : return pattern67 (x3,
347 13743 : E_V8QImode); /* [-1, 0] */
348 :
349 2336 : case E_V4HImode:
350 2336 : if (!register_operand (operands[0], E_V4HImode)
351 2336 : || GET_MODE (x3) != E_V4HImode
352 2336 : || !register_operand (operands[1], E_V2SImode)
353 4011 : || !register_operand (operands[2], E_V2SImode))
354 1115 : return -1;
355 : return 1;
356 :
357 : default:
358 : return -1;
359 : }
360 : }
361 :
362 : int
363 1468 : pattern78 (rtx x1, int *pnum_clobbers)
364 : {
365 1468 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
366 1468 : rtx x2, x3, x4;
367 1468 : int res ATTRIBUTE_UNUSED;
368 1468 : if (pnum_clobbers == NULL)
369 : return -1;
370 1468 : x2 = XEXP (x1, 0);
371 1468 : x3 = XEXP (x2, 0);
372 1468 : operands[0] = x3;
373 1468 : switch (GET_MODE (operands[0]))
374 : {
375 220 : case E_QImode:
376 220 : x4 = XEXP (x1, 1);
377 220 : return pattern77 (x4,
378 220 : E_QImode); /* [-1, 0] */
379 :
380 1248 : case E_HImode:
381 1248 : x4 = XEXP (x1, 1);
382 1248 : if (pattern77 (x4,
383 : E_HImode) != 0)
384 : return -1;
385 : return 1;
386 :
387 : default:
388 : return -1;
389 : }
390 : }
391 :
392 : int
393 2938 : pattern86 (rtx x1)
394 : {
395 2938 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
396 2938 : rtx x2, x3;
397 2938 : int res ATTRIBUTE_UNUSED;
398 2938 : x2 = XEXP (x1, 0);
399 2938 : if (GET_MODE (x2) != E_QImode
400 707 : || !register_operand (operands[0], E_HImode)
401 3143 : || GET_MODE (x1) != E_HImode)
402 2733 : return -1;
403 205 : x3 = XEXP (x2, 0);
404 205 : operands[1] = x3;
405 205 : if (!nonimmediate_operand (operands[1], E_QImode))
406 : return -1;
407 : return 0;
408 : }
409 :
410 : int
411 13687920 : pattern89 (rtx x1, machine_mode i1, int i2, int i3)
412 : {
413 13687920 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
414 13687920 : int res ATTRIBUTE_UNUSED;
415 13687920 : if (GET_CODE (x1) != UNSPEC
416 20811 : || XVECLEN (x1, 0) != i3
417 19625 : || XINT (x1, 1) != i2
418 17785 : || GET_MODE (x1) != i1)
419 13670135 : return -1;
420 : return 0;
421 : }
422 :
423 : int
424 27134 : pattern96 (rtx x1, int *pnum_clobbers)
425 : {
426 27134 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
427 27134 : rtx x2, x3, x4, x5, x6, x7;
428 27134 : int res ATTRIBUTE_UNUSED;
429 27134 : if (pnum_clobbers == NULL)
430 : return -1;
431 27134 : x2 = XEXP (x1, 1);
432 27134 : x3 = XEXP (x2, 0);
433 27134 : x4 = XEXP (x3, 1);
434 27134 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
435 : return -1;
436 20891 : x5 = XEXP (x1, 0);
437 20891 : operands[0] = x5;
438 20891 : x6 = XEXP (x3, 0);
439 20891 : operands[2] = x6;
440 20891 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
441 : return -1;
442 1579 : x7 = XEXP (x2, 1);
443 1579 : operands[1] = x7;
444 1579 : switch (GET_MODE (operands[0]))
445 : {
446 39 : case E_QImode:
447 39 : return pattern95 (x2,
448 39 : E_QImode); /* [-1, 0] */
449 :
450 11 : case E_HImode:
451 11 : if (pattern95 (x2,
452 : E_HImode) != 0)
453 : return -1;
454 : return 1;
455 :
456 : default:
457 : return -1;
458 : }
459 : }
460 :
461 : int
462 1035 : pattern105 (rtx x1, machine_mode i1)
463 : {
464 1035 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
465 1035 : rtx x2;
466 1035 : int res ATTRIBUTE_UNUSED;
467 1035 : if (!memory_operand (operands[0], i1)
468 1035 : || GET_MODE (x1) != i1)
469 : return -1;
470 1035 : x2 = XEXP (x1, 0);
471 1035 : if (GET_MODE (x2) != i1)
472 : return -1;
473 1035 : switch (GET_MODE (operands[1]))
474 : {
475 536 : case E_V4SImode:
476 536 : if (!register_operand (operands[1], E_V4SImode))
477 : return -1;
478 : return 0;
479 :
480 499 : case E_V4DImode:
481 499 : if (!register_operand (operands[1], E_V4DImode))
482 : return -1;
483 : return 1;
484 :
485 : default:
486 : return -1;
487 : }
488 : }
489 :
490 : int
491 27104 : pattern112 (rtx x1, int *pnum_clobbers)
492 : {
493 27104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
494 27104 : rtx x2, x3, x4, x5;
495 27104 : int res ATTRIBUTE_UNUSED;
496 27104 : if (pnum_clobbers == NULL)
497 : return -1;
498 27104 : x2 = XEXP (x1, 0);
499 27104 : x3 = XEXP (x2, 1);
500 27104 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
501 : return -1;
502 20861 : x4 = XEXP (x2, 0);
503 20861 : operands[2] = x4;
504 20861 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
505 : return -1;
506 1549 : x5 = XEXP (x1, 1);
507 1549 : operands[1] = x5;
508 1549 : switch (GET_MODE (operands[0]))
509 : {
510 930 : case E_SImode:
511 930 : return pattern111 (x1,
512 930 : E_SImode); /* [-1, 0] */
513 :
514 595 : case E_DImode:
515 595 : if (pattern111 (x1,
516 : E_DImode) != 0)
517 : return -1;
518 : return 1;
519 :
520 : default:
521 : return -1;
522 : }
523 : }
524 :
525 : int
526 637881 : pattern121 (rtx x1)
527 : {
528 637881 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
529 637881 : rtx x2;
530 637881 : int res ATTRIBUTE_UNUSED;
531 637881 : x2 = XEXP (x1, 0);
532 637881 : operands[1] = x2;
533 637881 : switch (GET_MODE (operands[0]))
534 : {
535 353246 : case E_DImode:
536 353246 : if (!nonimmediate_operand (operands[0], E_DImode)
537 352890 : || GET_MODE (x1) != E_DImode
538 706136 : || !nonimmediate_operand (operands[1], E_DImode))
539 440 : return -1;
540 : return 0;
541 :
542 226846 : case E_SImode:
543 226846 : if (!nonimmediate_operand (operands[0], E_SImode)
544 226188 : || GET_MODE (x1) != E_SImode
545 453034 : || !nonimmediate_operand (operands[1], E_SImode))
546 1399 : return -1;
547 : return 1;
548 :
549 : default:
550 : return -1;
551 : }
552 : }
553 :
554 : int
555 1724 : pattern131 (rtx x1)
556 : {
557 1724 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
558 1724 : rtx x2, x3, x4, x5, x6, x7;
559 1724 : int res ATTRIBUTE_UNUSED;
560 1724 : x2 = XEXP (x1, 1);
561 1724 : x3 = XVECEXP (x2, 0, 0);
562 1724 : if (GET_CODE (x3) != VEC_SELECT)
563 : return -1;
564 200 : x4 = XEXP (x3, 1);
565 200 : if (GET_CODE (x4) != PARALLEL
566 200 : || XVECLEN (x4, 0) != 1)
567 : return -1;
568 200 : x5 = XVECEXP (x4, 0, 0);
569 200 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
570 : return -1;
571 200 : x6 = XEXP (x1, 0);
572 200 : operands[0] = x6;
573 200 : x7 = XEXP (x3, 0);
574 200 : operands[1] = x7;
575 200 : switch (GET_MODE (operands[0]))
576 : {
577 100 : case E_SImode:
578 100 : return pattern130 (x2,
579 100 : E_SImode); /* [-1, 1] */
580 :
581 100 : case E_DImode:
582 100 : res = pattern130 (x2,
583 : E_DImode);
584 100 : if (res >= 0)
585 76 : return res + 2; /* [2, 3] */
586 : return -1;
587 :
588 : default:
589 : return -1;
590 : }
591 : }
592 :
593 : int
594 9528 : pattern142 (rtx x1, machine_mode i1, machine_mode i2)
595 : {
596 9528 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
597 9528 : rtx x2;
598 9528 : int res ATTRIBUTE_UNUSED;
599 9528 : if (!register_operand (operands[0], i1)
600 9528 : || GET_MODE (x1) != i1)
601 : return -1;
602 8906 : x2 = XEXP (x1, 0);
603 8906 : if (GET_MODE (x2) != i1
604 8906 : || !nonimm_or_0_operand (operands[2], i1)
605 17363 : || !register_operand (operands[3], i2))
606 818 : return -1;
607 : return 0;
608 : }
609 :
610 : int
611 2556 : pattern149 (rtx x1, machine_mode i1, machine_mode i2)
612 : {
613 2556 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
614 2556 : rtx x2;
615 2556 : int res ATTRIBUTE_UNUSED;
616 2556 : if (!register_operand (operands[0], i1)
617 2556 : || GET_MODE (x1) != i1)
618 : return -1;
619 2426 : x2 = XEXP (x1, 0);
620 2426 : if (GET_MODE (x2) != i1
621 2426 : || !nonimmediate_operand (operands[1], i1)
622 2426 : || !nonimm_or_0_operand (operands[3], i1)
623 4776 : || !register_operand (operands[4], i2))
624 236 : return -1;
625 : return 0;
626 : }
627 :
628 : int
629 673 : pattern153 (rtx x1, machine_mode i1)
630 : {
631 673 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
632 673 : rtx x2;
633 673 : int res ATTRIBUTE_UNUSED;
634 673 : if (!register_operand (operands[0], E_V16HImode)
635 673 : || GET_MODE (x1) != E_V16HImode)
636 : return -1;
637 638 : x2 = XEXP (x1, 0);
638 638 : if (GET_MODE (x2) != E_V16HImode
639 638 : || !nonimmediate_operand (operands[1], i1)
640 626 : || !nonimm_or_0_operand (operands[2], E_V16HImode)
641 1246 : || !register_operand (operands[3], E_HImode))
642 78 : return -1;
643 : return 0;
644 : }
645 :
646 : int
647 9 : pattern156 (rtx x1, machine_mode i1, machine_mode i2)
648 : {
649 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
650 9 : rtx x2;
651 9 : int res ATTRIBUTE_UNUSED;
652 9 : if (!register_operand (operands[0], i1)
653 9 : || GET_MODE (x1) != i1)
654 : return -1;
655 6 : x2 = XEXP (x1, 0);
656 6 : if (GET_MODE (x2) != i1
657 6 : || !memory_operand (operands[1], i2)
658 6 : || !nonimm_or_0_operand (operands[2], i1)
659 12 : || !register_operand (operands[3], E_QImode))
660 0 : return -1;
661 : return 0;
662 : }
663 :
664 : int
665 1618 : pattern160 (rtx x1, machine_mode i1)
666 : {
667 1618 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
668 1618 : int res ATTRIBUTE_UNUSED;
669 1618 : if (!register_operand (operands[0], i1)
670 1410 : || GET_MODE (x1) != i1
671 1410 : || !vector_operand (operands[1], i1)
672 3005 : || !vector_operand (operands[2], i1))
673 239 : return -1;
674 : return 0;
675 : }
676 :
677 : int
678 116 : pattern162 (rtx x1)
679 : {
680 116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
681 116 : rtx x2, x3, x4, x5;
682 116 : int res ATTRIBUTE_UNUSED;
683 116 : x2 = XEXP (x1, 1);
684 116 : if (GET_MODE (x2) != E_V32HImode)
685 : return -1;
686 116 : x3 = XEXP (x1, 0);
687 116 : operands[0] = x3;
688 116 : if (!register_operand (operands[0], E_V32HImode))
689 : return -1;
690 108 : x4 = XVECEXP (x2, 0, 0);
691 108 : operands[1] = x4;
692 108 : if (!nonimmediate_operand (operands[1], E_V32HImode))
693 : return -1;
694 108 : x5 = XVECEXP (x2, 0, 1);
695 108 : operands[2] = x5;
696 108 : if (!const_0_to_255_operand (operands[2], E_SImode))
697 : return -1;
698 : return 0;
699 : }
700 :
701 : int
702 7323 : pattern166 (rtx x1, machine_mode i1)
703 : {
704 7323 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
705 7323 : rtx x2, x3, x4, x5;
706 7323 : int res ATTRIBUTE_UNUSED;
707 7323 : x2 = XEXP (x1, 1);
708 7323 : if (GET_MODE (x2) != i1)
709 : return -1;
710 7323 : x3 = XEXP (x1, 0);
711 7323 : operands[0] = x3;
712 7323 : if (!register_operand (operands[0], i1))
713 : return -1;
714 6997 : x4 = XVECEXP (x2, 0, 0);
715 6997 : operands[1] = x4;
716 6997 : if (!register_operand (operands[1], i1))
717 : return -1;
718 5431 : x5 = XVECEXP (x2, 0, 1);
719 5431 : operands[2] = x5;
720 5431 : if (!vector_operand (operands[2], i1))
721 : return -1;
722 : return 0;
723 : }
724 :
725 : int
726 18 : pattern174 (rtx x1, machine_mode i1)
727 : {
728 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
729 18 : int res ATTRIBUTE_UNUSED;
730 18 : if (!register_operand (operands[0], i1)
731 18 : || GET_MODE (x1) != i1
732 18 : || !vector_operand (operands[1], i1)
733 18 : || !bcst_vector_operand (operands[2], i1)
734 36 : || !vector_operand (operands[3], i1))
735 0 : return -1;
736 : return 0;
737 : }
738 :
739 : int
740 4394 : pattern180 (rtx x1)
741 : {
742 4394 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
743 4394 : rtx x2, x3, x4, x5, x6;
744 4394 : int res ATTRIBUTE_UNUSED;
745 4394 : x2 = XEXP (x1, 0);
746 4394 : operands[0] = x2;
747 4394 : x3 = XEXP (x1, 1);
748 4394 : x4 = XVECEXP (x3, 0, 0);
749 4394 : operands[1] = x4;
750 4394 : x5 = XVECEXP (x3, 0, 1);
751 4394 : operands[2] = x5;
752 4394 : x6 = XVECEXP (x3, 0, 2);
753 4394 : operands[3] = x6;
754 4394 : if (!const_0_to_255_operand (operands[3], E_VOIDmode))
755 : return -1;
756 4394 : switch (GET_MODE (operands[0]))
757 : {
758 1624 : case E_V64QImode:
759 1624 : return pattern158 (x3,
760 1624 : E_V64QImode); /* [-1, 0] */
761 :
762 1604 : case E_V32QImode:
763 1604 : if (pattern158 (x3,
764 : E_V32QImode) != 0)
765 : return -1;
766 : return 1;
767 :
768 1166 : case E_V16QImode:
769 1166 : if (pattern158 (x3,
770 : E_V16QImode) != 0)
771 : return -1;
772 : return 2;
773 :
774 : default:
775 : return -1;
776 : }
777 : }
778 :
779 : int
780 286 : pattern188 (rtx x1)
781 : {
782 286 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
783 286 : rtx x2, x3, x4;
784 286 : int res ATTRIBUTE_UNUSED;
785 286 : x2 = XEXP (x1, 0);
786 286 : if (GET_MODE (x2) != E_DImode)
787 : return -1;
788 181 : x3 = XEXP (x1, 1);
789 181 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
790 171 : || !register_operand (operands[0], E_V2DImode)
791 350 : || GET_MODE (x1) != E_V2DImode)
792 12 : return -1;
793 169 : x4 = XEXP (x2, 0);
794 169 : operands[1] = x4;
795 169 : switch (GET_MODE (operands[1]))
796 : {
797 13 : case E_HImode:
798 13 : if (!nonimmediate_operand (operands[1], E_HImode))
799 : return -1;
800 : return 0;
801 :
802 148 : case E_SImode:
803 148 : if (!nonimmediate_operand (operands[1], E_SImode))
804 : return -1;
805 : return 1;
806 :
807 : default:
808 : return -1;
809 : }
810 : }
811 :
812 : int
813 807 : pattern196 (rtx x1, machine_mode i1, machine_mode i2)
814 : {
815 807 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
816 807 : rtx x2, x3, x4, x5;
817 807 : int res ATTRIBUTE_UNUSED;
818 807 : if (!register_operand (operands[0], i2)
819 807 : || GET_MODE (x1) != i2)
820 : return -1;
821 778 : x2 = XEXP (x1, 0);
822 778 : if (GET_MODE (x2) != i2)
823 : return -1;
824 778 : x3 = XEXP (x2, 0);
825 778 : if (GET_MODE (x3) != i1
826 778 : || !register_operand (operands[1], i2)
827 1486 : || !vector_operand (operands[2], i2))
828 70 : return -1;
829 708 : x4 = XEXP (x1, 1);
830 708 : if (GET_MODE (x4) != i2)
831 : return -1;
832 708 : x5 = XEXP (x4, 0);
833 708 : if (GET_MODE (x5) != i1)
834 : return -1;
835 : return 0;
836 : }
837 :
838 : int
839 451066 : pattern201 (rtx x1, rtx_code i1)
840 : {
841 451066 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
842 451066 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
843 451066 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
844 451066 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
845 451066 : int res ATTRIBUTE_UNUSED;
846 451066 : x2 = XEXP (x1, 0);
847 451066 : x3 = XEXP (x2, 0);
848 451066 : if (GET_CODE (x3) != VEC_SELECT)
849 : return -1;
850 202466 : x4 = XEXP (x3, 1);
851 202466 : if (GET_CODE (x4) != PARALLEL)
852 : return -1;
853 202466 : x5 = XEXP (x1, 1);
854 202466 : if (GET_CODE (x5) != i1)
855 : return -1;
856 169140 : x6 = XEXP (x5, 0);
857 169140 : if (GET_CODE (x6) != VEC_SELECT)
858 : return -1;
859 169079 : x7 = XEXP (x6, 1);
860 169079 : if (GET_CODE (x7) != PARALLEL)
861 : return -1;
862 169079 : x8 = XEXP (x3, 0);
863 169079 : operands[1] = x8;
864 169079 : x9 = XEXP (x6, 0);
865 169079 : operands[2] = x9;
866 169079 : switch (XVECLEN (x4, 0))
867 : {
868 6312 : case 8:
869 6312 : x10 = XVECEXP (x4, 0, 0);
870 6312 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
871 : return -1;
872 6312 : x11 = XVECEXP (x4, 0, 1);
873 6312 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
874 : return -1;
875 6168 : x12 = XVECEXP (x4, 0, 2);
876 6168 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
877 : return -1;
878 6168 : x13 = XVECEXP (x4, 0, 3);
879 6168 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
880 : return -1;
881 6168 : x14 = XVECEXP (x4, 0, 4);
882 6168 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
883 : return -1;
884 6168 : x15 = XVECEXP (x4, 0, 5);
885 6168 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
886 : return -1;
887 6168 : x16 = XVECEXP (x4, 0, 6);
888 6168 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
889 : return -1;
890 6168 : x17 = XVECEXP (x4, 0, 7);
891 6168 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
892 6168 : || XVECLEN (x7, 0) != 8)
893 : return -1;
894 6168 : x18 = XVECEXP (x7, 0, 0);
895 6168 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
896 : return -1;
897 6168 : x19 = XVECEXP (x7, 0, 1);
898 6168 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
899 : return -1;
900 6168 : x20 = XVECEXP (x7, 0, 2);
901 6168 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
902 : return -1;
903 6168 : x21 = XVECEXP (x7, 0, 3);
904 6168 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
905 : return -1;
906 6168 : x22 = XVECEXP (x7, 0, 4);
907 6168 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
908 : return -1;
909 6168 : x23 = XVECEXP (x7, 0, 5);
910 6168 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
911 : return -1;
912 6168 : x24 = XVECEXP (x7, 0, 6);
913 6168 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
914 : return -1;
915 6168 : x25 = XVECEXP (x7, 0, 7);
916 6168 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
917 6168 : || pattern200 (x1,
918 : E_V16SImode,
919 : E_V8SImode,
920 : E_V8DImode) != 0)
921 760 : return -1;
922 : return 0;
923 :
924 11105 : case 4:
925 11105 : x10 = XVECEXP (x4, 0, 0);
926 11105 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
927 : return -1;
928 11105 : x11 = XVECEXP (x4, 0, 1);
929 11105 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
930 : return -1;
931 11101 : x12 = XVECEXP (x4, 0, 2);
932 11101 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
933 : return -1;
934 11101 : x13 = XVECEXP (x4, 0, 3);
935 11101 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
936 11101 : || XVECLEN (x7, 0) != 4)
937 : return -1;
938 11101 : x18 = XVECEXP (x7, 0, 0);
939 11101 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
940 : return -1;
941 11101 : x19 = XVECEXP (x7, 0, 1);
942 11101 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
943 : return -1;
944 11101 : x20 = XVECEXP (x7, 0, 2);
945 11101 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
946 : return -1;
947 11101 : x21 = XVECEXP (x7, 0, 3);
948 11101 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
949 11101 : || pattern200 (x1,
950 : E_V8SImode,
951 : E_V4SImode,
952 : E_V4DImode) != 0)
953 2094 : return -1;
954 : return 1;
955 :
956 151654 : case 2:
957 151654 : x10 = XVECEXP (x4, 0, 0);
958 151654 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
959 : return -1;
960 151565 : x11 = XVECEXP (x4, 0, 1);
961 151565 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
962 151553 : || XVECLEN (x7, 0) != 2)
963 : return -1;
964 151553 : x18 = XVECEXP (x7, 0, 0);
965 151553 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
966 : return -1;
967 151553 : x19 = XVECEXP (x7, 0, 1);
968 151553 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
969 151553 : || !register_operand (operands[0], E_V2DImode)
970 151442 : || GET_MODE (x1) != E_V2DImode
971 151442 : || GET_MODE (x2) != E_V2DImode
972 151442 : || GET_MODE (x3) != E_V2SImode
973 151442 : || !vector_operand (operands[1], E_V4SImode)
974 124317 : || GET_MODE (x5) != E_V2DImode
975 124317 : || GET_MODE (x6) != E_V2SImode
976 275870 : || !vector_operand (operands[2], E_V4SImode))
977 42281 : return -1;
978 : return 2;
979 :
980 : default:
981 : return -1;
982 : }
983 : }
984 :
985 : int
986 32906677 : pattern236 (rtx x1, machine_mode i1, unsigned int i2)
987 : {
988 32906677 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
989 32906677 : rtx x2;
990 32906677 : int res ATTRIBUTE_UNUSED;
991 32906677 : if (GET_CODE (x1) != CLOBBER)
992 : return -1;
993 32764715 : x2 = XEXP (x1, 0);
994 32764715 : if (GET_CODE (x2) != REG
995 32759535 : || REGNO (x2) != i2
996 62986956 : || GET_MODE (x2) != i1)
997 2563179 : return -1;
998 : return 0;
999 : }
1000 :
1001 : int
1002 89 : pattern243 (rtx x1, machine_mode i1)
1003 : {
1004 89 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1005 89 : int res ATTRIBUTE_UNUSED;
1006 89 : if (!register_operand (operands[0], i1)
1007 89 : || GET_MODE (x1) != i1
1008 89 : || !nonimmediate_operand (operands[1], i1)
1009 92 : || !const_vector_duplicate_operand (operands[2], i1))
1010 86 : return -1;
1011 : return 0;
1012 : }
1013 :
1014 : int
1015 353557 : pattern249 (rtx x1)
1016 : {
1017 353557 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1018 353557 : int res ATTRIBUTE_UNUSED;
1019 353557 : switch (GET_MODE (operands[0]))
1020 : {
1021 221008 : case E_DImode:
1022 221008 : if (!register_operand (operands[0], E_DImode)
1023 220481 : || GET_MODE (x1) != E_DImode
1024 441489 : || !register_operand (operands[1], E_DImode))
1025 2155 : return -1;
1026 : return 0;
1027 :
1028 5234 : case E_TImode:
1029 5234 : if (!register_operand (operands[0], E_TImode)
1030 5233 : || GET_MODE (x1) != E_TImode
1031 10467 : || !register_operand (operands[1], E_TImode))
1032 31 : return -1;
1033 : return 1;
1034 :
1035 : default:
1036 : return -1;
1037 : }
1038 : }
1039 :
1040 : int
1041 138 : pattern256 (rtx x1)
1042 : {
1043 138 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1044 138 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1045 138 : rtx x10;
1046 138 : int res ATTRIBUTE_UNUSED;
1047 138 : x2 = XEXP (x1, 0);
1048 138 : if (GET_CODE (x2) != ZERO_EXTRACT)
1049 : return -1;
1050 138 : x3 = XEXP (x2, 1);
1051 138 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1052 : return -1;
1053 138 : x4 = XEXP (x2, 2);
1054 138 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1055 : return -1;
1056 138 : x5 = XEXP (x2, 0);
1057 138 : operands[0] = x5;
1058 138 : if (!int248_register_operand (operands[0], E_VOIDmode))
1059 : return -1;
1060 138 : x6 = XEXP (x1, 1);
1061 138 : x7 = XEXP (x6, 0);
1062 138 : x8 = XEXP (x7, 0);
1063 138 : x9 = XEXP (x8, 0);
1064 138 : x10 = XEXP (x9, 0);
1065 138 : operands[1] = x10;
1066 138 : if (!int248_register_operand (operands[1], E_VOIDmode))
1067 : return -1;
1068 : return 0;
1069 : }
1070 :
1071 : int
1072 23433 : pattern272 (rtx x1, machine_mode i1, machine_mode i2)
1073 : {
1074 23433 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1075 23433 : rtx x2;
1076 23433 : int res ATTRIBUTE_UNUSED;
1077 23433 : if (!register_operand (operands[0], i1)
1078 23433 : || GET_MODE (x1) != i1)
1079 : return -1;
1080 22164 : x2 = XEXP (x1, 0);
1081 22164 : if (GET_MODE (x2) != i2
1082 22164 : || !register_operand (operands[1], i1)
1083 42696 : || !register_operand (operands[2], i1))
1084 3364 : return -1;
1085 : return 0;
1086 : }
1087 :
1088 : int
1089 261567 : pattern278 (rtx x1, int *pnum_clobbers, machine_mode i1, machine_mode i2)
1090 : {
1091 261567 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1092 261567 : rtx x2, x3, x4;
1093 261567 : int res ATTRIBUTE_UNUSED;
1094 261567 : if (!nonimmediate_operand (operands[0], i1)
1095 261567 : || GET_MODE (x1) != i1)
1096 : return -1;
1097 261496 : x2 = XEXP (x1, 0);
1098 261496 : x3 = XEXP (x2, 0);
1099 261496 : if (!nonimmediate_operand (x3, i2))
1100 : return -1;
1101 229763 : x4 = XEXP (x1, 1);
1102 229763 : switch (GET_CODE (x4))
1103 : {
1104 197891 : case REG:
1105 197891 : case SUBREG:
1106 197891 : case MEM:
1107 197891 : if (pnum_clobbers == NULL)
1108 : return -1;
1109 197891 : operands[1] = x4;
1110 197891 : if (!nonimmediate_operand (operands[1], i1))
1111 : return -1;
1112 197842 : operands[2] = x3;
1113 197842 : return 0;
1114 :
1115 0 : case ASHIFT:
1116 0 : if (GET_MODE (x4) != i1)
1117 : return -1;
1118 0 : operands[1] = x3;
1119 0 : res = pattern39 (x4,
1120 : i1,
1121 : i2);
1122 0 : if (res >= 0)
1123 0 : return res + 1; /* [1, 3] */
1124 : return -1;
1125 :
1126 20655 : case CONST_INT:
1127 20655 : case CONST_WIDE_INT:
1128 20655 : operands[2] = x4;
1129 20655 : if (!const_scalar_int_operand (operands[2], i1))
1130 : return -1;
1131 20655 : operands[1] = x3;
1132 20655 : return 4;
1133 :
1134 : default:
1135 : return -1;
1136 : }
1137 : }
1138 :
1139 : int
1140 29063 : pattern294 (rtx x1, machine_mode i1, machine_mode i2)
1141 : {
1142 29063 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1143 29063 : rtx x2;
1144 29063 : int res ATTRIBUTE_UNUSED;
1145 29063 : if (!register_operand (operands[0], i2)
1146 29063 : || GET_MODE (x1) != i2)
1147 : return -1;
1148 28045 : x2 = XEXP (x1, 0);
1149 28045 : if (GET_MODE (x2) != i1
1150 28045 : || !register_operand (operands[1], i1))
1151 826 : return -1;
1152 : return 0;
1153 : }
1154 :
1155 : int
1156 734 : pattern299 (rtx x1)
1157 : {
1158 734 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1159 734 : rtx x2, x3, x4;
1160 734 : int res ATTRIBUTE_UNUSED;
1161 734 : if (GET_MODE (x1) != E_SImode)
1162 : return -1;
1163 734 : x2 = XVECEXP (x1, 0, 0);
1164 734 : if (!ix86_comparison_operator (x2, E_QImode))
1165 : return -1;
1166 650 : operands[1] = x2;
1167 650 : x3 = XEXP (x2, 0);
1168 650 : if (GET_CODE (x3) != REG
1169 650 : || REGNO (x3) != 17)
1170 : return -1;
1171 650 : x4 = XEXP (x2, 1);
1172 650 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1173 : return -1;
1174 : return 0;
1175 : }
1176 :
1177 : int
1178 1055 : pattern307 (rtx x1)
1179 : {
1180 1055 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1181 1055 : rtx x2;
1182 1055 : int res ATTRIBUTE_UNUSED;
1183 1055 : x2 = XVECEXP (x1, 0, 0);
1184 1055 : operands[1] = x2;
1185 1055 : switch (GET_MODE (operands[0]))
1186 : {
1187 310 : case E_SImode:
1188 310 : if (!register_operand (operands[0], E_SImode)
1189 310 : || GET_MODE (x1) != E_SImode
1190 620 : || !register_operand (operands[1], E_SImode))
1191 180 : return -1;
1192 : return 0;
1193 :
1194 745 : case E_DImode:
1195 745 : if (!register_operand (operands[0], E_DImode)
1196 721 : || GET_MODE (x1) != E_DImode
1197 1466 : || !register_operand (operands[1], E_DImode))
1198 425 : return -1;
1199 : return 1;
1200 :
1201 : default:
1202 : return -1;
1203 : }
1204 : }
1205 :
1206 : int
1207 233 : pattern315 (rtx x1)
1208 : {
1209 233 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1210 233 : rtx x2, x3, x4, x5, x6;
1211 233 : int res ATTRIBUTE_UNUSED;
1212 233 : x2 = XEXP (x1, 2);
1213 233 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1214 : return -1;
1215 211 : x3 = XEXP (x1, 0);
1216 211 : x4 = XEXP (x3, 0);
1217 211 : x5 = XEXP (x4, 0);
1218 211 : operands[1] = x5;
1219 211 : x6 = XEXP (x1, 1);
1220 211 : operands[2] = x6;
1221 211 : switch (GET_MODE (operands[0]))
1222 : {
1223 3 : case E_V16SImode:
1224 3 : return pattern313 (x1,
1225 3 : E_V16SImode); /* [-1, 0] */
1226 :
1227 3 : case E_V8SImode:
1228 3 : if (pattern313 (x1,
1229 : E_V8SImode) != 0)
1230 : return -1;
1231 : return 1;
1232 :
1233 94 : case E_V4SImode:
1234 94 : if (pattern313 (x1,
1235 : E_V4SImode) != 0)
1236 : return -1;
1237 : return 2;
1238 :
1239 4 : case E_V8DImode:
1240 4 : res = pattern314 (x1,
1241 : E_V8DImode);
1242 4 : if (res >= 0)
1243 4 : return res + 3; /* [3, 4] */
1244 : return -1;
1245 :
1246 4 : case E_V4DImode:
1247 4 : res = pattern314 (x1,
1248 : E_V4DImode);
1249 4 : if (res >= 0)
1250 4 : return res + 5; /* [5, 6] */
1251 : return -1;
1252 :
1253 0 : case E_V2DImode:
1254 0 : res = pattern314 (x1,
1255 : E_V2DImode);
1256 0 : if (res >= 0)
1257 0 : return res + 7; /* [7, 8] */
1258 : return -1;
1259 :
1260 : default:
1261 : return -1;
1262 : }
1263 : }
1264 :
1265 : int
1266 1572 : pattern330 (rtx x1)
1267 : {
1268 1572 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1269 1572 : rtx x2;
1270 1572 : int res ATTRIBUTE_UNUSED;
1271 1572 : x2 = XVECEXP (x1, 0, 0);
1272 1572 : operands[1] = x2;
1273 1572 : switch (GET_MODE (operands[0]))
1274 : {
1275 124 : case E_V16SImode:
1276 124 : if (!register_operand (operands[0], E_V16SImode)
1277 116 : || GET_MODE (x1) != E_V16SImode
1278 240 : || !vector_operand (operands[1], E_V16SFmode))
1279 10 : return -1;
1280 : return 0;
1281 :
1282 252 : case E_V8SImode:
1283 252 : if (!register_operand (operands[0], E_V8SImode)
1284 252 : || GET_MODE (x1) != E_V8SImode)
1285 : return -1;
1286 236 : switch (GET_MODE (operands[1]))
1287 : {
1288 114 : case E_V8SFmode:
1289 114 : if (!vector_operand (operands[1], E_V8SFmode))
1290 : return -1;
1291 : return 1;
1292 :
1293 122 : case E_V8DFmode:
1294 122 : if (!vector_operand (operands[1], E_V8DFmode))
1295 : return -1;
1296 : return 2;
1297 :
1298 : default:
1299 : return -1;
1300 : }
1301 :
1302 352 : case E_V4SImode:
1303 352 : if (!register_operand (operands[0], E_V4SImode)
1304 352 : || GET_MODE (x1) != E_V4SImode)
1305 : return -1;
1306 346 : switch (GET_MODE (operands[1]))
1307 : {
1308 114 : case E_V4SFmode:
1309 114 : if (!vector_operand (operands[1], E_V4SFmode))
1310 : return -1;
1311 : return 3;
1312 :
1313 116 : case E_V4DFmode:
1314 116 : if (!vector_operand (operands[1], E_V4DFmode))
1315 : return -1;
1316 : return 4;
1317 :
1318 116 : case E_V2DFmode:
1319 116 : if (!vector_operand (operands[1], E_V2DFmode))
1320 : return -1;
1321 : return 5;
1322 :
1323 : default:
1324 : return -1;
1325 : }
1326 :
1327 274 : case E_V8DImode:
1328 274 : if (!register_operand (operands[0], E_V8DImode)
1329 274 : || GET_MODE (x1) != E_V8DImode)
1330 : return -1;
1331 238 : switch (GET_MODE (operands[1]))
1332 : {
1333 122 : case E_V8DFmode:
1334 122 : if (!vector_operand (operands[1], E_V8DFmode))
1335 : return -1;
1336 : return 6;
1337 :
1338 116 : case E_V8SFmode:
1339 116 : if (!vector_operand (operands[1], E_V8SFmode))
1340 : return -1;
1341 : return 7;
1342 :
1343 : default:
1344 : return -1;
1345 : }
1346 :
1347 269 : case E_V4DImode:
1348 269 : if (!register_operand (operands[0], E_V4DImode)
1349 269 : || GET_MODE (x1) != E_V4DImode)
1350 : return -1;
1351 233 : switch (GET_MODE (operands[1]))
1352 : {
1353 120 : case E_V4DFmode:
1354 120 : if (!vector_operand (operands[1], E_V4DFmode))
1355 : return -1;
1356 : return 8;
1357 :
1358 113 : case E_V4SFmode:
1359 113 : if (!vector_operand (operands[1], E_V4SFmode))
1360 : return -1;
1361 : return 9;
1362 :
1363 : default:
1364 : return -1;
1365 : }
1366 :
1367 253 : case E_V2DImode:
1368 253 : if (!register_operand (operands[0], E_V2DImode)
1369 253 : || GET_MODE (x1) != E_V2DImode)
1370 : return -1;
1371 229 : switch (GET_MODE (operands[1]))
1372 : {
1373 116 : case E_V2DFmode:
1374 116 : if (!vector_operand (operands[1], E_V2DFmode))
1375 : return -1;
1376 : return 10;
1377 :
1378 113 : case E_V4SFmode:
1379 113 : if (!vector_operand (operands[1], E_V4SFmode))
1380 : return -1;
1381 : return 11;
1382 :
1383 : default:
1384 : return -1;
1385 : }
1386 :
1387 : default:
1388 : return -1;
1389 : }
1390 : }
1391 :
1392 : int
1393 251 : pattern347 (rtx x1, int *pnum_clobbers, rtx_code i1)
1394 : {
1395 251 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1396 251 : rtx x2, x3, x4, x5, x6, x7;
1397 251 : int res ATTRIBUTE_UNUSED;
1398 251 : if (pnum_clobbers == NULL)
1399 : return -1;
1400 249 : x2 = XVECEXP (x1, 0, 0);
1401 249 : x3 = XEXP (x2, 1);
1402 249 : x4 = XEXP (x3, 0);
1403 249 : if (GET_MODE (x4) != E_SImode)
1404 : return -1;
1405 237 : x5 = XVECEXP (x1, 0, 1);
1406 237 : if (GET_CODE (x5) != SET)
1407 : return -1;
1408 237 : x6 = XEXP (x5, 1);
1409 237 : if (GET_CODE (x6) != i1
1410 237 : || GET_MODE (x6) != E_SImode)
1411 : return -1;
1412 237 : x7 = XEXP (x2, 0);
1413 237 : operands[1] = x7;
1414 237 : if (!register_operand (operands[1], E_DImode)
1415 237 : || GET_MODE (x3) != E_DImode)
1416 : return -1;
1417 : return 0;
1418 : }
1419 :
1420 : int
1421 21982 : pattern352 (rtx x1)
1422 : {
1423 21982 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1424 21982 : int res ATTRIBUTE_UNUSED;
1425 21982 : if (!nonmemory_operand (operands[2], E_QImode))
1426 : return -1;
1427 21836 : return pattern351 (x1); /* [-1, 5] */
1428 : }
1429 :
1430 : int
1431 4542 : pattern356 (rtx x1, machine_mode i1, machine_mode i2)
1432 : {
1433 4542 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1434 4542 : rtx x2, x3, x4, x5;
1435 4542 : int res ATTRIBUTE_UNUSED;
1436 4542 : if (!register_operand (operands[0], i1)
1437 4542 : || GET_MODE (x1) != i1)
1438 : return -1;
1439 4542 : x2 = XEXP (x1, 0);
1440 4542 : if (GET_MODE (x2) != i1)
1441 : return -1;
1442 4542 : x3 = XEXP (x2, 0);
1443 4542 : if (GET_MODE (x3) != i1)
1444 : return -1;
1445 4542 : x4 = XEXP (x3, 0);
1446 4542 : if (GET_MODE (x4) != i1
1447 4542 : || !nonimmediate_operand (operands[2], i2))
1448 23 : return -1;
1449 4519 : x5 = XEXP (x2, 1);
1450 4519 : if (GET_MODE (x5) != i1
1451 4519 : || !nonimmediate_operand (operands[4], i2)
1452 9027 : || !register_operand (operands[1], i1))
1453 11 : return -1;
1454 : return 0;
1455 : }
1456 :
1457 : int
1458 64 : pattern361 (rtx x1, machine_mode i1)
1459 : {
1460 64 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1461 64 : rtx x2;
1462 64 : int res ATTRIBUTE_UNUSED;
1463 64 : if (!nonimmediate_operand (operands[0], i1)
1464 64 : || GET_MODE (x1) != i1)
1465 : return -1;
1466 64 : x2 = XEXP (x1, 0);
1467 64 : if (GET_MODE (x2) != i1
1468 64 : || !general_operand (operands[1], i1))
1469 0 : return -1;
1470 : return 0;
1471 : }
1472 :
1473 : int
1474 21065 : pattern365 (rtx x1, machine_mode i1)
1475 : {
1476 21065 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1477 21065 : rtx x2, x3, x4, x5, x6, x7;
1478 21065 : int res ATTRIBUTE_UNUSED;
1479 21065 : x2 = XVECEXP (x1, 0, 0);
1480 21065 : x3 = XEXP (x2, 1);
1481 21065 : x4 = XEXP (x3, 0);
1482 21065 : x5 = XEXP (x4, 0);
1483 21065 : if (GET_MODE (x5) != i1
1484 21065 : || !memory_operand (operands[0], i1)
1485 42023 : || !nonmemory_operand (operands[1], i1))
1486 107 : return -1;
1487 20958 : x6 = XVECEXP (x1, 0, 1);
1488 20958 : x7 = XEXP (x6, 1);
1489 20958 : if (GET_MODE (x7) != i1)
1490 : return -1;
1491 : return 0;
1492 : }
1493 :
1494 : int
1495 190102 : pattern369 (rtx x1)
1496 : {
1497 190102 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1498 190102 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1499 190102 : rtx x10;
1500 190102 : int res ATTRIBUTE_UNUSED;
1501 190102 : x2 = XVECEXP (x1, 0, 0);
1502 190102 : x3 = XEXP (x2, 1);
1503 190102 : x4 = XEXP (x3, 1);
1504 190102 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1505 : return -1;
1506 47186 : x5 = XEXP (x2, 0);
1507 47186 : if (GET_CODE (x5) != REG
1508 47186 : || REGNO (x5) != 17)
1509 : return -1;
1510 47186 : x6 = XEXP (x3, 0);
1511 47186 : x7 = XEXP (x6, 0);
1512 47186 : operands[1] = x7;
1513 47186 : x8 = XEXP (x6, 1);
1514 47186 : operands[2] = x8;
1515 47186 : x9 = XVECEXP (x1, 0, 1);
1516 47186 : switch (GET_CODE (x9))
1517 : {
1518 41451 : case SET:
1519 41451 : x10 = XEXP (x9, 0);
1520 41451 : operands[0] = x10;
1521 41451 : return 0;
1522 :
1523 5735 : case CLOBBER:
1524 5735 : x10 = XEXP (x9, 0);
1525 5735 : operands[0] = x10;
1526 5735 : switch (GET_MODE (x6))
1527 : {
1528 131 : case E_QImode:
1529 131 : if (!nonimmediate_operand (operands[1], E_QImode)
1530 128 : || !const_1_to_31_operand (operands[2], E_QImode)
1531 259 : || !scratch_operand (operands[0], E_QImode))
1532 3 : return -1;
1533 : return 1;
1534 :
1535 238 : case E_HImode:
1536 238 : if (!nonimmediate_operand (operands[1], E_HImode)
1537 221 : || !const_1_to_31_operand (operands[2], E_QImode)
1538 459 : || !scratch_operand (operands[0], E_HImode))
1539 23 : return -1;
1540 : return 2;
1541 :
1542 151 : case E_SImode:
1543 151 : if (!nonimmediate_operand (operands[1], E_SImode)
1544 101 : || !const_1_to_31_operand (operands[2], E_QImode)
1545 252 : || !scratch_operand (operands[0], E_SImode))
1546 53 : return -1;
1547 : return 3;
1548 :
1549 5215 : case E_DImode:
1550 5215 : if (!nonimmediate_operand (operands[1], E_DImode)
1551 3803 : || !const_1_to_63_operand (operands[2], E_QImode)
1552 9018 : || !scratch_operand (operands[0], E_DImode))
1553 1417 : return -1;
1554 : return 4;
1555 :
1556 : default:
1557 : return -1;
1558 : }
1559 :
1560 : default:
1561 : return -1;
1562 : }
1563 : }
1564 :
1565 : int
1566 1033671 : pattern391 (rtx x1, machine_mode i1)
1567 : {
1568 1033671 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1569 1033671 : rtx x2, x3, x4, x5;
1570 1033671 : int res ATTRIBUTE_UNUSED;
1571 1033671 : if (!register_operand (operands[0], i1))
1572 : return -1;
1573 1032715 : x2 = XVECEXP (x1, 0, 0);
1574 1032715 : x3 = XEXP (x2, 1);
1575 1032715 : if (GET_MODE (x3) != i1
1576 1032715 : || !register_operand (operands[2], i1)
1577 958518 : || !nonimmediate_operand (operands[3], i1)
1578 1961527 : || !register_operand (operands[1], i1))
1579 104045 : return -1;
1580 928670 : x4 = XVECEXP (x1, 0, 1);
1581 928670 : x5 = XEXP (x4, 1);
1582 928670 : if (GET_MODE (x5) != i1)
1583 : return -1;
1584 : return 0;
1585 : }
1586 :
1587 : int
1588 766 : pattern399 (rtx x1, machine_mode i1)
1589 : {
1590 766 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1591 766 : rtx x2;
1592 766 : int res ATTRIBUTE_UNUSED;
1593 766 : if (!register_operand (operands[0], i1)
1594 766 : || GET_MODE (x1) != i1)
1595 : return -1;
1596 737 : x2 = XEXP (x1, 0);
1597 737 : if (GET_MODE (x2) != i1
1598 737 : || !register_no_SP_operand (operands[1], i1)
1599 1474 : || !nonmemory_operand (operands[3], i1))
1600 0 : return -1;
1601 : return 0;
1602 : }
1603 :
1604 : int
1605 735 : pattern406 (rtx x1)
1606 : {
1607 735 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1608 735 : rtx x2, x3, x4;
1609 735 : int res ATTRIBUTE_UNUSED;
1610 735 : x2 = XEXP (x1, 0);
1611 735 : x3 = XEXP (x2, 0);
1612 735 : operands[1] = x3;
1613 735 : x4 = XEXP (x2, 1);
1614 735 : operands[2] = x4;
1615 735 : switch (GET_MODE (operands[0]))
1616 : {
1617 3 : case E_HImode:
1618 3 : if (!register_operand (operands[0], E_HImode)
1619 3 : || GET_MODE (x1) != E_HImode
1620 3 : || GET_MODE (x2) != E_QImode
1621 3 : || !memory_operand (operands[1], E_QImode)
1622 6 : || !const_int_operand (operands[2], E_QImode))
1623 0 : return -1;
1624 : return 0;
1625 :
1626 452 : case E_SImode:
1627 452 : if (!register_operand (operands[0], E_SImode)
1628 452 : || GET_MODE (x1) != E_SImode)
1629 : return -1;
1630 265 : switch (GET_MODE (x2))
1631 : {
1632 202 : case E_QImode:
1633 202 : if (!memory_operand (operands[1], E_QImode)
1634 202 : || !const_int_operand (operands[2], E_QImode))
1635 130 : return -1;
1636 : return 1;
1637 :
1638 63 : case E_HImode:
1639 63 : if (!memory_operand (operands[1], E_HImode)
1640 63 : || !const_int_operand (operands[2], E_HImode))
1641 39 : return -1;
1642 : return 2;
1643 :
1644 : default:
1645 : return -1;
1646 : }
1647 :
1648 278 : case E_DImode:
1649 278 : if (!register_operand (operands[0], E_DImode)
1650 278 : || GET_MODE (x1) != E_DImode)
1651 : return -1;
1652 272 : switch (GET_MODE (x2))
1653 : {
1654 7 : case E_QImode:
1655 7 : if (!memory_operand (operands[1], E_QImode)
1656 7 : || !const_int_operand (operands[2], E_QImode))
1657 4 : return -1;
1658 : return 3;
1659 :
1660 4 : case E_HImode:
1661 4 : if (!memory_operand (operands[1], E_HImode)
1662 4 : || !const_int_operand (operands[2], E_HImode))
1663 1 : return -1;
1664 : return 4;
1665 :
1666 261 : case E_SImode:
1667 261 : if (!memory_operand (operands[1], E_SImode)
1668 261 : || !const_int_operand (operands[2], E_SImode))
1669 247 : return -1;
1670 : return 5;
1671 :
1672 : default:
1673 : return -1;
1674 : }
1675 :
1676 : default:
1677 : return -1;
1678 : }
1679 : }
1680 :
1681 : int
1682 533602 : pattern428 (rtx x1, machine_mode i1)
1683 : {
1684 533602 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1685 533602 : int res ATTRIBUTE_UNUSED;
1686 533602 : if (GET_MODE (x1) != i1)
1687 : return -1;
1688 533602 : switch (GET_MODE (operands[1]))
1689 : {
1690 409255 : case E_SFmode:
1691 409255 : if (!nonimmediate_operand (operands[1], E_SFmode))
1692 : return -1;
1693 : return 0;
1694 :
1695 124336 : case E_DFmode:
1696 124336 : if (!nonimmediate_operand (operands[1], E_DFmode))
1697 : return -1;
1698 : return 1;
1699 :
1700 : default:
1701 : return -1;
1702 : }
1703 : }
1704 :
1705 : int
1706 8992 : pattern436 (rtx x1, int *pnum_clobbers)
1707 : {
1708 8992 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1709 8992 : rtx x2, x3, x4, x5, x6;
1710 8992 : int res ATTRIBUTE_UNUSED;
1711 8992 : if (pnum_clobbers == NULL)
1712 : return -1;
1713 8992 : x2 = XEXP (x1, 1);
1714 8992 : x3 = XEXP (x2, 1);
1715 8992 : operands[2] = x3;
1716 8992 : x4 = XEXP (x3, 0);
1717 8992 : if (GET_CODE (x4) != REG
1718 8992 : || REGNO (x4) != 17)
1719 : return -1;
1720 7189 : x5 = XEXP (x3, 1);
1721 7189 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1722 : return -1;
1723 7189 : x6 = XEXP (x1, 0);
1724 7189 : operands[0] = x6;
1725 7189 : switch (GET_MODE (operands[0]))
1726 : {
1727 : case E_QImode:
1728 : return 0;
1729 :
1730 2 : case E_HImode:
1731 2 : return 1;
1732 :
1733 : default:
1734 : return -1;
1735 : }
1736 : }
1737 :
1738 : int
1739 8228 : pattern445 (rtx x1)
1740 : {
1741 8228 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1742 8228 : rtx x2, x3;
1743 8228 : int res ATTRIBUTE_UNUSED;
1744 8228 : switch (GET_MODE (operands[0]))
1745 : {
1746 3996 : case E_DImode:
1747 3996 : if (!nonimmediate_operand (operands[0], E_DImode)
1748 3996 : || GET_MODE (x1) != E_DImode)
1749 : return -1;
1750 3992 : x2 = XEXP (x1, 0);
1751 3992 : if (GET_MODE (x2) != E_DImode
1752 3992 : || !nonimmediate_operand (operands[4], E_DImode)
1753 7618 : || !const_0_to_63_operand (operands[2], E_QImode))
1754 1941 : return -1;
1755 2051 : x3 = XEXP (x1, 1);
1756 2051 : if (GET_MODE (x3) != E_DImode
1757 2051 : || !nonimmediate_operand (operands[1], E_DImode)
1758 3539 : || !const_0_to_63_operand (operands[3], E_QImode))
1759 563 : return -1;
1760 : return 0;
1761 :
1762 2229 : case E_SImode:
1763 2229 : if (!nonimmediate_operand (operands[0], E_SImode)
1764 2229 : || GET_MODE (x1) != E_SImode)
1765 : return -1;
1766 2229 : x2 = XEXP (x1, 0);
1767 2229 : if (GET_MODE (x2) != E_SImode
1768 2229 : || !nonimmediate_operand (operands[4], E_SImode)
1769 4447 : || !const_0_to_31_operand (operands[2], E_QImode))
1770 561 : return -1;
1771 1668 : x3 = XEXP (x1, 1);
1772 1668 : if (GET_MODE (x3) != E_SImode
1773 1668 : || !nonimmediate_operand (operands[1], E_SImode)
1774 3299 : || !const_0_to_31_operand (operands[3], E_QImode))
1775 37 : return -1;
1776 : return 1;
1777 :
1778 : default:
1779 : return -1;
1780 : }
1781 : }
1782 :
1783 : int
1784 1140 : pattern462 (rtx x1, machine_mode i1, machine_mode i2)
1785 : {
1786 1140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1787 1140 : rtx x2, x3;
1788 1140 : int res ATTRIBUTE_UNUSED;
1789 1140 : if (!register_operand (operands[0], i2)
1790 1140 : || GET_MODE (x1) != i2)
1791 : return -1;
1792 1042 : x2 = XEXP (x1, 0);
1793 1042 : if (GET_MODE (x2) != i2
1794 1042 : || !vector_operand (operands[1], i2)
1795 1024 : || !vector_operand (operands[2], i2)
1796 2066 : || !nonimm_or_0_operand (operands[3], i2))
1797 26 : return -1;
1798 1016 : x3 = XEXP (x1, 2);
1799 1016 : if (GET_MODE (x3) != i1
1800 1016 : || !register_operand (operands[4], E_QImode))
1801 108 : return -1;
1802 : return 0;
1803 : }
1804 :
1805 : int
1806 2245 : pattern471 (rtx x1)
1807 : {
1808 2245 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1809 2245 : rtx x2, x3, x4, x5, x6;
1810 2245 : int res ATTRIBUTE_UNUSED;
1811 2245 : x2 = XEXP (x1, 0);
1812 2245 : x3 = XVECEXP (x2, 0, 0);
1813 2245 : operands[1] = x3;
1814 2245 : x4 = XVECEXP (x2, 0, 1);
1815 2245 : operands[2] = x4;
1816 2245 : if (!const_0_to_255_operand (operands[2], E_SImode))
1817 : return -1;
1818 2245 : x5 = XEXP (x1, 1);
1819 2245 : operands[3] = x5;
1820 2245 : x6 = XEXP (x1, 2);
1821 2245 : operands[4] = x6;
1822 2245 : switch (GET_MODE (operands[0]))
1823 : {
1824 753 : case E_V32BFmode:
1825 753 : return pattern470 (x1,
1826 : E_V32BFmode,
1827 753 : E_SImode); /* [-1, 0] */
1828 :
1829 752 : case E_V16BFmode:
1830 752 : if (pattern470 (x1,
1831 : E_V16BFmode,
1832 : E_HImode) != 0)
1833 : return -1;
1834 : return 1;
1835 :
1836 740 : case E_V8BFmode:
1837 740 : if (pattern470 (x1,
1838 : E_V8BFmode,
1839 : E_QImode) != 0)
1840 : return -1;
1841 : return 2;
1842 :
1843 : default:
1844 : return -1;
1845 : }
1846 : }
1847 :
1848 : int
1849 1727 : pattern479 (rtx x1)
1850 : {
1851 1727 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1852 1727 : rtx x2, x3, x4, x5, x6, x7;
1853 1727 : int res ATTRIBUTE_UNUSED;
1854 1727 : x2 = XEXP (x1, 0);
1855 1727 : x3 = XVECEXP (x2, 0, 0);
1856 1727 : operands[1] = x3;
1857 1727 : x4 = XVECEXP (x2, 0, 1);
1858 1727 : operands[2] = x4;
1859 1727 : x5 = XVECEXP (x2, 0, 2);
1860 1727 : operands[3] = x5;
1861 1727 : x6 = XEXP (x1, 2);
1862 1727 : if (!register_operand (x6, E_QImode))
1863 : return -1;
1864 1533 : x7 = XEXP (x1, 1);
1865 1533 : switch (GET_CODE (x7))
1866 : {
1867 736 : case CONST_INT:
1868 736 : case CONST_DOUBLE:
1869 736 : case CONST_VECTOR:
1870 736 : operands[4] = x7;
1871 736 : operands[5] = x6;
1872 736 : switch (GET_MODE (operands[0]))
1873 : {
1874 247 : case E_V8DImode:
1875 247 : return pattern477 (x1,
1876 247 : E_V8DImode); /* [-1, 0] */
1877 :
1878 249 : case E_V4DImode:
1879 249 : if (pattern477 (x1,
1880 : E_V4DImode) != 0)
1881 : return -1;
1882 : return 1;
1883 :
1884 240 : case E_V2DImode:
1885 240 : if (pattern477 (x1,
1886 : E_V2DImode) != 0)
1887 : return -1;
1888 : return 2;
1889 :
1890 : default:
1891 : return -1;
1892 : }
1893 :
1894 760 : case REG:
1895 760 : case SUBREG:
1896 760 : if (!rtx_equal_p (x7, operands[1]))
1897 : return -1;
1898 760 : operands[4] = x6;
1899 760 : switch (GET_MODE (operands[0]))
1900 : {
1901 283 : case E_V8DImode:
1902 283 : if (pattern478 (x1,
1903 : E_V8DImode) != 0)
1904 : return -1;
1905 : return 3;
1906 :
1907 242 : case E_V4DImode:
1908 242 : if (pattern478 (x1,
1909 : E_V4DImode) != 0)
1910 : return -1;
1911 : return 4;
1912 :
1913 235 : case E_V2DImode:
1914 235 : if (pattern478 (x1,
1915 : E_V2DImode) != 0)
1916 : return -1;
1917 : return 5;
1918 :
1919 : default:
1920 : return -1;
1921 : }
1922 :
1923 : default:
1924 : return -1;
1925 : }
1926 : }
1927 :
1928 : int
1929 84 : pattern497 (rtx x1)
1930 : {
1931 84 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1932 84 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1933 84 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1934 84 : rtx x18, x19, x20;
1935 84 : int res ATTRIBUTE_UNUSED;
1936 84 : x2 = XVECEXP (x1, 0, 1);
1937 84 : operands[1] = x2;
1938 84 : x3 = XVECEXP (x1, 0, 2);
1939 84 : operands[2] = x3;
1940 84 : x4 = XVECEXP (x1, 0, 0);
1941 84 : switch (XVECLEN (x4, 0))
1942 : {
1943 33 : case 16:
1944 33 : if (GET_MODE (x4) != E_V16QImode)
1945 : return -1;
1946 9 : x5 = XVECEXP (x4, 0, 0);
1947 9 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1948 : return -1;
1949 9 : x6 = XVECEXP (x4, 0, 1);
1950 9 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1951 : return -1;
1952 8 : x7 = XVECEXP (x4, 0, 2);
1953 8 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1954 : return -1;
1955 8 : x8 = XVECEXP (x4, 0, 3);
1956 8 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1957 : return -1;
1958 8 : x9 = XVECEXP (x4, 0, 4);
1959 8 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1960 : return -1;
1961 8 : x10 = XVECEXP (x4, 0, 5);
1962 8 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
1963 : return -1;
1964 8 : x11 = XVECEXP (x4, 0, 6);
1965 8 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1966 : return -1;
1967 8 : x12 = XVECEXP (x4, 0, 7);
1968 8 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
1969 : return -1;
1970 8 : x13 = XVECEXP (x4, 0, 8);
1971 8 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
1972 : return -1;
1973 8 : x14 = XVECEXP (x4, 0, 9);
1974 8 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
1975 : return -1;
1976 8 : x15 = XVECEXP (x4, 0, 10);
1977 8 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
1978 : return -1;
1979 8 : x16 = XVECEXP (x4, 0, 11);
1980 8 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
1981 : return -1;
1982 8 : x17 = XVECEXP (x4, 0, 12);
1983 8 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
1984 : return -1;
1985 8 : x18 = XVECEXP (x4, 0, 13);
1986 8 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
1987 : return -1;
1988 8 : x19 = XVECEXP (x4, 0, 14);
1989 8 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
1990 : return -1;
1991 8 : x20 = XVECEXP (x4, 0, 15);
1992 8 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 23]
1993 8 : || pattern496 (x1,
1994 : E_V16QImode) != 0)
1995 6 : return -1;
1996 : return 0;
1997 :
1998 32 : case 8:
1999 32 : if (GET_MODE (x4) != E_V8HImode)
2000 : return -1;
2001 13 : x5 = XVECEXP (x4, 0, 0);
2002 13 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2003 : return -1;
2004 9 : x6 = XVECEXP (x4, 0, 1);
2005 9 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2006 : return -1;
2007 0 : x7 = XVECEXP (x4, 0, 2);
2008 0 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2009 : return -1;
2010 0 : x8 = XVECEXP (x4, 0, 3);
2011 0 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2012 : return -1;
2013 0 : x9 = XVECEXP (x4, 0, 4);
2014 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2015 : return -1;
2016 0 : x10 = XVECEXP (x4, 0, 5);
2017 0 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
2018 : return -1;
2019 0 : x11 = XVECEXP (x4, 0, 6);
2020 0 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
2021 : return -1;
2022 0 : x12 = XVECEXP (x4, 0, 7);
2023 0 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 11]
2024 0 : || pattern496 (x1,
2025 : E_V8HImode) != 0)
2026 0 : return -1;
2027 : return 1;
2028 :
2029 : default:
2030 : return -1;
2031 : }
2032 : }
2033 :
2034 : int
2035 2415 : pattern527 (rtx x1)
2036 : {
2037 2415 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2038 2415 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2039 2415 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2040 2415 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
2041 2415 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
2042 2415 : rtx x34, x35, x36, x37;
2043 2415 : int res ATTRIBUTE_UNUSED;
2044 2415 : x2 = XEXP (x1, 0);
2045 2415 : if (XINT (x2, 1) != 152)
2046 : return -1;
2047 52 : x3 = XVECEXP (x2, 0, 0);
2048 52 : operands[1] = x3;
2049 52 : x4 = XVECEXP (x2, 0, 1);
2050 52 : operands[2] = x4;
2051 52 : x5 = XEXP (x1, 1);
2052 52 : switch (XVECLEN (x5, 0))
2053 : {
2054 8 : case 16:
2055 8 : x6 = XVECEXP (x5, 0, 0);
2056 8 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2057 : return -1;
2058 8 : x7 = XVECEXP (x5, 0, 1);
2059 8 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2060 : return -1;
2061 8 : x8 = XVECEXP (x5, 0, 2);
2062 8 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2063 : return -1;
2064 8 : x9 = XVECEXP (x5, 0, 3);
2065 8 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2066 : return -1;
2067 8 : x10 = XVECEXP (x5, 0, 4);
2068 8 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2069 : return -1;
2070 8 : x11 = XVECEXP (x5, 0, 5);
2071 8 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2072 : return -1;
2073 8 : x12 = XVECEXP (x5, 0, 6);
2074 8 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2075 : return -1;
2076 8 : x13 = XVECEXP (x5, 0, 7);
2077 8 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2078 : return -1;
2079 8 : x14 = XVECEXP (x5, 0, 8);
2080 8 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2081 : return -1;
2082 8 : x15 = XVECEXP (x5, 0, 9);
2083 8 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
2084 : return -1;
2085 8 : x16 = XVECEXP (x5, 0, 10);
2086 8 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
2087 : return -1;
2088 8 : x17 = XVECEXP (x5, 0, 11);
2089 8 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
2090 : return -1;
2091 8 : x18 = XVECEXP (x5, 0, 12);
2092 8 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
2093 : return -1;
2094 8 : x19 = XVECEXP (x5, 0, 13);
2095 8 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
2096 : return -1;
2097 8 : x20 = XVECEXP (x5, 0, 14);
2098 8 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
2099 : return -1;
2100 8 : x21 = XVECEXP (x5, 0, 15);
2101 8 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
2102 : return -1;
2103 8 : switch (GET_MODE (operands[0]))
2104 : {
2105 4 : case E_V16HImode:
2106 4 : return pattern526 (x1,
2107 : E_V32HImode,
2108 4 : E_V16HImode); /* [-1, 0] */
2109 :
2110 4 : case E_V16QImode:
2111 4 : if (pattern526 (x1,
2112 : E_V32QImode,
2113 : E_V16QImode) != 0)
2114 : return -1;
2115 : return 1;
2116 :
2117 : default:
2118 : return -1;
2119 : }
2120 :
2121 24 : case 8:
2122 24 : x6 = XVECEXP (x5, 0, 0);
2123 24 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2124 : return -1;
2125 24 : x7 = XVECEXP (x5, 0, 1);
2126 24 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2127 : return -1;
2128 24 : x8 = XVECEXP (x5, 0, 2);
2129 24 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2130 : return -1;
2131 24 : x9 = XVECEXP (x5, 0, 3);
2132 24 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2133 : return -1;
2134 24 : x10 = XVECEXP (x5, 0, 4);
2135 24 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2136 : return -1;
2137 24 : x11 = XVECEXP (x5, 0, 5);
2138 24 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2139 : return -1;
2140 24 : x12 = XVECEXP (x5, 0, 6);
2141 24 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2142 : return -1;
2143 24 : x13 = XVECEXP (x5, 0, 7);
2144 24 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2145 : return -1;
2146 24 : switch (GET_MODE (operands[0]))
2147 : {
2148 4 : case E_V8HImode:
2149 4 : if (pattern526 (x1,
2150 : E_V16HImode,
2151 : E_V8HImode) != 0)
2152 : return -1;
2153 : return 2;
2154 :
2155 20 : case E_V8SImode:
2156 20 : if (pattern526 (x1,
2157 : E_V16SImode,
2158 : E_V8SImode) != 0)
2159 : return -1;
2160 : return 3;
2161 :
2162 : default:
2163 : return -1;
2164 : }
2165 :
2166 4 : case 32:
2167 4 : x6 = XVECEXP (x5, 0, 0);
2168 4 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2169 : return -1;
2170 4 : x7 = XVECEXP (x5, 0, 1);
2171 4 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2172 : return -1;
2173 4 : x8 = XVECEXP (x5, 0, 2);
2174 4 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2175 : return -1;
2176 4 : x9 = XVECEXP (x5, 0, 3);
2177 4 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2178 : return -1;
2179 4 : x10 = XVECEXP (x5, 0, 4);
2180 4 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2181 : return -1;
2182 4 : x11 = XVECEXP (x5, 0, 5);
2183 4 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2184 : return -1;
2185 4 : x12 = XVECEXP (x5, 0, 6);
2186 4 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2187 : return -1;
2188 4 : x13 = XVECEXP (x5, 0, 7);
2189 4 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2190 : return -1;
2191 4 : x14 = XVECEXP (x5, 0, 8);
2192 4 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
2193 : return -1;
2194 4 : x15 = XVECEXP (x5, 0, 9);
2195 4 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
2196 : return -1;
2197 4 : x16 = XVECEXP (x5, 0, 10);
2198 4 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
2199 : return -1;
2200 4 : x17 = XVECEXP (x5, 0, 11);
2201 4 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
2202 : return -1;
2203 4 : x18 = XVECEXP (x5, 0, 12);
2204 4 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
2205 : return -1;
2206 4 : x19 = XVECEXP (x5, 0, 13);
2207 4 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
2208 : return -1;
2209 4 : x20 = XVECEXP (x5, 0, 14);
2210 4 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
2211 : return -1;
2212 4 : x21 = XVECEXP (x5, 0, 15);
2213 4 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
2214 : return -1;
2215 4 : x22 = XVECEXP (x5, 0, 16);
2216 4 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
2217 : return -1;
2218 4 : x23 = XVECEXP (x5, 0, 17);
2219 4 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
2220 : return -1;
2221 4 : x24 = XVECEXP (x5, 0, 18);
2222 4 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
2223 : return -1;
2224 4 : x25 = XVECEXP (x5, 0, 19);
2225 4 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
2226 : return -1;
2227 4 : x26 = XVECEXP (x5, 0, 20);
2228 4 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
2229 : return -1;
2230 4 : x27 = XVECEXP (x5, 0, 21);
2231 4 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
2232 : return -1;
2233 4 : x28 = XVECEXP (x5, 0, 22);
2234 4 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
2235 : return -1;
2236 4 : x29 = XVECEXP (x5, 0, 23);
2237 4 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
2238 : return -1;
2239 4 : x30 = XVECEXP (x5, 0, 24);
2240 4 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
2241 : return -1;
2242 4 : x31 = XVECEXP (x5, 0, 25);
2243 4 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
2244 : return -1;
2245 4 : x32 = XVECEXP (x5, 0, 26);
2246 4 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
2247 : return -1;
2248 4 : x33 = XVECEXP (x5, 0, 27);
2249 4 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
2250 : return -1;
2251 4 : x34 = XVECEXP (x5, 0, 28);
2252 4 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
2253 : return -1;
2254 4 : x35 = XVECEXP (x5, 0, 29);
2255 4 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
2256 : return -1;
2257 4 : x36 = XVECEXP (x5, 0, 30);
2258 4 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
2259 : return -1;
2260 4 : x37 = XVECEXP (x5, 0, 31);
2261 4 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
2262 4 : || pattern526 (x1,
2263 : E_V64QImode,
2264 : E_V32QImode) != 0)
2265 2 : return -1;
2266 : return 4;
2267 :
2268 16 : case 4:
2269 16 : x6 = XVECEXP (x5, 0, 0);
2270 16 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2271 : return -1;
2272 15 : x7 = XVECEXP (x5, 0, 1);
2273 15 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2274 : return -1;
2275 15 : x8 = XVECEXP (x5, 0, 2);
2276 15 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2277 : return -1;
2278 15 : x9 = XVECEXP (x5, 0, 3);
2279 15 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
2280 15 : || pattern526 (x1,
2281 : E_V8SImode,
2282 : E_V4SImode) != 0)
2283 13 : return -1;
2284 : return 5;
2285 :
2286 : default:
2287 : return -1;
2288 : }
2289 : }
2290 :
2291 : int
2292 52 : pattern602 (rtx x1)
2293 : {
2294 52 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2295 52 : rtx x2, x3, x4;
2296 52 : int res ATTRIBUTE_UNUSED;
2297 52 : x2 = XVECEXP (x1, 0, 1);
2298 52 : x3 = XEXP (x2, 0);
2299 52 : operands[2] = x3;
2300 52 : x4 = XVECEXP (x1, 0, 2);
2301 52 : operands[3] = x4;
2302 52 : switch (GET_MODE (operands[0]))
2303 : {
2304 10 : case E_V32HFmode:
2305 10 : return pattern601 (x1,
2306 : E_V32HFmode,
2307 10 : E_V16SFmode); /* [-1, 0] */
2308 :
2309 10 : case E_V16HFmode:
2310 10 : if (pattern601 (x1,
2311 : E_V16HFmode,
2312 : E_V8SFmode) != 0)
2313 : return -1;
2314 : return 1;
2315 :
2316 32 : case E_V8HFmode:
2317 32 : if (pattern601 (x1,
2318 : E_V8HFmode,
2319 : E_V4SFmode) != 0)
2320 : return -1;
2321 : return 2;
2322 :
2323 : default:
2324 : return -1;
2325 : }
2326 : }
2327 :
2328 : int
2329 4147 : pattern610 (rtx x1)
2330 : {
2331 4147 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2332 4147 : rtx x2, x3, x4, x5, x6, x7;
2333 4147 : int res ATTRIBUTE_UNUSED;
2334 4147 : x2 = XEXP (x1, 0);
2335 4147 : x3 = XEXP (x2, 1);
2336 4147 : if (GET_CODE (x3) != PARALLEL
2337 4147 : || XVECLEN (x3, 0) != 1)
2338 : return -1;
2339 4147 : x4 = XVECEXP (x3, 0, 0);
2340 4147 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2341 : return -1;
2342 3512 : x5 = XEXP (x1, 1);
2343 3512 : if (GET_CODE (x5) != VEC_SELECT)
2344 : return -1;
2345 1811 : x6 = XEXP (x5, 1);
2346 1811 : if (GET_CODE (x6) != PARALLEL
2347 1811 : || XVECLEN (x6, 0) != 1)
2348 : return -1;
2349 1811 : x7 = XVECEXP (x6, 0, 0);
2350 1811 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2351 28 : return -1;
2352 : return 0;
2353 : }
2354 :
2355 : int
2356 43360 : pattern616 (rtx x1, machine_mode i1, machine_mode i2)
2357 : {
2358 43360 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2359 43360 : rtx x2, x3, x4;
2360 43360 : int res ATTRIBUTE_UNUSED;
2361 43360 : x2 = XEXP (x1, 1);
2362 43360 : if (GET_MODE (x2) != i2
2363 1518 : || !nonimmediate_operand (operands[0], i2)
2364 44878 : || GET_MODE (x1) != i2)
2365 41842 : return -1;
2366 1518 : x3 = XEXP (x1, 0);
2367 1518 : if (GET_MODE (x3) != i2
2368 1518 : || !register_operand (operands[1], i2)
2369 3036 : || !const_int_operand (operands[2], E_QImode))
2370 12 : return -1;
2371 1506 : x4 = XEXP (x2, 0);
2372 1506 : operands[3] = x4;
2373 1506 : if (!nonimmediate_operand (operands[3], i1))
2374 : return -1;
2375 : return 0;
2376 : }
2377 :
2378 : int
2379 3727 : pattern623 (rtx x1, machine_mode i1)
2380 : {
2381 3727 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2382 3727 : rtx x2;
2383 3727 : int res ATTRIBUTE_UNUSED;
2384 3727 : if (!register_operand (operands[0], i1)
2385 3727 : || GET_MODE (x1) != i1)
2386 : return -1;
2387 3552 : x2 = XEXP (x1, 0);
2388 3552 : if (GET_MODE (x2) != i1
2389 3552 : || !register_operand (operands[1], i1)
2390 7021 : || !vector_operand (operands[2], i1))
2391 162 : return -1;
2392 : return 0;
2393 : }
2394 :
2395 : int
2396 77 : pattern629 (rtx x1)
2397 : {
2398 77 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2399 77 : rtx x2, x3, x4;
2400 77 : int res ATTRIBUTE_UNUSED;
2401 77 : if (GET_MODE (x1) != E_SImode)
2402 : return -1;
2403 77 : x2 = XEXP (x1, 0);
2404 77 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
2405 : return -1;
2406 74 : x3 = XEXP (x1, 1);
2407 74 : if (GET_CODE (x3) != SUBREG
2408 74 : || maybe_ne (SUBREG_BYTE (x3), 0)
2409 148 : || GET_MODE (x3) != E_SImode)
2410 : return -1;
2411 74 : x4 = XEXP (x3, 0);
2412 74 : if (GET_CODE (x4) != CLZ
2413 74 : || GET_MODE (x4) != E_DImode)
2414 0 : return -1;
2415 : return 0;
2416 : }
2417 :
2418 : int
2419 662 : pattern637 (rtx x1)
2420 : {
2421 662 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2422 662 : rtx x2, x3, x4;
2423 662 : int res ATTRIBUTE_UNUSED;
2424 662 : x2 = XVECEXP (x1, 0, 0);
2425 662 : x3 = XEXP (x2, 1);
2426 662 : operands[1] = x3;
2427 662 : x4 = XEXP (x2, 0);
2428 662 : if (!rtx_equal_p (x4, operands[0]))
2429 : return -1;
2430 658 : switch (GET_MODE (operands[0]))
2431 : {
2432 301 : case E_SImode:
2433 301 : return pattern636 (x1,
2434 301 : E_SImode); /* [-1, 0] */
2435 :
2436 357 : case E_DImode:
2437 357 : if (pattern636 (x1,
2438 : E_DImode) != 0)
2439 : return -1;
2440 : return 1;
2441 :
2442 : default:
2443 : return -1;
2444 : }
2445 : }
2446 :
2447 : int
2448 3048 : pattern646 (rtx x1)
2449 : {
2450 3048 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2451 3048 : rtx x2, x3, x4;
2452 3048 : int res ATTRIBUTE_UNUSED;
2453 3048 : x2 = XEXP (x1, 0);
2454 3048 : x3 = XVECEXP (x2, 0, 0);
2455 3048 : operands[1] = x3;
2456 3048 : x4 = XEXP (x1, 2);
2457 3048 : operands[3] = x4;
2458 3048 : switch (GET_MODE (operands[0]))
2459 : {
2460 1032 : case E_V16SImode:
2461 1032 : return pattern644 (x1,
2462 : E_V16SImode,
2463 : E_HImode,
2464 1032 : E_V16SFmode); /* [-1, 0] */
2465 :
2466 1024 : case E_V8SImode:
2467 1024 : if (pattern644 (x1,
2468 : E_V8SImode,
2469 : E_QImode,
2470 : E_V8SFmode) != 0)
2471 : return -1;
2472 : return 1;
2473 :
2474 992 : case E_V4SImode:
2475 992 : if (pattern644 (x1,
2476 : E_V4SImode,
2477 : E_QImode,
2478 : E_V4SFmode) != 0)
2479 : return -1;
2480 : return 2;
2481 :
2482 : default:
2483 : return -1;
2484 : }
2485 : }
2486 :
2487 : int
2488 244 : pattern652 (rtx x1, machine_mode i1)
2489 : {
2490 244 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2491 244 : int res ATTRIBUTE_UNUSED;
2492 244 : if (!register_operand (operands[0], i1)
2493 244 : || GET_MODE (x1) != i1)
2494 : return -1;
2495 212 : switch (GET_MODE (operands[1]))
2496 : {
2497 77 : case E_V8HFmode:
2498 77 : if (!vector_operand (operands[1], E_V8HFmode))
2499 : return -1;
2500 : return 0;
2501 :
2502 101 : case E_V8SFmode:
2503 101 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
2504 : return -1;
2505 : return 1;
2506 :
2507 34 : case E_V8DFmode:
2508 34 : if (!vector_operand (operands[1], E_V8DFmode))
2509 : return -1;
2510 : return 2;
2511 :
2512 : default:
2513 : return -1;
2514 : }
2515 : }
2516 :
2517 : int
2518 4028 : pattern657 (rtx x1, machine_mode i1, machine_mode i2)
2519 : {
2520 4028 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2521 4028 : rtx x2, x3;
2522 4028 : int res ATTRIBUTE_UNUSED;
2523 4028 : if (!register_operand (operands[0], i1)
2524 4028 : || GET_MODE (x1) != i1)
2525 : return -1;
2526 3938 : x2 = XVECEXP (x1, 0, 0);
2527 3938 : if (GET_MODE (x2) != i1)
2528 : return -1;
2529 3938 : x3 = XEXP (x2, 0);
2530 3938 : if (GET_MODE (x3) != i1
2531 3938 : || !register_operand (operands[1], i1)
2532 3898 : || !register_operand (operands[2], i1)
2533 3866 : || !nonimm_or_0_operand (operands[3], i1)
2534 7802 : || !register_operand (operands[4], i2))
2535 74 : return -1;
2536 : return 0;
2537 : }
2538 :
2539 : int
2540 1732 : pattern665 (rtx x1, machine_mode i1)
2541 : {
2542 1732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2543 1732 : rtx x2;
2544 1732 : int res ATTRIBUTE_UNUSED;
2545 1732 : if (!register_operand (operands[0], i1)
2546 1575 : || GET_MODE (x1) != i1
2547 1575 : || !nonimmediate_operand (operands[1], i1)
2548 3112 : || !nonimmediate_operand (operands[2], i1))
2549 475 : return -1;
2550 1257 : x2 = XVECEXP (x1, 0, 2);
2551 1257 : if (GET_MODE (x2) != i1
2552 1257 : || !nonimmediate_operand (operands[3], i1)
2553 2514 : || !nonimmediate_operand (operands[4], i1))
2554 0 : return -1;
2555 : return 0;
2556 : }
2557 :
2558 : int
2559 6 : pattern669 (rtx x1, machine_mode i1)
2560 : {
2561 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2562 6 : rtx x2, x3;
2563 6 : int res ATTRIBUTE_UNUSED;
2564 6 : if (!register_operand (operands[0], i1)
2565 6 : || GET_MODE (x1) != i1
2566 6 : || !vector_operand (operands[2], i1)
2567 12 : || !register_operand (operands[1], i1))
2568 0 : return -1;
2569 6 : x2 = XVECEXP (x1, 0, 2);
2570 6 : if (GET_MODE (x2) != i1)
2571 : return -1;
2572 6 : x3 = XEXP (x2, 0);
2573 6 : if (GET_MODE (x3) != i1
2574 6 : || !const0_operand (operands[4], i1))
2575 0 : return -1;
2576 : return 0;
2577 : }
2578 :
2579 : int
2580 0 : pattern674 (rtx x1, machine_mode i1)
2581 : {
2582 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2583 0 : rtx x2, x3;
2584 0 : int res ATTRIBUTE_UNUSED;
2585 0 : if (!register_operand (operands[0], i1)
2586 0 : || GET_MODE (x1) != i1
2587 0 : || !register_operand (operands[2], i1)
2588 0 : || !vector_operand (operands[1], i1))
2589 0 : return -1;
2590 0 : x2 = XVECEXP (x1, 0, 2);
2591 0 : if (GET_MODE (x2) != i1)
2592 : return -1;
2593 0 : x3 = XEXP (x2, 0);
2594 0 : if (GET_MODE (x3) != i1
2595 0 : || !vector_all_ones_operand (operands[4], i1))
2596 0 : return -1;
2597 : return 0;
2598 : }
2599 :
2600 : int
2601 1579 : pattern678 (rtx x1, int i1, machine_mode i2)
2602 : {
2603 1579 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2604 1579 : rtx x2;
2605 1579 : int res ATTRIBUTE_UNUSED;
2606 1579 : if (GET_CODE (x1) != VEC_SELECT
2607 1225 : || GET_MODE (x1) != i2)
2608 : return -1;
2609 1225 : x2 = XEXP (x1, 1);
2610 1225 : if (GET_CODE (x2) != PARALLEL
2611 1225 : || XVECLEN (x2, 0) != i1)
2612 0 : return -1;
2613 : return 0;
2614 : }
2615 :
2616 : int
2617 19826 : pattern683 (rtx x1)
2618 : {
2619 19826 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2620 19826 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2621 19826 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2622 19826 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
2623 19826 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
2624 19826 : int res ATTRIBUTE_UNUSED;
2625 19826 : x2 = XVECEXP (x1, 0, 0);
2626 19826 : if (GET_CODE (x2) != CONST_INT)
2627 : return -1;
2628 19826 : x3 = XVECEXP (x1, 0, 1);
2629 19826 : if (GET_CODE (x3) != CONST_INT)
2630 : return -1;
2631 19826 : x4 = XVECEXP (x1, 0, 2);
2632 19826 : if (GET_CODE (x4) != CONST_INT)
2633 : return -1;
2634 19826 : x5 = XVECEXP (x1, 0, 3);
2635 19826 : if (GET_CODE (x5) != CONST_INT)
2636 : return -1;
2637 19826 : x6 = XVECEXP (x1, 0, 4);
2638 19826 : if (GET_CODE (x6) != CONST_INT)
2639 : return -1;
2640 19826 : x7 = XVECEXP (x1, 0, 5);
2641 19826 : if (GET_CODE (x7) != CONST_INT)
2642 : return -1;
2643 19826 : x8 = XVECEXP (x1, 0, 6);
2644 19826 : if (GET_CODE (x8) != CONST_INT)
2645 : return -1;
2646 19826 : x9 = XVECEXP (x1, 0, 7);
2647 19826 : if (GET_CODE (x9) != CONST_INT)
2648 : return -1;
2649 19826 : x10 = XVECEXP (x1, 0, 8);
2650 19826 : if (GET_CODE (x10) != CONST_INT)
2651 : return -1;
2652 19826 : x11 = XVECEXP (x1, 0, 9);
2653 19826 : if (GET_CODE (x11) != CONST_INT)
2654 : return -1;
2655 19826 : x12 = XVECEXP (x1, 0, 10);
2656 19826 : if (GET_CODE (x12) != CONST_INT)
2657 : return -1;
2658 19826 : x13 = XVECEXP (x1, 0, 11);
2659 19826 : if (GET_CODE (x13) != CONST_INT)
2660 : return -1;
2661 19826 : x14 = XVECEXP (x1, 0, 12);
2662 19826 : if (GET_CODE (x14) != CONST_INT)
2663 : return -1;
2664 19826 : x15 = XVECEXP (x1, 0, 13);
2665 19826 : if (GET_CODE (x15) != CONST_INT)
2666 : return -1;
2667 19826 : x16 = XVECEXP (x1, 0, 14);
2668 19826 : if (GET_CODE (x16) != CONST_INT)
2669 : return -1;
2670 19826 : x17 = XVECEXP (x1, 0, 15);
2671 19826 : if (GET_CODE (x17) != CONST_INT)
2672 : return -1;
2673 19826 : x18 = XVECEXP (x1, 0, 16);
2674 19826 : if (GET_CODE (x18) != CONST_INT)
2675 : return -1;
2676 19826 : x19 = XVECEXP (x1, 0, 17);
2677 19826 : if (GET_CODE (x19) != CONST_INT)
2678 : return -1;
2679 19826 : x20 = XVECEXP (x1, 0, 18);
2680 19826 : if (GET_CODE (x20) != CONST_INT)
2681 : return -1;
2682 19826 : x21 = XVECEXP (x1, 0, 19);
2683 19826 : if (GET_CODE (x21) != CONST_INT)
2684 : return -1;
2685 19826 : x22 = XVECEXP (x1, 0, 20);
2686 19826 : if (GET_CODE (x22) != CONST_INT)
2687 : return -1;
2688 19826 : x23 = XVECEXP (x1, 0, 21);
2689 19826 : if (GET_CODE (x23) != CONST_INT)
2690 : return -1;
2691 19826 : x24 = XVECEXP (x1, 0, 22);
2692 19826 : if (GET_CODE (x24) != CONST_INT)
2693 : return -1;
2694 19826 : x25 = XVECEXP (x1, 0, 23);
2695 19826 : if (GET_CODE (x25) != CONST_INT)
2696 : return -1;
2697 19826 : x26 = XVECEXP (x1, 0, 24);
2698 19826 : if (GET_CODE (x26) != CONST_INT)
2699 : return -1;
2700 19826 : x27 = XVECEXP (x1, 0, 25);
2701 19826 : if (GET_CODE (x27) != CONST_INT)
2702 : return -1;
2703 19826 : x28 = XVECEXP (x1, 0, 26);
2704 19826 : if (GET_CODE (x28) != CONST_INT)
2705 : return -1;
2706 19826 : x29 = XVECEXP (x1, 0, 27);
2707 19826 : if (GET_CODE (x29) != CONST_INT)
2708 : return -1;
2709 19826 : x30 = XVECEXP (x1, 0, 28);
2710 19826 : if (GET_CODE (x30) != CONST_INT)
2711 : return -1;
2712 19826 : x31 = XVECEXP (x1, 0, 29);
2713 19826 : if (GET_CODE (x31) != CONST_INT)
2714 : return -1;
2715 19826 : x32 = XVECEXP (x1, 0, 30);
2716 19826 : if (GET_CODE (x32) != CONST_INT)
2717 : return -1;
2718 19826 : x33 = XVECEXP (x1, 0, 31);
2719 19826 : if (GET_CODE (x33) != CONST_INT)
2720 0 : return -1;
2721 : return 0;
2722 : }
2723 :
2724 : int
2725 0 : pattern719 (rtx x1)
2726 : {
2727 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2728 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2729 0 : int res ATTRIBUTE_UNUSED;
2730 0 : x2 = XVECEXP (x1, 0, 2);
2731 0 : x3 = XEXP (x2, 0);
2732 0 : if (GET_CODE (x3) != REG
2733 0 : || REGNO (x3) != 17
2734 0 : || GET_MODE (x3) != E_CCmode)
2735 : return -1;
2736 0 : x4 = XVECEXP (x1, 0, 0);
2737 0 : x5 = XEXP (x4, 0);
2738 0 : operands[0] = x5;
2739 0 : if (!register_operand (operands[0], E_SImode))
2740 : return -1;
2741 0 : x6 = XEXP (x4, 1);
2742 0 : x7 = XEXP (x6, 0);
2743 0 : operands[1] = x7;
2744 0 : if (!nonimmediate_operand (operands[1], E_SImode))
2745 : return -1;
2746 0 : x8 = XVECEXP (x1, 0, 1);
2747 0 : x9 = XEXP (x8, 0);
2748 0 : operands[2] = x9;
2749 0 : if (!scratch_operand (operands[2], E_SImode))
2750 : return -1;
2751 : return 0;
2752 : }
2753 :
2754 : int
2755 0 : pattern724 (rtx x1)
2756 : {
2757 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2758 0 : rtx x2, x3;
2759 0 : int res ATTRIBUTE_UNUSED;
2760 0 : if (GET_MODE (x1) != E_QImode)
2761 : return -1;
2762 0 : x2 = XEXP (x1, 0);
2763 0 : if (GET_CODE (x2) != REG
2764 0 : || REGNO (x2) != 17)
2765 : return -1;
2766 0 : x3 = XEXP (x1, 1);
2767 0 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2768 0 : return -1;
2769 : return 0;
2770 : }
2771 :
2772 : int
2773 12 : pattern731 (rtx x1)
2774 : {
2775 12 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2776 12 : rtx x2, x3;
2777 12 : int res ATTRIBUTE_UNUSED;
2778 12 : x2 = XEXP (x1, 0);
2779 12 : x3 = XEXP (x2, 0);
2780 12 : operands[1] = x3;
2781 12 : switch (GET_MODE (operands[0]))
2782 : {
2783 0 : case E_HImode:
2784 0 : if (!memory_operand (operands[0], E_HImode)
2785 0 : || GET_MODE (x1) != E_HImode
2786 0 : || GET_MODE (x2) != E_V2QImode
2787 0 : || !register_operand (operands[1], E_V2DImode))
2788 0 : return -1;
2789 : return 0;
2790 :
2791 0 : case E_SImode:
2792 0 : res = pattern296 (x1);
2793 0 : if (res >= 0)
2794 0 : return res + 1; /* [1, 3] */
2795 : return -1;
2796 :
2797 3 : case E_DImode:
2798 3 : res = pattern297 (x1);
2799 3 : if (res >= 0)
2800 3 : return res + 4; /* [4, 9] */
2801 : return -1;
2802 :
2803 : default:
2804 : return -1;
2805 : }
2806 : }
2807 :
2808 : int
2809 102986 : pattern739 (rtx x1, machine_mode i1, machine_mode i2)
2810 : {
2811 102986 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2812 102986 : int res ATTRIBUTE_UNUSED;
2813 102986 : if (!register_operand (operands[0], i2)
2814 99808 : || GET_MODE (x1) != i2
2815 99808 : || !register_operand (operands[1], i1)
2816 174323 : || !vector_operand (operands[2], i1))
2817 52876 : return -1;
2818 : return 0;
2819 : }
2820 :
2821 : int
2822 40 : pattern744 (rtx x1, int *pnum_clobbers)
2823 : {
2824 40 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2825 40 : rtx x2, x3, x4, x5, x6;
2826 40 : int res ATTRIBUTE_UNUSED;
2827 40 : if (pnum_clobbers == NULL)
2828 : return -1;
2829 40 : x2 = XEXP (x1, 1);
2830 40 : operands[3] = x2;
2831 40 : x3 = XEXP (x2, 0);
2832 40 : x4 = XEXP (x3, 0);
2833 40 : operands[1] = x4;
2834 40 : if (!int248_register_operand (operands[1], E_VOIDmode))
2835 : return -1;
2836 40 : x5 = XEXP (x3, 1);
2837 40 : operands[2] = x5;
2838 40 : if (!int248_register_operand (operands[2], E_VOIDmode))
2839 : return -1;
2840 36 : x6 = XEXP (x1, 0);
2841 36 : switch (GET_MODE (x6))
2842 : {
2843 6 : case E_HImode:
2844 6 : if (!extract_high_operator (operands[3], E_HImode))
2845 : return -1;
2846 : return 0;
2847 :
2848 18 : case E_SImode:
2849 18 : if (!extract_high_operator (operands[3], E_SImode))
2850 : return -1;
2851 : return 1;
2852 :
2853 12 : case E_DImode:
2854 12 : if (!extract_high_operator (operands[3], E_DImode))
2855 : return -1;
2856 : return 2;
2857 :
2858 : default:
2859 : return -1;
2860 : }
2861 : }
2862 :
2863 : int
2864 480 : pattern757 (rtx x1)
2865 : {
2866 480 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2867 480 : rtx x2, x3, x4, x5;
2868 480 : int res ATTRIBUTE_UNUSED;
2869 480 : x2 = XEXP (x1, 0);
2870 480 : x3 = XEXP (x2, 1);
2871 480 : x4 = XEXP (x3, 1);
2872 480 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2873 : return -1;
2874 477 : x5 = XEXP (x3, 0);
2875 477 : operands[3] = x5;
2876 477 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
2877 : return -1;
2878 474 : switch (GET_MODE (operands[0]))
2879 : {
2880 159 : case E_SImode:
2881 159 : return pattern756 (x1,
2882 159 : E_SImode); /* [-1, 0] */
2883 :
2884 315 : case E_DImode:
2885 315 : if (pattern756 (x1,
2886 : E_DImode) != 0)
2887 : return -1;
2888 : return 1;
2889 :
2890 : default:
2891 : return -1;
2892 : }
2893 : }
2894 :
2895 : int
2896 5167 : pattern767 (rtx x1, rtx_code i1)
2897 : {
2898 5167 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2899 5167 : rtx x2, x3, x4, x5, x6, x7, x8;
2900 5167 : int res ATTRIBUTE_UNUSED;
2901 5167 : x2 = XEXP (x1, 0);
2902 5167 : x3 = XEXP (x2, 0);
2903 5167 : x4 = XEXP (x3, 1);
2904 5167 : if (GET_CODE (x4) != i1)
2905 : return -1;
2906 4775 : x5 = XEXP (x3, 0);
2907 4775 : x6 = XEXP (x5, 0);
2908 4775 : operands[1] = x6;
2909 4775 : x7 = XEXP (x4, 0);
2910 4775 : operands[2] = x7;
2911 4775 : x8 = XEXP (x2, 1);
2912 4775 : switch (XWINT (x8, 0))
2913 : {
2914 0 : case 64L:
2915 0 : return pattern766 (x1,
2916 : E_DImode,
2917 0 : E_TImode); /* [-1, 0] */
2918 :
2919 0 : case 32L:
2920 0 : if (pattern766 (x1,
2921 : E_SImode,
2922 : E_DImode) != 0)
2923 : return -1;
2924 : return 1;
2925 :
2926 : default:
2927 : return -1;
2928 : }
2929 : }
2930 :
2931 : int
2932 83816 : pattern778 (rtx x1, machine_mode i1, machine_mode i2)
2933 : {
2934 83816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2935 83816 : rtx x2, x3;
2936 83816 : int res ATTRIBUTE_UNUSED;
2937 83816 : if (!register_operand (operands[0], i2)
2938 83816 : || GET_MODE (x1) != i2)
2939 : return -1;
2940 83796 : x2 = XEXP (x1, 0);
2941 83796 : if (GET_MODE (x2) != i2)
2942 : return -1;
2943 83796 : x3 = XEXP (x2, 0);
2944 83796 : if (GET_MODE (x3) != i1)
2945 0 : return -1;
2946 : return 0;
2947 : }
2948 :
2949 : int
2950 3958 : pattern782 (rtx x1)
2951 : {
2952 3958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2953 3958 : rtx x2, x3;
2954 3958 : int res ATTRIBUTE_UNUSED;
2955 3958 : x2 = XVECEXP (x1, 0, 0);
2956 3958 : x3 = XEXP (x2, 1);
2957 3958 : if (!rtx_equal_p (x3, operands[1]))
2958 : return -1;
2959 3922 : switch (GET_MODE (operands[0]))
2960 : {
2961 1054 : case E_V8HFmode:
2962 1054 : return pattern781 (x1,
2963 1054 : E_V8HFmode); /* [-1, 0] */
2964 :
2965 1434 : case E_V4SFmode:
2966 1434 : if (pattern781 (x1,
2967 : E_V4SFmode) != 0)
2968 : return -1;
2969 : return 1;
2970 :
2971 1434 : case E_V2DFmode:
2972 1434 : if (pattern781 (x1,
2973 : E_V2DFmode) != 0)
2974 : return -1;
2975 : return 2;
2976 :
2977 : default:
2978 : return -1;
2979 : }
2980 : }
2981 :
2982 : int
2983 624 : pattern790 (rtx x1, machine_mode i1, machine_mode i2)
2984 : {
2985 624 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2986 624 : int res ATTRIBUTE_UNUSED;
2987 624 : if (!register_operand (operands[0], i1)
2988 622 : || GET_MODE (x1) != i1
2989 622 : || !register_operand (operands[2], i2)
2990 1149 : || !memory_operand (operands[1], i1))
2991 107 : return -1;
2992 : return 0;
2993 : }
2994 :
2995 : int
2996 1271066 : pattern799 (rtx x1, machine_mode i1, machine_mode i2)
2997 : {
2998 1271066 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2999 1271066 : rtx x2;
3000 1271066 : int res ATTRIBUTE_UNUSED;
3001 1271066 : if (!register_operand (operands[0], i2)
3002 1040488 : || GET_MODE (x1) != i2
3003 2311554 : || !register_operand (operands[1], i1))
3004 255593 : return -1;
3005 1015473 : x2 = XEXP (x1, 1);
3006 1015473 : operands[2] = x2;
3007 1015473 : if (!nonimmediate_operand (operands[2], i1))
3008 : return -1;
3009 : return 0;
3010 : }
3011 :
3012 : int
3013 108417 : pattern805 (machine_mode i1)
3014 : {
3015 108417 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3016 108417 : int res ATTRIBUTE_UNUSED;
3017 108417 : if (!register_operand (operands[0], i1)
3018 105559 : || !ix86_comparison_uns_operator (operands[1], i1)
3019 105479 : || !register_operand (operands[2], i1)
3020 170938 : || !nonimmediate_operand (operands[3], i1))
3021 107263 : return -1;
3022 : return 0;
3023 : }
3024 :
3025 : int
3026 1245347 : pattern814 (rtx x1)
3027 : {
3028 1245347 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3029 1245347 : rtx x2, x3, x4, x5, x6;
3030 1245347 : int res ATTRIBUTE_UNUSED;
3031 1245347 : if (!movq_parallel (operands[3], E_VOIDmode))
3032 : return -1;
3033 96341 : x2 = XEXP (x1, 0);
3034 96341 : x3 = XEXP (x2, 0);
3035 96341 : operands[1] = x3;
3036 96341 : x4 = XEXP (x2, 1);
3037 96341 : operands[2] = x4;
3038 96341 : x5 = XEXP (x1, 1);
3039 96341 : x6 = XVECEXP (x5, 0, 0);
3040 96341 : operands[4] = x6;
3041 96341 : if (!const_int_operand (operands[4], E_VOIDmode))
3042 : return -1;
3043 96341 : switch (GET_MODE (operands[0]))
3044 : {
3045 24 : case E_V64QImode:
3046 24 : return pattern808 (x1,
3047 : E_V64QImode,
3048 24 : E_V128QImode); /* [-1, 0] */
3049 :
3050 28 : case E_V32QImode:
3051 28 : if (pattern808 (x1,
3052 : E_V32QImode,
3053 : E_V64QImode) != 0)
3054 : return -1;
3055 : return 1;
3056 :
3057 96 : case E_V16QImode:
3058 96 : if (pattern808 (x1,
3059 : E_V16QImode,
3060 : E_V32QImode) != 0)
3061 : return -1;
3062 : return 2;
3063 :
3064 46 : case E_V32HImode:
3065 46 : if (pattern808 (x1,
3066 : E_V32HImode,
3067 : E_V64HImode) != 0)
3068 : return -1;
3069 : return 3;
3070 :
3071 50 : case E_V16HImode:
3072 50 : if (pattern808 (x1,
3073 : E_V16HImode,
3074 : E_V32HImode) != 0)
3075 : return -1;
3076 : return 4;
3077 :
3078 131 : case E_V8HImode:
3079 131 : if (pattern808 (x1,
3080 : E_V8HImode,
3081 : E_V16HImode) != 0)
3082 : return -1;
3083 : return 5;
3084 :
3085 : default:
3086 : return -1;
3087 : }
3088 : }
3089 :
3090 : int
3091 11936 : pattern825 (rtx x1)
3092 : {
3093 11936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3094 11936 : rtx x2;
3095 11936 : int res ATTRIBUTE_UNUSED;
3096 11936 : if (GET_MODE (x1) != E_SImode)
3097 : return -1;
3098 11936 : x2 = XVECEXP (x1, 0, 3);
3099 11936 : if (GET_CODE (x2) != REG
3100 11936 : || REGNO (x2) != 7
3101 23872 : || GET_MODE (x2) != E_SImode)
3102 0 : return -1;
3103 : return 0;
3104 : }
3105 :
3106 : int
3107 60523 : pattern831 (rtx x1)
3108 : {
3109 60523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3110 60523 : rtx x2, x3;
3111 60523 : int res ATTRIBUTE_UNUSED;
3112 60523 : switch (GET_CODE (x1))
3113 : {
3114 56488 : case CLOBBER:
3115 56488 : x2 = XEXP (x1, 0);
3116 56488 : if (GET_CODE (x2) != REG
3117 56488 : || REGNO (x2) != 17
3118 112976 : || GET_MODE (x2) != E_CCmode)
3119 0 : return -1;
3120 : return 0;
3121 :
3122 705 : case UNSPEC:
3123 705 : if (XVECLEN (x1, 0) != 1
3124 705 : || XINT (x1, 1) != 175)
3125 : return -1;
3126 705 : x3 = XVECEXP (x1, 0, 0);
3127 705 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3128 : return -1;
3129 705 : switch (GET_MODE (operands[0]))
3130 : {
3131 : case E_QImode:
3132 : return 1;
3133 :
3134 : case E_HImode:
3135 : return 2;
3136 :
3137 : case E_SImode:
3138 : return 3;
3139 :
3140 : case E_DImode:
3141 : return 4;
3142 :
3143 : default:
3144 : return -1;
3145 : }
3146 :
3147 : default:
3148 : return -1;
3149 : }
3150 : }
3151 :
3152 : int
3153 6735 : pattern839 (rtx x1, machine_mode i1)
3154 : {
3155 6735 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3156 6735 : int res ATTRIBUTE_UNUSED;
3157 6735 : if (!register_operand (operands[0], i1)
3158 4149 : || GET_MODE (x1) != i1
3159 4149 : || !register_operand (operands[1], i1)
3160 6758 : || !nonmemory_operand (operands[2], i1))
3161 6735 : return -1;
3162 : return 0;
3163 : }
3164 :
3165 : int
3166 7403 : pattern843 (rtx x1)
3167 : {
3168 7403 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3169 7403 : rtx x2, x3, x4, x5;
3170 7403 : int res ATTRIBUTE_UNUSED;
3171 7403 : if (!register_operand (operands[0], E_TFmode))
3172 : return -1;
3173 4228 : x2 = XVECEXP (x1, 0, 0);
3174 4228 : x3 = XEXP (x2, 1);
3175 4228 : if (GET_MODE (x3) != E_TFmode
3176 4228 : || !vector_operand (operands[1], E_TFmode))
3177 0 : return -1;
3178 4228 : x4 = XVECEXP (x1, 0, 1);
3179 4228 : x5 = XEXP (x4, 0);
3180 4228 : operands[2] = x5;
3181 4228 : if (!vector_operand (operands[2], E_TFmode))
3182 : return -1;
3183 : return 0;
3184 : }
3185 :
3186 : int
3187 871793 : pattern849 (rtx x1, machine_mode i1)
3188 : {
3189 871793 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3190 871793 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3191 871793 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3192 871793 : rtx x18;
3193 871793 : int res ATTRIBUTE_UNUSED;
3194 871793 : if (peep2_current_count < 4
3195 871793 : || peep2_current_count < 5
3196 490109 : || !memory_operand (operands[1], i1)
3197 1003395 : || !register_operand (operands[0], i1))
3198 740380 : return -1;
3199 131413 : x2 = XEXP (x1, 0);
3200 131413 : operands[3] = x2;
3201 131413 : if (!register_operand (operands[3], i1))
3202 : return -1;
3203 21492 : x3 = XEXP (x1, 1);
3204 21492 : if (!rtx_equal_p (x3, operands[0]))
3205 : return -1;
3206 4806 : x4 = PATTERN (peep2_next_insn (2));
3207 4806 : if (GET_CODE (x4) != PARALLEL
3208 2778 : || XVECLEN (x4, 0) != 2)
3209 : return -1;
3210 2774 : x5 = XVECEXP (x4, 0, 0);
3211 2774 : if (GET_CODE (x5) != SET)
3212 : return -1;
3213 2774 : x6 = XEXP (x5, 1);
3214 2774 : if (GET_CODE (x6) != XOR)
3215 : return -1;
3216 123 : x7 = XVECEXP (x4, 0, 1);
3217 123 : if (GET_CODE (x7) != CLOBBER)
3218 : return -1;
3219 123 : x8 = XEXP (x7, 0);
3220 123 : if (GET_CODE (x8) != REG
3221 123 : || REGNO (x8) != 17
3222 246 : || GET_MODE (x8) != E_CCmode)
3223 : return -1;
3224 123 : x9 = XEXP (x5, 0);
3225 123 : operands[4] = x9;
3226 123 : x10 = XEXP (x6, 1);
3227 123 : operands[2] = x10;
3228 123 : x11 = XEXP (x6, 0);
3229 123 : if (!rtx_equal_p (x11, operands[4]))
3230 : return -1;
3231 121 : x12 = PATTERN (peep2_next_insn (3));
3232 121 : if (GET_CODE (x12) != SET)
3233 : return -1;
3234 114 : x13 = XEXP (x12, 0);
3235 114 : if (!rtx_equal_p (x13, operands[1]))
3236 : return -1;
3237 23 : x14 = PATTERN (peep2_next_insn (4));
3238 23 : if (GET_CODE (x14) != SET)
3239 : return -1;
3240 21 : x15 = XEXP (x14, 1);
3241 21 : if (GET_CODE (x15) != COMPARE
3242 17 : || GET_MODE (x15) != E_CCZmode)
3243 : return -1;
3244 17 : x16 = XEXP (x14, 0);
3245 17 : if (GET_CODE (x16) != REG
3246 17 : || REGNO (x16) != 17
3247 34 : || GET_MODE (x16) != E_CCZmode)
3248 : return -1;
3249 17 : x17 = XEXP (x15, 0);
3250 17 : if (!register_operand (x17, i1))
3251 : return -1;
3252 17 : x18 = XEXP (x15, 1);
3253 17 : if (!nonmemory_operand (x18, i1))
3254 : return -1;
3255 : return 0;
3256 : }
3257 :
3258 : int
3259 40876 : pattern867 (rtx x1, machine_mode i1)
3260 : {
3261 40876 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3262 40876 : int res ATTRIBUTE_UNUSED;
3263 40876 : if (!register_operand (operands[0], i1)
3264 31302 : || !binary_fp_operator (operands[3], i1)
3265 31302 : || !register_operand (operands[1], i1)
3266 71949 : || GET_MODE (x1) != i1)
3267 9803 : return -1;
3268 31073 : switch (GET_MODE (operands[2]))
3269 : {
3270 16 : case E_HImode:
3271 16 : if (!nonimmediate_operand (operands[2], E_HImode))
3272 : return -1;
3273 : return 0;
3274 :
3275 30072 : case E_SImode:
3276 30072 : if (!nonimmediate_operand (operands[2], E_SImode))
3277 : return -1;
3278 : return 1;
3279 :
3280 : default:
3281 : return -1;
3282 : }
3283 : }
3284 :
3285 : int
3286 847 : pattern878 (rtx x1, machine_mode i1)
3287 : {
3288 847 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3289 847 : rtx x2, x3;
3290 847 : int res ATTRIBUTE_UNUSED;
3291 847 : if (!register_operand (operands[0], i1)
3292 847 : || GET_MODE (x1) != i1)
3293 : return -1;
3294 819 : x2 = XEXP (x1, 0);
3295 819 : if (GET_MODE (x2) != i1
3296 819 : || !bcst_vector_operand (operands[1], i1)
3297 1625 : || !bcst_vector_operand (operands[2], i1))
3298 19 : return -1;
3299 800 : x3 = XEXP (x1, 2);
3300 800 : if (GET_MODE (x3) != i1
3301 800 : || !bcst_vector_operand (operands[3], i1))
3302 51 : return -1;
3303 : return 0;
3304 : }
3305 :
3306 : int
3307 1580 : pattern886 (rtx x1, machine_mode i1)
3308 : {
3309 1580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3310 1580 : rtx x2;
3311 1580 : int res ATTRIBUTE_UNUSED;
3312 1580 : if (!register_operand (operands[0], i1)
3313 1580 : || GET_MODE (x1) != i1)
3314 : return -1;
3315 1516 : x2 = XVECEXP (x1, 0, 0);
3316 1516 : if (GET_MODE (x2) != i1)
3317 : return -1;
3318 1516 : switch (GET_MODE (operands[1]))
3319 : {
3320 488 : case E_V8HFmode:
3321 488 : if (!register_operand (operands[1], E_V8HFmode))
3322 : return -1;
3323 : return 0;
3324 :
3325 514 : case E_V4SFmode:
3326 514 : if (!register_operand (operands[1], E_V4SFmode))
3327 : return -1;
3328 : return 1;
3329 :
3330 514 : case E_V2DFmode:
3331 514 : if (!register_operand (operands[1], E_V2DFmode))
3332 : return -1;
3333 : return 2;
3334 :
3335 : default:
3336 : return -1;
3337 : }
3338 : }
3339 :
3340 : int
3341 264 : pattern899 (rtx x1, machine_mode i1)
3342 : {
3343 264 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3344 264 : rtx x2;
3345 264 : int res ATTRIBUTE_UNUSED;
3346 264 : if (!register_operand (operands[0], i1)
3347 264 : || GET_MODE (x1) != i1)
3348 : return -1;
3349 258 : x2 = XEXP (x1, 0);
3350 258 : if (GET_MODE (x2) != i1
3351 258 : || !nonimmediate_operand (operands[1], i1)
3352 490 : || !register_operand (operands[2], i1))
3353 46 : return -1;
3354 : return 0;
3355 : }
3356 :
3357 : int
3358 1358 : pattern905 (rtx x1)
3359 : {
3360 1358 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3361 1358 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3362 1358 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3363 1358 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
3364 1358 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
3365 1358 : int res ATTRIBUTE_UNUSED;
3366 1358 : x2 = XVECEXP (x1, 0, 0);
3367 1358 : if (GET_CODE (x2) != CONST_INT)
3368 : return -1;
3369 1358 : x3 = XVECEXP (x1, 0, 1);
3370 1358 : if (GET_CODE (x3) != CONST_INT)
3371 : return -1;
3372 1358 : x4 = XVECEXP (x1, 0, 2);
3373 1358 : if (GET_CODE (x4) != CONST_INT)
3374 : return -1;
3375 1358 : x5 = XVECEXP (x1, 0, 3);
3376 1358 : if (GET_CODE (x5) != CONST_INT)
3377 : return -1;
3378 1358 : x6 = XVECEXP (x1, 0, 4);
3379 1358 : if (GET_CODE (x6) != CONST_INT)
3380 : return -1;
3381 1358 : x7 = XVECEXP (x1, 0, 5);
3382 1358 : if (GET_CODE (x7) != CONST_INT)
3383 : return -1;
3384 1358 : x8 = XVECEXP (x1, 0, 6);
3385 1358 : if (GET_CODE (x8) != CONST_INT)
3386 : return -1;
3387 1358 : x9 = XVECEXP (x1, 0, 7);
3388 1358 : if (GET_CODE (x9) != CONST_INT)
3389 : return -1;
3390 1358 : x10 = XVECEXP (x1, 0, 8);
3391 1358 : if (GET_CODE (x10) != CONST_INT)
3392 : return -1;
3393 1358 : x11 = XVECEXP (x1, 0, 9);
3394 1358 : if (GET_CODE (x11) != CONST_INT)
3395 : return -1;
3396 1358 : x12 = XVECEXP (x1, 0, 10);
3397 1358 : if (GET_CODE (x12) != CONST_INT)
3398 : return -1;
3399 1358 : x13 = XVECEXP (x1, 0, 11);
3400 1358 : if (GET_CODE (x13) != CONST_INT)
3401 : return -1;
3402 1358 : x14 = XVECEXP (x1, 0, 12);
3403 1358 : if (GET_CODE (x14) != CONST_INT)
3404 : return -1;
3405 1358 : x15 = XVECEXP (x1, 0, 13);
3406 1358 : if (GET_CODE (x15) != CONST_INT)
3407 : return -1;
3408 1358 : x16 = XVECEXP (x1, 0, 14);
3409 1358 : if (GET_CODE (x16) != CONST_INT)
3410 : return -1;
3411 1358 : x17 = XVECEXP (x1, 0, 15);
3412 1358 : if (GET_CODE (x17) != CONST_INT)
3413 : return -1;
3414 1358 : x18 = XVECEXP (x1, 0, 16);
3415 1358 : if (GET_CODE (x18) != CONST_INT)
3416 : return -1;
3417 1358 : x19 = XVECEXP (x1, 0, 17);
3418 1358 : if (GET_CODE (x19) != CONST_INT)
3419 : return -1;
3420 1358 : x20 = XVECEXP (x1, 0, 18);
3421 1358 : if (GET_CODE (x20) != CONST_INT)
3422 : return -1;
3423 1358 : x21 = XVECEXP (x1, 0, 19);
3424 1358 : if (GET_CODE (x21) != CONST_INT)
3425 : return -1;
3426 1358 : x22 = XVECEXP (x1, 0, 20);
3427 1358 : if (GET_CODE (x22) != CONST_INT)
3428 : return -1;
3429 1358 : x23 = XVECEXP (x1, 0, 21);
3430 1358 : if (GET_CODE (x23) != CONST_INT)
3431 : return -1;
3432 1358 : x24 = XVECEXP (x1, 0, 22);
3433 1358 : if (GET_CODE (x24) != CONST_INT)
3434 : return -1;
3435 1358 : x25 = XVECEXP (x1, 0, 23);
3436 1358 : if (GET_CODE (x25) != CONST_INT)
3437 : return -1;
3438 1358 : x26 = XVECEXP (x1, 0, 24);
3439 1358 : if (GET_CODE (x26) != CONST_INT)
3440 : return -1;
3441 1358 : x27 = XVECEXP (x1, 0, 25);
3442 1358 : if (GET_CODE (x27) != CONST_INT)
3443 : return -1;
3444 1358 : x28 = XVECEXP (x1, 0, 26);
3445 1358 : if (GET_CODE (x28) != CONST_INT)
3446 : return -1;
3447 1358 : x29 = XVECEXP (x1, 0, 27);
3448 1358 : if (GET_CODE (x29) != CONST_INT)
3449 : return -1;
3450 1358 : x30 = XVECEXP (x1, 0, 28);
3451 1358 : if (GET_CODE (x30) != CONST_INT)
3452 : return -1;
3453 1358 : x31 = XVECEXP (x1, 0, 29);
3454 1358 : if (GET_CODE (x31) != CONST_INT)
3455 : return -1;
3456 1358 : x32 = XVECEXP (x1, 0, 30);
3457 1358 : if (GET_CODE (x32) != CONST_INT)
3458 : return -1;
3459 1358 : x33 = XVECEXP (x1, 0, 31);
3460 1358 : if (GET_CODE (x33) != CONST_INT)
3461 0 : return -1;
3462 : return 0;
3463 : }
3464 :
3465 : int
3466 183 : pattern938 (rtx x1)
3467 : {
3468 183 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3469 183 : rtx x2, x3, x4, x5, x6, x7, x8;
3470 183 : int res ATTRIBUTE_UNUSED;
3471 183 : if (!register_operand (operands[0], E_V8QImode))
3472 : return -1;
3473 183 : x2 = XVECEXP (x1, 0, 0);
3474 183 : x3 = XEXP (x2, 1);
3475 183 : x4 = XVECEXP (x3, 0, 0);
3476 183 : operands[1] = x4;
3477 183 : if (!register_operand (operands[1], E_V8QImode))
3478 : return -1;
3479 146 : x5 = XVECEXP (x3, 0, 1);
3480 146 : operands[2] = x5;
3481 146 : if (!register_mmxmem_operand (operands[2], E_V8QImode))
3482 : return -1;
3483 135 : x6 = XVECEXP (x3, 0, 2);
3484 135 : operands[4] = x6;
3485 135 : if (!reg_or_const_vector_operand (operands[4], E_V4SImode))
3486 : return -1;
3487 125 : x7 = XVECEXP (x1, 0, 1);
3488 125 : x8 = XEXP (x7, 0);
3489 125 : operands[3] = x8;
3490 125 : if (!scratch_operand (operands[3], E_V4SImode))
3491 : return -1;
3492 : return 0;
3493 : }
3494 :
3495 : int
3496 55 : pattern949 (rtx x1, machine_mode i1)
3497 : {
3498 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3499 55 : rtx x2, x3, x4, x5;
3500 55 : int res ATTRIBUTE_UNUSED;
3501 55 : if (!register_operand (operands[0], i1)
3502 55 : || GET_MODE (x1) != i1)
3503 : return -1;
3504 55 : x2 = XEXP (x1, 0);
3505 55 : if (GET_MODE (x2) != i1)
3506 : return -1;
3507 55 : x3 = XVECEXP (x2, 0, 2);
3508 55 : if (GET_MODE (x3) != i1)
3509 : return -1;
3510 55 : x4 = XEXP (x1, 1);
3511 55 : if (GET_MODE (x4) != i1)
3512 : return -1;
3513 55 : x5 = XEXP (x4, 0);
3514 55 : if (GET_MODE (x5) != i1)
3515 0 : return -1;
3516 : return 0;
3517 : }
3518 :
3519 : int
3520 4261404 : pattern960 (rtx x1, machine_mode i1)
3521 : {
3522 4261404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3523 4261404 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3524 4261404 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3525 4261404 : rtx x18, x19, x20, x21, x22, x23;
3526 4261404 : int res ATTRIBUTE_UNUSED;
3527 4261404 : if (!memory_operand (operands[0], i1)
3528 4261404 : || !general_reg_operand (operands[1], i1))
3529 1100474 : return -1;
3530 3160930 : switch (GET_CODE (x1))
3531 : {
3532 2852431 : case SET:
3533 2852431 : if (peep2_current_count < 4)
3534 : return -1;
3535 2498007 : x2 = XEXP (x1, 0);
3536 2498007 : operands[2] = x2;
3537 2498007 : if (!general_reg_operand (operands[2], i1))
3538 : return -1;
3539 1188179 : x3 = XEXP (x1, 1);
3540 1188179 : if (!rtx_equal_p (x3, operands[1]))
3541 : return -1;
3542 16720 : x4 = PATTERN (peep2_next_insn (2));
3543 16720 : if (GET_CODE (x4) != PARALLEL
3544 8451 : || XVECLEN (x4, 0) != 2)
3545 : return -1;
3546 8434 : x5 = XVECEXP (x4, 0, 0);
3547 8434 : if (GET_CODE (x5) != SET)
3548 : return -1;
3549 8424 : x6 = XEXP (x5, 1);
3550 8424 : if (GET_CODE (x6) != ASHIFTRT
3551 1847 : || GET_MODE (x6) != i1)
3552 : return -1;
3553 1847 : x7 = XVECEXP (x4, 0, 1);
3554 1847 : if (GET_CODE (x7) != CLOBBER)
3555 : return -1;
3556 1847 : x8 = XEXP (x7, 0);
3557 1847 : if (GET_CODE (x8) != REG
3558 1847 : || REGNO (x8) != 17
3559 3694 : || GET_MODE (x8) != E_CCmode)
3560 : return -1;
3561 1847 : x9 = XEXP (x6, 1);
3562 1847 : operands[4] = x9;
3563 1847 : if (!const_int_operand (operands[4], E_VOIDmode))
3564 : return -1;
3565 1847 : x10 = XEXP (x6, 0);
3566 1847 : if (!rtx_equal_p (x10, operands[2]))
3567 : return -1;
3568 1845 : x11 = XEXP (x5, 0);
3569 1845 : if (!rtx_equal_p (x11, operands[2]))
3570 : return -1;
3571 1828 : x12 = PATTERN (peep2_next_insn (3));
3572 1828 : if (GET_CODE (x12) != SET)
3573 : return -1;
3574 1711 : x13 = XEXP (x12, 0);
3575 1711 : operands[3] = x13;
3576 1711 : if (!memory_operand (operands[3], i1))
3577 : return -1;
3578 1663 : x14 = XEXP (x12, 1);
3579 1663 : if (!rtx_equal_p (x14, operands[2]))
3580 : return -1;
3581 : return 0;
3582 :
3583 252945 : case PARALLEL:
3584 252945 : if (XVECLEN (x1, 0) != 2)
3585 : return -1;
3586 249408 : x15 = XVECEXP (x1, 0, 0);
3587 249408 : if (GET_CODE (x15) != SET)
3588 : return -1;
3589 248267 : x16 = XEXP (x15, 1);
3590 248267 : if (GET_CODE (x16) != ASHIFTRT
3591 4012 : || GET_MODE (x16) != i1)
3592 : return -1;
3593 3845 : x17 = XVECEXP (x1, 0, 1);
3594 3845 : if (GET_CODE (x17) != CLOBBER)
3595 : return -1;
3596 3845 : x18 = XEXP (x17, 0);
3597 3845 : if (GET_CODE (x18) != REG
3598 3845 : || REGNO (x18) != 17
3599 7690 : || GET_MODE (x18) != E_CCmode)
3600 : return -1;
3601 3845 : x19 = XEXP (x15, 0);
3602 3845 : operands[2] = x19;
3603 3845 : if (!general_reg_operand (operands[2], i1))
3604 : return -1;
3605 3367 : x20 = XEXP (x16, 1);
3606 3367 : operands[4] = x20;
3607 3367 : if (!const_int_operand (operands[4], E_VOIDmode))
3608 : return -1;
3609 3357 : x21 = XEXP (x16, 0);
3610 3357 : if (!rtx_equal_p (x21, operands[1]))
3611 : return -1;
3612 1685 : x4 = PATTERN (peep2_next_insn (2));
3613 1685 : if (GET_CODE (x4) != SET)
3614 : return -1;
3615 1572 : x22 = XEXP (x4, 0);
3616 1572 : operands[3] = x22;
3617 1572 : if (!memory_operand (operands[3], i1))
3618 : return -1;
3619 1537 : x23 = XEXP (x4, 1);
3620 1537 : if (!rtx_equal_p (x23, operands[2]))
3621 : return -1;
3622 : return 1;
3623 :
3624 : default:
3625 : return -1;
3626 : }
3627 : }
3628 :
3629 : int
3630 0 : pattern984 (rtx x1, machine_mode i1, machine_mode i2)
3631 : {
3632 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3633 0 : int res ATTRIBUTE_UNUSED;
3634 0 : if (!vector_all_ones_operand (operands[3], i1)
3635 0 : || !const0_operand (operands[4], i1)
3636 0 : || GET_MODE (x1) != i2
3637 0 : || !register_operand (operands[1], i1)
3638 0 : || !const0_operand (operands[2], i1))
3639 0 : return -1;
3640 : return 0;
3641 : }
3642 :
3643 : int
3644 30328 : pattern988 ()
3645 : {
3646 30328 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3647 30328 : int res ATTRIBUTE_UNUSED;
3648 30328 : switch (GET_MODE (operands[1]))
3649 : {
3650 6452 : case E_V8QImode:
3651 6452 : if (!register_operand (operands[1], E_V8QImode)
3652 6452 : || !const_0_to_7_operand (operands[2], E_SImode))
3653 1517 : return -1;
3654 : return 0;
3655 :
3656 450 : case E_V4QImode:
3657 450 : if (!register_operand (operands[1], E_V4QImode)
3658 450 : || !const_0_to_3_operand (operands[2], E_SImode))
3659 64 : return -1;
3660 : return 1;
3661 :
3662 23025 : case E_V16QImode:
3663 23025 : if (!register_operand (operands[1], E_V16QImode)
3664 23025 : || !const_0_to_15_operand (operands[2], E_SImode))
3665 5596 : return -1;
3666 : return 2;
3667 :
3668 : default:
3669 : return -1;
3670 : }
3671 : }
3672 :
3673 : int
3674 9587 : pattern994 (rtx x1)
3675 : {
3676 9587 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3677 9587 : int res ATTRIBUTE_UNUSED;
3678 9587 : switch (GET_MODE (operands[0]))
3679 : {
3680 197 : case E_DImode:
3681 197 : if (!register_operand (operands[0], E_DImode)
3682 190 : || GET_MODE (x1) != E_DImode
3683 190 : || !nonimm_or_0_operand (operands[1], E_V64QImode)
3684 382 : || !nonimm_or_0_operand (operands[2], E_V64QImode))
3685 16 : return -1;
3686 : return 0;
3687 :
3688 335 : case E_SImode:
3689 335 : if (!register_operand (operands[0], E_SImode)
3690 335 : || GET_MODE (x1) != E_SImode)
3691 : return -1;
3692 327 : switch (GET_MODE (operands[1]))
3693 : {
3694 136 : case E_V32QImode:
3695 136 : if (!nonimm_or_0_operand (operands[1], E_V32QImode)
3696 136 : || !nonimm_or_0_operand (operands[2], E_V32QImode))
3697 31 : return -1;
3698 : return 1;
3699 :
3700 147 : case E_V32HImode:
3701 147 : if (!nonimm_or_0_operand (operands[1], E_V32HImode)
3702 147 : || !nonimm_or_0_operand (operands[2], E_V32HImode))
3703 16 : return -1;
3704 : return 2;
3705 :
3706 : default:
3707 : return -1;
3708 : }
3709 :
3710 : default:
3711 : return -1;
3712 : }
3713 : }
3714 :
3715 : int
3716 12779 : pattern1003 (rtx x1, machine_mode i1, machine_mode i2)
3717 : {
3718 12779 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3719 12779 : rtx x2;
3720 12779 : int res ATTRIBUTE_UNUSED;
3721 12779 : if (!register_operand (operands[0], i1)
3722 12779 : || GET_MODE (x1) != i1)
3723 : return -1;
3724 12539 : x2 = XEXP (x1, 0);
3725 12539 : if (GET_MODE (x2) != i1
3726 12539 : || !memory_operand (operands[1], i1)
3727 12391 : || !nonimm_or_0_operand (operands[2], i1)
3728 24799 : || !register_operand (operands[3], i2))
3729 303 : return -1;
3730 : return 0;
3731 : }
3732 :
3733 : int
3734 104529 : pattern1011 (rtx x1, machine_mode i1, machine_mode i2)
3735 : {
3736 104529 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3737 104529 : rtx x2;
3738 104529 : int res ATTRIBUTE_UNUSED;
3739 104529 : if (!nonimmediate_operand (operands[0], i1)
3740 104529 : || GET_MODE (x1) != i1)
3741 : return -1;
3742 104522 : x2 = XEXP (x1, 0);
3743 104522 : if (GET_MODE (x2) != i1
3744 104522 : || !general_operand (operands[2], i2)
3745 200904 : || !nonimm_or_0_operand (operands[1], i1))
3746 8212 : return -1;
3747 : return 0;
3748 : }
3749 :
3750 : int
3751 2372 : pattern1018 (rtx x1, machine_mode i1)
3752 : {
3753 2372 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3754 2372 : int res ATTRIBUTE_UNUSED;
3755 2372 : if (!register_operand (operands[0], i1)
3756 2258 : || GET_MODE (x1) != i1
3757 2258 : || !sse_comparison_operator (operands[3], i1)
3758 2258 : || !register_operand (operands[1], i1)
3759 4630 : || !nonimmediate_operand (operands[2], i1))
3760 114 : return -1;
3761 : return 0;
3762 : }
3763 :
3764 : int
3765 221 : pattern1024 (rtx x1, machine_mode i1)
3766 : {
3767 221 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3768 221 : rtx x2;
3769 221 : int res ATTRIBUTE_UNUSED;
3770 221 : if (!register_operand (operands[0], i1)
3771 221 : || GET_MODE (x1) != i1)
3772 : return -1;
3773 213 : x2 = XVECEXP (x1, 0, 0);
3774 213 : if (GET_MODE (x2) != i1
3775 213 : || !register_operand (operands[1], i1))
3776 7 : return -1;
3777 : return 0;
3778 : }
3779 :
3780 : int
3781 156 : pattern1030 (rtx x1, machine_mode i1, machine_mode i2)
3782 : {
3783 156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3784 156 : rtx x2;
3785 156 : int res ATTRIBUTE_UNUSED;
3786 156 : x2 = XVECEXP (x1, 0, 0);
3787 156 : if (GET_MODE (x2) != i2
3788 156 : || !register_operand (operands[0], i2)
3789 156 : || GET_MODE (x1) != i2
3790 156 : || !register_operand (operands[1], i1)
3791 308 : || !const_4_or_8_to_11_operand (operands[2], E_SImode))
3792 4 : return -1;
3793 : return 0;
3794 : }
3795 :
3796 : int
3797 227 : pattern1036 (rtx x1, machine_mode i1)
3798 : {
3799 227 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3800 227 : rtx x2;
3801 227 : int res ATTRIBUTE_UNUSED;
3802 227 : if (!register_operand (operands[0], i1)
3803 207 : || GET_MODE (x1) != i1
3804 207 : || !vector_operand (operands[1], i1)
3805 424 : || !vector_operand (operands[2], i1))
3806 36 : return -1;
3807 191 : x2 = XVECEXP (x1, 0, 2);
3808 191 : if (GET_MODE (x2) != i1
3809 191 : || !vector_operand (operands[3], i1))
3810 2 : return -1;
3811 : return 0;
3812 : }
3813 :
3814 : int
3815 21434 : pattern1045 (rtx x1)
3816 : {
3817 21434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3818 21434 : rtx x2, x3;
3819 21434 : int res ATTRIBUTE_UNUSED;
3820 21434 : x2 = XEXP (x1, 0);
3821 21434 : switch (GET_MODE (x2))
3822 : {
3823 21311 : case E_HImode:
3824 21311 : x3 = XEXP (x1, 1);
3825 21311 : if (GET_MODE (x3) != E_HImode
3826 21311 : || !extract_high_operator (operands[3], E_HImode))
3827 0 : return -1;
3828 : return 0;
3829 :
3830 96 : case E_SImode:
3831 96 : x3 = XEXP (x1, 1);
3832 96 : if (GET_MODE (x3) != E_SImode
3833 96 : || !extract_high_operator (operands[3], E_SImode))
3834 0 : return -1;
3835 : return 1;
3836 :
3837 27 : case E_DImode:
3838 27 : x3 = XEXP (x1, 1);
3839 27 : if (GET_MODE (x3) != E_DImode
3840 27 : || !extract_high_operator (operands[3], E_DImode))
3841 0 : return -1;
3842 : return 2;
3843 :
3844 : default:
3845 : return -1;
3846 : }
3847 : }
3848 :
3849 : int
3850 505 : pattern1052 (rtx x1)
3851 : {
3852 505 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3853 505 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3854 505 : rtx x10, x11, x12, x13;
3855 505 : int res ATTRIBUTE_UNUSED;
3856 505 : x2 = XVECEXP (x1, 0, 0);
3857 505 : x3 = XEXP (x2, 1);
3858 505 : x4 = XEXP (x3, 0);
3859 505 : x5 = XVECEXP (x4, 0, 0);
3860 505 : operands[1] = x5;
3861 505 : x6 = XVECEXP (x4, 0, 1);
3862 505 : operands[2] = x6;
3863 505 : x7 = XVECEXP (x4, 0, 2);
3864 505 : operands[3] = x7;
3865 505 : x8 = XVECEXP (x1, 0, 1);
3866 505 : x9 = XEXP (x8, 0);
3867 505 : operands[4] = x9;
3868 505 : x10 = XEXP (x8, 1);
3869 505 : x11 = XVECEXP (x10, 0, 0);
3870 505 : if (!rtx_equal_p (x11, operands[1]))
3871 : return -1;
3872 505 : x12 = XVECEXP (x10, 0, 1);
3873 505 : if (!rtx_equal_p (x12, operands[2]))
3874 : return -1;
3875 505 : x13 = XVECEXP (x10, 0, 2);
3876 505 : if (!rtx_equal_p (x13, operands[3]))
3877 : return -1;
3878 505 : switch (XINT (x4, 1))
3879 : {
3880 328 : case 60:
3881 328 : if (XINT (x10, 1) != 60)
3882 : return -1;
3883 328 : switch (GET_MODE (operands[0]))
3884 : {
3885 79 : case E_HImode:
3886 79 : return pattern1050 (x1,
3887 79 : E_HImode); /* [-1, 20] */
3888 :
3889 114 : case E_SImode:
3890 114 : res = pattern1050 (x1,
3891 : E_SImode);
3892 114 : if (res >= 0)
3893 99 : return res + 21; /* [21, 41] */
3894 : return -1;
3895 :
3896 135 : case E_DImode:
3897 135 : res = pattern1050 (x1,
3898 : E_DImode);
3899 135 : if (res >= 0)
3900 117 : return res + 42; /* [42, 62] */
3901 : return -1;
3902 :
3903 : default:
3904 : return -1;
3905 : }
3906 :
3907 177 : case 158:
3908 177 : if (XINT (x10, 1) != 158
3909 177 : || !const_0_to_7_operand (operands[3], E_SImode))
3910 0 : return -1;
3911 177 : switch (GET_MODE (operands[0]))
3912 : {
3913 39 : case E_HImode:
3914 39 : res = pattern1051 (x1,
3915 : E_HImode);
3916 39 : if (res >= 0)
3917 34 : return res + 63; /* [63, 74] */
3918 : return -1;
3919 :
3920 64 : case E_SImode:
3921 64 : res = pattern1051 (x1,
3922 : E_SImode);
3923 64 : if (res >= 0)
3924 54 : return res + 75; /* [75, 86] */
3925 : return -1;
3926 :
3927 74 : case E_DImode:
3928 74 : res = pattern1051 (x1,
3929 : E_DImode);
3930 74 : if (res >= 0)
3931 64 : return res + 87; /* [87, 98] */
3932 : return -1;
3933 :
3934 : default:
3935 : return -1;
3936 : }
3937 :
3938 : default:
3939 : return -1;
3940 : }
3941 : }
3942 :
3943 : int
3944 515 : pattern1069 (rtx x1)
3945 : {
3946 515 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3947 515 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3948 515 : rtx x10;
3949 515 : int res ATTRIBUTE_UNUSED;
3950 515 : x2 = XEXP (x1, 1);
3951 515 : x3 = XEXP (x2, 0);
3952 515 : if (GET_MODE (x3) != E_DImode)
3953 : return -1;
3954 304 : x4 = XEXP (x3, 0);
3955 304 : if (GET_CODE (x4) != MINUS
3956 101 : || GET_MODE (x4) != E_SImode)
3957 : return -1;
3958 101 : x5 = XEXP (x4, 0);
3959 101 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
3960 : return -1;
3961 101 : x6 = XEXP (x4, 1);
3962 101 : if (GET_CODE (x6) != SUBREG
3963 101 : || maybe_ne (SUBREG_BYTE (x6), 0)
3964 202 : || GET_MODE (x6) != E_SImode)
3965 : return -1;
3966 101 : x7 = XEXP (x6, 0);
3967 101 : if (GET_CODE (x7) != CLZ
3968 101 : || GET_MODE (x7) != E_DImode)
3969 : return -1;
3970 101 : x8 = XEXP (x2, 1);
3971 101 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
3972 : return -1;
3973 101 : x9 = XEXP (x1, 0);
3974 101 : operands[0] = x9;
3975 101 : if (!register_operand (operands[0], E_DImode)
3976 101 : || GET_MODE (x2) != E_DImode)
3977 : return -1;
3978 101 : x10 = XEXP (x7, 0);
3979 101 : operands[1] = x10;
3980 101 : if (!nonimmediate_operand (operands[1], E_DImode))
3981 : return -1;
3982 : return 0;
3983 : }
3984 :
3985 : int
3986 812 : pattern1082 (rtx x1)
3987 : {
3988 812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3989 812 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3990 812 : rtx x10;
3991 812 : int res ATTRIBUTE_UNUSED;
3992 812 : x2 = XEXP (x1, 1);
3993 812 : x3 = XEXP (x2, 0);
3994 812 : x4 = XEXP (x3, 0);
3995 812 : x5 = XEXP (x4, 0);
3996 812 : operands[1] = x5;
3997 812 : if (!int248_register_operand (operands[1], E_VOIDmode))
3998 : return -1;
3999 565 : x6 = XEXP (x2, 1);
4000 565 : x7 = XEXP (x6, 0);
4001 565 : x8 = XEXP (x7, 0);
4002 565 : operands[2] = x8;
4003 565 : if (!int248_register_operand (operands[2], E_VOIDmode))
4004 : return -1;
4005 371 : x9 = XEXP (x1, 0);
4006 371 : switch (GET_CODE (x9))
4007 : {
4008 43 : case STRICT_LOW_PART:
4009 43 : x10 = XEXP (x9, 0);
4010 43 : operands[0] = x10;
4011 43 : if (!register_operand (operands[0], E_QImode))
4012 : return -1;
4013 43 : return pattern1081 (); /* [-1, 2] */
4014 :
4015 272 : case REG:
4016 272 : case SUBREG:
4017 272 : operands[0] = x9;
4018 272 : if (!register_operand (operands[0], E_QImode))
4019 : return -1;
4020 272 : res = pattern1081 ();
4021 272 : if (res >= 0)
4022 53 : return res + 3; /* [3, 5] */
4023 : return -1;
4024 :
4025 : default:
4026 : return -1;
4027 : }
4028 : }
4029 :
4030 : int
4031 9 : pattern1098 (rtx x1)
4032 : {
4033 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4034 9 : rtx x2, x3, x4, x5, x6, x7, x8;
4035 9 : int res ATTRIBUTE_UNUSED;
4036 9 : if (maybe_ne (SUBREG_BYTE (x1), 0))
4037 : return -1;
4038 9 : x2 = XEXP (x1, 0);
4039 9 : switch (GET_CODE (x2))
4040 : {
4041 0 : case VEC_MERGE:
4042 0 : x3 = XEXP (x2, 2);
4043 0 : if (GET_CODE (x3) != UNSPEC
4044 0 : || XVECLEN (x3, 0) != 3
4045 0 : || XINT (x3, 1) != 60
4046 0 : || GET_MODE (x3) != E_QImode)
4047 : return -1;
4048 0 : x4 = XVECEXP (x3, 0, 2);
4049 0 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
4050 : return -1;
4051 0 : x5 = XEXP (x2, 0);
4052 0 : operands[3] = x5;
4053 0 : x6 = XEXP (x2, 1);
4054 0 : operands[4] = x6;
4055 0 : x7 = XVECEXP (x3, 0, 0);
4056 0 : operands[1] = x7;
4057 0 : x8 = XVECEXP (x3, 0, 1);
4058 0 : operands[2] = x8;
4059 0 : switch (GET_MODE (x1))
4060 : {
4061 0 : case E_V8SFmode:
4062 0 : return pattern1097 (x2,
4063 0 : E_V8SImode); /* [-1, 0] */
4064 :
4065 0 : case E_V4SFmode:
4066 0 : if (pattern1097 (x2,
4067 : E_V4SImode) != 0)
4068 : return -1;
4069 : return 1;
4070 :
4071 0 : case E_V4DFmode:
4072 0 : if (pattern1097 (x2,
4073 : E_V4DImode) != 0)
4074 : return -1;
4075 : return 2;
4076 :
4077 0 : case E_V2DFmode:
4078 0 : if (pattern1097 (x2,
4079 : E_V2DImode) != 0)
4080 : return -1;
4081 : return 3;
4082 :
4083 : default:
4084 : return -1;
4085 : }
4086 :
4087 6 : case ASHIFTRT:
4088 6 : x5 = XEXP (x2, 0);
4089 6 : operands[1] = x5;
4090 6 : x6 = XEXP (x2, 1);
4091 6 : operands[2] = x6;
4092 6 : if (!const_int_operand (operands[2], E_QImode))
4093 : return -1;
4094 6 : switch (GET_MODE (x1))
4095 : {
4096 3 : case E_V8SFmode:
4097 3 : if (GET_MODE (x2) != E_V8SImode
4098 3 : || !register_operand (operands[1], E_V8SImode))
4099 0 : return -1;
4100 : return 4;
4101 :
4102 0 : case E_V4SFmode:
4103 0 : if (GET_MODE (x2) != E_V4SImode
4104 0 : || !register_operand (operands[1], E_V4SImode))
4105 0 : return -1;
4106 : return 5;
4107 :
4108 0 : case E_V4DFmode:
4109 0 : if (GET_MODE (x2) != E_V4DImode
4110 0 : || !register_operand (operands[1], E_V4DImode))
4111 0 : return -1;
4112 : return 6;
4113 :
4114 3 : case E_V2DFmode:
4115 3 : if (GET_MODE (x2) != E_V2DImode
4116 3 : || !register_operand (operands[1], E_V2DImode))
4117 0 : return -1;
4118 : return 7;
4119 :
4120 : default:
4121 : return -1;
4122 : }
4123 :
4124 : default:
4125 : return -1;
4126 : }
4127 : }
4128 :
4129 : int
4130 2760 : pattern1123 (rtx x1)
4131 : {
4132 2760 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4133 2760 : rtx x2, x3, x4, x5;
4134 2760 : int res ATTRIBUTE_UNUSED;
4135 2760 : x2 = XEXP (x1, 0);
4136 2760 : x3 = XEXP (x2, 1);
4137 2760 : operands[4] = x3;
4138 2760 : x4 = XEXP (x2, 2);
4139 2760 : operands[5] = x4;
4140 2760 : if (!register_operand (operands[5], E_QImode))
4141 : return -1;
4142 2707 : x5 = XEXP (x1, 1);
4143 2707 : if (!rtx_equal_p (x5, operands[1]))
4144 : return -1;
4145 2707 : switch (GET_MODE (operands[0]))
4146 : {
4147 825 : case E_V8HFmode:
4148 825 : return pattern1122 (x1,
4149 825 : E_V8HFmode); /* [-1, 0] */
4150 :
4151 935 : case E_V4SFmode:
4152 935 : if (pattern1122 (x1,
4153 : E_V4SFmode) != 0)
4154 : return -1;
4155 : return 1;
4156 :
4157 947 : case E_V2DFmode:
4158 947 : if (pattern1122 (x1,
4159 : E_V2DFmode) != 0)
4160 : return -1;
4161 : return 2;
4162 :
4163 : default:
4164 : return -1;
4165 : }
4166 : }
4167 :
4168 : int
4169 583 : pattern1138 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
4170 : {
4171 583 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4172 583 : rtx x2, x3, x4;
4173 583 : int res ATTRIBUTE_UNUSED;
4174 583 : if (!register_operand (operands[0], i2)
4175 583 : || GET_MODE (x1) != i2)
4176 : return -1;
4177 550 : x2 = XEXP (x1, 0);
4178 550 : if (GET_MODE (x2) != i2)
4179 : return -1;
4180 550 : x3 = XEXP (x2, 0);
4181 550 : if (GET_MODE (x3) != i4
4182 550 : || !vector_operand (operands[2], i3))
4183 0 : return -1;
4184 550 : x4 = XEXP (x2, 1);
4185 550 : return pattern1136 (x4,
4186 : i1,
4187 : i2,
4188 : i3,
4189 550 : i4); /* [-1, 0] */
4190 : }
4191 :
4192 : int
4193 630 : pattern1143 (rtx x1, machine_mode i1)
4194 : {
4195 630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4196 630 : rtx x2;
4197 630 : int res ATTRIBUTE_UNUSED;
4198 630 : if (!register_operand (operands[0], i1)
4199 630 : || GET_MODE (x1) != i1)
4200 : return -1;
4201 594 : x2 = XVECEXP (x1, 0, 0);
4202 594 : if (GET_MODE (x2) != i1
4203 594 : || !register_operand (operands[1], i1)
4204 1168 : || !register_operand (operands[2], i1))
4205 28 : return -1;
4206 : return 0;
4207 : }
4208 :
4209 : int
4210 425 : pattern1150 (rtx x1, machine_mode i1, machine_mode i2)
4211 : {
4212 425 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4213 425 : rtx x2;
4214 425 : int res ATTRIBUTE_UNUSED;
4215 425 : if (!register_operand (operands[0], i2)
4216 425 : || GET_MODE (x1) != i2)
4217 : return -1;
4218 332 : x2 = XEXP (x1, 0);
4219 332 : if (GET_MODE (x2) != i1
4220 332 : || !nonimmediate_operand (operands[1], i2)
4221 629 : || !const0_operand (operands[2], i1))
4222 41 : return -1;
4223 : return 0;
4224 : }
4225 :
4226 : int
4227 2844 : pattern1158 (rtx x1, machine_mode i1)
4228 : {
4229 2844 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4230 2844 : int res ATTRIBUTE_UNUSED;
4231 2844 : if (!memory_operand (operands[0], i1)
4232 2844 : || GET_MODE (x1) != i1
4233 5688 : || !memory_operand (operands[1], i1))
4234 0 : return -1;
4235 2844 : switch (GET_MODE (operands[2]))
4236 : {
4237 16 : case E_SImode:
4238 16 : if (!register_operand (operands[2], E_SImode))
4239 : return -1;
4240 : return 0;
4241 :
4242 2828 : case E_DImode:
4243 2828 : if (!register_operand (operands[2], E_DImode))
4244 : return -1;
4245 : return 1;
4246 :
4247 : default:
4248 : return -1;
4249 : }
4250 : }
4251 :
4252 : int
4253 58307 : pattern1167 (rtx x1)
4254 : {
4255 58307 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4256 58307 : rtx x2, x3, x4, x5;
4257 58307 : int res ATTRIBUTE_UNUSED;
4258 58307 : x2 = XEXP (x1, 0);
4259 58307 : x3 = XEXP (x2, 0);
4260 58307 : x4 = XEXP (x3, 0);
4261 58307 : if (GET_CODE (x4) != ZERO_EXTEND)
4262 : return -1;
4263 110 : x5 = XEXP (x2, 1);
4264 110 : if (GET_CODE (x5) != ZERO_EXTEND)
4265 : return -1;
4266 67 : return pattern358 (x1); /* [-1, 3] */
4267 : }
4268 :
4269 : int
4270 590 : pattern1172 (rtx x1, machine_mode i1)
4271 : {
4272 590 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4273 590 : rtx x2, x3;
4274 590 : int res ATTRIBUTE_UNUSED;
4275 590 : if (!nonimmediate_operand (operands[0], i1)
4276 590 : || GET_MODE (x1) != i1)
4277 : return -1;
4278 590 : x2 = XEXP (x1, 0);
4279 590 : if (GET_MODE (x2) != i1)
4280 : return -1;
4281 590 : x3 = XEXP (x2, 0);
4282 590 : if (GET_MODE (x3) != i1
4283 590 : || !nonimmediate_operand (operands[1], i1)
4284 812 : || !x86_64_immediate_operand (operands[2], i1))
4285 483 : return -1;
4286 : return 0;
4287 : }
4288 :
4289 : int
4290 72311 : pattern1179 (rtx x1)
4291 : {
4292 72311 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4293 72311 : rtx x2, x3, x4;
4294 72311 : int res ATTRIBUTE_UNUSED;
4295 72311 : if (!nonmemory_operand (operands[2], E_QImode))
4296 : return -1;
4297 71752 : x2 = XEXP (x1, 0);
4298 71752 : switch (GET_CODE (x2))
4299 : {
4300 71752 : case REG:
4301 71752 : case SUBREG:
4302 71752 : case MEM:
4303 71752 : operands[0] = x2;
4304 71752 : switch (GET_MODE (operands[0]))
4305 : {
4306 46350 : case E_SImode:
4307 46350 : if (!nonimmediate_operand (operands[0], E_SImode))
4308 : return -1;
4309 46350 : x3 = XEXP (x1, 1);
4310 46350 : if (GET_MODE (x3) != E_SImode
4311 46350 : || !nonimmediate_operand (operands[1], E_SImode))
4312 7294 : return -1;
4313 : return 0;
4314 :
4315 8265 : case E_DImode:
4316 8265 : if (!nonimmediate_operand (operands[0], E_DImode))
4317 : return -1;
4318 8265 : x3 = XEXP (x1, 1);
4319 8265 : if (GET_MODE (x3) != E_DImode
4320 8265 : || !nonimmediate_operand (operands[1], E_DImode))
4321 1849 : return -1;
4322 : return 1;
4323 :
4324 10007 : case E_QImode:
4325 10007 : if (!nonimmediate_operand (operands[0], E_QImode))
4326 : return -1;
4327 9653 : x3 = XEXP (x1, 1);
4328 9653 : if (GET_MODE (x3) != E_QImode
4329 9653 : || !nonimmediate_operand (operands[1], E_QImode))
4330 157 : return -1;
4331 : return 2;
4332 :
4333 7124 : case E_HImode:
4334 7124 : if (!nonimmediate_operand (operands[0], E_HImode))
4335 : return -1;
4336 7124 : x3 = XEXP (x1, 1);
4337 7124 : if (GET_MODE (x3) != E_HImode
4338 7124 : || !nonimmediate_operand (operands[1], E_HImode))
4339 56 : return -1;
4340 : return 3;
4341 :
4342 : default:
4343 : return -1;
4344 : }
4345 :
4346 0 : case STRICT_LOW_PART:
4347 0 : x4 = XEXP (x2, 0);
4348 0 : operands[0] = x4;
4349 0 : x3 = XEXP (x1, 1);
4350 0 : res = pattern377 (x3);
4351 0 : if (res >= 0)
4352 0 : return res + 4; /* [4, 5] */
4353 : return -1;
4354 :
4355 : default:
4356 : return -1;
4357 : }
4358 : }
4359 :
4360 : int
4361 1515200 : pattern1207 (rtx x1, machine_mode i1)
4362 : {
4363 1515200 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4364 1515200 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4365 1515200 : rtx x10, x11;
4366 1515200 : int res ATTRIBUTE_UNUSED;
4367 1515200 : if (!nonimmediate_gr_operand (operands[1], i1))
4368 : return -1;
4369 931430 : x2 = XVECEXP (x1, 0, 0);
4370 931430 : x3 = XEXP (x2, 1);
4371 931430 : if (GET_CODE (x3) != UNSPEC
4372 1711 : || XVECLEN (x3, 0) != 2
4373 1150 : || XINT (x3, 1) != 41
4374 1139 : || GET_MODE (x3) != E_CCCmode)
4375 : return -1;
4376 1134 : x4 = XVECEXP (x3, 0, 1);
4377 1134 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4378 : return -1;
4379 1134 : x5 = XEXP (x2, 0);
4380 1134 : if (GET_CODE (x5) != REG
4381 1134 : || REGNO (x5) != 17
4382 2268 : || GET_MODE (x5) != E_CCCmode)
4383 : return -1;
4384 1134 : x6 = XVECEXP (x1, 0, 1);
4385 1134 : if (GET_CODE (x6) != SET)
4386 : return -1;
4387 795 : x7 = XEXP (x6, 1);
4388 795 : if (GET_CODE (x7) != NEG
4389 795 : || GET_MODE (x7) != i1)
4390 : return -1;
4391 795 : x8 = XVECEXP (x3, 0, 0);
4392 795 : operands[2] = x8;
4393 795 : if (!general_reg_operand (operands[2], i1))
4394 : return -1;
4395 795 : x9 = XEXP (x7, 0);
4396 795 : if (!rtx_equal_p (x9, operands[2]))
4397 : return -1;
4398 795 : x10 = XEXP (x6, 0);
4399 795 : if (!rtx_equal_p (x10, operands[2]))
4400 : return -1;
4401 795 : x11 = PATTERN (peep2_next_insn (2));
4402 795 : return pattern1206 (x11,
4403 795 : i1); /* [-1, 0] */
4404 : }
4405 :
4406 : int
4407 246 : pattern1219 (rtx x1, machine_mode i1)
4408 : {
4409 246 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4410 246 : rtx x2;
4411 246 : int res ATTRIBUTE_UNUSED;
4412 246 : if (!register_operand (operands[0], i1)
4413 246 : || GET_MODE (x1) != i1
4414 492 : || !register_operand (operands[2], i1))
4415 156 : return -1;
4416 90 : x2 = XVECEXP (x1, 0, 2);
4417 90 : if (GET_MODE (x2) != i1)
4418 : return -1;
4419 : return 0;
4420 : }
4421 :
4422 : int
4423 725 : pattern1227 (rtx x1, int i1, int i2, int i3, int i4)
4424 : {
4425 725 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4426 725 : rtx x2, x3, x4, x5;
4427 725 : int res ATTRIBUTE_UNUSED;
4428 725 : x2 = XVECEXP (x1, 0, 0);
4429 725 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4430 : return -1;
4431 725 : x3 = XVECEXP (x1, 0, 1);
4432 725 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4433 : return -1;
4434 725 : x4 = XVECEXP (x1, 0, 2);
4435 725 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4436 : return -1;
4437 725 : x5 = XVECEXP (x1, 0, 3);
4438 725 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4439 0 : return -1;
4440 : return 0;
4441 : }
4442 :
4443 : int
4444 1912 : pattern1235 (rtx x1)
4445 : {
4446 1912 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4447 1912 : rtx x2, x3, x4;
4448 1912 : int res ATTRIBUTE_UNUSED;
4449 1912 : x2 = XVECEXP (x1, 0, 2);
4450 1912 : x3 = XEXP (x2, 0);
4451 1912 : x4 = XEXP (x3, 1);
4452 1912 : operands[4] = x4;
4453 1912 : switch (GET_MODE (operands[0]))
4454 : {
4455 1445 : case E_V16QImode:
4456 1445 : if (!register_operand (operands[0], E_V16QImode)
4457 1445 : || GET_MODE (x1) != E_V16QImode
4458 1445 : || !vector_operand (operands[1], E_V16QImode)
4459 1273 : || !register_operand (operands[2], E_V16QImode)
4460 2020 : || GET_MODE (x2) != E_V16QImode)
4461 870 : return -1;
4462 575 : switch (GET_MODE (x3))
4463 : {
4464 310 : case E_V4SImode:
4465 310 : if (!register_operand (operands[3], E_V4SImode)
4466 310 : || !vector_all_ones_operand (operands[4], E_V4SImode))
4467 287 : return -1;
4468 : return 0;
4469 :
4470 258 : case E_V2DImode:
4471 258 : if (!register_operand (operands[3], E_V2DImode)
4472 258 : || !vector_all_ones_operand (operands[4], E_V2DImode))
4473 230 : return -1;
4474 : return 1;
4475 :
4476 : default:
4477 : return -1;
4478 : }
4479 :
4480 215 : case E_V32QImode:
4481 215 : if (!register_operand (operands[0], E_V32QImode)
4482 215 : || GET_MODE (x1) != E_V32QImode
4483 215 : || !vector_operand (operands[1], E_V32QImode)
4484 183 : || !register_operand (operands[2], E_V32QImode)
4485 334 : || GET_MODE (x2) != E_V32QImode)
4486 96 : return -1;
4487 119 : switch (GET_MODE (x3))
4488 : {
4489 73 : case E_V8SImode:
4490 73 : if (!register_operand (operands[3], E_V8SImode)
4491 73 : || !vector_all_ones_operand (operands[4], E_V8SImode))
4492 65 : return -1;
4493 : return 2;
4494 :
4495 45 : case E_V4DImode:
4496 45 : if (!register_operand (operands[3], E_V4DImode)
4497 45 : || !vector_all_ones_operand (operands[4], E_V4DImode))
4498 29 : return -1;
4499 : return 3;
4500 :
4501 : default:
4502 : return -1;
4503 : }
4504 :
4505 : default:
4506 : return -1;
4507 : }
4508 : }
4509 :
4510 : int
4511 80 : pattern1254 (rtx x1, machine_mode i1)
4512 : {
4513 80 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4514 80 : rtx x2, x3;
4515 80 : int res ATTRIBUTE_UNUSED;
4516 80 : if (!register_operand (operands[0], i1)
4517 80 : || GET_MODE (x1) != i1)
4518 : return -1;
4519 80 : x2 = XEXP (x1, 0);
4520 80 : if (GET_MODE (x2) != i1)
4521 : return -1;
4522 80 : x3 = XEXP (x2, 0);
4523 80 : if (GET_MODE (x3) != i1
4524 80 : || !register_operand (operands[1], i1))
4525 10 : return -1;
4526 : return 0;
4527 : }
4528 :
4529 : int
4530 342 : pattern1258 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4531 : {
4532 342 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4533 342 : rtx x2;
4534 342 : int res ATTRIBUTE_UNUSED;
4535 342 : if (!register_operand (operands[0], i1)
4536 342 : || GET_MODE (x1) != i1)
4537 : return -1;
4538 342 : x2 = XEXP (x1, 0);
4539 342 : if (GET_MODE (x2) != i3
4540 342 : || !register_operand (operands[1], i2))
4541 12 : return -1;
4542 : return 0;
4543 : }
4544 :
4545 : int
4546 2874714 : pattern1262 (rtx x1)
4547 : {
4548 2874714 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4549 2874714 : rtx x2;
4550 2874714 : int res ATTRIBUTE_UNUSED;
4551 2874714 : x2 = XEXP (x1, 0);
4552 2874714 : operands[1] = x2;
4553 2874714 : switch (GET_MODE (operands[0]))
4554 : {
4555 479 : case E_V4QImode:
4556 479 : if (GET_MODE (x1) != E_V4QImode)
4557 : return -1;
4558 : return 0;
4559 :
4560 239 : case E_V2QImode:
4561 239 : if (GET_MODE (x1) != E_V2QImode)
4562 : return -1;
4563 : return 1;
4564 :
4565 242 : case E_V2HImode:
4566 242 : if (GET_MODE (x1) != E_V2HImode)
4567 : return -1;
4568 : return 2;
4569 :
4570 380396 : case E_QImode:
4571 380396 : if (pattern1261 (x1,
4572 : E_QImode) != 0)
4573 : return -1;
4574 : return 3;
4575 :
4576 133115 : case E_HImode:
4577 133115 : if (pattern1261 (x1,
4578 : E_HImode) != 0)
4579 : return -1;
4580 : return 4;
4581 :
4582 1281811 : case E_SImode:
4583 1281811 : if (pattern1261 (x1,
4584 : E_SImode) != 0)
4585 : return -1;
4586 : return 5;
4587 :
4588 1063224 : case E_DImode:
4589 1063224 : if (pattern1261 (x1,
4590 : E_DImode) != 0)
4591 : return -1;
4592 : return 6;
4593 :
4594 : default:
4595 : return -1;
4596 : }
4597 : }
4598 :
4599 : int
4600 5339 : pattern1277 (rtx x1, machine_mode i1)
4601 : {
4602 5339 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4603 5339 : rtx x2;
4604 5339 : int res ATTRIBUTE_UNUSED;
4605 5339 : if (!nonimmediate_operand (operands[0], i1)
4606 5339 : || GET_MODE (x1) != i1)
4607 : return -1;
4608 5339 : x2 = XEXP (x1, 0);
4609 5339 : if (GET_MODE (x2) != i1
4610 5339 : || !ix86_carry_flag_operator (operands[4], i1)
4611 5339 : || !nonimmediate_operand (operands[1], i1)
4612 10639 : || !x86_64_general_operand (operands[2], i1))
4613 208 : return -1;
4614 : return 0;
4615 : }
4616 :
4617 : int
4618 1404 : pattern1285 (rtx x1, machine_mode i1, machine_mode i2)
4619 : {
4620 1404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4621 1404 : rtx x2;
4622 1404 : int res ATTRIBUTE_UNUSED;
4623 1404 : if (!register_operand (operands[0], i2)
4624 1404 : || GET_MODE (x1) != i2)
4625 : return -1;
4626 1263 : x2 = XEXP (x1, 0);
4627 1263 : if (GET_MODE (x2) != i2
4628 1263 : || !register_operand (operands[1], i2)
4629 1263 : || !bcst_vector_operand (operands[2], i2)
4630 1263 : || !nonimm_or_0_operand (operands[4], i2)
4631 2506 : || !register_operand (operands[5], i1))
4632 188 : return -1;
4633 : return 0;
4634 : }
4635 :
4636 : int
4637 3387 : pattern1294 (rtx x1)
4638 : {
4639 3387 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4640 3387 : rtx x2, x3;
4641 3387 : int res ATTRIBUTE_UNUSED;
4642 3387 : x2 = XEXP (x1, 2);
4643 3387 : if (GET_MODE (x2) != E_QImode)
4644 : return -1;
4645 2021 : x3 = XVECEXP (x2, 0, 2);
4646 2021 : operands[5] = x3;
4647 2021 : if (!const_0_to_31_operand (operands[5], E_SImode))
4648 : return -1;
4649 2021 : switch (GET_MODE (operands[0]))
4650 : {
4651 752 : case E_V8SImode:
4652 752 : return pattern1293 (x1,
4653 : E_V8SFmode,
4654 752 : E_V8SImode); /* [-1, 0] */
4655 :
4656 814 : case E_V4SImode:
4657 814 : if (pattern1293 (x1,
4658 : E_V4SFmode,
4659 : E_V4SImode) != 0)
4660 : return -1;
4661 : return 1;
4662 :
4663 97 : case E_V4DImode:
4664 97 : if (pattern1293 (x1,
4665 : E_V4DFmode,
4666 : E_V4DImode) != 0)
4667 : return -1;
4668 : return 2;
4669 :
4670 92 : case E_V2DImode:
4671 92 : if (pattern1293 (x1,
4672 : E_V2DFmode,
4673 : E_V2DImode) != 0)
4674 : return -1;
4675 : return 3;
4676 :
4677 : default:
4678 : return -1;
4679 : }
4680 : }
4681 :
4682 : int
4683 3662 : pattern1305 (rtx x1)
4684 : {
4685 3662 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4686 3662 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4687 3662 : int res ATTRIBUTE_UNUSED;
4688 3662 : x2 = XVECEXP (x1, 0, 4);
4689 3662 : if (GET_CODE (x2) != CONST_INT)
4690 : return -1;
4691 3662 : x3 = XVECEXP (x1, 0, 5);
4692 3662 : if (GET_CODE (x3) != CONST_INT)
4693 : return -1;
4694 3662 : x4 = XVECEXP (x1, 0, 6);
4695 3662 : if (GET_CODE (x4) != CONST_INT)
4696 : return -1;
4697 3662 : x5 = XVECEXP (x1, 0, 7);
4698 3662 : if (GET_CODE (x5) != CONST_INT)
4699 : return -1;
4700 3662 : x6 = XVECEXP (x1, 0, 8);
4701 3662 : if (GET_CODE (x6) != CONST_INT)
4702 : return -1;
4703 3662 : x7 = XVECEXP (x1, 0, 9);
4704 3662 : if (GET_CODE (x7) != CONST_INT)
4705 : return -1;
4706 3662 : x8 = XVECEXP (x1, 0, 10);
4707 3662 : if (GET_CODE (x8) != CONST_INT)
4708 : return -1;
4709 3662 : x9 = XVECEXP (x1, 0, 11);
4710 3662 : if (GET_CODE (x9) != CONST_INT)
4711 0 : return -1;
4712 : return 0;
4713 : }
4714 :
4715 : int
4716 1551 : pattern1317 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4717 : {
4718 1551 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4719 1551 : rtx x2, x3;
4720 1551 : int res ATTRIBUTE_UNUSED;
4721 1551 : if (!register_operand (operands[0], i1)
4722 1551 : || GET_MODE (x1) != i1)
4723 : return -1;
4724 1524 : x2 = XVECEXP (x1, 0, 0);
4725 1524 : if (GET_MODE (x2) != i1)
4726 : return -1;
4727 1524 : x3 = XEXP (x2, 0);
4728 1524 : if (GET_MODE (x3) != i1
4729 1524 : || !nonimmediate_operand (operands[1], i2)
4730 1524 : || !nonimm_or_0_operand (operands[2], i1)
4731 3045 : || !register_operand (operands[3], i3))
4732 12 : return -1;
4733 : return 0;
4734 : }
4735 :
4736 : int
4737 835 : pattern1322 (rtx x1)
4738 : {
4739 835 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4740 835 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4741 835 : rtx x10, x11, x12;
4742 835 : int res ATTRIBUTE_UNUSED;
4743 835 : x2 = XEXP (x1, 0);
4744 835 : x3 = XEXP (x2, 0);
4745 835 : x4 = XEXP (x3, 0);
4746 835 : x5 = XEXP (x4, 1);
4747 835 : x6 = XVECEXP (x5, 0, 0);
4748 835 : if (GET_CODE (x6) != CONST_INT)
4749 : return -1;
4750 835 : x7 = XVECEXP (x5, 0, 1);
4751 835 : if (GET_CODE (x7) != CONST_INT)
4752 : return -1;
4753 835 : x8 = XEXP (x2, 1);
4754 835 : x9 = XEXP (x8, 0);
4755 835 : x10 = XEXP (x9, 1);
4756 835 : if (XVECLEN (x10, 0) != 2)
4757 : return -1;
4758 835 : x11 = XVECEXP (x10, 0, 0);
4759 835 : if (GET_CODE (x11) != CONST_INT)
4760 : return -1;
4761 835 : x12 = XVECEXP (x10, 0, 1);
4762 835 : if (GET_CODE (x12) != CONST_INT
4763 835 : || !register_operand (operands[0], E_V2DImode)
4764 777 : || GET_MODE (x1) != E_V2DImode
4765 777 : || GET_MODE (x2) != E_V2DImode
4766 777 : || GET_MODE (x3) != E_V2DImode
4767 777 : || GET_MODE (x4) != E_V2SImode
4768 1612 : || !nonimmediate_operand (operands[1], E_V4SImode))
4769 137 : return -1;
4770 : return 0;
4771 : }
4772 :
4773 : int
4774 597 : pattern1338 (rtx x1)
4775 : {
4776 597 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4777 597 : rtx x2, x3, x4, x5, x6, x7;
4778 597 : int res ATTRIBUTE_UNUSED;
4779 597 : x2 = XEXP (x1, 0);
4780 597 : x3 = XEXP (x2, 1);
4781 597 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4782 597 : || GET_MODE (x3) != E_QImode)
4783 : return -1;
4784 597 : x4 = XEXP (x3, 0);
4785 597 : if (GET_CODE (x4) != AND)
4786 : return -1;
4787 162 : x5 = XEXP (x4, 0);
4788 162 : operands[1] = x5;
4789 162 : if (!int248_register_operand (operands[1], E_VOIDmode))
4790 : return -1;
4791 157 : x6 = XEXP (x4, 1);
4792 157 : operands[2] = x6;
4793 157 : if (!const_int_operand (operands[2], E_VOIDmode))
4794 : return -1;
4795 157 : x7 = XEXP (x1, 1);
4796 157 : operands[3] = x7;
4797 157 : switch (GET_MODE (operands[0]))
4798 : {
4799 64 : case E_SImode:
4800 64 : return pattern372 (x1,
4801 64 : E_SImode); /* [-1, 0] */
4802 :
4803 65 : case E_DImode:
4804 65 : if (pattern372 (x1,
4805 : E_DImode) != 0)
4806 : return -1;
4807 : return 1;
4808 :
4809 : default:
4810 : return -1;
4811 : }
4812 : }
4813 :
4814 : int
4815 32410 : pattern1351 (rtx x1, machine_mode i1)
4816 : {
4817 32410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4818 32410 : rtx x2, x3, x4, x5, x6;
4819 32410 : int res ATTRIBUTE_UNUSED;
4820 32410 : x2 = XEXP (x1, 1);
4821 32410 : operands[2] = x2;
4822 32410 : if (!general_reg_operand (operands[2], i1))
4823 : return -1;
4824 2732 : x3 = XEXP (x1, 0);
4825 2732 : if (!rtx_equal_p (x3, operands[1]))
4826 : return -1;
4827 198 : x4 = PATTERN (peep2_next_insn (2));
4828 198 : x5 = XEXP (x4, 1);
4829 198 : if (!rtx_equal_p (x5, operands[0]))
4830 : return -1;
4831 33 : x6 = XEXP (x4, 0);
4832 33 : if (!rtx_equal_p (x6, operands[2]))
4833 : return -1;
4834 : return 0;
4835 : }
4836 :
4837 : int
4838 28586 : pattern1359 (rtx x1, machine_mode i1)
4839 : {
4840 28586 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4841 28586 : rtx x2, x3, x4, x5, x6;
4842 28586 : int res ATTRIBUTE_UNUSED;
4843 28586 : if (!plusminuslogic_operator (operands[3], i1))
4844 : return -1;
4845 6524 : x2 = XVECEXP (x1, 0, 1);
4846 6524 : if (GET_CODE (x2) != CLOBBER)
4847 : return -1;
4848 6524 : x3 = XEXP (x2, 0);
4849 6524 : if (GET_CODE (x3) != REG
4850 6524 : || REGNO (x3) != 17
4851 13048 : || GET_MODE (x3) != E_CCmode)
4852 : return -1;
4853 6524 : x4 = XVECEXP (x1, 0, 0);
4854 6524 : x5 = XEXP (x4, 1);
4855 6524 : x6 = XEXP (x5, 1);
4856 6524 : operands[2] = x6;
4857 6524 : if (!nonmemory_operand (operands[2], i1)
4858 6524 : || pattern1358 (x4) != 0)
4859 6194 : return -1;
4860 : return 0;
4861 : }
4862 :
4863 : int
4864 18 : pattern1368 (rtx x1, machine_mode i1)
4865 : {
4866 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4867 18 : rtx x2;
4868 18 : int res ATTRIBUTE_UNUSED;
4869 18 : if (!nonimmediate_operand (operands[0], i1)
4870 18 : || GET_MODE (x1) != i1)
4871 : return -1;
4872 18 : x2 = XEXP (x1, 0);
4873 18 : if (GET_MODE (x2) != i1
4874 18 : || !ix86_carry_flag_operator (operands[4], i1)
4875 18 : || !nonimmediate_operand (operands[1], i1)
4876 36 : || !general_operand (operands[2], i1))
4877 0 : return -1;
4878 : return 0;
4879 : }
4880 :
4881 : int
4882 85 : pattern1374 (rtx x1)
4883 : {
4884 85 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4885 85 : rtx x2, x3, x4, x5, x6, x7, x8;
4886 85 : int res ATTRIBUTE_UNUSED;
4887 85 : if (!register_operand (operands[0], E_SImode))
4888 : return -1;
4889 63 : x2 = XEXP (x1, 0);
4890 63 : x3 = XEXP (x2, 0);
4891 63 : operands[1] = x3;
4892 63 : if (!nonimmediate_operand (operands[1], E_SImode))
4893 : return -1;
4894 63 : x4 = XEXP (x1, 1);
4895 63 : if (GET_MODE (x4) != E_SImode)
4896 : return -1;
4897 63 : x5 = XEXP (x4, 0);
4898 63 : if (GET_MODE (x5) != E_DImode)
4899 : return -1;
4900 63 : x6 = XEXP (x5, 0);
4901 63 : if (GET_MODE (x6) != E_DImode)
4902 : return -1;
4903 63 : x7 = XEXP (x6, 0);
4904 63 : operands[2] = x7;
4905 63 : if (!register_operand (operands[2], E_SImode))
4906 : return -1;
4907 63 : x8 = XEXP (x5, 1);
4908 63 : operands[4] = x8;
4909 63 : if (!const_0_to_63_operand (operands[4], E_QImode))
4910 : return -1;
4911 : return 0;
4912 : }
4913 :
4914 : int
4915 546 : pattern1385 (machine_mode i1, machine_mode i2)
4916 : {
4917 546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4918 546 : int res ATTRIBUTE_UNUSED;
4919 546 : if (!nonimmediate_operand (operands[2], i2)
4920 546 : || !nonimmediate_operand (operands[3], i2)
4921 546 : || !const0_operand (operands[4], i2)
4922 1092 : || !register_operand (operands[5], i1))
4923 0 : return -1;
4924 : return 0;
4925 : }
4926 :
4927 : int
4928 60 : pattern1393 (rtx x1, machine_mode i1)
4929 : {
4930 60 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4931 60 : int res ATTRIBUTE_UNUSED;
4932 60 : if (!nonimmediate_operand (operands[2], i1)
4933 60 : || GET_MODE (x1) != i1
4934 60 : || !nonimmediate_operand (operands[3], i1)
4935 120 : || !const0_operand (operands[4], i1))
4936 0 : return -1;
4937 : return 0;
4938 : }
4939 :
4940 : int
4941 417 : pattern1401 (rtx x1, machine_mode i1, machine_mode i2)
4942 : {
4943 417 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4944 417 : rtx x2, x3, x4;
4945 417 : int res ATTRIBUTE_UNUSED;
4946 417 : if (!register_operand (operands[0], i2)
4947 417 : || GET_MODE (x1) != i2)
4948 : return -1;
4949 391 : x2 = XEXP (x1, 0);
4950 391 : if (GET_MODE (x2) != i2)
4951 : return -1;
4952 391 : x3 = XEXP (x2, 0);
4953 391 : if (GET_MODE (x3) != i2
4954 391 : || !bcst_vector_operand (operands[1], i2))
4955 0 : return -1;
4956 391 : x4 = XEXP (x2, 2);
4957 391 : return pattern1389 (x4,
4958 : i1,
4959 391 : i2); /* [-1, 0] */
4960 : }
4961 :
4962 : int
4963 971 : pattern1408 (rtx x1)
4964 : {
4965 971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4966 971 : rtx x2, x3;
4967 971 : int res ATTRIBUTE_UNUSED;
4968 971 : x2 = XVECEXP (x1, 0, 0);
4969 971 : x3 = XEXP (x2, 2);
4970 971 : if (XWINT (x3, 0) != 1L
4971 971 : || !const_0_to_255_operand (operands[3], E_SImode))
4972 0 : return -1;
4973 971 : return pattern1407 (x1); /* [-1, 2] */
4974 : }
4975 :
4976 : int
4977 195 : pattern1413 (rtx x1, machine_mode i1)
4978 : {
4979 195 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4980 195 : rtx x2, x3;
4981 195 : int res ATTRIBUTE_UNUSED;
4982 195 : if (!register_operand (operands[0], i1)
4983 195 : || GET_MODE (x1) != i1)
4984 : return -1;
4985 184 : x2 = XVECEXP (x1, 0, 0);
4986 184 : if (GET_MODE (x2) != i1)
4987 : return -1;
4988 184 : x3 = XEXP (x2, 0);
4989 184 : if (GET_MODE (x3) != i1
4990 184 : || !nonimmediate_operand (operands[1], i1)
4991 366 : || !register_operand (operands[2], i1))
4992 27 : return -1;
4993 : return 0;
4994 : }
4995 :
4996 : int
4997 321 : pattern1420 (rtx x1, machine_mode i1)
4998 : {
4999 321 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5000 321 : rtx x2;
5001 321 : int res ATTRIBUTE_UNUSED;
5002 321 : if (!register_operand (operands[0], i1)
5003 321 : || GET_MODE (x1) != i1)
5004 : return -1;
5005 312 : x2 = XVECEXP (x1, 0, 0);
5006 312 : if (GET_MODE (x2) != i1
5007 312 : || !register_operand (operands[1], i1)
5008 312 : || !register_operand (operands[2], i1)
5009 619 : || !register_operand (operands[3], i1))
5010 5 : return -1;
5011 : return 0;
5012 : }
5013 :
5014 : int
5015 828 : pattern1427 (rtx x1, machine_mode i1, machine_mode i2)
5016 : {
5017 828 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5018 828 : rtx x2, x3, x4, x5, x6;
5019 828 : int res ATTRIBUTE_UNUSED;
5020 828 : if (!register_operand (operands[0], i2)
5021 828 : || GET_MODE (x1) != i2)
5022 : return -1;
5023 776 : x2 = XEXP (x1, 0);
5024 776 : if (GET_MODE (x2) != i1)
5025 : return -1;
5026 776 : x3 = XEXP (x2, 0);
5027 776 : if (GET_MODE (x3) != i1)
5028 : return -1;
5029 776 : x4 = XEXP (x3, 0);
5030 776 : if (GET_MODE (x4) != i1)
5031 : return -1;
5032 776 : x5 = XEXP (x4, 0);
5033 776 : if (GET_MODE (x5) != i1
5034 776 : || !vector_operand (operands[1], i2))
5035 31 : return -1;
5036 745 : x6 = XEXP (x4, 1);
5037 745 : if (GET_MODE (x6) != i1
5038 745 : || !vector_operand (operands[2], i2)
5039 1462 : || !const1_operand (operands[3], i1))
5040 28 : return -1;
5041 : return 0;
5042 : }
5043 :
5044 : int
5045 439826 : pattern1439 (rtx x1, machine_mode i1)
5046 : {
5047 439826 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5048 439826 : int res ATTRIBUTE_UNUSED;
5049 439826 : if (!nonimmediate_operand (operands[1], i1)
5050 439563 : || !x86_64_general_operand (operands[2], i1)
5051 436485 : || !nonimmediate_operand (operands[0], i1)
5052 876311 : || GET_MODE (x1) != i1)
5053 3341 : return -1;
5054 : return 0;
5055 : }
5056 :
5057 : int
5058 236997 : pattern1447 (rtx x1)
5059 : {
5060 236997 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5061 236997 : rtx x2, x3, x4, x5, x6, x7;
5062 236997 : int res ATTRIBUTE_UNUSED;
5063 236997 : x2 = XEXP (x1, 0);
5064 236997 : operands[0] = x2;
5065 236997 : x3 = XEXP (x1, 1);
5066 236997 : x4 = XEXP (x3, 1);
5067 236997 : x5 = XEXP (x4, 0);
5068 236997 : switch (GET_CODE (x5))
5069 : {
5070 27506 : case AND:
5071 27506 : return pattern1446 (x3); /* [-1, 1] */
5072 :
5073 0 : case PLUS:
5074 0 : res = pattern1446 (x3);
5075 0 : if (res >= 0)
5076 0 : return res + 2; /* [2, 3] */
5077 : return -1;
5078 :
5079 0 : case MINUS:
5080 0 : x6 = XEXP (x5, 0);
5081 0 : operands[3] = x6;
5082 0 : if (!const_int_operand (operands[3], E_VOIDmode))
5083 : return -1;
5084 0 : x7 = XEXP (x5, 1);
5085 0 : operands[2] = x7;
5086 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
5087 : return -1;
5088 0 : res = pattern340 (x3);
5089 0 : if (res >= 0)
5090 0 : return res + 4; /* [4, 5] */
5091 : return -1;
5092 :
5093 : default:
5094 : return -1;
5095 : }
5096 : }
5097 :
5098 : int
5099 0 : pattern1461 (rtx x1, machine_mode i1)
5100 : {
5101 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5102 0 : int res ATTRIBUTE_UNUSED;
5103 0 : if (!nonimmediate_operand (operands[0], i1))
5104 : return -1;
5105 0 : switch (GET_MODE (x1))
5106 : {
5107 0 : case E_HImode:
5108 0 : if (!register_operand (operands[1], E_HImode))
5109 : return -1;
5110 : return 0;
5111 :
5112 0 : case E_SImode:
5113 0 : if (!register_operand (operands[1], E_SImode))
5114 : return -1;
5115 : return 1;
5116 :
5117 0 : case E_DImode:
5118 0 : if (!register_operand (operands[1], E_DImode))
5119 : return -1;
5120 : return 2;
5121 :
5122 : default:
5123 : return -1;
5124 : }
5125 : }
5126 :
5127 : int
5128 543 : pattern1471 (rtx x1, machine_mode i1)
5129 : {
5130 543 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5131 543 : rtx x2, x3;
5132 543 : int res ATTRIBUTE_UNUSED;
5133 543 : if (!register_operand (operands[0], i1)
5134 543 : || GET_MODE (x1) != i1)
5135 : return -1;
5136 516 : x2 = XEXP (x1, 0);
5137 516 : if (GET_MODE (x2) != i1)
5138 : return -1;
5139 516 : x3 = XEXP (x2, 0);
5140 516 : if (GET_MODE (x3) != i1
5141 516 : || !nonimmediate_operand (operands[1], i1)
5142 516 : || !nonimmediate_operand (operands[2], i1)
5143 1028 : || !nonimmediate_operand (operands[3], i1))
5144 4 : return -1;
5145 : return 0;
5146 : }
5147 :
5148 : int
5149 0 : pattern1480 (rtx x1, machine_mode i1, machine_mode i2)
5150 : {
5151 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5152 0 : int res ATTRIBUTE_UNUSED;
5153 0 : if (!const0_operand (operands[2], i1)
5154 0 : || GET_MODE (x1) != i2
5155 0 : || !nonimmediate_operand (operands[3], i1)
5156 0 : || !const0_operand (operands[4], i1))
5157 0 : return -1;
5158 : return 0;
5159 : }
5160 :
5161 : int
5162 1605 : pattern1485 (rtx x1, machine_mode i1)
5163 : {
5164 1605 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5165 1605 : rtx x2, x3;
5166 1605 : int res ATTRIBUTE_UNUSED;
5167 1605 : if (!register_operand (operands[0], i1)
5168 1605 : || GET_MODE (x1) != i1)
5169 : return -1;
5170 1569 : x2 = XVECEXP (x1, 0, 0);
5171 1569 : if (GET_MODE (x2) != i1)
5172 : return -1;
5173 1569 : x3 = XEXP (x2, 0);
5174 1569 : if (GET_MODE (x3) != i1
5175 1569 : || !nonimm_or_0_operand (operands[2], i1)
5176 3136 : || !register_operand (operands[3], E_QImode))
5177 15 : return -1;
5178 1554 : switch (GET_MODE (operands[1]))
5179 : {
5180 423 : case E_V8HFmode:
5181 423 : if (!register_operand (operands[1], E_V8HFmode))
5182 : return -1;
5183 : return 0;
5184 :
5185 368 : case E_V8SFmode:
5186 368 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
5187 : return -1;
5188 : return 1;
5189 :
5190 763 : case E_V8DFmode:
5191 763 : if (!nonimmediate_operand (operands[1], E_V8DFmode))
5192 : return -1;
5193 : return 2;
5194 :
5195 : default:
5196 : return -1;
5197 : }
5198 : }
5199 :
5200 : int
5201 84 : pattern1497 (rtx x1)
5202 : {
5203 84 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5204 84 : rtx x2, x3, x4, x5, x6;
5205 84 : int res ATTRIBUTE_UNUSED;
5206 84 : x2 = XEXP (x1, 1);
5207 84 : x3 = XEXP (x2, 0);
5208 84 : x4 = XEXP (x3, 0);
5209 84 : operands[1] = x4;
5210 84 : if (!int248_register_operand (operands[1], E_VOIDmode))
5211 : return -1;
5212 84 : x5 = XEXP (x3, 1);
5213 84 : operands[2] = x5;
5214 84 : if (!int248_register_operand (operands[2], E_VOIDmode))
5215 : return -1;
5216 84 : x6 = XEXP (x1, 0);
5217 84 : switch (GET_MODE (x6))
5218 : {
5219 12 : case E_HImode:
5220 12 : if (!extract_high_operator (operands[3], E_HImode))
5221 : return -1;
5222 : return 0;
5223 :
5224 42 : case E_SImode:
5225 42 : if (!extract_high_operator (operands[3], E_SImode))
5226 : return -1;
5227 : return 1;
5228 :
5229 30 : case E_DImode:
5230 30 : if (!extract_high_operator (operands[3], E_DImode))
5231 : return -1;
5232 : return 2;
5233 :
5234 : default:
5235 : return -1;
5236 : }
5237 : }
5238 :
5239 : int
5240 92 : pattern1511 (rtx x1, rtx_code i1)
5241 : {
5242 92 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5243 92 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5244 92 : rtx x10;
5245 92 : int res ATTRIBUTE_UNUSED;
5246 92 : x2 = XVECEXP (x1, 0, 1);
5247 92 : x3 = XEXP (x2, 1);
5248 92 : if (GET_CODE (x3) != i1)
5249 : return -1;
5250 92 : x4 = XVECEXP (x1, 0, 0);
5251 92 : x5 = XEXP (x4, 0);
5252 92 : operands[1] = x5;
5253 92 : x6 = XEXP (x4, 1);
5254 92 : x7 = XEXP (x6, 0);
5255 92 : x8 = XEXP (x7, 0);
5256 92 : operands[2] = x8;
5257 92 : if (!register_operand (operands[2], E_SImode))
5258 : return -1;
5259 92 : x9 = XEXP (x7, 1);
5260 92 : operands[3] = x9;
5261 92 : if (!nonimmediate_operand (operands[3], E_SImode))
5262 : return -1;
5263 92 : x10 = XEXP (x2, 0);
5264 92 : operands[0] = x10;
5265 92 : return pattern1509 (x1); /* [-1, 1] */
5266 : }
5267 :
5268 : int
5269 228 : pattern1522 (rtx x1, machine_mode i1)
5270 : {
5271 228 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5272 228 : rtx x2, x3, x4;
5273 228 : int res ATTRIBUTE_UNUSED;
5274 228 : if (GET_MODE (x1) != i1)
5275 : return -1;
5276 228 : x2 = XEXP (x1, 0);
5277 228 : if (GET_MODE (x2) != i1)
5278 : return -1;
5279 228 : x3 = XEXP (x2, 0);
5280 228 : if (GET_MODE (x3) != i1)
5281 : return -1;
5282 228 : x4 = XEXP (x3, 0);
5283 228 : if (GET_MODE (x4) != i1)
5284 0 : return -1;
5285 : return 0;
5286 : }
5287 :
5288 : int
5289 146 : pattern1527 (rtx x1, machine_mode i1, machine_mode i2)
5290 : {
5291 146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5292 146 : rtx x2, x3;
5293 146 : int res ATTRIBUTE_UNUSED;
5294 146 : if (!register_operand (operands[0], i1)
5295 146 : || GET_MODE (x1) != i1)
5296 : return -1;
5297 136 : x2 = XEXP (x1, 0);
5298 136 : if (GET_MODE (x2) != i1
5299 136 : || !nonimmediate_operand (operands[2], i2))
5300 0 : return -1;
5301 136 : x3 = XEXP (x2, 1);
5302 136 : if (GET_MODE (x3) != i2
5303 136 : || !register_operand (operands[1], i1)
5304 260 : || !nonimm_or_0_operand (operands[3], i1))
5305 27 : return -1;
5306 : return 0;
5307 : }
5308 :
5309 : int
5310 530 : pattern1538 (rtx x1, machine_mode i1)
5311 : {
5312 530 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5313 530 : int res ATTRIBUTE_UNUSED;
5314 530 : if (!nonimmediate_operand (operands[0], i1)
5315 530 : || GET_MODE (x1) != i1
5316 530 : || !ix86_carry_flag_unset_operator (operands[2], i1)
5317 933 : || !nonimmediate_operand (operands[1], i1))
5318 357 : return -1;
5319 : return 0;
5320 : }
5321 :
5322 : int
5323 0 : pattern1544 (rtx x1, machine_mode i1, machine_mode i2)
5324 : {
5325 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5326 0 : rtx x2;
5327 0 : int res ATTRIBUTE_UNUSED;
5328 0 : if (!register_operand (operands[0], i1)
5329 0 : || GET_MODE (x1) != i1)
5330 : return -1;
5331 0 : x2 = XEXP (x1, 2);
5332 0 : return pattern1480 (x2,
5333 : i1,
5334 0 : i2); /* [-1, 0] */
5335 : }
5336 :
5337 : int
5338 3 : pattern1549 (rtx x1, machine_mode i1)
5339 : {
5340 3 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5341 3 : int res ATTRIBUTE_UNUSED;
5342 3 : if (GET_MODE (x1) != i1
5343 3 : || !ix86_carry_flag_operator (operands[3], i1)
5344 3 : || !nonimmediate_operand (operands[1], i1)
5345 6 : || !x86_64_general_operand (operands[2], i1))
5346 0 : return -1;
5347 : return 0;
5348 : }
5349 :
5350 : int
5351 52 : pattern1554 (rtx x1, machine_mode i1)
5352 : {
5353 52 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5354 52 : rtx x2, x3, x4;
5355 52 : int res ATTRIBUTE_UNUSED;
5356 52 : if (!register_operand (operands[0], i1)
5357 52 : || GET_MODE (x1) != i1)
5358 : return -1;
5359 43 : x2 = XEXP (x1, 0);
5360 43 : if (GET_MODE (x2) != i1)
5361 : return -1;
5362 43 : x3 = XEXP (x2, 0);
5363 43 : if (GET_MODE (x3) != i1)
5364 : return -1;
5365 43 : x4 = XEXP (x3, 0);
5366 43 : if (GET_MODE (x4) != i1
5367 43 : || !nonimmediate_operand (operands[2], i1)
5368 43 : || !nonimmediate_operand (operands[1], i1)
5369 43 : || !nonimmediate_operand (operands[3], i1)
5370 86 : || !const0_operand (operands[4], i1))
5371 0 : return -1;
5372 : return 0;
5373 : }
5374 :
5375 : int
5376 190 : pattern1565 (rtx x1, machine_mode i1)
5377 : {
5378 190 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5379 190 : rtx x2, x3, x4, x5, x6, x7;
5380 190 : int res ATTRIBUTE_UNUSED;
5381 190 : x2 = XEXP (x1, 0);
5382 190 : if (GET_CODE (x2) != VEC_SELECT
5383 190 : || GET_MODE (x2) != i1)
5384 : return -1;
5385 190 : x3 = XEXP (x2, 1);
5386 190 : if (GET_CODE (x3) != PARALLEL
5387 190 : || XVECLEN (x3, 0) != 1)
5388 : return -1;
5389 190 : x4 = XVECEXP (x3, 0, 0);
5390 190 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5391 : return -1;
5392 190 : x5 = XEXP (x1, 1);
5393 190 : if (GET_CODE (x5) != VEC_SELECT
5394 190 : || GET_MODE (x5) != i1)
5395 : return -1;
5396 190 : x6 = XEXP (x5, 1);
5397 190 : if (GET_CODE (x6) != PARALLEL
5398 190 : || XVECLEN (x6, 0) != 1)
5399 : return -1;
5400 190 : x7 = XVECEXP (x6, 0, 0);
5401 190 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
5402 0 : return -1;
5403 : return 0;
5404 : }
5405 :
5406 : int
5407 5043 : pattern1580 (rtx x1, machine_mode i1, machine_mode i2)
5408 : {
5409 5043 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5410 5043 : rtx x2, x3, x4;
5411 5043 : int res ATTRIBUTE_UNUSED;
5412 5043 : if (!register_operand (operands[0], i2)
5413 5043 : || GET_MODE (x1) != i2)
5414 : return -1;
5415 5043 : x2 = XEXP (x1, 0);
5416 5043 : if (GET_MODE (x2) != i2)
5417 : return -1;
5418 5043 : x3 = XEXP (x2, 0);
5419 5043 : if (GET_MODE (x3) != i2
5420 5043 : || !register_operand (operands[1], i1))
5421 0 : return -1;
5422 5043 : x4 = XEXP (x1, 1);
5423 5043 : if (GET_MODE (x4) != i2
5424 5043 : || !register_operand (operands[2], i1))
5425 160 : return -1;
5426 : return 0;
5427 : }
5428 :
5429 : int
5430 15 : pattern1589 (rtx x1, machine_mode i1)
5431 : {
5432 15 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5433 15 : rtx x2, x3, x4, x5;
5434 15 : int res ATTRIBUTE_UNUSED;
5435 15 : if (!general_reg_operand (operands[0], i1))
5436 : return -1;
5437 15 : x2 = XVECEXP (x1, 0, 0);
5438 15 : x3 = XEXP (x2, 1);
5439 15 : if (GET_MODE (x3) != i1
5440 15 : || !register_operand (operands[2], i1)
5441 15 : || !nonimmediate_operand (operands[3], i1)
5442 30 : || !general_reg_operand (operands[1], i1))
5443 0 : return -1;
5444 15 : x4 = XVECEXP (x1, 0, 1);
5445 15 : x5 = XEXP (x4, 1);
5446 15 : if (GET_MODE (x5) != i1
5447 15 : || !general_reg_operand (operands[4], i1)
5448 19 : || !general_reg_operand (operands[5], i1))
5449 13 : return -1;
5450 : return 0;
5451 : }
5452 :
5453 : int
5454 148 : pattern1597 (rtx x1, machine_mode i1)
5455 : {
5456 148 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5457 148 : rtx x2, x3;
5458 148 : int res ATTRIBUTE_UNUSED;
5459 148 : if (!register_operand (operands[0], i1)
5460 148 : || GET_MODE (x1) != i1)
5461 : return -1;
5462 127 : x2 = XVECEXP (x1, 0, 0);
5463 127 : if (GET_MODE (x2) != i1)
5464 : return -1;
5465 127 : x3 = XEXP (x2, 0);
5466 127 : if (GET_MODE (x3) != i1
5467 127 : || !register_operand (operands[2], i1)
5468 238 : || !register_operand (operands[1], i1))
5469 20 : return -1;
5470 : return 0;
5471 : }
5472 :
5473 : int
5474 0 : pattern1603 (rtx x1, machine_mode i1, machine_mode i2)
5475 : {
5476 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5477 0 : rtx x2, x3, x4;
5478 0 : int res ATTRIBUTE_UNUSED;
5479 0 : if (!register_operand (operands[0], i1)
5480 0 : || GET_MODE (x1) != i1)
5481 : return -1;
5482 0 : x2 = XVECEXP (x1, 0, 0);
5483 0 : if (GET_MODE (x2) != i1)
5484 : return -1;
5485 0 : x3 = XEXP (x2, 0);
5486 0 : if (GET_MODE (x3) != i1
5487 0 : || !register_operand (operands[1], i1)
5488 0 : || !register_operand (operands[2], i1)
5489 0 : || !nonimmediate_operand (operands[3], i1)
5490 0 : || !register_operand (operands[4], i2))
5491 0 : return -1;
5492 0 : x4 = XEXP (x2, 1);
5493 0 : if (!rtx_equal_p (x4, operands[3]))
5494 : return -1;
5495 : return 0;
5496 : }
5497 :
5498 : int
5499 701 : pattern1615 (rtx x1, machine_mode i1)
5500 : {
5501 701 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5502 701 : rtx x2, x3, x4;
5503 701 : int res ATTRIBUTE_UNUSED;
5504 701 : if (!vsib_mem_operator (operands[5], i1)
5505 701 : || !register_operand (operands[6], E_QImode))
5506 364 : return -1;
5507 337 : x2 = XEXP (x1, 1);
5508 337 : if (GET_MODE (x2) != i1
5509 337 : || !register_operand (operands[3], i1))
5510 50 : return -1;
5511 287 : x3 = XEXP (x1, 0);
5512 287 : x4 = XEXP (x3, 0);
5513 287 : switch (GET_MODE (x4))
5514 : {
5515 23 : case E_SImode:
5516 23 : return pattern1614 (
5517 23 : E_SImode); /* [-1, 1] */
5518 :
5519 264 : case E_DImode:
5520 264 : res = pattern1614 (
5521 : E_DImode);
5522 264 : if (res >= 0)
5523 128 : return res + 2; /* [2, 3] */
5524 : return -1;
5525 :
5526 : default:
5527 : return -1;
5528 : }
5529 : }
5530 :
5531 : int
5532 35 : pattern1627 (machine_mode i1)
5533 : {
5534 35 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5535 35 : int res ATTRIBUTE_UNUSED;
5536 35 : if (!vsib_address_operand (operands[3], i1))
5537 : return -1;
5538 27 : switch (GET_MODE (operands[2]))
5539 : {
5540 4 : case E_V4SImode:
5541 4 : if (!register_operand (operands[2], E_V4SImode))
5542 : return -1;
5543 : return 0;
5544 :
5545 23 : case E_V4DImode:
5546 23 : if (!register_operand (operands[2], E_V4DImode))
5547 : return -1;
5548 : return 1;
5549 :
5550 : default:
5551 : return -1;
5552 : }
5553 : }
5554 :
5555 : int
5556 682 : pattern1635 (rtx x1)
5557 : {
5558 682 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5559 682 : rtx x2, x3;
5560 682 : int res ATTRIBUTE_UNUSED;
5561 682 : x2 = XEXP (x1, 0);
5562 682 : if (!rtx_equal_p (x2, operands[2]))
5563 : return -1;
5564 682 : x3 = XEXP (x1, 1);
5565 682 : if (!rtx_equal_p (x3, operands[3]))
5566 : return -1;
5567 682 : switch (GET_CODE (operands[3]))
5568 : {
5569 651 : case REG:
5570 651 : case SUBREG:
5571 651 : case MEM:
5572 651 : if (!nonimmediate_operand (operands[3], E_SImode))
5573 : return -1;
5574 : return 0;
5575 :
5576 3 : case CONST_INT:
5577 3 : if (!const_int_operand (operands[3], E_SImode))
5578 : return -1;
5579 : return 1;
5580 :
5581 : default:
5582 : return -1;
5583 : }
5584 : }
5585 :
5586 : int
5587 1988 : pattern1644 (rtx x1)
5588 : {
5589 1988 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5590 1988 : rtx x2, x3, x4, x5;
5591 1988 : int res ATTRIBUTE_UNUSED;
5592 1988 : x2 = XEXP (x1, 0);
5593 1988 : if (GET_CODE (x2) != STRICT_LOW_PART)
5594 : return -1;
5595 125 : x3 = XEXP (x2, 0);
5596 125 : operands[0] = x3;
5597 125 : if (!register_operand (operands[0], E_QImode))
5598 : return -1;
5599 125 : x4 = XEXP (x1, 1);
5600 125 : x5 = XEXP (x4, 1);
5601 125 : operands[1] = x5;
5602 125 : if (!nonimmediate_operand (operands[1], E_QImode))
5603 : return -1;
5604 80 : return pattern1534 (); /* [-1, 2] */
5605 : }
5606 :
5607 : int
5608 29 : pattern1654 (rtx x1, machine_mode i1, machine_mode i2)
5609 : {
5610 29 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5611 29 : rtx x2, x3;
5612 29 : int res ATTRIBUTE_UNUSED;
5613 29 : if (!register_operand (operands[0], i1)
5614 29 : || GET_MODE (x1) != i1)
5615 : return -1;
5616 23 : x2 = XEXP (x1, 0);
5617 23 : if (GET_MODE (x2) != i1)
5618 : return -1;
5619 23 : x3 = XEXP (x2, 0);
5620 23 : if (GET_MODE (x3) != i1
5621 23 : || !register_operand (operands[1], i1)
5622 23 : || !register_operand (operands[2], i1)
5623 23 : || !nonimmediate_operand (operands[3], i2)
5624 46 : || !const0_operand (operands[5], i1))
5625 0 : return -1;
5626 : return 0;
5627 : }
5628 :
5629 : int
5630 327 : pattern1664 (rtx x1, machine_mode i1, machine_mode i2)
5631 : {
5632 327 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5633 327 : rtx x2, x3, x4;
5634 327 : int res ATTRIBUTE_UNUSED;
5635 327 : if (!register_operand (operands[0], i2)
5636 327 : || GET_MODE (x1) != i2)
5637 : return -1;
5638 311 : x2 = XVECEXP (x1, 0, 0);
5639 311 : if (GET_MODE (x2) != i2)
5640 : return -1;
5641 311 : x3 = XEXP (x2, 0);
5642 311 : if (GET_MODE (x3) != i2
5643 311 : || !register_operand (operands[1], i2)
5644 617 : || !register_operand (operands[2], i2))
5645 9 : return -1;
5646 302 : x4 = XVECEXP (x3, 0, 2);
5647 302 : if (GET_MODE (x4) != i2
5648 302 : || !register_operand (operands[3], i2)
5649 302 : || !const0_operand (operands[4], i2)
5650 604 : || !register_operand (operands[5], i1))
5651 8 : return -1;
5652 : return 0;
5653 : }
5654 :
5655 : int
5656 155 : pattern1674 (rtx x1, machine_mode i1, machine_mode i2)
5657 : {
5658 155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5659 155 : rtx x2, x3;
5660 155 : int res ATTRIBUTE_UNUSED;
5661 155 : if (!register_operand (operands[0], i2)
5662 151 : || GET_MODE (x1) != i2
5663 151 : || !register_operand (operands[1], i2)
5664 151 : || !register_operand (operands[7], E_QImode)
5665 270 : || !vsib_mem_operator (operands[6], i1))
5666 40 : return -1;
5667 115 : x2 = XVECEXP (x1, 0, 2);
5668 115 : x3 = XEXP (x2, 0);
5669 115 : switch (GET_MODE (x3))
5670 : {
5671 0 : case E_SImode:
5672 0 : return pattern1673 (
5673 0 : E_SImode); /* [-1, 1] */
5674 :
5675 115 : case E_DImode:
5676 115 : res = pattern1673 (
5677 : E_DImode);
5678 115 : if (res >= 0)
5679 75 : return res + 2; /* [2, 3] */
5680 : return -1;
5681 :
5682 : default:
5683 : return -1;
5684 : }
5685 : }
5686 :
5687 : int
5688 1092 : pattern1686 (machine_mode i1)
5689 : {
5690 1092 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5691 1092 : int res ATTRIBUTE_UNUSED;
5692 1092 : if (!general_operand (operands[2], i1)
5693 1088 : || !nonimmediate_operand (operands[3], i1)
5694 813 : || !general_operand (operands[4], i1)
5695 1905 : || !const_0_to_31_operand (operands[5], E_SImode))
5696 279 : return -1;
5697 : return 0;
5698 : }
5699 :
5700 : int
5701 188 : pattern1693 (rtx x1, machine_mode i1, machine_mode i2)
5702 : {
5703 188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5704 188 : rtx x2, x3, x4;
5705 188 : int res ATTRIBUTE_UNUSED;
5706 188 : if (!register_operand (operands[0], i1)
5707 188 : || GET_MODE (x1) != i1)
5708 : return -1;
5709 174 : x2 = XVECEXP (x1, 0, 0);
5710 174 : if (GET_MODE (x2) != i1)
5711 : return -1;
5712 174 : x3 = XEXP (x2, 0);
5713 174 : if (GET_MODE (x3) != i1)
5714 : return -1;
5715 174 : x4 = XEXP (x3, 0);
5716 174 : if (GET_MODE (x4) != i2
5717 174 : || !register_operand (operands[2], i1))
5718 22 : return -1;
5719 : return 0;
5720 : }
5721 :
5722 : int
5723 219 : pattern1702 (rtx x1)
5724 : {
5725 219 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5726 219 : rtx x2, x3, x4, x5, x6, x7, x8;
5727 219 : int res ATTRIBUTE_UNUSED;
5728 219 : if (!nonimmediate_operand (operands[0], E_SImode))
5729 : return -1;
5730 219 : x2 = XEXP (x1, 1);
5731 219 : if (GET_MODE (x2) != E_SImode)
5732 : return -1;
5733 219 : x3 = XEXP (x2, 0);
5734 219 : if (GET_MODE (x3) != E_DImode)
5735 : return -1;
5736 219 : x4 = XEXP (x3, 0);
5737 219 : if (GET_MODE (x4) != E_DImode)
5738 : return -1;
5739 219 : x5 = XEXP (x4, 0);
5740 219 : operands[1] = x5;
5741 219 : if (!register_operand (operands[1], E_SImode))
5742 : return -1;
5743 219 : x6 = XEXP (x3, 1);
5744 219 : operands[3] = x6;
5745 219 : if (!const_0_to_63_operand (operands[3], E_QImode))
5746 : return -1;
5747 219 : x7 = XEXP (x1, 0);
5748 219 : x8 = XEXP (x7, 0);
5749 219 : if (!rtx_equal_p (x8, operands[0]))
5750 : return -1;
5751 : return 0;
5752 : }
5753 :
5754 : int
5755 2382 : pattern1714 ()
5756 : {
5757 2382 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5758 2382 : int res ATTRIBUTE_UNUSED;
5759 2382 : switch (GET_MODE (operands[1]))
5760 : {
5761 1882 : case E_V8HFmode:
5762 1882 : if (!register_operand (operands[1], E_V8HFmode)
5763 1882 : || !register_operand (operands[2], E_V8HFmode))
5764 35 : return -1;
5765 : return 0;
5766 :
5767 250 : case E_V4SFmode:
5768 250 : if (!register_operand (operands[1], E_V4SFmode)
5769 250 : || !register_operand (operands[2], E_V4SFmode))
5770 1 : return -1;
5771 : return 1;
5772 :
5773 250 : case E_V2DFmode:
5774 250 : if (!register_operand (operands[1], E_V2DFmode)
5775 250 : || !register_operand (operands[2], E_V2DFmode))
5776 1 : return -1;
5777 : return 2;
5778 :
5779 : default:
5780 : return -1;
5781 : }
5782 : }
5783 :
5784 : int
5785 152 : pattern1724 (machine_mode i1)
5786 : {
5787 152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5788 152 : int res ATTRIBUTE_UNUSED;
5789 152 : if (!vsib_address_operand (operands[2], i1))
5790 : return -1;
5791 130 : switch (GET_MODE (operands[3]))
5792 : {
5793 86 : case E_V4SImode:
5794 86 : if (!register_operand (operands[3], E_V4SImode))
5795 : return -1;
5796 : return 0;
5797 :
5798 44 : case E_V4DImode:
5799 44 : if (!register_operand (operands[3], E_V4DImode))
5800 : return -1;
5801 : return 1;
5802 :
5803 : default:
5804 : return -1;
5805 : }
5806 : }
5807 :
5808 : int
5809 1460 : pattern1730 (rtx x1, machine_mode i1)
5810 : {
5811 1460 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5812 1460 : rtx x2, x3, x4;
5813 1460 : int res ATTRIBUTE_UNUSED;
5814 1460 : if (!vsib_mem_operator (operands[5], i1)
5815 1460 : || !register_operand (operands[6], E_QImode))
5816 312 : return -1;
5817 1148 : x2 = XEXP (x1, 1);
5818 1148 : if (GET_MODE (x2) != i1
5819 1148 : || !register_operand (operands[3], i1)
5820 2258 : || !scratch_operand (operands[1], E_QImode))
5821 38 : return -1;
5822 1110 : x3 = XEXP (x1, 0);
5823 1110 : x4 = XEXP (x3, 0);
5824 1110 : switch (GET_MODE (x4))
5825 : {
5826 45 : case E_SImode:
5827 45 : return pattern1729 (
5828 45 : E_SImode); /* [-1, 1] */
5829 :
5830 1065 : case E_DImode:
5831 1065 : res = pattern1729 (
5832 : E_DImode);
5833 1065 : if (res >= 0)
5834 963 : return res + 2; /* [2, 3] */
5835 : return -1;
5836 :
5837 : default:
5838 : return -1;
5839 : }
5840 : }
5841 :
5842 : int
5843 180 : pattern1743 (rtx x1, machine_mode i1, machine_mode i2)
5844 : {
5845 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5846 180 : rtx x2, x3;
5847 180 : int res ATTRIBUTE_UNUSED;
5848 180 : if (!register_operand (operands[0], i2)
5849 176 : || GET_MODE (x1) != i2
5850 176 : || !register_operand (operands[6], E_QImode)
5851 123 : || !vsib_mem_operator (operands[5], i1)
5852 303 : || !scratch_operand (operands[1], E_QImode))
5853 57 : return -1;
5854 123 : x2 = XVECEXP (x1, 0, 2);
5855 123 : x3 = XEXP (x2, 0);
5856 123 : switch (GET_MODE (x3))
5857 : {
5858 0 : case E_SImode:
5859 0 : return pattern1742 (
5860 0 : E_SImode); /* [-1, 1] */
5861 :
5862 123 : case E_DImode:
5863 123 : res = pattern1742 (
5864 : E_DImode);
5865 123 : if (res >= 0)
5866 111 : return res + 2; /* [2, 3] */
5867 : return -1;
5868 :
5869 : default:
5870 : return -1;
5871 : }
5872 : }
5873 :
5874 : int
5875 303 : pattern1756 (rtx x1, machine_mode i1)
5876 : {
5877 303 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5878 303 : rtx x2, x3, x4, x5;
5879 303 : int res ATTRIBUTE_UNUSED;
5880 303 : if (!register_operand (operands[0], i1)
5881 303 : || GET_MODE (x1) != i1)
5882 : return -1;
5883 300 : x2 = XVECEXP (x1, 0, 0);
5884 300 : if (GET_MODE (x2) != i1)
5885 : return -1;
5886 300 : x3 = XEXP (x2, 0);
5887 300 : if (GET_MODE (x3) != i1)
5888 : return -1;
5889 300 : x4 = XEXP (x3, 0);
5890 300 : if (GET_MODE (x4) != i1
5891 300 : || !nonimmediate_operand (operands[1], i1)
5892 600 : || !register_operand (operands[2], i1))
5893 0 : return -1;
5894 300 : x5 = XEXP (x4, 2);
5895 300 : if (GET_MODE (x5) != i1
5896 300 : || !register_operand (operands[3], i1)
5897 600 : || !const0_operand (operands[4], i1))
5898 0 : return -1;
5899 : return 0;
5900 : }
5901 :
5902 : int
5903 383 : pattern1764 (rtx x1, machine_mode i1, machine_mode i2)
5904 : {
5905 383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5906 383 : rtx x2, x3;
5907 383 : int res ATTRIBUTE_UNUSED;
5908 383 : if (!register_operand (operands[0], i1)
5909 365 : || GET_MODE (x1) != i1
5910 365 : || !register_operand (operands[2], i1)
5911 365 : || !vsib_mem_operator (operands[7], i2)
5912 748 : || !register_operand (operands[5], i1))
5913 183 : return -1;
5914 200 : x2 = XVECEXP (x1, 0, 1);
5915 200 : x3 = XEXP (x2, 0);
5916 200 : switch (GET_MODE (x3))
5917 : {
5918 0 : case E_SImode:
5919 0 : return pattern1763 (
5920 0 : E_SImode); /* [-1, 1] */
5921 :
5922 200 : case E_DImode:
5923 200 : res = pattern1763 (
5924 : E_DImode);
5925 200 : if (res >= 0)
5926 98 : return res + 2; /* [2, 3] */
5927 : return -1;
5928 :
5929 : default:
5930 : return -1;
5931 : }
5932 : }
5933 :
5934 : int
5935 4 : pattern1775 (rtx x1, machine_mode i1)
5936 : {
5937 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5938 4 : int res ATTRIBUTE_UNUSED;
5939 4 : if (!nonimmediate_operand (operands[1], i1)
5940 4 : || !ix86_carry_flag_unset_operator (operands[2], i1)
5941 4 : || !nonimmediate_operand (operands[0], i1)
5942 8 : || GET_MODE (x1) != i1)
5943 0 : return -1;
5944 : return 0;
5945 : }
5946 :
5947 : int
5948 0 : pattern1785 (rtx x1, machine_mode i1)
5949 : {
5950 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5951 0 : rtx x2, x3, x4, x5;
5952 0 : int res ATTRIBUTE_UNUSED;
5953 0 : x2 = XVECEXP (x1, 0, 0);
5954 0 : x3 = XEXP (x2, 0);
5955 0 : if (GET_MODE (x3) != i1
5956 0 : || !register_operand (operands[1], i1)
5957 0 : || !register_operand (operands[2], i1))
5958 0 : return -1;
5959 0 : x4 = XVECEXP (x1, 0, 1);
5960 0 : if (GET_MODE (x4) != i1)
5961 : return -1;
5962 0 : x5 = XEXP (x4, 0);
5963 0 : if (GET_MODE (x5) != i1)
5964 : return -1;
5965 : return 0;
5966 : }
5967 :
5968 : int
5969 14412 : pattern1792 (rtx x1)
5970 : {
5971 14412 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5972 14412 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5973 14412 : rtx x10, x11, x12, x13, x14, x15, x16;
5974 14412 : int res ATTRIBUTE_UNUSED;
5975 14412 : x2 = XVECEXP (x1, 0, 1);
5976 14412 : if (XWINT (x2, 0) != 1L)
5977 : return -1;
5978 9713 : x3 = XVECEXP (x1, 0, 2);
5979 9713 : if (XWINT (x3, 0) != 2L)
5980 : return -1;
5981 9393 : x4 = XVECEXP (x1, 0, 3);
5982 9393 : if (XWINT (x4, 0) != 3L)
5983 : return -1;
5984 9383 : x5 = XVECEXP (x1, 0, 4);
5985 9383 : if (XWINT (x5, 0) != 4L)
5986 : return -1;
5987 9268 : x6 = XVECEXP (x1, 0, 5);
5988 9268 : if (XWINT (x6, 0) != 5L)
5989 : return -1;
5990 9228 : x7 = XVECEXP (x1, 0, 6);
5991 9228 : if (XWINT (x7, 0) != 6L)
5992 : return -1;
5993 9228 : x8 = XVECEXP (x1, 0, 7);
5994 9228 : if (XWINT (x8, 0) != 7L)
5995 : return -1;
5996 9228 : x9 = XVECEXP (x1, 0, 8);
5997 9228 : if (XWINT (x9, 0) != 8L)
5998 : return -1;
5999 8924 : x10 = XVECEXP (x1, 0, 9);
6000 8924 : if (XWINT (x10, 0) != 9L)
6001 : return -1;
6002 8924 : x11 = XVECEXP (x1, 0, 10);
6003 8924 : if (XWINT (x11, 0) != 10L)
6004 : return -1;
6005 8924 : x12 = XVECEXP (x1, 0, 11);
6006 8924 : if (XWINT (x12, 0) != 11L)
6007 : return -1;
6008 8924 : x13 = XVECEXP (x1, 0, 12);
6009 8924 : if (XWINT (x13, 0) != 12L)
6010 : return -1;
6011 8923 : x14 = XVECEXP (x1, 0, 13);
6012 8923 : if (XWINT (x14, 0) != 13L)
6013 : return -1;
6014 8923 : x15 = XVECEXP (x1, 0, 14);
6015 8923 : if (XWINT (x15, 0) != 14L)
6016 : return -1;
6017 8923 : x16 = XVECEXP (x1, 0, 15);
6018 8923 : if (XWINT (x16, 0) != 15L)
6019 0 : return -1;
6020 : return 0;
6021 : }
6022 :
6023 : int
6024 376 : pattern1812 (machine_mode i1)
6025 : {
6026 376 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6027 376 : int res ATTRIBUTE_UNUSED;
6028 376 : if (!vsib_address_operand (operands[2], i1))
6029 : return -1;
6030 361 : switch (GET_MODE (operands[3]))
6031 : {
6032 230 : case E_V8SImode:
6033 230 : if (!register_operand (operands[3], E_V8SImode)
6034 230 : || !register_operand (operands[4], E_V8SFmode))
6035 188 : return -1;
6036 : return 0;
6037 :
6038 131 : case E_V4DImode:
6039 131 : if (!register_operand (operands[3], E_V4DImode)
6040 131 : || !register_operand (operands[4], E_V4SFmode))
6041 118 : return -1;
6042 : return 1;
6043 :
6044 : default:
6045 : return -1;
6046 : }
6047 : }
6048 :
6049 : int
6050 1 : pattern1820 (rtx x1, machine_mode i1)
6051 : {
6052 1 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6053 1 : rtx x2;
6054 1 : int res ATTRIBUTE_UNUSED;
6055 1 : if (!general_operand (operands[2], i1)
6056 1 : || !nonimmediate_operand (operands[0], i1)
6057 2 : || GET_MODE (x1) != i1)
6058 0 : return -1;
6059 1 : x2 = XEXP (x1, 0);
6060 1 : if (GET_MODE (x2) != i1)
6061 : return -1;
6062 : return 0;
6063 : }
6064 :
6065 : int
6066 42786 : pattern1826 (rtx x1, machine_mode i1, machine_mode i2)
6067 : {
6068 42786 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6069 42786 : rtx x2, x3, x4, x5, x6, x7;
6070 42786 : int res ATTRIBUTE_UNUSED;
6071 42786 : x2 = XVECEXP (x1, 0, 0);
6072 42786 : x3 = XEXP (x2, 1);
6073 42786 : x4 = XEXP (x3, 1);
6074 42786 : if (GET_MODE (x4) != i2)
6075 : return -1;
6076 42786 : x5 = XEXP (x4, 0);
6077 42786 : if (GET_MODE (x5) != i1
6078 42786 : || !register_operand (operands[0], i1))
6079 0 : return -1;
6080 42786 : x6 = XVECEXP (x1, 0, 1);
6081 42786 : x7 = XEXP (x6, 1);
6082 42786 : if (GET_MODE (x7) != i1)
6083 : return -1;
6084 : return 0;
6085 : }
6086 :
6087 : int
6088 10 : pattern1834 (rtx x1, machine_mode i1)
6089 : {
6090 10 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6091 10 : rtx x2, x3, x4, x5;
6092 10 : int res ATTRIBUTE_UNUSED;
6093 10 : if (!register_operand (operands[2], i1))
6094 : return -1;
6095 10 : x2 = XVECEXP (x1, 0, 0);
6096 10 : x3 = XEXP (x2, 1);
6097 10 : if (GET_MODE (x3) != i1
6098 10 : || !memory_operand (operands[3], i1)
6099 20 : || !register_operand (operands[4], i1))
6100 0 : return -1;
6101 10 : x4 = XVECEXP (x1, 0, 1);
6102 10 : x5 = XEXP (x4, 1);
6103 10 : if (GET_MODE (x5) != i1)
6104 : return -1;
6105 : return 0;
6106 : }
6107 :
6108 : int
6109 229 : pattern1841 (rtx x1, machine_mode i1)
6110 : {
6111 229 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6112 229 : rtx x2, x3, x4, x5, x6, x7, x8;
6113 229 : int res ATTRIBUTE_UNUSED;
6114 229 : x2 = XEXP (x1, 0);
6115 229 : x3 = XEXP (x2, 0);
6116 229 : x4 = XEXP (x3, 0);
6117 229 : x5 = XEXP (x4, 0);
6118 229 : operands[2] = x5;
6119 229 : if (!register_operand (operands[2], i1))
6120 : return -1;
6121 228 : x6 = XEXP (x3, 2);
6122 228 : if (GET_MODE (x6) != i1
6123 228 : || !nonimmediate_operand (operands[3], i1))
6124 0 : return -1;
6125 228 : x7 = XEXP (x2, 1);
6126 228 : if (!rtx_equal_p (x7, operands[3]))
6127 : return -1;
6128 228 : x8 = XEXP (x1, 1);
6129 228 : if (!rtx_equal_p (x8, operands[3]))
6130 : return -1;
6131 : return 0;
6132 : }
6133 :
6134 : int
6135 634 : pattern1852 (rtx x1)
6136 : {
6137 634 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6138 634 : int res ATTRIBUTE_UNUSED;
6139 634 : switch (GET_MODE (operands[0]))
6140 : {
6141 464 : case E_V8SFmode:
6142 464 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
6143 464 : || pattern1557 (x1,
6144 : E_V8SFmode,
6145 : E_V16SFmode) != 0)
6146 8 : return -1;
6147 : return 0;
6148 :
6149 170 : case E_V8SImode:
6150 170 : if (!nonimmediate_operand (operands[0], E_V8SImode)
6151 170 : || pattern1557 (x1,
6152 : E_V8SImode,
6153 : E_V16SImode) != 0)
6154 0 : return -1;
6155 : return 1;
6156 :
6157 : default:
6158 : return -1;
6159 : }
6160 : }
6161 :
6162 : int
6163 685 : pattern1858 (rtx x1)
6164 : {
6165 685 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6166 685 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6167 685 : rtx x10, x11;
6168 685 : int res ATTRIBUTE_UNUSED;
6169 685 : if (!register_operand (operands[3], E_V2DImode))
6170 : return -1;
6171 636 : x2 = XEXP (x1, 0);
6172 636 : x3 = XEXP (x2, 0);
6173 636 : x4 = XEXP (x3, 1);
6174 636 : x5 = XVECEXP (x4, 0, 0);
6175 636 : switch (XWINT (x5, 0))
6176 : {
6177 287 : case 0L:
6178 287 : x6 = XVECEXP (x4, 0, 1);
6179 287 : if (XWINT (x6, 0) != 2L)
6180 : return -1;
6181 287 : x7 = XEXP (x1, 1);
6182 287 : x8 = XEXP (x7, 0);
6183 287 : x9 = XEXP (x8, 1);
6184 287 : x10 = XVECEXP (x9, 0, 0);
6185 287 : if (XWINT (x10, 0) != 0L)
6186 : return -1;
6187 287 : x11 = XVECEXP (x9, 0, 1);
6188 287 : if (XWINT (x11, 0) != 2L)
6189 0 : return -1;
6190 : return 0;
6191 :
6192 349 : case 1L:
6193 349 : x6 = XVECEXP (x4, 0, 1);
6194 349 : if (XWINT (x6, 0) != 3L)
6195 : return -1;
6196 349 : x7 = XEXP (x1, 1);
6197 349 : x8 = XEXP (x7, 0);
6198 349 : x9 = XEXP (x8, 1);
6199 349 : x10 = XVECEXP (x9, 0, 0);
6200 349 : if (XWINT (x10, 0) != 1L)
6201 : return -1;
6202 349 : x11 = XVECEXP (x9, 0, 1);
6203 349 : if (XWINT (x11, 0) != 3L)
6204 0 : return -1;
6205 : return 1;
6206 :
6207 : default:
6208 : return -1;
6209 : }
6210 : }
6211 :
6212 : int
6213 614 : pattern1870 (rtx x1, machine_mode i1, machine_mode i2)
6214 : {
6215 614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6216 614 : int res ATTRIBUTE_UNUSED;
6217 614 : if (!register_operand (operands[2], i1)
6218 614 : || !register_operand (operands[4], i2))
6219 44 : return -1;
6220 570 : return pattern1869 (x1,
6221 570 : i1); /* [-1, 1] */
6222 : }
6223 :
6224 : int
6225 1125 : pattern1876 (rtx x1, machine_mode i1)
6226 : {
6227 1125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6228 1125 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6229 1125 : int res ATTRIBUTE_UNUSED;
6230 1125 : operands[5] = x1;
6231 1125 : if (!register_operand (operands[5], i1))
6232 : return -1;
6233 69 : x2 = PATTERN (peep2_next_insn (3));
6234 69 : x3 = XEXP (x2, 1);
6235 69 : if (!rtx_equal_p (x3, operands[5]))
6236 : return -1;
6237 7 : x4 = XEXP (x2, 0);
6238 7 : if (!rtx_equal_p (x4, operands[1]))
6239 : return -1;
6240 5 : x5 = PATTERN (peep2_next_insn (4));
6241 5 : if (GET_CODE (x5) != SET)
6242 : return -1;
6243 5 : x6 = XEXP (x5, 1);
6244 5 : if (GET_CODE (x6) != COMPARE)
6245 : return -1;
6246 0 : x7 = XEXP (x6, 1);
6247 0 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6248 : return -1;
6249 0 : x8 = XEXP (x5, 0);
6250 0 : if (GET_CODE (x8) != REG
6251 0 : || REGNO (x8) != 17)
6252 : return -1;
6253 0 : x9 = XEXP (x6, 0);
6254 0 : if (!rtx_equal_p (x9, operands[5]))
6255 : return -1;
6256 : return 0;
6257 : }
6258 :
6259 : int
6260 17179 : pattern1885 (rtx x1, machine_mode i1, machine_mode i2)
6261 : {
6262 17179 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6263 17179 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6264 17179 : rtx x10;
6265 17179 : int res ATTRIBUTE_UNUSED;
6266 17179 : x2 = XVECEXP (x1, 0, 0);
6267 17179 : x3 = XEXP (x2, 1);
6268 17179 : x4 = XEXP (x3, 0);
6269 17179 : x5 = XEXP (x4, 0);
6270 17179 : if (GET_MODE (x5) != i1)
6271 : return -1;
6272 17179 : x6 = XEXP (x5, 0);
6273 17179 : if (GET_MODE (x6) != i1
6274 17179 : || !ix86_carry_flag_operator (operands[5], i1)
6275 17179 : || !nonimmediate_operand (operands[1], i1)
6276 34358 : || !x86_64_immediate_operand (operands[2], i1))
6277 16359 : return -1;
6278 820 : x7 = XEXP (x3, 1);
6279 820 : if (GET_MODE (x7) != i2
6280 820 : || !ix86_carry_flag_operator (operands[4], i2)
6281 820 : || !const_scalar_int_operand (operands[6], i2)
6282 1638 : || !nonimmediate_operand (operands[0], i1))
6283 2 : return -1;
6284 818 : x8 = XVECEXP (x1, 0, 1);
6285 818 : x9 = XEXP (x8, 1);
6286 818 : if (GET_MODE (x9) != i1)
6287 : return -1;
6288 818 : x10 = XEXP (x9, 0);
6289 818 : if (GET_MODE (x10) != i1)
6290 : return -1;
6291 : return 0;
6292 : }
6293 :
6294 : int
6295 871 : pattern1894 (rtx x1, int i1)
6296 : {
6297 871 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6298 871 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6299 871 : int res ATTRIBUTE_UNUSED;
6300 871 : if (XVECLEN (x1, 0) != i1)
6301 : return -1;
6302 871 : x2 = XVECEXP (x1, 0, 0);
6303 871 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6304 : return -1;
6305 871 : x3 = XVECEXP (x1, 0, 1);
6306 871 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6307 : return -1;
6308 871 : x4 = XVECEXP (x1, 0, 2);
6309 871 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6310 : return -1;
6311 871 : x5 = XVECEXP (x1, 0, 3);
6312 871 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6313 : return -1;
6314 871 : x6 = XVECEXP (x1, 0, 4);
6315 871 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
6316 : return -1;
6317 871 : x7 = XVECEXP (x1, 0, 5);
6318 871 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
6319 : return -1;
6320 871 : x8 = XVECEXP (x1, 0, 6);
6321 871 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
6322 : return -1;
6323 871 : x9 = XVECEXP (x1, 0, 7);
6324 871 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
6325 0 : return -1;
6326 : return 0;
6327 : }
6328 :
6329 : int
6330 499 : pattern1904 (rtx x1, machine_mode i1)
6331 : {
6332 499 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6333 499 : rtx x2;
6334 499 : int res ATTRIBUTE_UNUSED;
6335 499 : if (!x86_64_immediate_operand (operands[2], i1)
6336 499 : || !nonimmediate_operand (operands[0], i1)
6337 998 : || GET_MODE (x1) != i1)
6338 0 : return -1;
6339 499 : x2 = XEXP (x1, 0);
6340 499 : if (GET_MODE (x2) != i1)
6341 : return -1;
6342 : return 0;
6343 : }
6344 :
6345 : int
6346 968 : pattern1908 (rtx x1, machine_mode i1, machine_mode i2)
6347 : {
6348 968 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6349 968 : rtx x2, x3, x4, x5, x6, x7;
6350 968 : int res ATTRIBUTE_UNUSED;
6351 968 : x2 = XVECEXP (x1, 0, 0);
6352 968 : x3 = XEXP (x2, 1);
6353 968 : x4 = XEXP (x3, 0);
6354 968 : x5 = XEXP (x4, 0);
6355 968 : if (GET_MODE (x5) != i2)
6356 : return -1;
6357 968 : x6 = XEXP (x5, 0);
6358 968 : if (GET_MODE (x6) != i2
6359 968 : || !nonimmediate_operand (operands[1], i1)
6360 1936 : || !ix86_carry_flag_operator (operands[4], i2))
6361 0 : return -1;
6362 968 : x7 = XEXP (x4, 1);
6363 968 : if (GET_MODE (x7) != i2
6364 968 : || !x86_64_sext_operand (operands[2], i1)
6365 1936 : || pattern1906 (x1,
6366 : i1,
6367 : i2) != 0)
6368 0 : return -1;
6369 : return 0;
6370 : }
6371 :
6372 : int
6373 893 : pattern1916 (rtx x1)
6374 : {
6375 893 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6376 893 : rtx x2, x3, x4, x5;
6377 893 : int res ATTRIBUTE_UNUSED;
6378 893 : x2 = XVECEXP (x1, 0, 24);
6379 893 : if (XWINT (x2, 0) != 24L)
6380 : return -1;
6381 893 : x3 = XVECEXP (x1, 0, 25);
6382 893 : if (XWINT (x3, 0) != 25L)
6383 : return -1;
6384 893 : x4 = XVECEXP (x1, 0, 26);
6385 893 : if (XWINT (x4, 0) != 26L)
6386 : return -1;
6387 893 : x5 = XVECEXP (x1, 0, 27);
6388 893 : if (XWINT (x5, 0) != 27L)
6389 0 : return -1;
6390 : return 0;
6391 : }
6392 :
6393 : int
6394 429 : pattern1918 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6395 : {
6396 429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6397 429 : rtx x2, x3, x4, x5;
6398 429 : int res ATTRIBUTE_UNUSED;
6399 429 : if (!register_operand (operands[0], i1)
6400 429 : || GET_MODE (x1) != i1)
6401 : return -1;
6402 411 : x2 = XEXP (x1, 0);
6403 411 : if (GET_MODE (x2) != i1)
6404 : return -1;
6405 411 : x3 = XEXP (x2, 0);
6406 411 : if (GET_MODE (x3) != i1)
6407 : return -1;
6408 411 : x4 = XEXP (x3, 0);
6409 411 : if (GET_MODE (x4) != i3
6410 411 : || !register_operand (operands[1], i2))
6411 0 : return -1;
6412 411 : x5 = XEXP (x3, 1);
6413 411 : if (GET_MODE (x5) != i3
6414 411 : || !vector_operand (operands[2], i2)
6415 822 : || !nonimm_or_0_operand (operands[3], i1))
6416 12 : return -1;
6417 : return 0;
6418 : }
6419 :
6420 : int
6421 58794620 : recog_6 (rtx x1 ATTRIBUTE_UNUSED,
6422 : rtx_insn *insn ATTRIBUTE_UNUSED,
6423 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6424 : {
6425 58794620 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6426 58794620 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6427 58794620 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6428 58794620 : rtx x18, x19, x20, x21, x22, x23;
6429 58794620 : int res ATTRIBUTE_UNUSED;
6430 58794620 : x2 = XEXP (x1, 0);
6431 58794620 : if (GET_CODE (x2) != REG
6432 58794620 : || REGNO (x2) != 17)
6433 : return -1;
6434 58673724 : x3 = XEXP (x1, 1);
6435 58673724 : x4 = XEXP (x3, 0);
6436 58673724 : switch (GET_CODE (x4))
6437 : {
6438 54636045 : case REG:
6439 54636045 : case SUBREG:
6440 54636045 : case MEM:
6441 54636045 : return recog_4 (x1, insn, pnum_clobbers);
6442 :
6443 228261 : case MINUS:
6444 228261 : x5 = XEXP (x3, 1);
6445 228261 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6446 : return -1;
6447 36989 : x6 = XEXP (x4, 0);
6448 36989 : operands[0] = x6;
6449 36989 : x7 = XEXP (x4, 1);
6450 36989 : operands[1] = x7;
6451 36989 : switch (GET_MODE (x4))
6452 : {
6453 98 : case E_QImode:
6454 98 : if (!nonimmediate_operand (operands[0], E_QImode)
6455 87 : || !general_operand (operands[1], E_QImode)
6456 159 : || !
6457 : #line 1601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6458 : (ix86_match_ccmode (insn, CCGOCmode)))
6459 : return -1;
6460 : return 17; /* *cmpqi_minus_1 */
6461 :
6462 : case E_HImode:
6463 : if (!nonimmediate_operand (operands[0], E_HImode)
6464 : || !general_operand (operands[1], E_HImode)
6465 : || !
6466 : #line 1601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6467 : (ix86_match_ccmode (insn, CCGOCmode)))
6468 : return -1;
6469 : return 18; /* *cmphi_minus_1 */
6470 :
6471 : case E_SImode:
6472 : if (!nonimmediate_operand (operands[0], E_SImode)
6473 : || !x86_64_general_operand (operands[1], E_SImode)
6474 : || !
6475 : #line 1601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6476 : (ix86_match_ccmode (insn, CCGOCmode)))
6477 : return -1;
6478 : return 19; /* *cmpsi_minus_1 */
6479 :
6480 : case E_DImode:
6481 : if (!nonimmediate_operand (operands[0], E_DImode)
6482 : || !x86_64_general_operand (operands[1], E_DImode)
6483 : || !(
6484 : #line 1601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6485 : (ix86_match_ccmode (insn, CCGOCmode)) &&
6486 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6487 : (TARGET_64BIT)))
6488 : return -1;
6489 : return 20; /* *cmpdi_minus_1 */
6490 :
6491 : default:
6492 : return -1;
6493 : }
6494 :
6495 : case PLUS:
6496 : x5 = XEXP (x3, 1);
6497 : switch (GET_CODE (x5))
6498 : {
6499 : case CONST_INT:
6500 : if (XWINT (x5, 0) != 0L)
6501 : return -1;
6502 : x6 = XEXP (x4, 0);
6503 : operands[0] = x6;
6504 : x7 = XEXP (x4, 1);
6505 : operands[1] = x7;
6506 : switch (GET_MODE (x4))
6507 : {
6508 : case E_QImode:
6509 : if (!nonimmediate_operand (operands[0], E_QImode)
6510 : || !x86_64_neg_const_int_operand (operands[1], E_QImode)
6511 : || !
6512 : #line 1612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6513 : (ix86_match_ccmode (insn, CCGOCmode)))
6514 : return -1;
6515 : return 21; /* *cmpqi_plus_1 */
6516 :
6517 : case E_HImode:
6518 : if (!nonimmediate_operand (operands[0], E_HImode)
6519 : || !x86_64_neg_const_int_operand (operands[1], E_HImode)
6520 : || !
6521 : #line 1612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6522 : (ix86_match_ccmode (insn, CCGOCmode)))
6523 : return -1;
6524 : return 22; /* *cmphi_plus_1 */
6525 :
6526 : case E_SImode:
6527 : if (!nonimmediate_operand (operands[0], E_SImode)
6528 : || !x86_64_neg_const_int_operand (operands[1], E_SImode)
6529 : || !
6530 : #line 1612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6531 : (ix86_match_ccmode (insn, CCGOCmode)))
6532 : return -1;
6533 : return 23; /* *cmpsi_plus_1 */
6534 :
6535 : case E_DImode:
6536 : if (!nonimmediate_operand (operands[0], E_DImode)
6537 : || !x86_64_neg_const_int_operand (operands[1], E_DImode)
6538 : || !(
6539 : #line 1612 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6540 : (ix86_match_ccmode (insn, CCGOCmode)) &&
6541 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6542 : (TARGET_64BIT)))
6543 : return -1;
6544 : return 24; /* *cmpdi_plus_1 */
6545 :
6546 : default:
6547 : return -1;
6548 : }
6549 :
6550 : case REG:
6551 : case SUBREG:
6552 : case MEM:
6553 : if (pnum_clobbers == NULL
6554 : || GET_MODE (x2) != E_CCCmode
6555 : || GET_MODE (x3) != E_CCCmode)
6556 : return -1;
6557 : x6 = XEXP (x4, 0);
6558 : operands[1] = x6;
6559 : x7 = XEXP (x4, 1);
6560 : operands[2] = x7;
6561 : if (!rtx_equal_p (x5, operands[1]))
6562 : return -1;
6563 : switch (pattern49 (x4))
6564 : {
6565 : case 0:
6566 : if (!
6567 : #line 10274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6568 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
6569 : return -1;
6570 : *pnum_clobbers = 1;
6571 : return 562; /* *addqi3_cconly_overflow_1 */
6572 :
6573 : case 1:
6574 : if (!
6575 : #line 10274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6576 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
6577 : return -1;
6578 : *pnum_clobbers = 1;
6579 : return 563; /* *addhi3_cconly_overflow_1 */
6580 :
6581 : case 2:
6582 : if (!
6583 : #line 10274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6584 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
6585 : return -1;
6586 : *pnum_clobbers = 1;
6587 : return 564; /* *addsi3_cconly_overflow_1 */
6588 :
6589 : case 3:
6590 : if (!(
6591 : #line 10274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6592 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6593 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6594 : (TARGET_64BIT)))
6595 : return -1;
6596 : *pnum_clobbers = 1;
6597 : return 565; /* *adddi3_cconly_overflow_1 */
6598 :
6599 : default:
6600 : return -1;
6601 : }
6602 :
6603 : default:
6604 : return -1;
6605 : }
6606 :
6607 : case NEG:
6608 : return recog_5 (x1, insn, pnum_clobbers);
6609 :
6610 : case ZERO_EXTEND:
6611 : if (pnum_clobbers == NULL)
6612 : return -1;
6613 : x5 = XEXP (x3, 1);
6614 : if (pattern423 (x5,
6615 : E_CCmode,
6616 : PLUS) != 0
6617 : || GET_MODE (x2) != E_CCCmode
6618 : || GET_MODE (x3) != E_CCCmode)
6619 : return -1;
6620 : x6 = XEXP (x4, 0);
6621 : operands[1] = x6;
6622 : x8 = XEXP (x5, 1);
6623 : switch (GET_CODE (x8))
6624 : {
6625 : case ZERO_EXTEND:
6626 : x9 = XEXP (x8, 0);
6627 : operands[2] = x9;
6628 : switch (GET_MODE (x4))
6629 : {
6630 : case E_DImode:
6631 : if (pattern1590 (x5,
6632 : E_SImode,
6633 : E_DImode) != 0
6634 : || !
6635 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6636 : (!TARGET_64BIT))
6637 : return -1;
6638 : *pnum_clobbers = 1;
6639 : return 545; /* subsi3_carry_ccc */
6640 :
6641 : case E_TImode:
6642 : if (pattern1590 (x5,
6643 : E_DImode,
6644 : E_TImode) != 0
6645 : || !
6646 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6647 : (TARGET_64BIT))
6648 : return -1;
6649 : *pnum_clobbers = 1;
6650 : return 546; /* subdi3_carry_ccc */
6651 :
6652 : default:
6653 : return -1;
6654 : }
6655 :
6656 : case CONST_INT:
6657 : case CONST_WIDE_INT:
6658 : operands[2] = x8;
6659 : switch (GET_MODE (x4))
6660 : {
6661 : case E_DImode:
6662 : if (pattern1591 (x5,
6663 : E_DImode,
6664 : E_SImode) != 0
6665 : || !
6666 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6667 : (!TARGET_64BIT))
6668 : return -1;
6669 : *pnum_clobbers = 1;
6670 : return 547; /* *subsi3_carry_ccc_1 */
6671 :
6672 : case E_TImode:
6673 : if (pattern1591 (x5,
6674 : E_TImode,
6675 : E_DImode) != 0
6676 : || !
6677 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6678 : (TARGET_64BIT))
6679 : return -1;
6680 : *pnum_clobbers = 1;
6681 : return 548; /* *subdi3_carry_ccc_1 */
6682 :
6683 : default:
6684 : return -1;
6685 : }
6686 :
6687 : default:
6688 : return -1;
6689 : }
6690 :
6691 : case AND:
6692 : x5 = XEXP (x3, 1);
6693 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6694 : || GET_MODE (x2) != E_CCZmode
6695 : || GET_MODE (x3) != E_CCZmode)
6696 : return -1;
6697 : x6 = XEXP (x4, 0);
6698 : switch (GET_CODE (x6))
6699 : {
6700 : case REG:
6701 : case SUBREG:
6702 : operands[0] = x6;
6703 : if (!register_operand (operands[0], E_TImode)
6704 : || GET_MODE (x4) != E_TImode)
6705 : return -1;
6706 : x7 = XEXP (x4, 1);
6707 : operands[1] = x7;
6708 : if (!general_operand (operands[1], E_TImode)
6709 : || !
6710 : #line 12530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6711 : (TARGET_64BIT
6712 : && ix86_pre_reload_split ()))
6713 : return -1;
6714 : return 721; /* *testti_doubleword */
6715 :
6716 : case NOT:
6717 : switch (pattern854 (x4))
6718 : {
6719 : case 0:
6720 : if (!
6721 : #line 12660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6722 : (ix86_pre_reload_split ()
6723 : && (!TARGET_BMI || !REG_P (operands[1]))))
6724 : return -1;
6725 : return 725; /* *testqi_not */
6726 :
6727 : case 1:
6728 : if (!
6729 : #line 12660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6730 : (ix86_pre_reload_split ()
6731 : && (!TARGET_BMI || !REG_P (operands[1]))))
6732 : return -1;
6733 : return 726; /* *testhi_not */
6734 :
6735 : case 2:
6736 : if (!
6737 : #line 12660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6738 : (ix86_pre_reload_split ()
6739 : && (!TARGET_BMI || !REG_P (operands[1]))))
6740 : return -1;
6741 : return 727; /* *testsi_not */
6742 :
6743 : case 3:
6744 : if (register_operand (operands[0], E_DImode)
6745 : && x86_64_szext_nonmemory_operand (operands[1], E_DImode)
6746 : && (
6747 : #line 12660 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6748 : (ix86_pre_reload_split ()
6749 : && (!TARGET_BMI || !REG_P (operands[1]))) &&
6750 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6751 : (TARGET_64BIT)))
6752 : return 728; /* *testdi_not */
6753 : if (!nonimmediate_operand (operands[0], E_DImode)
6754 : || !nonimmediate_operand (operands[1], E_DImode)
6755 : || !(
6756 : #line 12678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6757 : (ix86_pre_reload_split ()) &&
6758 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6759 : (!TARGET_64BIT)))
6760 : return -1;
6761 : return 729; /* *testdi_not_doubleword */
6762 :
6763 : case 4:
6764 : if (!(
6765 : #line 12678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6766 : (ix86_pre_reload_split ()) &&
6767 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6768 : (TARGET_64BIT)))
6769 : return -1;
6770 : return 730; /* *testti_not_doubleword */
6771 :
6772 : default:
6773 : return -1;
6774 : }
6775 :
6776 : case PLUS:
6777 : if (pnum_clobbers == NULL)
6778 : return -1;
6779 : x10 = XEXP (x6, 1);
6780 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
6781 : return -1;
6782 : switch (pattern761 (x4))
6783 : {
6784 : case 0:
6785 : if (!
6786 : #line 22371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6787 : (TARGET_BMI))
6788 : return -1;
6789 : *pnum_clobbers = 1;
6790 : return 1622; /* *bmi_blsr_si_ccz */
6791 :
6792 : case 1:
6793 : if (!(
6794 : #line 22371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6795 : (TARGET_BMI) &&
6796 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6797 : (TARGET_64BIT)))
6798 : return -1;
6799 : *pnum_clobbers = 1;
6800 : return 1623; /* *bmi_blsr_di_ccz */
6801 :
6802 : default:
6803 : return -1;
6804 : }
6805 :
6806 : default:
6807 : return -1;
6808 : }
6809 :
6810 : case IOR:
6811 : if (pnum_clobbers == NULL)
6812 : return -1;
6813 : x5 = XEXP (x3, 1);
6814 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6815 : || GET_MODE (x2) != E_CCZmode
6816 : || GET_MODE (x3) != E_CCZmode)
6817 : return -1;
6818 : switch (pattern50 (x4))
6819 : {
6820 : case 0:
6821 : if (!(
6822 : #line 14257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6823 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6824 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6825 : (TARGET_AVX512DQ)))
6826 : return -1;
6827 : *pnum_clobbers = 1;
6828 : return 912; /* *iorqi_ccz_1 */
6829 :
6830 : case 1:
6831 : if (!
6832 : #line 14257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6833 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
6834 : return -1;
6835 : *pnum_clobbers = 1;
6836 : return 913; /* *iorhi_ccz_1 */
6837 :
6838 : case 2:
6839 : if (!(
6840 : #line 14257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6841 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6842 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6843 : (TARGET_AVX512BW)))
6844 : return -1;
6845 : *pnum_clobbers = 1;
6846 : return 914; /* *iorsi_ccz_1 */
6847 :
6848 : case 3:
6849 : if (!(
6850 : #line 14257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6851 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
6852 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6853 : (TARGET_AVX512BW && TARGET_64BIT)))
6854 : return -1;
6855 : *pnum_clobbers = 1;
6856 : return 915; /* *iordi_ccz_1 */
6857 :
6858 : default:
6859 : return -1;
6860 : }
6861 :
6862 : case CONST_INT:
6863 : if (XWINT (x4, 0) != 0L)
6864 : return -1;
6865 : x5 = XEXP (x3, 1);
6866 : if (GET_CODE (x5) != ZERO_EXTRACT)
6867 : return -1;
6868 : x8 = XEXP (x5, 1);
6869 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
6870 : || GET_MODE (x2) != E_CCCmode
6871 : || GET_MODE (x3) != E_CCCmode)
6872 : return -1;
6873 : x11 = XEXP (x5, 0);
6874 : operands[0] = x11;
6875 : x12 = XEXP (x5, 2);
6876 : operands[1] = x12;
6877 : if (nonmemory_operand (operands[1], E_QImode))
6878 : {
6879 : switch (GET_MODE (x5))
6880 : {
6881 : case E_SImode:
6882 : if (nonimmediate_operand (operands[0], E_SImode))
6883 : return 1448; /* *btsi */
6884 : break;
6885 :
6886 : case E_DImode:
6887 : if (nonimmediate_operand (operands[0], E_DImode)
6888 : &&
6889 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6890 : (TARGET_64BIT))
6891 : return 1449; /* *btdi */
6892 : break;
6893 :
6894 : default:
6895 : break;
6896 : }
6897 : }
6898 : if (GET_CODE (x12) != SUBREG
6899 : || maybe_ne (SUBREG_BYTE (x12), 0)
6900 : || GET_MODE (x12) != E_QImode)
6901 : return -1;
6902 : x13 = XEXP (x12, 0);
6903 : if (GET_CODE (x13) != AND)
6904 : return -1;
6905 : switch (pattern1462 (x5))
6906 : {
6907 : case 0:
6908 : if (!
6909 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6910 : (TARGET_USE_BT
6911 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
6912 : == GET_MODE_BITSIZE (SImode)-1
6913 : && ix86_pre_reload_split ()))
6914 : return -1;
6915 : return 1450; /* *btsi_mask */
6916 :
6917 : case 1:
6918 : if (!
6919 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6920 : (TARGET_USE_BT
6921 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
6922 : == GET_MODE_BITSIZE (SImode)-1
6923 : && ix86_pre_reload_split ()))
6924 : return -1;
6925 : return 1452; /* *btsi_mask */
6926 :
6927 : case 2:
6928 : if (!(
6929 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6930 : (TARGET_USE_BT
6931 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
6932 : == GET_MODE_BITSIZE (SImode)-1
6933 : && ix86_pre_reload_split ()) &&
6934 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6935 : (TARGET_64BIT)))
6936 : return -1;
6937 : return 1454; /* *btsi_mask */
6938 :
6939 : case 3:
6940 : if (!(
6941 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6942 : (TARGET_USE_BT
6943 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
6944 : == GET_MODE_BITSIZE (DImode)-1
6945 : && ix86_pre_reload_split ()) &&
6946 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6947 : (TARGET_64BIT)))
6948 : return -1;
6949 : return 1451; /* *btdi_mask */
6950 :
6951 : case 4:
6952 : if (!(
6953 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6954 : (TARGET_USE_BT
6955 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
6956 : == GET_MODE_BITSIZE (DImode)-1
6957 : && ix86_pre_reload_split ()) &&
6958 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6959 : (TARGET_64BIT)))
6960 : return -1;
6961 : return 1453; /* *btdi_mask */
6962 :
6963 : case 5:
6964 : if (!(
6965 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6966 : (TARGET_USE_BT
6967 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
6968 : == GET_MODE_BITSIZE (DImode)-1
6969 : && ix86_pre_reload_split ()) &&
6970 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6971 : (TARGET_64BIT)))
6972 : return -1;
6973 : return 1455; /* *btdi_mask */
6974 :
6975 : default:
6976 : return -1;
6977 : }
6978 :
6979 : case UNSPEC:
6980 : if (GET_MODE (x2) != E_CCZmode
6981 : || GET_MODE (x3) != E_CCZmode)
6982 : return -1;
6983 : switch (XVECLEN (x4, 0))
6984 : {
6985 : case 2:
6986 : if (pnum_clobbers == NULL
6987 : || XINT (x4, 1) != 99)
6988 : return -1;
6989 : x5 = XEXP (x3, 1);
6990 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6991 : return -1;
6992 : x14 = XVECEXP (x4, 0, 0);
6993 : operands[1] = x14;
6994 : x15 = XVECEXP (x4, 0, 1);
6995 : operands[2] = x15;
6996 : switch (GET_MODE (x4))
6997 : {
6998 : case E_SImode:
6999 : if (!nonimmediate_operand (operands[1], E_SImode)
7000 : || !register_operand (operands[2], E_SImode)
7001 : || !
7002 : #line 22120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7003 : (TARGET_BMI))
7004 : return -1;
7005 : *pnum_clobbers = 1;
7006 : return 1602; /* *bmi_bextr_si_ccz */
7007 :
7008 : case E_DImode:
7009 : if (!nonimmediate_operand (operands[1], E_DImode)
7010 : || !register_operand (operands[2], E_DImode)
7011 : || !(
7012 : #line 22120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7013 : (TARGET_BMI) &&
7014 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7015 : (TARGET_64BIT)))
7016 : return -1;
7017 : *pnum_clobbers = 1;
7018 : return 1603; /* *bmi_bextr_di_ccz */
7019 :
7020 : default:
7021 : return -1;
7022 : }
7023 :
7024 : case 1:
7025 : if (XINT (x4, 1) != 50
7026 : || GET_MODE (x4) != E_SImode)
7027 : return -1;
7028 : x14 = XVECEXP (x4, 0, 0);
7029 : if (GET_CODE (x14) != VEC_MERGE)
7030 : return -1;
7031 : x5 = XEXP (x3, 1);
7032 : operands[2] = x5;
7033 : if (!const_int_operand (operands[2], E_VOIDmode))
7034 : return -1;
7035 : switch (pattern1271 (x14))
7036 : {
7037 : case 0:
7038 : if (!(
7039 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7040 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffffffff) &&
7041 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7042 : (TARGET_AVX2)))
7043 : return -1;
7044 : return 8620; /* *pmovsk_mask_cmp_v32qi_avx512 */
7045 :
7046 : case 1:
7047 : if (!
7048 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7049 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffff))
7050 : return -1;
7051 : return 8621; /* *pmovsk_mask_cmp_v16qi_avx512 */
7052 :
7053 : case 2:
7054 : if (!(
7055 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7056 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
7057 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7058 : (TARGET_AVX2)))
7059 : return -1;
7060 : return 8622; /* *pmovsk_ptest_v32qi_avx512 */
7061 :
7062 : case 3:
7063 : if (!
7064 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7065 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffff))))
7066 : return -1;
7067 : return 8623; /* *pmovsk_ptest_v16qi_avx512 */
7068 :
7069 : default:
7070 : return -1;
7071 : }
7072 :
7073 : default:
7074 : return -1;
7075 : }
7076 :
7077 : case IF_THEN_ELSE:
7078 : if (pnum_clobbers == NULL)
7079 : return -1;
7080 : x6 = XEXP (x4, 0);
7081 : if (GET_CODE (x6) != NE
7082 : || GET_MODE (x6) != E_QImode)
7083 : return -1;
7084 : x10 = XEXP (x6, 1);
7085 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7086 : return -1;
7087 : x7 = XEXP (x4, 1);
7088 : if (GET_CODE (x7) != ZERO_EXTRACT)
7089 : return -1;
7090 : x16 = XEXP (x7, 1);
7091 : if (GET_CODE (x16) != UMIN
7092 : || GET_MODE (x16) != E_QImode)
7093 : return -1;
7094 : x17 = XEXP (x7, 2);
7095 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7096 : return -1;
7097 : x18 = XEXP (x4, 2);
7098 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7099 : return -1;
7100 : x5 = XEXP (x3, 1);
7101 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
7102 : || GET_MODE (x2) != E_CCZmode
7103 : || GET_MODE (x3) != E_CCZmode)
7104 : return -1;
7105 : x19 = XEXP (x6, 0);
7106 : operands[2] = x19;
7107 : if (!register_operand (operands[2], E_QImode))
7108 : return -1;
7109 : x20 = XEXP (x7, 0);
7110 : operands[1] = x20;
7111 : x21 = XEXP (x16, 1);
7112 : operands[3] = x21;
7113 : if (!const_int_operand (operands[3], E_QImode))
7114 : return -1;
7115 : x22 = XEXP (x16, 0);
7116 : if (!rtx_equal_p (x22, operands[2]))
7117 : return -1;
7118 : switch (GET_MODE (x4))
7119 : {
7120 : case E_SImode:
7121 : if (GET_MODE (x7) != E_SImode
7122 : || !nonimmediate_operand (operands[1], E_SImode)
7123 : || !
7124 : #line 22427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7125 : (TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
7126 : return -1;
7127 : *pnum_clobbers = 1;
7128 : return 1626; /* *bmi2_bzhi_si3_1_ccz */
7129 :
7130 : case E_DImode:
7131 : if (GET_MODE (x7) != E_DImode
7132 : || !nonimmediate_operand (operands[1], E_DImode)
7133 : || !(
7134 : #line 22427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7135 : (TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7136 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7137 : (TARGET_64BIT)))
7138 : return -1;
7139 : *pnum_clobbers = 1;
7140 : return 1627; /* *bmi2_bzhi_di3_1_ccz */
7141 :
7142 : default:
7143 : return -1;
7144 : }
7145 :
7146 : case VEC_SELECT:
7147 : x7 = XEXP (x4, 1);
7148 : if (GET_CODE (x7) != PARALLEL
7149 : || XVECLEN (x7, 0) != 1)
7150 : return -1;
7151 : x23 = XVECEXP (x7, 0, 0);
7152 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7153 : return -1;
7154 : x5 = XEXP (x3, 1);
7155 : if (pattern253 (x5) != 0
7156 : || GET_MODE (x2) != E_CCFPmode
7157 : || GET_MODE (x3) != E_CCFPmode)
7158 : return -1;
7159 : x6 = XEXP (x4, 0);
7160 : operands[0] = x6;
7161 : x11 = XEXP (x5, 0);
7162 : operands[1] = x11;
7163 : switch (GET_MODE (x4))
7164 : {
7165 : case E_HFmode:
7166 : if (!register_operand (operands[0], E_V8HFmode)
7167 : || GET_MODE (x5) != E_HFmode
7168 : || !nonimmediate_operand (operands[1], E_V8HFmode)
7169 : || !(
7170 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7171 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
7172 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7173 : (TARGET_AVX512FP16)))
7174 : return -1;
7175 : return 3752; /* avx512fp16_comi */
7176 :
7177 : case E_SFmode:
7178 : if (!register_operand (operands[0], E_V4SFmode)
7179 : || GET_MODE (x5) != E_SFmode
7180 : || !nonimmediate_operand (operands[1], E_V4SFmode)
7181 : || !
7182 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7183 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode))
7184 : return -1;
7185 : return 3756; /* sse_comi */
7186 :
7187 : case E_DFmode:
7188 : if (!register_operand (operands[0], E_V2DFmode)
7189 : || GET_MODE (x5) != E_DFmode
7190 : || !nonimmediate_operand (operands[1], E_V2DFmode)
7191 : || !
7192 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7193 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode))
7194 : return -1;
7195 : return 3760; /* sse2_comi */
7196 :
7197 : case E_BFmode:
7198 : if (!register_operand (operands[0], E_V8BFmode)
7199 : || GET_MODE (x5) != E_BFmode
7200 : || !nonimmediate_operand (operands[1], E_V8BFmode)
7201 : || !
7202 : #line 5243 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7203 : (TARGET_AVX10_2))
7204 : return -1;
7205 : return 3764; /* avx10_2_comisbf16_v8bf */
7206 :
7207 : default:
7208 : return -1;
7209 : }
7210 :
7211 : default:
7212 : return -1;
7213 : }
7214 : }
7215 :
7216 : int
7217 : recog_29 (rtx x1 ATTRIBUTE_UNUSED,
7218 : rtx_insn *insn ATTRIBUTE_UNUSED,
7219 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7220 : {
7221 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7222 : rtx x2, x3, x4, x5, x6;
7223 : int res ATTRIBUTE_UNUSED;
7224 : if (!register_operand (operands[0], E_HImode))
7225 : return -1;
7226 : x2 = XEXP (x1, 1);
7227 : if (GET_MODE (x2) != E_HImode)
7228 : return -1;
7229 : x3 = XEXP (x2, 0);
7230 : switch (XVECLEN (x3, 0))
7231 : {
7232 : case 3:
7233 : x4 = XVECEXP (x3, 0, 0);
7234 : operands[1] = x4;
7235 : x5 = XVECEXP (x3, 0, 1);
7236 : operands[2] = x5;
7237 : x6 = XVECEXP (x3, 0, 2);
7238 : operands[3] = x6;
7239 : switch (XINT (x3, 1))
7240 : {
7241 : case 60:
7242 : switch (pattern986 (x3))
7243 : {
7244 : case 0:
7245 : if (!
7246 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7247 : (TARGET_AVX512F
7248 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7249 : && (GET_MODE_NUNITS (V16SImode)
7250 : < GET_MODE_PRECISION (HImode))))
7251 : return -1;
7252 : return 3362; /* *avx512f_cmpv16si3_zero_extendhi */
7253 :
7254 : case 1:
7255 : if (!(
7256 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7257 : (TARGET_AVX512F
7258 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7259 : && (GET_MODE_NUNITS (V16HFmode)
7260 : < GET_MODE_PRECISION (HImode))) &&
7261 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7262 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7263 : return -1;
7264 : return 3383; /* *avx512vl_cmpv16hf3_zero_extendhi */
7265 :
7266 : case 2:
7267 : if (!
7268 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7269 : (TARGET_AVX512F
7270 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7271 : && (GET_MODE_NUNITS (V16SFmode)
7272 : < GET_MODE_PRECISION (HImode))))
7273 : return -1;
7274 : return 3389; /* *avx512f_cmpv16sf3_zero_extendhi */
7275 :
7276 : case 3:
7277 : if (!(
7278 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7279 : (TARGET_AVX512BW
7280 : && (GET_MODE_NUNITS (V16QImode)
7281 : < GET_MODE_PRECISION (HImode))) &&
7282 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7283 : (TARGET_AVX512VL)))
7284 : return -1;
7285 : return 3497; /* *avx512vl_cmpv16qi3_zero_extendhi */
7286 :
7287 : case 4:
7288 : if (!(
7289 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7290 : (TARGET_AVX512BW
7291 : && (GET_MODE_NUNITS (V16HImode)
7292 : < GET_MODE_PRECISION (HImode))) &&
7293 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7294 : (TARGET_AVX512VL)))
7295 : return -1;
7296 : return 3506; /* *avx512vl_cmpv16hi3_zero_extendhi */
7297 :
7298 : case 5:
7299 : if (!(
7300 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7301 : (TARGET_AVX512F
7302 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7303 : && (GET_MODE_NUNITS (V8SImode)
7304 : < GET_MODE_PRECISION (HImode))) &&
7305 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7306 : (TARGET_AVX512VL)))
7307 : return -1;
7308 : return 3365; /* *avx512vl_cmpv8si3_zero_extendhi */
7309 :
7310 : case 6:
7311 : if (!(
7312 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7313 : (TARGET_AVX512F
7314 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7315 : && (GET_MODE_NUNITS (V4SImode)
7316 : < GET_MODE_PRECISION (HImode))) &&
7317 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7318 : (TARGET_AVX512VL)))
7319 : return -1;
7320 : return 3368; /* *avx512vl_cmpv4si3_zero_extendhi */
7321 :
7322 : case 7:
7323 : if (!
7324 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7325 : (TARGET_AVX512F
7326 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7327 : && (GET_MODE_NUNITS (V8DImode)
7328 : < GET_MODE_PRECISION (HImode))))
7329 : return -1;
7330 : return 3371; /* *avx512f_cmpv8di3_zero_extendhi */
7331 :
7332 : case 8:
7333 : if (!(
7334 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7335 : (TARGET_AVX512F
7336 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7337 : && (GET_MODE_NUNITS (V4DImode)
7338 : < GET_MODE_PRECISION (HImode))) &&
7339 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7340 : (TARGET_AVX512VL)))
7341 : return -1;
7342 : return 3374; /* *avx512vl_cmpv4di3_zero_extendhi */
7343 :
7344 : case 9:
7345 : if (!(
7346 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7347 : (TARGET_AVX512F
7348 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7349 : && (GET_MODE_NUNITS (V2DImode)
7350 : < GET_MODE_PRECISION (HImode))) &&
7351 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7352 : (TARGET_AVX512VL)))
7353 : return -1;
7354 : return 3377; /* *avx512vl_cmpv2di3_zero_extendhi */
7355 :
7356 : case 10:
7357 : if (!(
7358 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7359 : (TARGET_AVX512F
7360 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7361 : && (GET_MODE_NUNITS (V8HFmode)
7362 : < GET_MODE_PRECISION (HImode))) &&
7363 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7364 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7365 : return -1;
7366 : return 3386; /* *avx512fp16_cmpv8hf3_zero_extendhi */
7367 :
7368 : case 11:
7369 : if (!(
7370 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7371 : (TARGET_AVX512F
7372 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7373 : && (GET_MODE_NUNITS (V8SFmode)
7374 : < GET_MODE_PRECISION (HImode))) &&
7375 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7376 : (TARGET_AVX512VL)))
7377 : return -1;
7378 : return 3392; /* *avx512vl_cmpv8sf3_zero_extendhi */
7379 :
7380 : case 12:
7381 : if (!(
7382 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7383 : (TARGET_AVX512F
7384 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7385 : && (GET_MODE_NUNITS (V4SFmode)
7386 : < GET_MODE_PRECISION (HImode))) &&
7387 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7388 : (TARGET_AVX512VL)))
7389 : return -1;
7390 : return 3395; /* *avx512vl_cmpv4sf3_zero_extendhi */
7391 :
7392 : case 13:
7393 : if (!
7394 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7395 : (TARGET_AVX512F
7396 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7397 : && (GET_MODE_NUNITS (V8DFmode)
7398 : < GET_MODE_PRECISION (HImode))))
7399 : return -1;
7400 : return 3398; /* *avx512f_cmpv8df3_zero_extendhi */
7401 :
7402 : case 14:
7403 : if (!(
7404 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7405 : (TARGET_AVX512F
7406 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7407 : && (GET_MODE_NUNITS (V4DFmode)
7408 : < GET_MODE_PRECISION (HImode))) &&
7409 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7410 : (TARGET_AVX512VL)))
7411 : return -1;
7412 : return 3401; /* *avx512vl_cmpv4df3_zero_extendhi */
7413 :
7414 : case 15:
7415 : if (!(
7416 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7417 : (TARGET_AVX512F
7418 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7419 : && (GET_MODE_NUNITS (V2DFmode)
7420 : < GET_MODE_PRECISION (HImode))) &&
7421 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7422 : (TARGET_AVX512VL)))
7423 : return -1;
7424 : return 3404; /* *avx512vl_cmpv2df3_zero_extendhi */
7425 :
7426 : case 16:
7427 : if (!(
7428 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7429 : (TARGET_AVX512BW
7430 : && (GET_MODE_NUNITS (V8HImode)
7431 : < GET_MODE_PRECISION (HImode))) &&
7432 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7433 : (TARGET_AVX512VL)))
7434 : return -1;
7435 : return 3509; /* *avx512vl_cmpv8hi3_zero_extendhi */
7436 :
7437 : case 17:
7438 : if (!(
7439 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7440 : (TARGET_AVX512F
7441 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7442 : && (GET_MODE_NUNITS (V32HFmode)
7443 : < GET_MODE_PRECISION (HImode))) &&
7444 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7445 : (TARGET_AVX512FP16)))
7446 : return -1;
7447 : return 3380; /* *avx512bw_cmpv32hf3_zero_extendhi */
7448 :
7449 : case 18:
7450 : if (!(
7451 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7452 : (TARGET_AVX512BW
7453 : && (GET_MODE_NUNITS (V32QImode)
7454 : < GET_MODE_PRECISION (HImode))) &&
7455 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7456 : (TARGET_AVX512VL)))
7457 : return -1;
7458 : return 3500; /* *avx512vl_cmpv32qi3_zero_extendhi */
7459 :
7460 : case 19:
7461 : if (!
7462 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7463 : (TARGET_AVX512BW
7464 : && (GET_MODE_NUNITS (V32HImode)
7465 : < GET_MODE_PRECISION (HImode))))
7466 : return -1;
7467 : return 3503; /* *avx512bw_cmpv32hi3_zero_extendhi */
7468 :
7469 : case 20:
7470 : if (!
7471 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7472 : (TARGET_AVX512BW
7473 : && (GET_MODE_NUNITS (V64QImode)
7474 : < GET_MODE_PRECISION (HImode))))
7475 : return -1;
7476 : return 3494; /* *avx512bw_cmpv64qi3_zero_extendhi */
7477 :
7478 : default:
7479 : return -1;
7480 : }
7481 :
7482 : case 158:
7483 : if (!const_0_to_7_operand (operands[3], E_SImode))
7484 : return -1;
7485 : switch (pattern1099 (x3))
7486 : {
7487 : case 0:
7488 : if (!
7489 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7490 : (TARGET_AVX512BW
7491 : && (GET_MODE_NUNITS (V64QImode)
7492 : < GET_MODE_PRECISION (HImode))))
7493 : return -1;
7494 : return 3602; /* *avx512bw_ucmpv64qi3_zero_extendhi */
7495 :
7496 : case 1:
7497 : if (!(
7498 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7499 : (TARGET_AVX512BW
7500 : && (GET_MODE_NUNITS (V16QImode)
7501 : < GET_MODE_PRECISION (HImode))) &&
7502 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7503 : (TARGET_AVX512VL)))
7504 : return -1;
7505 : return 3605; /* *avx512vl_ucmpv16qi3_zero_extendhi */
7506 :
7507 : case 2:
7508 : if (!(
7509 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7510 : (TARGET_AVX512BW
7511 : && (GET_MODE_NUNITS (V16HImode)
7512 : < GET_MODE_PRECISION (HImode))) &&
7513 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7514 : (TARGET_AVX512VL)))
7515 : return -1;
7516 : return 3614; /* *avx512vl_ucmpv16hi3_zero_extendhi */
7517 :
7518 : case 3:
7519 : if (!
7520 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7521 : (TARGET_AVX512F
7522 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7523 : && (GET_MODE_NUNITS (V16SImode)
7524 : < GET_MODE_PRECISION (HImode))))
7525 : return -1;
7526 : return 3674; /* *avx512f_ucmpv16si3_zero_extendhi */
7527 :
7528 : case 4:
7529 : if (!(
7530 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7531 : (TARGET_AVX512BW
7532 : && (GET_MODE_NUNITS (V32QImode)
7533 : < GET_MODE_PRECISION (HImode))) &&
7534 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7535 : (TARGET_AVX512VL)))
7536 : return -1;
7537 : return 3608; /* *avx512vl_ucmpv32qi3_zero_extendhi */
7538 :
7539 : case 5:
7540 : if (!
7541 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7542 : (TARGET_AVX512BW
7543 : && (GET_MODE_NUNITS (V32HImode)
7544 : < GET_MODE_PRECISION (HImode))))
7545 : return -1;
7546 : return 3611; /* *avx512bw_ucmpv32hi3_zero_extendhi */
7547 :
7548 : case 6:
7549 : if (!(
7550 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7551 : (TARGET_AVX512BW
7552 : && (GET_MODE_NUNITS (V8HImode)
7553 : < GET_MODE_PRECISION (HImode))) &&
7554 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7555 : (TARGET_AVX512VL)))
7556 : return -1;
7557 : return 3617; /* *avx512vl_ucmpv8hi3_zero_extendhi */
7558 :
7559 : case 7:
7560 : if (!(
7561 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7562 : (TARGET_AVX512F
7563 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7564 : && (GET_MODE_NUNITS (V8SImode)
7565 : < GET_MODE_PRECISION (HImode))) &&
7566 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7567 : (TARGET_AVX512VL)))
7568 : return -1;
7569 : return 3675; /* *avx512vl_ucmpv8si3_zero_extendhi */
7570 :
7571 : case 8:
7572 : if (!(
7573 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7574 : (TARGET_AVX512F
7575 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7576 : && (GET_MODE_NUNITS (V4SImode)
7577 : < GET_MODE_PRECISION (HImode))) &&
7578 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7579 : (TARGET_AVX512VL)))
7580 : return -1;
7581 : return 3676; /* *avx512vl_ucmpv4si3_zero_extendhi */
7582 :
7583 : case 9:
7584 : if (!
7585 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7586 : (TARGET_AVX512F
7587 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7588 : && (GET_MODE_NUNITS (V8DImode)
7589 : < GET_MODE_PRECISION (HImode))))
7590 : return -1;
7591 : return 3677; /* *avx512f_ucmpv8di3_zero_extendhi */
7592 :
7593 : case 10:
7594 : if (!(
7595 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7596 : (TARGET_AVX512F
7597 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7598 : && (GET_MODE_NUNITS (V4DImode)
7599 : < GET_MODE_PRECISION (HImode))) &&
7600 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7601 : (TARGET_AVX512VL)))
7602 : return -1;
7603 : return 3678; /* *avx512vl_ucmpv4di3_zero_extendhi */
7604 :
7605 : case 11:
7606 : if (!(
7607 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7608 : (TARGET_AVX512F
7609 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7610 : && (GET_MODE_NUNITS (V2DImode)
7611 : < GET_MODE_PRECISION (HImode))) &&
7612 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7613 : (TARGET_AVX512VL)))
7614 : return -1;
7615 : return 3679; /* *avx512vl_ucmpv2di3_zero_extendhi */
7616 :
7617 : default:
7618 : return -1;
7619 : }
7620 :
7621 : default:
7622 : return -1;
7623 : }
7624 :
7625 : case 2:
7626 : x4 = XVECEXP (x3, 0, 0);
7627 : operands[1] = x4;
7628 : x5 = XVECEXP (x3, 0, 1);
7629 : operands[2] = x5;
7630 : switch (XINT (x3, 1))
7631 : {
7632 : case 159:
7633 : switch (GET_MODE (x3))
7634 : {
7635 : case E_DImode:
7636 : if (!register_operand (operands[1], E_V64QImode)
7637 : || !nonimmediate_operand (operands[2], E_V64QImode)
7638 : || !(
7639 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7640 : (TARGET_AVX512BW
7641 : && (2
7642 : > GET_MODE_SIZE (DImode))) &&
7643 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7644 : (TARGET_AVX512BW)))
7645 : return -1;
7646 : return 8204; /* *avx512bw_testmv64qi3_zext */
7647 :
7648 : case E_SImode:
7649 : switch (pattern879 ())
7650 : {
7651 : case 0:
7652 : if (!(
7653 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7654 : (TARGET_AVX512BW
7655 : && (2
7656 : > GET_MODE_SIZE (SImode))) &&
7657 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7658 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7659 : return -1;
7660 : return 8207; /* *avx512vl_testmv32qi3_zext */
7661 :
7662 : case 1:
7663 : if (!(
7664 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7665 : (TARGET_AVX512BW
7666 : && (2
7667 : > GET_MODE_SIZE (SImode))) &&
7668 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7669 : (TARGET_AVX512BW)))
7670 : return -1;
7671 : return 8213; /* *avx512bw_testmv32hi3_zext */
7672 :
7673 : default:
7674 : return -1;
7675 : }
7676 :
7677 : case E_HImode:
7678 : switch (pattern746 ())
7679 : {
7680 : case 0:
7681 : if (!(
7682 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7683 : (TARGET_AVX512BW
7684 : && (2
7685 : > GET_MODE_SIZE (HImode))) &&
7686 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7687 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7688 : return -1;
7689 : return 8210; /* *avx512vl_testmv16qi3_zext */
7690 :
7691 : case 1:
7692 : if (!(
7693 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7694 : (TARGET_AVX512BW
7695 : && (2
7696 : > GET_MODE_SIZE (HImode))) &&
7697 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7698 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7699 : return -1;
7700 : return 8216; /* *avx512vl_testmv16hi3_zext */
7701 :
7702 : case 2:
7703 : if (!
7704 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7705 : (TARGET_AVX512BW
7706 : && (2
7707 : > GET_MODE_SIZE (HImode))))
7708 : return -1;
7709 : return 8222; /* *avx512f_testmv16si3_zext */
7710 :
7711 : default:
7712 : return -1;
7713 : }
7714 :
7715 : case E_QImode:
7716 : switch (pattern747 ())
7717 : {
7718 : case 0:
7719 : if (!(
7720 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7721 : (TARGET_AVX512BW
7722 : && (2
7723 : > GET_MODE_SIZE (QImode))) &&
7724 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7725 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7726 : return -1;
7727 : return 8219; /* *avx512vl_testmv8hi3_zext */
7728 :
7729 : case 1:
7730 : if (!(
7731 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7732 : (TARGET_AVX512BW
7733 : && (2
7734 : > GET_MODE_SIZE (QImode))) &&
7735 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7736 : (TARGET_AVX512VL)))
7737 : return -1;
7738 : return 8225; /* *avx512vl_testmv8si3_zext */
7739 :
7740 : case 2:
7741 : if (!(
7742 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7743 : (TARGET_AVX512BW
7744 : && (2
7745 : > GET_MODE_SIZE (QImode))) &&
7746 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7747 : (TARGET_AVX512VL)))
7748 : return -1;
7749 : return 8228; /* *avx512vl_testmv4si3_zext */
7750 :
7751 : case 3:
7752 : if (!
7753 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7754 : (TARGET_AVX512BW
7755 : && (2
7756 : > GET_MODE_SIZE (QImode))))
7757 : return -1;
7758 : return 8231; /* *avx512f_testmv8di3_zext */
7759 :
7760 : case 4:
7761 : if (!(
7762 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7763 : (TARGET_AVX512BW
7764 : && (2
7765 : > GET_MODE_SIZE (QImode))) &&
7766 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7767 : (TARGET_AVX512VL)))
7768 : return -1;
7769 : return 8234; /* *avx512vl_testmv4di3_zext */
7770 :
7771 : case 5:
7772 : if (!(
7773 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7774 : (TARGET_AVX512BW
7775 : && (2
7776 : > GET_MODE_SIZE (QImode))) &&
7777 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7778 : (TARGET_AVX512VL)))
7779 : return -1;
7780 : return 8237; /* *avx512vl_testmv2di3_zext */
7781 :
7782 : default:
7783 : return -1;
7784 : }
7785 :
7786 : default:
7787 : return -1;
7788 : }
7789 :
7790 : case 160:
7791 : switch (GET_MODE (x3))
7792 : {
7793 : case E_DImode:
7794 : if (!register_operand (operands[1], E_V64QImode)
7795 : || !nonimmediate_operand (operands[2], E_V64QImode)
7796 : || !(
7797 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7798 : (TARGET_AVX512BW
7799 : && (2
7800 : > GET_MODE_SIZE (DImode))) &&
7801 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7802 : (TARGET_AVX512BW)))
7803 : return -1;
7804 : return 8276; /* *avx512bw_testnmv64qi3_zext */
7805 :
7806 : case E_SImode:
7807 : switch (pattern879 ())
7808 : {
7809 : case 0:
7810 : if (!(
7811 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7812 : (TARGET_AVX512BW
7813 : && (2
7814 : > GET_MODE_SIZE (SImode))) &&
7815 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7816 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7817 : return -1;
7818 : return 8279; /* *avx512vl_testnmv32qi3_zext */
7819 :
7820 : case 1:
7821 : if (!(
7822 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7823 : (TARGET_AVX512BW
7824 : && (2
7825 : > GET_MODE_SIZE (SImode))) &&
7826 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7827 : (TARGET_AVX512BW)))
7828 : return -1;
7829 : return 8285; /* *avx512bw_testnmv32hi3_zext */
7830 :
7831 : default:
7832 : return -1;
7833 : }
7834 :
7835 : case E_HImode:
7836 : switch (pattern746 ())
7837 : {
7838 : case 0:
7839 : if (!(
7840 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7841 : (TARGET_AVX512BW
7842 : && (2
7843 : > GET_MODE_SIZE (HImode))) &&
7844 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7845 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7846 : return -1;
7847 : return 8282; /* *avx512vl_testnmv16qi3_zext */
7848 :
7849 : case 1:
7850 : if (!(
7851 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7852 : (TARGET_AVX512BW
7853 : && (2
7854 : > GET_MODE_SIZE (HImode))) &&
7855 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7856 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7857 : return -1;
7858 : return 8288; /* *avx512vl_testnmv16hi3_zext */
7859 :
7860 : case 2:
7861 : if (!
7862 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7863 : (TARGET_AVX512BW
7864 : && (2
7865 : > GET_MODE_SIZE (HImode))))
7866 : return -1;
7867 : return 8294; /* *avx512f_testnmv16si3_zext */
7868 :
7869 : default:
7870 : return -1;
7871 : }
7872 :
7873 : case E_QImode:
7874 : switch (pattern747 ())
7875 : {
7876 : case 0:
7877 : if (!(
7878 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7879 : (TARGET_AVX512BW
7880 : && (2
7881 : > GET_MODE_SIZE (QImode))) &&
7882 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7883 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7884 : return -1;
7885 : return 8291; /* *avx512vl_testnmv8hi3_zext */
7886 :
7887 : case 1:
7888 : if (!(
7889 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7890 : (TARGET_AVX512BW
7891 : && (2
7892 : > GET_MODE_SIZE (QImode))) &&
7893 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7894 : (TARGET_AVX512VL)))
7895 : return -1;
7896 : return 8297; /* *avx512vl_testnmv8si3_zext */
7897 :
7898 : case 2:
7899 : if (!(
7900 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7901 : (TARGET_AVX512BW
7902 : && (2
7903 : > GET_MODE_SIZE (QImode))) &&
7904 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7905 : (TARGET_AVX512VL)))
7906 : return -1;
7907 : return 8300; /* *avx512vl_testnmv4si3_zext */
7908 :
7909 : case 3:
7910 : if (!
7911 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7912 : (TARGET_AVX512BW
7913 : && (2
7914 : > GET_MODE_SIZE (QImode))))
7915 : return -1;
7916 : return 8303; /* *avx512f_testnmv8di3_zext */
7917 :
7918 : case 4:
7919 : if (!(
7920 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7921 : (TARGET_AVX512BW
7922 : && (2
7923 : > GET_MODE_SIZE (QImode))) &&
7924 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7925 : (TARGET_AVX512VL)))
7926 : return -1;
7927 : return 8306; /* *avx512vl_testnmv4di3_zext */
7928 :
7929 : case 5:
7930 : if (!(
7931 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7932 : (TARGET_AVX512BW
7933 : && (2
7934 : > GET_MODE_SIZE (QImode))) &&
7935 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7936 : (TARGET_AVX512VL)))
7937 : return -1;
7938 : return 8309; /* *avx512vl_testnmv2di3_zext */
7939 :
7940 : default:
7941 : return -1;
7942 : }
7943 :
7944 : default:
7945 : return -1;
7946 : }
7947 :
7948 : default:
7949 : return -1;
7950 : }
7951 :
7952 : default:
7953 : return -1;
7954 : }
7955 : }
7956 :
7957 : int
7958 : recog_54 (rtx x1 ATTRIBUTE_UNUSED,
7959 : rtx_insn *insn ATTRIBUTE_UNUSED,
7960 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7961 : {
7962 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7963 : rtx x2, x3, x4, x5;
7964 : int res ATTRIBUTE_UNUSED;
7965 : x2 = XEXP (x1, 1);
7966 : switch (GET_CODE (x2))
7967 : {
7968 : case LTU:
7969 : switch (pattern45 (x1))
7970 : {
7971 : case 0:
7972 : if (
7973 : #line 10236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7974 : (ix86_pre_reload_split ()))
7975 : return 558; /* *setcc_qi_negqi_ccc_1_cc */
7976 : break;
7977 :
7978 : case 1:
7979 : if (
7980 : #line 10236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7981 : (ix86_pre_reload_split ()))
7982 : return 559; /* *setcc_qi_negqi_ccc_1_ccc */
7983 : break;
7984 :
7985 : default:
7986 : break;
7987 : }
7988 : break;
7989 :
7990 : case NE:
7991 : case EQ:
7992 : case GE:
7993 : case GT:
7994 : case LE:
7995 : case LT:
7996 : case LTGT:
7997 : case UNORDERED:
7998 : case ORDERED:
7999 : case UNEQ:
8000 : case UNGE:
8001 : case UNGT:
8002 : case UNLE:
8003 : case UNLT:
8004 : res = recog_52 (x1, insn, pnum_clobbers);
8005 : if (res >= 0)
8006 : return res;
8007 : break;
8008 :
8009 : default:
8010 : break;
8011 : }
8012 : operands[1] = x2;
8013 : x3 = XEXP (x2, 0);
8014 : if (GET_CODE (x3) == REG
8015 : && REGNO (x3) == 17)
8016 : {
8017 : res = recog_53 (x1, insn, pnum_clobbers);
8018 : if (res >= 0)
8019 : return res;
8020 : }
8021 : switch (GET_CODE (operands[1]))
8022 : {
8023 : case NE:
8024 : case EQ:
8025 : case GEU:
8026 : case GTU:
8027 : case LEU:
8028 : case LTU:
8029 : x4 = XEXP (x1, 0);
8030 : operands[0] = x4;
8031 : operands[2] = x3;
8032 : x5 = XEXP (x2, 1);
8033 : operands[3] = x5;
8034 : switch (GET_MODE (operands[0]))
8035 : {
8036 : case E_V8QImode:
8037 : if (pattern751 (
8038 : E_V8QImode) != 0
8039 : || !
8040 : #line 4246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8041 : (TARGET_XOP))
8042 : return -1;
8043 : return 2292; /* *xop_maskcmp_unsv8qi3 */
8044 :
8045 : case E_V4HImode:
8046 : if (pattern751 (
8047 : E_V4HImode) != 0
8048 : || !
8049 : #line 4246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8050 : (TARGET_XOP))
8051 : return -1;
8052 : return 2293; /* *xop_maskcmp_unsv4hi3 */
8053 :
8054 : case E_V2SImode:
8055 : if (pattern751 (
8056 : E_V2SImode) != 0
8057 : || !
8058 : #line 4246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8059 : (TARGET_XOP))
8060 : return -1;
8061 : return 2294; /* *xop_maskcmp_unsv2si3 */
8062 :
8063 : case E_V4QImode:
8064 : if (pattern751 (
8065 : E_V4QImode) != 0
8066 : || !
8067 : #line 4256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8068 : (TARGET_XOP))
8069 : return -1;
8070 : return 2295; /* *xop_maskcmp_unsv4qi3 */
8071 :
8072 : case E_V2QImode:
8073 : if (pattern751 (
8074 : E_V2QImode) != 0
8075 : || !
8076 : #line 4256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8077 : (TARGET_XOP))
8078 : return -1;
8079 : return 2296; /* *xop_maskcmp_unsv2qi3 */
8080 :
8081 : case E_V2HImode:
8082 : if (pattern751 (
8083 : E_V2HImode) != 0
8084 : || !
8085 : #line 4256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8086 : (TARGET_XOP))
8087 : return -1;
8088 : return 2297; /* *xop_maskcmp_unsv2hi3 */
8089 :
8090 : default:
8091 : return -1;
8092 : }
8093 :
8094 : default:
8095 : return -1;
8096 : }
8097 : }
8098 :
8099 : int
8100 : recog_58 (rtx x1 ATTRIBUTE_UNUSED,
8101 : rtx_insn *insn ATTRIBUTE_UNUSED,
8102 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8103 : {
8104 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8105 : rtx x2, x3, x4;
8106 : int res ATTRIBUTE_UNUSED;
8107 : x2 = XEXP (x1, 0);
8108 : switch (GET_CODE (x2))
8109 : {
8110 : case REG:
8111 : case SUBREG:
8112 : case MEM:
8113 : operands[0] = x2;
8114 : switch (GET_MODE (operands[0]))
8115 : {
8116 : case E_TImode:
8117 : x3 = XEXP (x1, 1);
8118 : if (pattern79 (x3, pnum_clobbers) != 0
8119 : || !(
8120 : #line 8102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8121 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
8122 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8123 : (TARGET_64BIT)))
8124 : return -1;
8125 : *pnum_clobbers = 1;
8126 : return 385; /* *subti3_doubleword */
8127 :
8128 : case E_QImode:
8129 : x3 = XEXP (x1, 1);
8130 : if (pattern80 (x3,
8131 : E_QImode) != 0)
8132 : return -1;
8133 : if (
8134 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8135 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
8136 : && TARGET_APX_NF))
8137 : return 388; /* *subqi_1_nf */
8138 : if (pnum_clobbers == NULL
8139 : || !
8140 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8141 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
8142 : && true))
8143 : return -1;
8144 : *pnum_clobbers = 1;
8145 : return 389; /* *subqi_1 */
8146 :
8147 : case E_HImode:
8148 : x3 = XEXP (x1, 1);
8149 : if (pattern80 (x3,
8150 : E_HImode) != 0)
8151 : return -1;
8152 : if (
8153 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8154 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
8155 : && TARGET_APX_NF))
8156 : return 390; /* *subhi_1_nf */
8157 : if (pnum_clobbers == NULL
8158 : || !
8159 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8160 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
8161 : && true))
8162 : return -1;
8163 : *pnum_clobbers = 1;
8164 : return 391; /* *subhi_1 */
8165 :
8166 : case E_HFmode:
8167 : x3 = XEXP (x1, 1);
8168 : if (pattern3 (x3,
8169 : E_HFmode) != 0
8170 : || !
8171 : #line 23830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8172 : (TARGET_AVX512FP16
8173 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8174 : return -1;
8175 : return 1711; /* *subhf */
8176 :
8177 : case E_V8QImode:
8178 : x3 = XEXP (x1, 1);
8179 : if (pattern6 (x3,
8180 : E_V8QImode) != 0
8181 : || !
8182 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8183 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8184 : && ix86_binary_operator_ok (MINUS, V8QImode, operands)))
8185 : return -1;
8186 : return 2182; /* *mmx_subv8qi3 */
8187 :
8188 : case E_V4HImode:
8189 : x3 = XEXP (x1, 1);
8190 : if (pattern6 (x3,
8191 : E_V4HImode) != 0
8192 : || !
8193 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8194 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8195 : && ix86_binary_operator_ok (MINUS, V4HImode, operands)))
8196 : return -1;
8197 : return 2184; /* *mmx_subv4hi3 */
8198 :
8199 : case E_V2SImode:
8200 : x3 = XEXP (x1, 1);
8201 : if (pattern6 (x3,
8202 : E_V2SImode) != 0
8203 : || !
8204 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8205 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8206 : && ix86_binary_operator_ok (MINUS, V2SImode, operands)))
8207 : return -1;
8208 : return 2186; /* *mmx_subv2si3 */
8209 :
8210 : case E_V1DImode:
8211 : x3 = XEXP (x1, 1);
8212 : if (pattern6 (x3,
8213 : E_V1DImode) != 0
8214 : || !(
8215 : #line 3239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8216 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8217 : && ix86_binary_operator_ok (MINUS, V1DImode, operands)) &&
8218 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8219 : (TARGET_SSE2)))
8220 : return -1;
8221 : return 2188; /* *mmx_subv1di3 */
8222 :
8223 : case E_V4QImode:
8224 : x3 = XEXP (x1, 1);
8225 : if (pattern5 (x3,
8226 : E_V4QImode) != 0
8227 : || !
8228 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8229 : (TARGET_SSE2))
8230 : return -1;
8231 : return 2190; /* subv4qi3 */
8232 :
8233 : case E_V2HImode:
8234 : x3 = XEXP (x1, 1);
8235 : if (pattern5 (x3,
8236 : E_V2HImode) != 0
8237 : || !
8238 : #line 3255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8239 : (TARGET_SSE2))
8240 : return -1;
8241 : return 2192; /* subv2hi3 */
8242 :
8243 : case E_V2QImode:
8244 : if (pnum_clobbers == NULL)
8245 : return -1;
8246 : x3 = XEXP (x1, 1);
8247 : if (pattern5 (x3,
8248 : E_V2QImode) != 0
8249 : || !
8250 : #line 3269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8251 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
8252 : return -1;
8253 : *pnum_clobbers = 1;
8254 : return 2194; /* subv2qi3 */
8255 :
8256 : default:
8257 : return -1;
8258 : }
8259 :
8260 : case STRICT_LOW_PART:
8261 : if (pnum_clobbers == NULL)
8262 : return -1;
8263 : x4 = XEXP (x2, 0);
8264 : operands[0] = x4;
8265 : switch (GET_MODE (operands[0]))
8266 : {
8267 : case E_QImode:
8268 : x3 = XEXP (x1, 1);
8269 : if (pattern1091 (x3,
8270 : E_QImode) != 0
8271 : || !
8272 : #line 8222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8273 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8274 : return -1;
8275 : *pnum_clobbers = 1;
8276 : return 407; /* *subqi_1_slp */
8277 :
8278 : case E_HImode:
8279 : x3 = XEXP (x1, 1);
8280 : if (pattern1091 (x3,
8281 : E_HImode) != 0
8282 : || !
8283 : #line 8222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8284 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8285 : return -1;
8286 : *pnum_clobbers = 1;
8287 : return 408; /* *subhi_1_slp */
8288 :
8289 : default:
8290 : return -1;
8291 : }
8292 :
8293 : default:
8294 : return -1;
8295 : }
8296 : }
8297 :
8298 : int
8299 : recog_66 (rtx x1 ATTRIBUTE_UNUSED,
8300 : rtx_insn *insn ATTRIBUTE_UNUSED,
8301 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8302 : {
8303 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8304 : rtx x2, x3, x4, x5, x6;
8305 : int res ATTRIBUTE_UNUSED;
8306 : x2 = XEXP (x1, 1);
8307 : x3 = XEXP (x2, 0);
8308 : operands[1] = x3;
8309 : x4 = XEXP (x2, 1);
8310 : switch (XVECLEN (x4, 0))
8311 : {
8312 : case 2:
8313 : x5 = XVECEXP (x4, 0, 0);
8314 : if (GET_CODE (x5) != CONST_INT)
8315 : return -1;
8316 : x6 = XVECEXP (x4, 0, 1);
8317 : if (GET_CODE (x6) == CONST_INT
8318 : && GET_MODE (x2) == E_V2SFmode)
8319 : {
8320 : switch (XWINT (x5, 0))
8321 : {
8322 : case 1L:
8323 : if (register_operand (operands[0], E_V2SFmode))
8324 : {
8325 : switch (XWINT (x6, 0))
8326 : {
8327 : case 0L:
8328 : if (register_mmxmem_operand (operands[1], E_V2SFmode)
8329 : &&
8330 : #line 1664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8331 : (TARGET_3DNOW_A || TARGET_MMX_WITH_SSE))
8332 : return 2141; /* mmx_pswapdv2sf2 */
8333 : break;
8334 :
8335 : case 1L:
8336 : if (register_operand (operands[1], E_V2SFmode)
8337 : &&
8338 : #line 1680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8339 : (TARGET_MMX_WITH_SSE))
8340 : return 2142; /* *mmx_movshdup */
8341 : break;
8342 :
8343 : default:
8344 : break;
8345 : }
8346 : }
8347 : break;
8348 :
8349 : case 0L:
8350 : switch (XWINT (x6, 0))
8351 : {
8352 : case 0L:
8353 : if (register_operand (operands[0], E_V2SFmode)
8354 : && register_operand (operands[1], E_V2SFmode)
8355 : &&
8356 : #line 1696 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8357 : (TARGET_MMX_WITH_SSE))
8358 : return 2143; /* *mmx_movsldup */
8359 : break;
8360 :
8361 : case 1L:
8362 : if (nonimmediate_operand (operands[0], E_V2SFmode)
8363 : && nonimmediate_operand (operands[1], E_V4SFmode)
8364 : &&
8365 : #line 11968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8366 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8367 : return 5291; /* sse_storelps */
8368 : break;
8369 :
8370 : default:
8371 : break;
8372 : }
8373 : break;
8374 :
8375 : case 2L:
8376 : if (XWINT (x6, 0) == 3L
8377 : && nonimmediate_operand (operands[0], E_V2SFmode)
8378 : && nonimmediate_operand (operands[1], E_V4SFmode)
8379 : &&
8380 : #line 11915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8381 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8382 : return 5289; /* sse_storehps */
8383 : break;
8384 :
8385 : default:
8386 : break;
8387 : }
8388 : }
8389 : operands[2] = x5;
8390 : if (const_0_to_1_operand (operands[2], E_VOIDmode))
8391 : {
8392 : operands[3] = x6;
8393 : if (const_0_to_1_operand (operands[3], E_VOIDmode))
8394 : {
8395 : switch (GET_MODE (operands[0]))
8396 : {
8397 : case E_V2SImode:
8398 : if (register_operand (operands[0], E_V2SImode)
8399 : && GET_MODE (x2) == E_V2SImode
8400 : && register_operand (operands[1], E_V2SImode)
8401 : &&
8402 : #line 5603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8403 : (TARGET_MMX_WITH_SSE))
8404 : return 2392; /* *mmx_pshufd_1 */
8405 : break;
8406 :
8407 : case E_V2HFmode:
8408 : if (register_operand (operands[0], E_V2HFmode)
8409 : && GET_MODE (x2) == E_V2HFmode
8410 : && register_operand (operands[1], E_V2HFmode)
8411 : &&
8412 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8413 : (TARGET_SSE2))
8414 : return 2428; /* *pshufwv2hf_1 */
8415 : break;
8416 :
8417 : case E_V2BFmode:
8418 : if (register_operand (operands[0], E_V2BFmode)
8419 : && GET_MODE (x2) == E_V2BFmode
8420 : && register_operand (operands[1], E_V2BFmode)
8421 : &&
8422 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8423 : (TARGET_SSE2))
8424 : return 2429; /* *pshufwv2bf_1 */
8425 : break;
8426 :
8427 : case E_V2HImode:
8428 : if (register_operand (operands[0], E_V2HImode)
8429 : && GET_MODE (x2) == E_V2HImode
8430 : && register_operand (operands[1], E_V2HImode)
8431 : &&
8432 : #line 6264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8433 : (TARGET_SSE2))
8434 : return 2430; /* *pshufwv2hi_1 */
8435 : break;
8436 :
8437 : default:
8438 : break;
8439 : }
8440 : }
8441 : }
8442 : if (XWINT (x5, 0) != 1L
8443 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
8444 : || !register_operand (operands[0], E_V2SImode)
8445 : || GET_MODE (x2) != E_V2SImode
8446 : || !register_mmxmem_operand (operands[1], E_V2SImode)
8447 : || !
8448 : #line 5671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8449 : (TARGET_3DNOW_A))
8450 : return -1;
8451 : return 2399; /* mmx_pswapdv2si2 */
8452 :
8453 : case 1:
8454 : x5 = XVECEXP (x4, 0, 0);
8455 : if (GET_CODE (x5) != CONST_INT)
8456 : return -1;
8457 : switch (XWINT (x5, 0))
8458 : {
8459 : case 0L:
8460 : switch (GET_MODE (operands[0]))
8461 : {
8462 : case E_SFmode:
8463 : switch (pattern977 (x2))
8464 : {
8465 : case 0:
8466 : if (
8467 : #line 1806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8468 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8469 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8470 : return 2150; /* *vec_extractv2sf_0 */
8471 : break;
8472 :
8473 : case 1:
8474 : if (
8475 : #line 12652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8476 : (TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8477 : return 5347; /* *vec_extractv4sf_0 */
8478 : break;
8479 :
8480 : default:
8481 : break;
8482 : }
8483 : break;
8484 :
8485 : case E_HFmode:
8486 : switch (pattern978 (x2))
8487 : {
8488 : case 0:
8489 : if (
8490 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8491 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8492 : return 5406; /* *vec_extractv32hf_0 */
8493 : break;
8494 :
8495 : case 1:
8496 : if (
8497 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8498 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8499 : return 5407; /* *vec_extractv16hf_0 */
8500 : break;
8501 :
8502 : case 2:
8503 : if (
8504 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8505 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8506 : return 5408; /* *vec_extractv8hf_0 */
8507 : break;
8508 :
8509 : default:
8510 : break;
8511 : }
8512 : break;
8513 :
8514 : case E_BFmode:
8515 : switch (pattern979 (x2))
8516 : {
8517 : case 0:
8518 : if (
8519 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8520 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8521 : return 5409; /* *vec_extractv32bf_0 */
8522 : break;
8523 :
8524 : case 1:
8525 : if (
8526 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8527 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8528 : return 5410; /* *vec_extractv16bf_0 */
8529 : break;
8530 :
8531 : case 2:
8532 : if (
8533 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8534 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8535 : return 5411; /* *vec_extractv8bf_0 */
8536 : break;
8537 :
8538 : default:
8539 : break;
8540 : }
8541 : break;
8542 :
8543 : case E_DFmode:
8544 : if (nonimmediate_operand (operands[0], E_DFmode)
8545 : && GET_MODE (x2) == E_DFmode
8546 : && nonimmediate_operand (operands[1], E_V2DFmode))
8547 : {
8548 : if (
8549 : #line 14975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8550 : (TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8551 : return 7249; /* sse2_storelpd */
8552 : if (
8553 : #line 15004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8554 : (!TARGET_SSE2 && TARGET_SSE
8555 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8556 : return 7250; /* *vec_extractv2df_0_sse */
8557 : }
8558 : break;
8559 :
8560 : case E_QImode:
8561 : if (memory_operand (operands[0], E_QImode)
8562 : && GET_MODE (x2) == E_QImode
8563 : && register_operand (operands[1], E_V16QImode)
8564 : && (
8565 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8566 : (TARGET_SSE2
8567 : && !TARGET_SSE4_1
8568 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
8569 : || optimize_function_for_speed_p (cfun))
8570 : && ix86_pre_reload_split ()) &&
8571 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8572 : (TARGET_SSE4_1)))
8573 : return 8501; /* *vec_extractv16qi_0_mem */
8574 : break;
8575 :
8576 : case E_HImode:
8577 : if (memory_operand (operands[0], E_HImode)
8578 : && GET_MODE (x2) == E_HImode
8579 : && register_operand (operands[1], E_V8HImode)
8580 : &&
8581 : #line 21404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8582 : (TARGET_SSE2
8583 : && !TARGET_SSE4_1
8584 : && (TARGET_INTER_UNIT_MOVES_FROM_VEC
8585 : || optimize_function_for_speed_p (cfun))
8586 : && ix86_pre_reload_split ()))
8587 : return 8502; /* *vec_extractv8hi_0_mem */
8588 : break;
8589 :
8590 : default:
8591 : break;
8592 : }
8593 : break;
8594 :
8595 : case 1L:
8596 : switch (GET_MODE (operands[0]))
8597 : {
8598 : case E_SFmode:
8599 : if (nonimmediate_operand (operands[0], E_SFmode)
8600 : && GET_MODE (x2) == E_SFmode
8601 : && nonimmediate_operand (operands[1], E_V2SFmode)
8602 : &&
8603 : #line 1821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8604 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8605 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8606 : return 2151; /* *vec_extractv2sf_1 */
8607 : break;
8608 :
8609 : case E_DFmode:
8610 : if (nonimmediate_operand (operands[0], E_DFmode)
8611 : && GET_MODE (x2) == E_DFmode
8612 : && nonimmediate_operand (operands[1], E_V2DFmode))
8613 : {
8614 : if (
8615 : #line 14918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8616 : (TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8617 : return 7247; /* sse2_storehpd */
8618 : if (
8619 : #line 14951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8620 : (!TARGET_SSE2 && TARGET_SSE
8621 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
8622 : return 7248; /* *vec_extractv2df_1_sse */
8623 : }
8624 : break;
8625 :
8626 : default:
8627 : break;
8628 : }
8629 : break;
8630 :
8631 : default:
8632 : break;
8633 : }
8634 : operands[2] = x5;
8635 : switch (GET_MODE (operands[0]))
8636 : {
8637 : case E_HImode:
8638 : if (GET_MODE (x2) != E_HImode)
8639 : return -1;
8640 : if (register_sse4nonimm_operand (operands[0], E_HImode))
8641 : {
8642 : switch (GET_MODE (operands[1]))
8643 : {
8644 : case E_V4HImode:
8645 : if (register_operand (operands[1], E_V4HImode)
8646 : && const_0_to_3_operand (operands[2], E_SImode)
8647 : &&
8648 : #line 5409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8649 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8650 : && (TARGET_SSE || TARGET_3DNOW_A)))
8651 : return 2378; /* *mmx_pextrw */
8652 : break;
8653 :
8654 : case E_V2HImode:
8655 : if (register_operand (operands[1], E_V2HImode)
8656 : && const_0_to_1_operand (operands[2], E_SImode)
8657 : &&
8658 : #line 6075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8659 : (TARGET_SSE2))
8660 : return 2416; /* *pextrw */
8661 : break;
8662 :
8663 : case E_V8HImode:
8664 : if (register_operand (operands[1], E_V8HImode)
8665 : && const_0_to_7_operand (operands[2], E_SImode)
8666 : &&
8667 : #line 21428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8668 : (TARGET_SSE2))
8669 : return 8504; /* *vec_extractv8hi */
8670 : break;
8671 :
8672 : default:
8673 : break;
8674 : }
8675 : }
8676 : if (!register_operand (operands[0], E_HImode)
8677 : || !memory_operand (operands[1], E_V8HImode)
8678 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8679 : || !
8680 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8681 : (TARGET_SSE))
8682 : return -1;
8683 : return 8511; /* *vec_extractv8hi_mem */
8684 :
8685 : case E_HFmode:
8686 : if (!register_sse4nonimm_operand (operands[0], E_HFmode)
8687 : || GET_MODE (x2) != E_HFmode)
8688 : return -1;
8689 : switch (GET_MODE (operands[1]))
8690 : {
8691 : case E_V4HFmode:
8692 : if (!register_operand (operands[1], E_V4HFmode)
8693 : || !const_0_to_3_operand (operands[2], E_SImode)
8694 : || !
8695 : #line 5429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8696 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8697 : && (TARGET_SSE || TARGET_3DNOW_A)))
8698 : return -1;
8699 : return 2379; /* *mmx_pextrwv4hf */
8700 :
8701 : case E_V2HFmode:
8702 : if (!register_operand (operands[1], E_V2HFmode)
8703 : || !const_0_to_1_operand (operands[2], E_SImode)
8704 : || !
8705 : #line 6092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8706 : (TARGET_SSE2))
8707 : return -1;
8708 : return 2417; /* *pextrwv2hf */
8709 :
8710 : case E_V8HFmode:
8711 : if (!register_operand (operands[1], E_V8HFmode)
8712 : || !const_0_to_7_operand (operands[2], E_SImode)
8713 : || !
8714 : #line 13569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8715 : (TARGET_SSE2))
8716 : return -1;
8717 : return 5412; /* *vec_extracthf */
8718 :
8719 : default:
8720 : return -1;
8721 : }
8722 :
8723 : case E_BFmode:
8724 : if (!register_sse4nonimm_operand (operands[0], E_BFmode)
8725 : || GET_MODE (x2) != E_BFmode)
8726 : return -1;
8727 : switch (GET_MODE (operands[1]))
8728 : {
8729 : case E_V4BFmode:
8730 : if (!register_operand (operands[1], E_V4BFmode)
8731 : || !const_0_to_3_operand (operands[2], E_SImode)
8732 : || !
8733 : #line 5429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8734 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8735 : && (TARGET_SSE || TARGET_3DNOW_A)))
8736 : return -1;
8737 : return 2380; /* *mmx_pextrwv4bf */
8738 :
8739 : case E_V2BFmode:
8740 : if (!register_operand (operands[1], E_V2BFmode)
8741 : || !const_0_to_1_operand (operands[2], E_SImode)
8742 : || !
8743 : #line 6092 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8744 : (TARGET_SSE2))
8745 : return -1;
8746 : return 2418; /* *pextrwv2bf */
8747 :
8748 : case E_V8BFmode:
8749 : if (!register_operand (operands[1], E_V8BFmode)
8750 : || !const_0_to_7_operand (operands[2], E_SImode)
8751 : || !
8752 : #line 13569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8753 : (TARGET_SSE2))
8754 : return -1;
8755 : return 5413; /* *vec_extractbf */
8756 :
8757 : default:
8758 : return -1;
8759 : }
8760 :
8761 : case E_QImode:
8762 : if (GET_MODE (x2) != E_QImode)
8763 : return -1;
8764 : if (nonimmediate_operand (operands[0], E_QImode))
8765 : {
8766 : switch (GET_MODE (operands[1]))
8767 : {
8768 : case E_V8QImode:
8769 : if (register_operand (operands[1], E_V8QImode)
8770 : && const_0_to_7_operand (operands[2], E_SImode)
8771 : &&
8772 : #line 5482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8773 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8774 : return 2383; /* *mmx_pextrb */
8775 : break;
8776 :
8777 : case E_V4QImode:
8778 : if (register_operand (operands[1], E_V4QImode)
8779 : && const_0_to_3_operand (operands[2], E_SImode)
8780 : &&
8781 : #line 6138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8782 : (TARGET_SSE4_1))
8783 : return 2421; /* *pextrb */
8784 : break;
8785 :
8786 : default:
8787 : break;
8788 : }
8789 : }
8790 : if (register_sse4nonimm_operand (operands[0], E_QImode)
8791 : && register_operand (operands[1], E_V16QImode)
8792 : && const_0_to_15_operand (operands[2], E_SImode)
8793 : && (
8794 : #line 21428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8795 : (TARGET_SSE2) &&
8796 : #line 21397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8797 : (TARGET_SSE4_1)))
8798 : return 8503; /* *vec_extractv16qi */
8799 : if (!register_operand (operands[0], E_QImode)
8800 : || !memory_operand (operands[1], E_V16QImode)
8801 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
8802 : || !
8803 : #line 21489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8804 : (TARGET_SSE))
8805 : return -1;
8806 : return 8510; /* *vec_extractv16qi_mem */
8807 :
8808 : case E_SFmode:
8809 : if (GET_MODE (x2) != E_SFmode)
8810 : return -1;
8811 : if (nonimmediate_operand (operands[0], E_SFmode)
8812 : && register_operand (operands[1], E_V4SFmode)
8813 : && const_0_to_3_operand (operands[2], E_SImode)
8814 : &&
8815 : #line 12663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8816 : (TARGET_SSE4_1))
8817 : return 5348; /* *sse4_1_extractps */
8818 : if (!register_operand (operands[0], E_SFmode))
8819 : return -1;
8820 : switch (GET_MODE (operands[1]))
8821 : {
8822 : case E_V4SFmode:
8823 : if (!memory_operand (operands[1], E_V4SFmode)
8824 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
8825 : || !
8826 : #line 12706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8827 : (TARGET_SSE))
8828 : return -1;
8829 : return 5349; /* *vec_extractv4sf_mem */
8830 :
8831 : case E_V16SFmode:
8832 : if (!register_operand (operands[1], E_V16SFmode)
8833 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
8834 : || !
8835 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8836 : (TARGET_AVX512F
8837 : && INTVAL(operands[2]) * GET_MODE_SIZE (SFmode) >= 16))
8838 : return -1;
8839 : return 7120; /* *vec_extractv16sfsf_valign */
8840 :
8841 : case E_V8SFmode:
8842 : if (!register_operand (operands[1], E_V8SFmode)
8843 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8844 : || !(
8845 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8846 : (TARGET_AVX512F
8847 : && INTVAL(operands[2]) * GET_MODE_SIZE (SFmode) >= 16) &&
8848 : #line 307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8849 : (TARGET_AVX512VL)))
8850 : return -1;
8851 : return 7121; /* *vec_extractv8sfsf_valign */
8852 :
8853 : default:
8854 : return -1;
8855 : }
8856 :
8857 : case E_DFmode:
8858 : if (!register_operand (operands[0], E_DFmode)
8859 : || GET_MODE (x2) != E_DFmode)
8860 : return -1;
8861 : switch (GET_MODE (operands[1]))
8862 : {
8863 : case E_V8DFmode:
8864 : if (!register_operand (operands[1], E_V8DFmode)
8865 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
8866 : || !
8867 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8868 : (TARGET_AVX512F
8869 : && INTVAL(operands[2]) * GET_MODE_SIZE (DFmode) >= 16))
8870 : return -1;
8871 : return 7122; /* *vec_extractv8dfdf_valign */
8872 :
8873 : case E_V4DFmode:
8874 : if (!register_operand (operands[1], E_V4DFmode)
8875 : || !const_0_to_3_operand (operands[2], E_VOIDmode)
8876 : || !(
8877 : #line 14397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8878 : (TARGET_AVX512F
8879 : && INTVAL(operands[2]) * GET_MODE_SIZE (DFmode) >= 16) &&
8880 : #line 308 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8881 : (TARGET_AVX512VL)))
8882 : return -1;
8883 : return 7123; /* *vec_extractv4dfdf_valign */
8884 :
8885 : default:
8886 : return -1;
8887 : }
8888 :
8889 : case E_TImode:
8890 : if (!nonimmediate_operand (operands[0], E_TImode)
8891 : || GET_MODE (x2) != E_TImode)
8892 : return -1;
8893 : switch (GET_MODE (operands[1]))
8894 : {
8895 : case E_V2TImode:
8896 : if (!register_operand (operands[1], E_V2TImode)
8897 : || !const_0_to_1_operand (operands[2], E_SImode)
8898 : || !
8899 : #line 21745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8900 : (TARGET_AVX))
8901 : return -1;
8902 : return 8522; /* *vec_extractv2ti */
8903 :
8904 : case E_V4TImode:
8905 : if (!register_operand (operands[1], E_V4TImode)
8906 : || !const_0_to_3_operand (operands[2], E_SImode)
8907 : || !
8908 : #line 21763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8909 : (TARGET_AVX512F))
8910 : return -1;
8911 : return 8523; /* *vec_extractv4ti */
8912 :
8913 : default:
8914 : return -1;
8915 : }
8916 :
8917 : default:
8918 : return -1;
8919 : }
8920 :
8921 : case 4:
8922 : x5 = XVECEXP (x4, 0, 0);
8923 : operands[2] = x5;
8924 : if (pattern754 (x4) != 0)
8925 : return -1;
8926 : switch (GET_MODE (operands[0]))
8927 : {
8928 : case E_V4HFmode:
8929 : if (!register_operand (operands[0], E_V4HFmode)
8930 : || GET_MODE (x2) != E_V4HFmode
8931 : || !register_mmxmem_operand (operands[1], E_V4HFmode)
8932 : || !
8933 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8934 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8935 : && (TARGET_SSE || TARGET_3DNOW_A)))
8936 : return -1;
8937 : return 2389; /* mmx_pshufwv4hf_1 */
8938 :
8939 : case E_V4BFmode:
8940 : if (!register_operand (operands[0], E_V4BFmode)
8941 : || GET_MODE (x2) != E_V4BFmode
8942 : || !register_mmxmem_operand (operands[1], E_V4BFmode)
8943 : || !
8944 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8945 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8946 : && (TARGET_SSE || TARGET_3DNOW_A)))
8947 : return -1;
8948 : return 2390; /* mmx_pshufwv4bf_1 */
8949 :
8950 : case E_V4HImode:
8951 : if (!register_operand (operands[0], E_V4HImode)
8952 : || GET_MODE (x2) != E_V4HImode
8953 : || !register_mmxmem_operand (operands[1], E_V4HImode)
8954 : || !
8955 : #line 5571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8956 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8957 : && (TARGET_SSE || TARGET_3DNOW_A)))
8958 : return -1;
8959 : return 2391; /* mmx_pshufwv4hi_1 */
8960 :
8961 : default:
8962 : return -1;
8963 : }
8964 :
8965 : default:
8966 : return -1;
8967 : }
8968 : }
8969 :
8970 : int
8971 : recog_85 (rtx x1 ATTRIBUTE_UNUSED,
8972 : rtx_insn *insn ATTRIBUTE_UNUSED,
8973 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8974 : {
8975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8976 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8977 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8978 : rtx x18;
8979 : int res ATTRIBUTE_UNUSED;
8980 : x2 = XEXP (x1, 0);
8981 : operands[0] = x2;
8982 : x3 = XEXP (x1, 1);
8983 : x4 = XEXP (x3, 0);
8984 : switch (GET_CODE (x4))
8985 : {
8986 : case ASHIFT:
8987 : return recog_84 (x1, insn, pnum_clobbers);
8988 :
8989 : case REG:
8990 : case SUBREG:
8991 : case MEM:
8992 : operands[1] = x4;
8993 : x5 = XEXP (x3, 1);
8994 : operands[2] = x5;
8995 : switch (pattern439 (x3))
8996 : {
8997 : case 0:
8998 : if (pnum_clobbers != NULL
8999 : && x86_64_hilo_general_operand (operands[2], E_DImode)
9000 : && (
9001 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9002 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)) &&
9003 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9004 : (!TARGET_64BIT)))
9005 : {
9006 : *pnum_clobbers = 1;
9007 : return 847; /* *iordi3_doubleword */
9008 : }
9009 : if (x86_64_general_operand (operands[2], E_DImode))
9010 : {
9011 : if ((
9012 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9013 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
9014 : && TARGET_APX_NF) &&
9015 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9016 : (TARGET_64BIT)))
9017 : return 859; /* *iordi_1_nf */
9018 : if (pnum_clobbers != NULL
9019 : && (
9020 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9021 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
9022 : && true) &&
9023 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9024 : (TARGET_64BIT)))
9025 : {
9026 : *pnum_clobbers = 1;
9027 : return 860; /* *iordi_1 */
9028 : }
9029 : }
9030 : if (pnum_clobbers == NULL
9031 : || !const_int_operand (operands[2], E_DImode)
9032 : || !
9033 : #line 13953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9034 : (TARGET_64BIT && TARGET_USE_BT
9035 : && ix86_binary_operator_ok (IOR, DImode, operands)
9036 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
9037 : return -1;
9038 : *pnum_clobbers = 1;
9039 : return 866; /* *iordi_1_bts */
9040 :
9041 : case 1:
9042 : if (
9043 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9044 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
9045 : && TARGET_APX_NF))
9046 : return 855; /* *iorsi_1_nf */
9047 : if (pnum_clobbers == NULL
9048 : || !
9049 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9050 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
9051 : && true))
9052 : return -1;
9053 : *pnum_clobbers = 1;
9054 : return 856; /* *iorsi_1 */
9055 :
9056 : default:
9057 : return -1;
9058 : }
9059 :
9060 : case ZERO_EXTEND:
9061 : if (GET_MODE (x4) != E_DImode
9062 : || GET_MODE (x3) != E_DImode)
9063 : return -1;
9064 : switch (pattern443 (x3))
9065 : {
9066 : case 0:
9067 : if (pnum_clobbers != NULL)
9068 : {
9069 : x5 = XEXP (x3, 1);
9070 : operands[2] = x5;
9071 : if (x86_64_zext_immediate_operand (operands[2], E_DImode)
9072 : && register_operand (operands[0], E_DImode)
9073 : &&
9074 : #line 14082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9075 : (TARGET_64BIT
9076 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
9077 : {
9078 : *pnum_clobbers = 1;
9079 : return 893; /* *iorsi_1_zext_imm */
9080 : }
9081 : }
9082 : x5 = XEXP (x3, 1);
9083 : operands[2] = x5;
9084 : if (!const_scalar_int_operand (operands[2], E_DImode)
9085 : || !nonimmediate_operand (operands[0], E_DImode)
9086 : || !(
9087 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9088 : (DImode == DImode
9089 : ? CONST_INT_P (operands[2])
9090 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
9091 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
9092 : : CONST_WIDE_INT_P (operands[2])
9093 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
9094 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
9095 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
9096 : 1)),
9097 : VOIDmode)) &&
9098 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9099 : (!TARGET_64BIT)))
9100 : return -1;
9101 : return 979; /* *concatsidi3_7 */
9102 :
9103 : case 1:
9104 : if (!(
9105 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9106 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
9107 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9108 : (!TARGET_64BIT)))
9109 : return -1;
9110 : return 931; /* *concatsidi3_2 */
9111 :
9112 : case 2:
9113 : if (!(
9114 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9115 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
9116 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9117 : (!TARGET_64BIT)))
9118 : return -1;
9119 : return 949; /* *concatsidi3_4 */
9120 :
9121 : case 3:
9122 : if (!(
9123 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9124 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
9125 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9126 : (!TARGET_64BIT)))
9127 : return -1;
9128 : return 952; /* *concatsidi3_4 */
9129 :
9130 : default:
9131 : return -1;
9132 : }
9133 :
9134 : case LSHIFTRT:
9135 : x6 = XEXP (x4, 1);
9136 : switch (GET_CODE (x6))
9137 : {
9138 : case AND:
9139 : switch (pattern289 (x3,
9140 : ASHIFT))
9141 : {
9142 : case 0:
9143 : x5 = XEXP (x3, 1);
9144 : x7 = XEXP (x5, 0);
9145 : x8 = XEXP (x7, 0);
9146 : x9 = XEXP (x8, 0);
9147 : operands[1] = x9;
9148 : if (nonimmediate_operand (operands[0], E_DImode))
9149 : {
9150 : res = recog_83 (x1, insn, pnum_clobbers);
9151 : if (res >= 0)
9152 : return res;
9153 : }
9154 : operands[2] = x9;
9155 : if (!register_operand (operands[0], E_DImode))
9156 : return -1;
9157 : x10 = XEXP (x4, 0);
9158 : operands[1] = x10;
9159 : if (!nonimmediate_operand (operands[1], E_DImode))
9160 : return -1;
9161 : x11 = XEXP (x6, 0);
9162 : operands[3] = x11;
9163 : x12 = XEXP (x7, 1);
9164 : x13 = XEXP (x12, 1);
9165 : x14 = XEXP (x13, 0);
9166 : if (!rtx_equal_p (x14, operands[3]))
9167 : return -1;
9168 : if (
9169 : #line 17143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9170 : (TARGET_APX_NDD && TARGET_APX_NF))
9171 : return 1176; /* x86_64_shrd_ndd_nf */
9172 : if (pnum_clobbers == NULL
9173 : || !
9174 : #line 17143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9175 : (TARGET_APX_NDD && true))
9176 : return -1;
9177 : *pnum_clobbers = 1;
9178 : return 1177; /* x86_64_shrd_ndd */
9179 :
9180 : case 1:
9181 : if (pattern288 (x3,
9182 : E_SImode,
9183 : E_DImode) != 0)
9184 : return -1;
9185 : x5 = XEXP (x3, 1);
9186 : x7 = XEXP (x5, 0);
9187 : x8 = XEXP (x7, 0);
9188 : x9 = XEXP (x8, 0);
9189 : operands[1] = x9;
9190 : if (nonimmediate_operand (operands[0], E_SImode))
9191 : {
9192 : x11 = XEXP (x6, 0);
9193 : operands[2] = x11;
9194 : x10 = XEXP (x4, 0);
9195 : if (rtx_equal_p (x10, operands[0]))
9196 : {
9197 : x12 = XEXP (x7, 1);
9198 : x13 = XEXP (x12, 1);
9199 : x14 = XEXP (x13, 0);
9200 : if (rtx_equal_p (x14, operands[2]))
9201 : {
9202 : if (
9203 : #line 17352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9204 : (TARGET_APX_NF))
9205 : return 1186; /* x86_shrd_nf */
9206 : if (pnum_clobbers != NULL)
9207 : {
9208 : *pnum_clobbers = 1;
9209 : return 1187; /* x86_shrd */
9210 : }
9211 : }
9212 : }
9213 : }
9214 : operands[2] = x9;
9215 : if (!register_operand (operands[0], E_SImode))
9216 : return -1;
9217 : x10 = XEXP (x4, 0);
9218 : operands[1] = x10;
9219 : if (!nonimmediate_operand (operands[1], E_SImode))
9220 : return -1;
9221 : x11 = XEXP (x6, 0);
9222 : operands[3] = x11;
9223 : x12 = XEXP (x7, 1);
9224 : x13 = XEXP (x12, 1);
9225 : x14 = XEXP (x13, 0);
9226 : if (!rtx_equal_p (x14, operands[3]))
9227 : return -1;
9228 : if (
9229 : #line 17374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9230 : (TARGET_APX_NDD && TARGET_APX_NF))
9231 : return 1188; /* x86_shrd_ndd_nf */
9232 : if (pnum_clobbers == NULL
9233 : || !
9234 : #line 17374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9235 : (TARGET_APX_NDD && true))
9236 : return -1;
9237 : *pnum_clobbers = 1;
9238 : return 1189; /* x86_shrd_ndd */
9239 :
9240 : default:
9241 : return -1;
9242 : }
9243 :
9244 : case CONST_INT:
9245 : case CONST_WIDE_INT:
9246 : case CONST_POLY_INT:
9247 : case CONST_FIXED:
9248 : case CONST_DOUBLE:
9249 : case CONST_VECTOR:
9250 : case CONST:
9251 : case REG:
9252 : case SUBREG:
9253 : case LABEL_REF:
9254 : case SYMBOL_REF:
9255 : case HIGH:
9256 : x5 = XEXP (x3, 1);
9257 : switch (GET_CODE (x5))
9258 : {
9259 : case SUBREG:
9260 : switch (pattern444 (x3,
9261 : ASHIFT))
9262 : {
9263 : case 0:
9264 : operands[2] = x6;
9265 : if (pattern1371 (x3) == 0)
9266 : {
9267 : if (
9268 : #line 17158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9269 : (TARGET_64BIT
9270 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9271 : && TARGET_APX_NF))
9272 : return 1178; /* x86_64_shrd_1_nf */
9273 : if (pnum_clobbers != NULL
9274 : &&
9275 : #line 17158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9276 : (TARGET_64BIT
9277 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9278 : && true))
9279 : {
9280 : *pnum_clobbers = 1;
9281 : return 1179; /* x86_64_shrd_1 */
9282 : }
9283 : }
9284 : operands[3] = x6;
9285 : if (pattern1372 (x3) != 0)
9286 : return -1;
9287 : if (
9288 : #line 17180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9289 : (TARGET_APX_NDD
9290 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9291 : && TARGET_APX_NF))
9292 : return 1180; /* x86_64_shrd_ndd_1_nf */
9293 : if (pnum_clobbers == NULL
9294 : || !
9295 : #line 17180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9296 : (TARGET_APX_NDD
9297 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9298 : && true))
9299 : return -1;
9300 : *pnum_clobbers = 1;
9301 : return 1181; /* x86_64_shrd_ndd_1 */
9302 :
9303 : case 1:
9304 : operands[2] = x6;
9305 : if (pattern1373 (x3) == 0)
9306 : {
9307 : if (
9308 : #line 17389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9309 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9310 : && TARGET_APX_NF))
9311 : return 1190; /* x86_shrd_1_nf */
9312 : if (pnum_clobbers != NULL
9313 : &&
9314 : #line 17389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9315 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9316 : && true))
9317 : {
9318 : *pnum_clobbers = 1;
9319 : return 1191; /* x86_shrd_1 */
9320 : }
9321 : }
9322 : operands[3] = x6;
9323 : if (pattern1374 (x3) != 0)
9324 : return -1;
9325 : if (
9326 : #line 17411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9327 : (TARGET_APX_NDD
9328 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
9329 : && TARGET_APX_NF))
9330 : return 1192; /* x86_shrd_ndd_1_nf */
9331 : if (pnum_clobbers == NULL
9332 : || !
9333 : #line 17411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9334 : (TARGET_APX_NDD
9335 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
9336 : && true))
9337 : return -1;
9338 : *pnum_clobbers = 1;
9339 : return 1193; /* x86_shrd_ndd_1 */
9340 :
9341 : default:
9342 : return -1;
9343 : }
9344 :
9345 : case ASHIFT:
9346 : switch (pattern447 (x3, pnum_clobbers))
9347 : {
9348 : case 0:
9349 : if (
9350 : #line 17196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9351 : (TARGET_64BIT && TARGET_APX_NF
9352 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9353 : && ix86_pre_reload_split ()))
9354 : return 1182; /* *x86_64_shrd_shld_1_nozext_nf */
9355 : if (pnum_clobbers == NULL
9356 : || !
9357 : #line 17252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9358 : (TARGET_64BIT
9359 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9360 : && ix86_pre_reload_split ()))
9361 : return -1;
9362 : *pnum_clobbers = 1;
9363 : return 1183; /* *x86_64_shrd_shld_1_nozext */
9364 :
9365 : case 1:
9366 : if (
9367 : #line 17427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9368 : (TARGET_APX_NF
9369 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9370 : && ix86_pre_reload_split ()))
9371 : return 1194; /* *x86_shrd_shld_1_nozext_nf */
9372 : if (pnum_clobbers == NULL
9373 : || !
9374 : #line 17483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9375 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9376 : && ix86_pre_reload_split ()))
9377 : return -1;
9378 : *pnum_clobbers = 1;
9379 : return 1195; /* *x86_shrd_shld_1_nozext */
9380 :
9381 : case 2:
9382 : x7 = XEXP (x5, 0);
9383 : operands[1] = x7;
9384 : if (nonimmediate_operand (operands[0], E_DImode))
9385 : {
9386 : operands[2] = x6;
9387 : x10 = XEXP (x4, 0);
9388 : if (rtx_equal_p (x10, operands[0]))
9389 : {
9390 : x15 = XEXP (x5, 1);
9391 : x16 = XEXP (x15, 1);
9392 : if (rtx_equal_p (x16, operands[2])
9393 : &&
9394 : #line 17305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9395 : (TARGET_64BIT && ix86_pre_reload_split ()))
9396 : {
9397 : *pnum_clobbers = 1;
9398 : return 1184; /* *x86_64_shrd_2 */
9399 : }
9400 : }
9401 : }
9402 : operands[2] = x7;
9403 : if (!register_operand (operands[0], E_DImode))
9404 : return -1;
9405 : x10 = XEXP (x4, 0);
9406 : operands[1] = x10;
9407 : if (!nonimmediate_operand (operands[1], E_DImode))
9408 : return -1;
9409 : operands[3] = x6;
9410 : x15 = XEXP (x5, 1);
9411 : x16 = XEXP (x15, 1);
9412 : if (!rtx_equal_p (x16, operands[2])
9413 : || !
9414 : #line 17326 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9415 : (TARGET_APX_NDD
9416 : && ix86_pre_reload_split ()))
9417 : return -1;
9418 : *pnum_clobbers = 1;
9419 : return 1185; /* *x86_64_shrd_ndd_2 */
9420 :
9421 : case 3:
9422 : x7 = XEXP (x5, 0);
9423 : operands[1] = x7;
9424 : if (nonimmediate_operand (operands[0], E_SImode))
9425 : {
9426 : operands[2] = x6;
9427 : x10 = XEXP (x4, 0);
9428 : if (rtx_equal_p (x10, operands[0]))
9429 : {
9430 : x15 = XEXP (x5, 1);
9431 : x16 = XEXP (x15, 1);
9432 : if (rtx_equal_p (x16, operands[2])
9433 : &&
9434 : #line 17535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9435 : (TARGET_64BIT && ix86_pre_reload_split ()))
9436 : {
9437 : *pnum_clobbers = 1;
9438 : return 1196; /* *x86_shrd_2 */
9439 : }
9440 : }
9441 : }
9442 : operands[2] = x7;
9443 : if (!register_operand (operands[0], E_SImode))
9444 : return -1;
9445 : x10 = XEXP (x4, 0);
9446 : operands[1] = x10;
9447 : if (!nonimmediate_operand (operands[1], E_SImode))
9448 : return -1;
9449 : operands[3] = x6;
9450 : x15 = XEXP (x5, 1);
9451 : x16 = XEXP (x15, 1);
9452 : if (!rtx_equal_p (x16, operands[3])
9453 : || !
9454 : #line 17556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9455 : (TARGET_APX_NDD
9456 : && ix86_pre_reload_split ()))
9457 : return -1;
9458 : *pnum_clobbers = 1;
9459 : return 1197; /* *x86_shrd_ndd_2 */
9460 :
9461 : default:
9462 : return -1;
9463 : }
9464 :
9465 : default:
9466 : return -1;
9467 : }
9468 :
9469 : default:
9470 : return -1;
9471 : }
9472 :
9473 : case NOT:
9474 : if (pnum_clobbers == NULL)
9475 : return -1;
9476 : x10 = XEXP (x4, 0);
9477 : if (GET_CODE (x10) != PLUS)
9478 : return -1;
9479 : x17 = XEXP (x10, 1);
9480 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9481 : return -1;
9482 : x18 = XEXP (x10, 0);
9483 : operands[1] = x18;
9484 : x5 = XEXP (x3, 1);
9485 : if (!rtx_equal_p (x5, operands[1]))
9486 : return -1;
9487 : switch (GET_MODE (operands[0]))
9488 : {
9489 : case E_SImode:
9490 : if (pattern990 (x3,
9491 : E_SImode) != 0
9492 : || !
9493 : #line 22554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9494 : (TARGET_TBM))
9495 : return -1;
9496 : *pnum_clobbers = 1;
9497 : return 1642; /* *tbm_blci_si */
9498 :
9499 : case E_DImode:
9500 : if (pattern990 (x3,
9501 : E_DImode) != 0
9502 : || !(
9503 : #line 22554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9504 : (TARGET_TBM) &&
9505 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9506 : (TARGET_64BIT)))
9507 : return -1;
9508 : *pnum_clobbers = 1;
9509 : return 1643; /* *tbm_blci_di */
9510 :
9511 : default:
9512 : return -1;
9513 : }
9514 :
9515 : case PLUS:
9516 : if (pnum_clobbers == NULL)
9517 : return -1;
9518 : x6 = XEXP (x4, 1);
9519 : if (GET_CODE (x6) != CONST_INT)
9520 : return -1;
9521 : x10 = XEXP (x4, 0);
9522 : operands[1] = x10;
9523 : switch (XWINT (x6, 0))
9524 : {
9525 : case 1L:
9526 : switch (pattern764 (x3))
9527 : {
9528 : case 0:
9529 : if (!
9530 : #line 22594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9531 : (TARGET_TBM))
9532 : return -1;
9533 : *pnum_clobbers = 1;
9534 : return 1648; /* *tbm_blcs_si */
9535 :
9536 : case 1:
9537 : if (!(
9538 : #line 22594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9539 : (TARGET_TBM) &&
9540 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9541 : (TARGET_64BIT)))
9542 : return -1;
9543 : *pnum_clobbers = 1;
9544 : return 1649; /* *tbm_blcs_di */
9545 :
9546 : case 2:
9547 : if (!
9548 : #line 22635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9549 : (TARGET_TBM))
9550 : return -1;
9551 : *pnum_clobbers = 1;
9552 : return 1654; /* *tbm_t1mskc_si */
9553 :
9554 : case 3:
9555 : if (!(
9556 : #line 22635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9557 : (TARGET_TBM) &&
9558 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9559 : (TARGET_64BIT)))
9560 : return -1;
9561 : *pnum_clobbers = 1;
9562 : return 1655; /* *tbm_t1mskc_di */
9563 :
9564 : default:
9565 : return -1;
9566 : }
9567 :
9568 : case -1L:
9569 : switch (pattern764 (x3))
9570 : {
9571 : case 0:
9572 : if (!
9573 : #line 22607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9574 : (TARGET_TBM))
9575 : return -1;
9576 : *pnum_clobbers = 1;
9577 : return 1650; /* *tbm_blsfill_si */
9578 :
9579 : case 1:
9580 : if (!(
9581 : #line 22607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9582 : (TARGET_TBM) &&
9583 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9584 : (TARGET_64BIT)))
9585 : return -1;
9586 : *pnum_clobbers = 1;
9587 : return 1651; /* *tbm_blsfill_di */
9588 :
9589 : case 2:
9590 : if (!
9591 : #line 22621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9592 : (TARGET_TBM))
9593 : return -1;
9594 : *pnum_clobbers = 1;
9595 : return 1652; /* *tbm_blsic_si */
9596 :
9597 : case 3:
9598 : if (!(
9599 : #line 22621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9600 : (TARGET_TBM) &&
9601 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9602 : (TARGET_64BIT)))
9603 : return -1;
9604 : *pnum_clobbers = 1;
9605 : return 1653; /* *tbm_blsic_di */
9606 :
9607 : default:
9608 : return -1;
9609 : }
9610 :
9611 : default:
9612 : return -1;
9613 : }
9614 :
9615 : case AND:
9616 : if (pattern119 (x3) != 0
9617 : || !register_operand (operands[0], E_SImode)
9618 : || GET_MODE (x3) != E_SImode)
9619 : return -1;
9620 : x10 = XEXP (x4, 0);
9621 : operands[1] = x10;
9622 : if (!register_operand (operands[1], E_SImode))
9623 : return -1;
9624 : x5 = XEXP (x3, 1);
9625 : x7 = XEXP (x5, 0);
9626 : x8 = XEXP (x7, 0);
9627 : if (!rtx_equal_p (x8, operands[1]))
9628 : return -1;
9629 : return 1680; /* bswaphisi2_lowpart */
9630 :
9631 : default:
9632 : return -1;
9633 : }
9634 : }
9635 :
9636 : int
9637 : recog_104 (rtx x1 ATTRIBUTE_UNUSED,
9638 : rtx_insn *insn ATTRIBUTE_UNUSED,
9639 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9640 : {
9641 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9642 : rtx x2, x3, x4, x5;
9643 : int res ATTRIBUTE_UNUSED;
9644 : x2 = XEXP (x1, 0);
9645 : operands[0] = x2;
9646 : x3 = XEXP (x1, 1);
9647 : x4 = XEXP (x3, 0);
9648 : switch (GET_CODE (x4))
9649 : {
9650 : case REG:
9651 : case SUBREG:
9652 : case MEM:
9653 : switch (pattern124 (x3, pnum_clobbers))
9654 : {
9655 : case 0:
9656 : x5 = XEXP (x3, 1);
9657 : switch (GET_CODE (x5))
9658 : {
9659 : case REG:
9660 : case SUBREG:
9661 : if (pnum_clobbers != NULL
9662 : && pattern633 (x3) == 0
9663 : && (
9664 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9665 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9666 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9667 : == (2 * 4 * BITS_PER_UNIT - 1)))
9668 : && ix86_pre_reload_split ()) &&
9669 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9670 : (!TARGET_64BIT)))
9671 : {
9672 : *pnum_clobbers = 1;
9673 : return 1155; /* *ashrdi3_doubleword_mask */
9674 : }
9675 : operands[2] = x5;
9676 : if (register_operand (operands[2], E_SImode)
9677 : && register_operand (operands[0], E_SImode)
9678 : && GET_MODE (x3) == E_SImode
9679 : && nonimmediate_operand (operands[1], E_SImode)
9680 : &&
9681 : #line 17649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9682 : (TARGET_BMI2))
9683 : return 1204; /* *bmi2_ashrsi3_1 */
9684 : break;
9685 :
9686 : case CONST_INT:
9687 : operands[2] = x5;
9688 : if (const_int_operand (operands[2], E_QImode)
9689 : && nonimmediate_operand (operands[0], E_SImode)
9690 : && GET_MODE (x3) == E_SImode
9691 : && nonimmediate_operand (operands[1], E_SImode))
9692 : {
9693 : if (
9694 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9695 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
9696 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9697 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9698 : && TARGET_APX_NF))
9699 : return 1198; /* ashrsi3_cvt_nf */
9700 : if (pnum_clobbers != NULL
9701 : &&
9702 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9703 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
9704 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9705 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9706 : && true))
9707 : {
9708 : *pnum_clobbers = 1;
9709 : return 1199; /* ashrsi3_cvt */
9710 : }
9711 : }
9712 : break;
9713 :
9714 : default:
9715 : break;
9716 : }
9717 : operands[2] = x5;
9718 : res = recog_103 (x1, insn, pnum_clobbers);
9719 : if (res >= 0)
9720 : return res;
9721 : if (pnum_clobbers == NULL)
9722 : return -1;
9723 : switch (pattern634 (x3))
9724 : {
9725 : case 0:
9726 : if (!
9727 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9728 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9729 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9730 : == 4 * BITS_PER_UNIT - 1
9731 : && ix86_pre_reload_split ()))
9732 : return -1;
9733 : *pnum_clobbers = 1;
9734 : return 1278; /* *ashrsi3_mask */
9735 :
9736 : case 1:
9737 : if (!(
9738 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9739 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9740 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9741 : == 8 * BITS_PER_UNIT - 1
9742 : && ix86_pre_reload_split ()) &&
9743 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9744 : (TARGET_64BIT)))
9745 : return -1;
9746 : *pnum_clobbers = 1;
9747 : return 1281; /* *ashrdi3_mask */
9748 :
9749 : case 2:
9750 : if (!
9751 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9752 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9753 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9754 : && ix86_pre_reload_split ()))
9755 : return -1;
9756 : *pnum_clobbers = 1;
9757 : return 1290; /* *ashrsi3_add */
9758 :
9759 : case 3:
9760 : if (!(
9761 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9762 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9763 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9764 : && ix86_pre_reload_split ()) &&
9765 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9766 : (TARGET_64BIT)))
9767 : return -1;
9768 : *pnum_clobbers = 1;
9769 : return 1293; /* *ashrdi3_add */
9770 :
9771 : case 4:
9772 : if (!
9773 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9774 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9775 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9776 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9777 : == 4 * BITS_PER_UNIT - 1)
9778 : && ix86_pre_reload_split ()))
9779 : return -1;
9780 : *pnum_clobbers = 1;
9781 : return 1302; /* *ashrsi3_sub */
9782 :
9783 : case 5:
9784 : if (!(
9785 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9786 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9787 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9788 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9789 : == 8 * BITS_PER_UNIT - 1)
9790 : && ix86_pre_reload_split ()) &&
9791 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9792 : (TARGET_64BIT)))
9793 : return -1;
9794 : *pnum_clobbers = 1;
9795 : return 1305; /* *ashrdi3_sub */
9796 :
9797 : default:
9798 : return -1;
9799 : }
9800 :
9801 : case 1:
9802 : if (register_operand (operands[0], E_DImode)
9803 : && register_operand (operands[1], E_DImode)
9804 : && (
9805 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9806 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9807 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9808 : == (2 * 4 * BITS_PER_UNIT - 1)))
9809 : && ix86_pre_reload_split ()) &&
9810 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9811 : (!TARGET_64BIT)))
9812 : {
9813 : *pnum_clobbers = 1;
9814 : return 1159; /* *ashrdi3_doubleword_mask_1 */
9815 : }
9816 : if (!nonimmediate_operand (operands[0], E_DImode)
9817 : || !nonimmediate_operand (operands[1], E_DImode)
9818 : || !(
9819 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9820 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9821 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9822 : == 8 * BITS_PER_UNIT - 1
9823 : && ix86_pre_reload_split ()) &&
9824 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9825 : (TARGET_64BIT)))
9826 : return -1;
9827 : *pnum_clobbers = 1;
9828 : return 1287; /* *ashrdi3_mask_1 */
9829 :
9830 : case 2:
9831 : if (!
9832 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9833 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9834 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9835 : == 4 * BITS_PER_UNIT - 1
9836 : && ix86_pre_reload_split ()))
9837 : return -1;
9838 : *pnum_clobbers = 1;
9839 : return 1284; /* *ashrsi3_mask_1 */
9840 :
9841 : case 3:
9842 : if (!
9843 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9844 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9845 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9846 : && ix86_pre_reload_split ()))
9847 : return -1;
9848 : *pnum_clobbers = 1;
9849 : return 1296; /* *ashrsi3_add_1 */
9850 :
9851 : case 4:
9852 : if (!(
9853 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9854 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9855 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9856 : && ix86_pre_reload_split ()) &&
9857 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9858 : (TARGET_64BIT)))
9859 : return -1;
9860 : *pnum_clobbers = 1;
9861 : return 1299; /* *ashrdi3_add_1 */
9862 :
9863 : case 5:
9864 : if (!
9865 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9866 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9867 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9868 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9869 : == 4 * BITS_PER_UNIT - 1)
9870 : && ix86_pre_reload_split ()))
9871 : return -1;
9872 : *pnum_clobbers = 1;
9873 : return 1308; /* *ashrsi3_sub_1 */
9874 :
9875 : case 6:
9876 : if (!(
9877 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9878 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9879 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9880 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9881 : == 8 * BITS_PER_UNIT - 1)
9882 : && ix86_pre_reload_split ()) &&
9883 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9884 : (TARGET_64BIT)))
9885 : return -1;
9886 : *pnum_clobbers = 1;
9887 : return 1311; /* *ashrdi3_sub_1 */
9888 :
9889 : default:
9890 : return -1;
9891 : }
9892 :
9893 : case ASHIFT:
9894 : if (pnum_clobbers == NULL
9895 : || pattern293 (x3,
9896 : E_DImode) != 0
9897 : || !(
9898 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9899 : (INTVAL (operands[2]) == INTVAL (operands[3])
9900 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
9901 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9902 : (!TARGET_64BIT)))
9903 : return -1;
9904 : *pnum_clobbers = 1;
9905 : return 1312; /* *extenddi2_doubleword_highpart */
9906 :
9907 : default:
9908 : return -1;
9909 : }
9910 : }
9911 :
9912 : int
9913 : recog_116 (rtx x1 ATTRIBUTE_UNUSED,
9914 : rtx_insn *insn ATTRIBUTE_UNUSED,
9915 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9916 : {
9917 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9918 : rtx x2, x3, x4;
9919 : int res ATTRIBUTE_UNUSED;
9920 : if (pnum_clobbers == NULL)
9921 : return -1;
9922 : x2 = XEXP (x1, 0);
9923 : operands[0] = x2;
9924 : x3 = XEXP (x1, 1);
9925 : x4 = XEXP (x3, 0);
9926 : operands[1] = x4;
9927 : switch (pattern132 (x3))
9928 : {
9929 : case 0:
9930 : *pnum_clobbers = 1;
9931 : return 1546; /* ctzsi2 */
9932 :
9933 : case 1:
9934 : if (!
9935 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9936 : (TARGET_64BIT))
9937 : return -1;
9938 : *pnum_clobbers = 1;
9939 : return 1547; /* ctzdi2 */
9940 :
9941 : default:
9942 : return -1;
9943 : }
9944 : }
9945 :
9946 : int
9947 : recog_117 (rtx x1 ATTRIBUTE_UNUSED,
9948 : rtx_insn *insn ATTRIBUTE_UNUSED,
9949 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9950 : {
9951 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9952 : rtx x2, x3, x4, x5, x6, x7, x8;
9953 : int res ATTRIBUTE_UNUSED;
9954 : x2 = XEXP (x1, 1);
9955 : if (GET_MODE (x2) != E_DImode)
9956 : return -1;
9957 : x3 = XEXP (x1, 0);
9958 : operands[0] = x3;
9959 : if (!register_operand (operands[0], E_DImode))
9960 : return -1;
9961 : x4 = XEXP (x2, 0);
9962 : if (GET_MODE (x4) != E_SImode)
9963 : return -1;
9964 : switch (GET_CODE (x4))
9965 : {
9966 : case CTZ:
9967 : if (pnum_clobbers == NULL)
9968 : return -1;
9969 : x5 = XEXP (x4, 0);
9970 : operands[1] = x5;
9971 : if (!nonimmediate_operand (operands[1], E_SImode)
9972 : || !
9973 : #line 21532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9974 : (TARGET_64BIT))
9975 : return -1;
9976 : *pnum_clobbers = 1;
9977 : return 1552; /* *ctzsidi2_sext */
9978 :
9979 : case XOR:
9980 : if (pnum_clobbers == NULL)
9981 : return -1;
9982 : x5 = XEXP (x4, 0);
9983 : if (GET_CODE (x5) != MINUS
9984 : || pattern442 (x4) != 0)
9985 : return -1;
9986 : x6 = XEXP (x5, 1);
9987 : x7 = XEXP (x6, 0);
9988 : operands[1] = x7;
9989 : if (!nonimmediate_operand (operands[1], E_SImode)
9990 : || !
9991 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9992 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
9993 : return -1;
9994 : *pnum_clobbers = 1;
9995 : return 1564; /* *bsr_2 */
9996 :
9997 : case UNSPEC:
9998 : if (XVECLEN (x4, 0) != 1
9999 : || XINT (x4, 1) != 50)
10000 : return -1;
10001 : x8 = XVECEXP (x4, 0, 0);
10002 : switch (GET_CODE (x8))
10003 : {
10004 : case REG:
10005 : case SUBREG:
10006 : operands[1] = x8;
10007 : switch (GET_MODE (operands[1]))
10008 : {
10009 : case E_V8SFmode:
10010 : if (register_operand (operands[1], E_V8SFmode)
10011 : && (
10012 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10013 : (TARGET_64BIT && TARGET_SSE) &&
10014 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10015 : (TARGET_AVX)))
10016 : return 8557; /* *avx_movmskps256_ext */
10017 : break;
10018 :
10019 : case E_V4SFmode:
10020 : if (register_operand (operands[1], E_V4SFmode)
10021 : &&
10022 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10023 : (TARGET_64BIT && TARGET_SSE))
10024 : return 8559; /* *sse_movmskps_ext */
10025 : break;
10026 :
10027 : case E_V4DFmode:
10028 : if (register_operand (operands[1], E_V4DFmode)
10029 : && (
10030 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10031 : (TARGET_64BIT && TARGET_SSE) &&
10032 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10033 : (TARGET_AVX)))
10034 : return 8561; /* *avx_movmskpd256_ext */
10035 : break;
10036 :
10037 : case E_V2DFmode:
10038 : if (register_operand (operands[1], E_V2DFmode)
10039 : && (
10040 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10041 : (TARGET_64BIT && TARGET_SSE) &&
10042 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10043 : (TARGET_SSE2)))
10044 : return 8563; /* *sse2_movmskpd_ext */
10045 : break;
10046 :
10047 : case E_V16QImode:
10048 : if (register_operand (operands[1], E_V16QImode)
10049 : &&
10050 : #line 22472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10051 : (TARGET_64BIT && TARGET_SSE2))
10052 : return 8605; /* *sse2_pmovmskb_ext */
10053 : break;
10054 :
10055 : default:
10056 : break;
10057 : }
10058 : if (GET_CODE (x8) != SUBREG)
10059 : return -1;
10060 : switch (pattern1098 (x8))
10061 : {
10062 : case 0:
10063 : if (!(
10064 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10065 : (TARGET_64BIT && TARGET_SSE) &&
10066 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10067 : (TARGET_AVX)))
10068 : return -1;
10069 : return 8581; /* *avx_movmskps256_ext_lt_avx512 */
10070 :
10071 : case 1:
10072 : if (!
10073 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10074 : (TARGET_64BIT && TARGET_SSE))
10075 : return -1;
10076 : return 8583; /* *sse_movmskps_ext_lt_avx512 */
10077 :
10078 : case 2:
10079 : if (!(
10080 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10081 : (TARGET_64BIT && TARGET_SSE) &&
10082 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10083 : (TARGET_AVX)))
10084 : return -1;
10085 : return 8585; /* *avx_movmskpd256_ext_lt_avx512 */
10086 :
10087 : case 3:
10088 : if (!(
10089 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10090 : (TARGET_64BIT && TARGET_SSE) &&
10091 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10092 : (TARGET_SSE2)))
10093 : return -1;
10094 : return 8587; /* *sse2_movmskpd_ext_lt_avx512 */
10095 :
10096 : case 4:
10097 : if (!(
10098 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10099 : (TARGET_64BIT && TARGET_SSE) &&
10100 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10101 : (TARGET_AVX)))
10102 : return -1;
10103 : return 8593; /* *avx_movmskps256_ext_shift */
10104 :
10105 : case 5:
10106 : if (!
10107 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10108 : (TARGET_64BIT && TARGET_SSE))
10109 : return -1;
10110 : return 8595; /* *sse_movmskps_ext_shift */
10111 :
10112 : case 6:
10113 : if (!(
10114 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10115 : (TARGET_64BIT && TARGET_SSE) &&
10116 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10117 : (TARGET_AVX)))
10118 : return -1;
10119 : return 8597; /* *avx_movmskpd256_ext_shift */
10120 :
10121 : case 7:
10122 : if (!(
10123 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10124 : (TARGET_64BIT && TARGET_SSE) &&
10125 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10126 : (TARGET_SSE2)))
10127 : return -1;
10128 : return 8599; /* *sse2_movmskpd_ext_shift */
10129 :
10130 : default:
10131 : return -1;
10132 : }
10133 :
10134 : case LT:
10135 : switch (pattern995 (x8))
10136 : {
10137 : case 0:
10138 : if (!(
10139 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10140 : (TARGET_64BIT && TARGET_SSE) &&
10141 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10142 : (TARGET_AVX)))
10143 : return -1;
10144 : return 8573; /* *avx_movmskps256_ext_lt */
10145 :
10146 : case 1:
10147 : if (!
10148 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10149 : (TARGET_64BIT && TARGET_SSE))
10150 : return -1;
10151 : return 8575; /* *sse_movmskps_ext_lt */
10152 :
10153 : case 2:
10154 : if (!(
10155 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10156 : (TARGET_64BIT && TARGET_SSE) &&
10157 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10158 : (TARGET_AVX)))
10159 : return -1;
10160 : return 8577; /* *avx_movmskpd256_ext_lt */
10161 :
10162 : case 3:
10163 : if (!(
10164 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10165 : (TARGET_64BIT && TARGET_SSE) &&
10166 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10167 : (TARGET_SSE2)))
10168 : return -1;
10169 : return 8579; /* *sse2_movmskpd_ext_lt */
10170 :
10171 : case 4:
10172 : if (!
10173 : #line 22668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10174 : (TARGET_64BIT && TARGET_SSE2))
10175 : return -1;
10176 : return 8615; /* *sse2_pmovmskb_ext_lt */
10177 :
10178 : default:
10179 : return -1;
10180 : }
10181 :
10182 : case VEC_MERGE:
10183 : switch (pattern985 (x8))
10184 : {
10185 : case 0:
10186 : if (!(
10187 : #line 22697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10188 : (TARGET_64BIT && TARGET_SSE2) &&
10189 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10190 : (TARGET_AVX2)))
10191 : return -1;
10192 : return 8616; /* *sse2_pmovmskb_ext_lt_avx512 */
10193 :
10194 : case 1:
10195 : if (!
10196 : #line 22697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10197 : (TARGET_64BIT && TARGET_SSE2))
10198 : return -1;
10199 : return 8617; /* *sse2_pmovmskb_ext_lt_avx512 */
10200 :
10201 : default:
10202 : return -1;
10203 : }
10204 :
10205 : default:
10206 : return -1;
10207 : }
10208 :
10209 : default:
10210 : return -1;
10211 : }
10212 : }
10213 :
10214 : int
10215 : recog_128 (rtx x1 ATTRIBUTE_UNUSED,
10216 : rtx_insn *insn ATTRIBUTE_UNUSED,
10217 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10218 : {
10219 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10220 : rtx x2, x3, x4, x5;
10221 : int res ATTRIBUTE_UNUSED;
10222 : x2 = XEXP (x1, 1);
10223 : x3 = XEXP (x2, 0);
10224 : x4 = XVECEXP (x3, 0, 0);
10225 : operands[1] = x4;
10226 : x5 = XEXP (x2, 2);
10227 : operands[3] = x5;
10228 : switch (GET_MODE (operands[0]))
10229 : {
10230 : case E_V8HImode:
10231 : if (pattern644 (x2,
10232 : E_V8HImode,
10233 : E_QImode,
10234 : E_V8HFmode) != 0
10235 : || !(
10236 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10237 : (TARGET_AVX512F) && (
10238 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10239 : (TARGET_AVX512FP16) &&
10240 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10241 : (TARGET_AVX512VL))))
10242 : return -1;
10243 : return 4606; /* unspec_avx512fp16_fix_truncv8hi2_mask */
10244 :
10245 : case E_V16HImode:
10246 : if (pattern644 (x2,
10247 : E_V16HImode,
10248 : E_HImode,
10249 : E_V16HFmode) != 0
10250 : || !(
10251 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10252 : (TARGET_AVX512F) && (
10253 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10254 : (TARGET_AVX512FP16) &&
10255 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10256 : (TARGET_AVX512VL))))
10257 : return -1;
10258 : return 4614; /* unspec_avx512fp16_fix_truncv16hi2_mask */
10259 :
10260 : case E_V32HImode:
10261 : if (pattern644 (x2,
10262 : E_V32HImode,
10263 : E_SImode,
10264 : E_V32HFmode) != 0
10265 : || !(
10266 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10267 : (TARGET_AVX512F) &&
10268 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10269 : (TARGET_AVX512FP16)))
10270 : return -1;
10271 : return 4622; /* unspec_avx512fp16_fix_truncv32hi2_mask */
10272 :
10273 : case E_V8SImode:
10274 : switch (pattern996 (x2,
10275 : E_V8SImode))
10276 : {
10277 : case 0:
10278 : if (!(
10279 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10280 : (TARGET_AVX512F) && (
10281 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10282 : (TARGET_AVX512FP16) &&
10283 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10284 : (TARGET_AVX512VL))))
10285 : return -1;
10286 : return 4630; /* unspec_avx512fp16_fix_truncv8si2_mask */
10287 :
10288 : case 1:
10289 : if (!(
10290 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10291 : (TARGET_AVX512F) &&
10292 : #line 9117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10293 : (TARGET_AVX && TARGET_AVX512VL)))
10294 : return -1;
10295 : return 4927; /* unspec_fix_truncv8sfv8si2_mask */
10296 :
10297 : case 2:
10298 : if (!
10299 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10300 : (TARGET_AVX512F))
10301 : return -1;
10302 : return 5061; /* unspec_fix_truncv8dfv8si2_mask */
10303 :
10304 : default:
10305 : return -1;
10306 : }
10307 :
10308 : case E_V16SImode:
10309 : switch (pattern997 (x2))
10310 : {
10311 : case 0:
10312 : if (!(
10313 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10314 : (TARGET_AVX512F) &&
10315 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10316 : (TARGET_AVX512FP16)))
10317 : return -1;
10318 : return 4638; /* unspec_avx512fp16_fix_truncv16si2_mask */
10319 :
10320 : case 1:
10321 : if (!
10322 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10323 : (TARGET_AVX512F))
10324 : return -1;
10325 : return 4912; /* unspec_fix_truncv16sfv16si2_mask */
10326 :
10327 : default:
10328 : return -1;
10329 : }
10330 :
10331 : case E_V8DImode:
10332 : switch (pattern998 (x2))
10333 : {
10334 : case 0:
10335 : if (!(
10336 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10337 : (TARGET_AVX512F) &&
10338 : #line 8202 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10339 : (TARGET_AVX512FP16)))
10340 : return -1;
10341 : return 4646; /* unspec_avx512fp16_fix_truncv8di2_mask */
10342 :
10343 : case 1:
10344 : if (!(
10345 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10346 : (TARGET_AVX512F) &&
10347 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10348 : (TARGET_AVX512DQ && 1)))
10349 : return -1;
10350 : return 5090; /* unspec_fix_truncv8dfv8di2_mask */
10351 :
10352 : case 2:
10353 : if (!(
10354 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10355 : (TARGET_AVX512F) &&
10356 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10357 : (TARGET_AVX512DQ && 1)))
10358 : return -1;
10359 : return 5138; /* unspec_fix_truncv8sfv8di2_mask */
10360 :
10361 : default:
10362 : return -1;
10363 : }
10364 :
10365 : case E_V4SImode:
10366 : if (pattern142 (x2,
10367 : E_V4SImode,
10368 : E_QImode) != 0)
10369 : return -1;
10370 : switch (GET_MODE (operands[1]))
10371 : {
10372 : case E_V8HFmode:
10373 : if (!register_operand (operands[1], E_V8HFmode)
10374 : || !(
10375 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10376 : (TARGET_AVX512F) &&
10377 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10378 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10379 : return -1;
10380 : return 4701; /* unspec_avx512fp16_fix_truncv4si2_mask */
10381 :
10382 : case E_V4SFmode:
10383 : if (!vector_operand (operands[1], E_V4SFmode)
10384 : || !(
10385 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10386 : (TARGET_AVX512F) &&
10387 : #line 9136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10388 : (TARGET_SSE2 && TARGET_AVX512VL)))
10389 : return -1;
10390 : return 4931; /* unspec_fix_truncv4sfv4si2_mask */
10391 :
10392 : case E_V4DFmode:
10393 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
10394 : || !(
10395 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10396 : (TARGET_AVX512F) &&
10397 : #line 9980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10398 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F))))
10399 : return -1;
10400 : return 5081; /* unspec_fix_truncv4dfv4si2_mask */
10401 :
10402 : case E_V2DFmode:
10403 : if (!vector_operand (operands[1], E_V2DFmode)
10404 : || !(
10405 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10406 : (TARGET_AVX512F) &&
10407 : #line 10262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10408 : (TARGET_SSE2 && TARGET_AVX512VL)))
10409 : return -1;
10410 : return 5177; /* unspec_sse2_cvttpd2dq_mask */
10411 :
10412 : default:
10413 : return -1;
10414 : }
10415 :
10416 : case E_V4DImode:
10417 : switch (pattern999 (x2))
10418 : {
10419 : case 0:
10420 : if (!(
10421 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10422 : (TARGET_AVX512F) &&
10423 : #line 8240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10424 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10425 : return -1;
10426 : return 4705; /* unspec_avx512fp16_fix_truncv4di2_mask */
10427 :
10428 : case 1:
10429 : if (!(
10430 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10431 : (TARGET_AVX512F) && (
10432 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10433 : (TARGET_AVX512DQ && 1) &&
10434 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10435 : (TARGET_AVX512VL))))
10436 : return -1;
10437 : return 5097; /* unspec_fix_truncv4dfv4di2_mask */
10438 :
10439 : case 2:
10440 : if (!(
10441 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10442 : (TARGET_AVX512F) && (
10443 : #line 10062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10444 : (TARGET_AVX512DQ && 1) &&
10445 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10446 : (TARGET_AVX512VL))))
10447 : return -1;
10448 : return 5145; /* unspec_fix_truncv4sfv4di2_mask */
10449 :
10450 : default:
10451 : return -1;
10452 : }
10453 :
10454 : case E_V2DImode:
10455 : switch (pattern1000 (x2))
10456 : {
10457 : case 0:
10458 : if (!(
10459 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10460 : (TARGET_AVX512F) &&
10461 : #line 8290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10462 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10463 : return -1;
10464 : return 4725; /* unspec_avx512fp16_fix_truncv2di2_mask */
10465 :
10466 : case 1:
10467 : if (!(
10468 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10469 : (TARGET_AVX512F) && (
10470 : #line 10019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10471 : (TARGET_AVX512DQ && 1) &&
10472 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10473 : (TARGET_AVX512VL))))
10474 : return -1;
10475 : return 5101; /* unspec_fix_truncv2dfv2di2_mask */
10476 :
10477 : case 2:
10478 : if (!(
10479 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10480 : (TARGET_AVX512F) &&
10481 : #line 10083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10482 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
10483 : return -1;
10484 : return 5161; /* unspec_avx512dq_fix_truncv2sfv2di2_mask */
10485 :
10486 : default:
10487 : return -1;
10488 : }
10489 :
10490 : default:
10491 : return -1;
10492 : }
10493 : }
10494 :
10495 : int
10496 : recog_136 (rtx x1 ATTRIBUTE_UNUSED,
10497 : rtx_insn *insn ATTRIBUTE_UNUSED,
10498 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10499 : {
10500 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10501 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
10502 : int res ATTRIBUTE_UNUSED;
10503 : x2 = XEXP (x1, 1);
10504 : x3 = XEXP (x2, 0);
10505 : x4 = XVECEXP (x3, 0, 2);
10506 : operands[3] = x4;
10507 : x5 = XEXP (x2, 1);
10508 : switch (GET_CODE (x5))
10509 : {
10510 : case REG:
10511 : case SUBREG:
10512 : x6 = XEXP (x2, 2);
10513 : operands[4] = x6;
10514 : switch (GET_MODE (operands[0]))
10515 : {
10516 : case E_V16SImode:
10517 : if (pattern1006 (x2,
10518 : E_V16SImode) == 0)
10519 : {
10520 : x7 = XVECEXP (x3, 0, 1);
10521 : operands[1] = x7;
10522 : x8 = XVECEXP (x3, 0, 0);
10523 : operands[2] = x8;
10524 : if (nonimmediate_operand (operands[3], E_V16SImode)
10525 : && register_operand (operands[4], E_HImode)
10526 : && rtx_equal_p (x5, operands[2])
10527 : &&
10528 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10529 : (TARGET_AVX512F))
10530 : return 9438; /* *avx512f_vpermi2varv16si3_mask */
10531 : operands[2] = x7;
10532 : operands[1] = x8;
10533 : if (nonimmediate_operand (operands[3], E_V16SImode)
10534 : && register_operand (operands[4], E_HImode)
10535 : && rtx_equal_p (x5, operands[2])
10536 : &&
10537 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10538 : (TARGET_AVX512F))
10539 : return 9504; /* avx512f_vpermt2varv16si3_mask */
10540 : }
10541 : break;
10542 :
10543 : case E_V8DImode:
10544 : if (pattern1006 (x2,
10545 : E_V8DImode) == 0)
10546 : {
10547 : x7 = XVECEXP (x3, 0, 1);
10548 : operands[1] = x7;
10549 : x8 = XVECEXP (x3, 0, 0);
10550 : operands[2] = x8;
10551 : if (nonimmediate_operand (operands[3], E_V8DImode)
10552 : && register_operand (operands[4], E_QImode)
10553 : && rtx_equal_p (x5, operands[2])
10554 : &&
10555 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10556 : (TARGET_AVX512F))
10557 : return 9439; /* *avx512f_vpermi2varv8di3_mask */
10558 : operands[2] = x7;
10559 : operands[1] = x8;
10560 : if (nonimmediate_operand (operands[3], E_V8DImode)
10561 : && register_operand (operands[4], E_QImode)
10562 : && rtx_equal_p (x5, operands[2])
10563 : &&
10564 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10565 : (TARGET_AVX512F))
10566 : return 9506; /* avx512f_vpermt2varv8di3_mask */
10567 : }
10568 : break;
10569 :
10570 : case E_V8SImode:
10571 : if (pattern1006 (x2,
10572 : E_V8SImode) == 0)
10573 : {
10574 : x7 = XVECEXP (x3, 0, 1);
10575 : operands[1] = x7;
10576 : x8 = XVECEXP (x3, 0, 0);
10577 : operands[2] = x8;
10578 : if (nonimmediate_operand (operands[3], E_V8SImode)
10579 : && register_operand (operands[4], E_QImode)
10580 : && rtx_equal_p (x5, operands[2])
10581 : && (
10582 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10583 : (TARGET_AVX512F) &&
10584 : #line 28848 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10585 : (TARGET_AVX512VL)))
10586 : return 9440; /* *avx512vl_vpermi2varv8si3_mask */
10587 : operands[2] = x7;
10588 : operands[1] = x8;
10589 : if (nonimmediate_operand (operands[3], E_V8SImode)
10590 : && register_operand (operands[4], E_QImode)
10591 : && rtx_equal_p (x5, operands[2])
10592 : && (
10593 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10594 : (TARGET_AVX512F) &&
10595 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10596 : (TARGET_AVX512VL)))
10597 : return 9508; /* avx512vl_vpermt2varv8si3_mask */
10598 : }
10599 : break;
10600 :
10601 : case E_V4SImode:
10602 : if (pattern1006 (x2,
10603 : E_V4SImode) == 0)
10604 : {
10605 : x7 = XVECEXP (x3, 0, 1);
10606 : operands[1] = x7;
10607 : x8 = XVECEXP (x3, 0, 0);
10608 : operands[2] = x8;
10609 : if (nonimmediate_operand (operands[3], E_V4SImode)
10610 : && register_operand (operands[4], E_QImode)
10611 : && rtx_equal_p (x5, operands[2])
10612 : && (
10613 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10614 : (TARGET_AVX512F) &&
10615 : #line 28848 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10616 : (TARGET_AVX512VL)))
10617 : return 9441; /* *avx512vl_vpermi2varv4si3_mask */
10618 : operands[2] = x7;
10619 : operands[1] = x8;
10620 : if (nonimmediate_operand (operands[3], E_V4SImode)
10621 : && register_operand (operands[4], E_QImode)
10622 : && rtx_equal_p (x5, operands[2])
10623 : && (
10624 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10625 : (TARGET_AVX512F) &&
10626 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10627 : (TARGET_AVX512VL)))
10628 : return 9512; /* avx512vl_vpermt2varv4si3_mask */
10629 : }
10630 : break;
10631 :
10632 : case E_V4DImode:
10633 : if (pattern1006 (x2,
10634 : E_V4DImode) == 0)
10635 : {
10636 : x7 = XVECEXP (x3, 0, 1);
10637 : operands[1] = x7;
10638 : x8 = XVECEXP (x3, 0, 0);
10639 : operands[2] = x8;
10640 : if (nonimmediate_operand (operands[3], E_V4DImode)
10641 : && register_operand (operands[4], E_QImode)
10642 : && rtx_equal_p (x5, operands[2])
10643 : && (
10644 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10645 : (TARGET_AVX512F) &&
10646 : #line 28849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10647 : (TARGET_AVX512VL)))
10648 : return 9442; /* *avx512vl_vpermi2varv4di3_mask */
10649 : operands[2] = x7;
10650 : operands[1] = x8;
10651 : if (nonimmediate_operand (operands[3], E_V4DImode)
10652 : && register_operand (operands[4], E_QImode)
10653 : && rtx_equal_p (x5, operands[2])
10654 : && (
10655 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10656 : (TARGET_AVX512F) &&
10657 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10658 : (TARGET_AVX512VL)))
10659 : return 9510; /* avx512vl_vpermt2varv4di3_mask */
10660 : }
10661 : break;
10662 :
10663 : case E_V2DImode:
10664 : if (pattern1006 (x2,
10665 : E_V2DImode) == 0)
10666 : {
10667 : x7 = XVECEXP (x3, 0, 1);
10668 : operands[1] = x7;
10669 : x8 = XVECEXP (x3, 0, 0);
10670 : operands[2] = x8;
10671 : if (nonimmediate_operand (operands[3], E_V2DImode)
10672 : && register_operand (operands[4], E_QImode)
10673 : && rtx_equal_p (x5, operands[2])
10674 : && (
10675 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10676 : (TARGET_AVX512F) &&
10677 : #line 28849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10678 : (TARGET_AVX512VL)))
10679 : return 9443; /* *avx512vl_vpermi2varv2di3_mask */
10680 : operands[2] = x7;
10681 : operands[1] = x8;
10682 : if (nonimmediate_operand (operands[3], E_V2DImode)
10683 : && register_operand (operands[4], E_QImode)
10684 : && rtx_equal_p (x5, operands[2])
10685 : && (
10686 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10687 : (TARGET_AVX512F) &&
10688 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10689 : (TARGET_AVX512VL)))
10690 : return 9514; /* avx512vl_vpermt2varv2di3_mask */
10691 : }
10692 : break;
10693 :
10694 : case E_V32HImode:
10695 : if (pattern1006 (x2,
10696 : E_V32HImode) == 0)
10697 : {
10698 : x7 = XVECEXP (x3, 0, 1);
10699 : operands[1] = x7;
10700 : x8 = XVECEXP (x3, 0, 0);
10701 : operands[2] = x8;
10702 : if (nonimmediate_operand (operands[3], E_V32HImode)
10703 : && register_operand (operands[4], E_SImode)
10704 : && rtx_equal_p (x5, operands[2])
10705 : && (
10706 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10707 : (TARGET_AVX512F) &&
10708 : #line 28850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10709 : (TARGET_AVX512BW)))
10710 : return 9444; /* *avx512bw_vpermi2varv32hi3_mask */
10711 : operands[2] = x7;
10712 : operands[1] = x8;
10713 : if (nonimmediate_operand (operands[3], E_V32HImode)
10714 : && register_operand (operands[4], E_SImode)
10715 : && rtx_equal_p (x5, operands[2])
10716 : && (
10717 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10718 : (TARGET_AVX512F) &&
10719 : #line 28839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10720 : (TARGET_AVX512BW)))
10721 : return 9516; /* avx512bw_vpermt2varv32hi3_mask */
10722 : }
10723 : break;
10724 :
10725 : case E_V16HImode:
10726 : if (pattern1006 (x2,
10727 : E_V16HImode) == 0)
10728 : {
10729 : x7 = XVECEXP (x3, 0, 1);
10730 : operands[1] = x7;
10731 : x8 = XVECEXP (x3, 0, 0);
10732 : operands[2] = x8;
10733 : if (nonimmediate_operand (operands[3], E_V16HImode)
10734 : && register_operand (operands[4], E_HImode)
10735 : && rtx_equal_p (x5, operands[2])
10736 : && (
10737 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10738 : (TARGET_AVX512F) &&
10739 : #line 28851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10740 : (TARGET_AVX512BW && TARGET_AVX512VL)))
10741 : return 9445; /* *avx512vl_vpermi2varv16hi3_mask */
10742 : operands[2] = x7;
10743 : operands[1] = x8;
10744 : if (nonimmediate_operand (operands[3], E_V16HImode)
10745 : && register_operand (operands[4], E_HImode)
10746 : && rtx_equal_p (x5, operands[2])
10747 : && (
10748 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10749 : (TARGET_AVX512F) &&
10750 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10751 : (TARGET_AVX512BW && TARGET_AVX512VL)))
10752 : return 9517; /* avx512vl_vpermt2varv16hi3_mask */
10753 : }
10754 : break;
10755 :
10756 : case E_V8HImode:
10757 : if (pattern1006 (x2,
10758 : E_V8HImode) == 0)
10759 : {
10760 : x7 = XVECEXP (x3, 0, 1);
10761 : operands[1] = x7;
10762 : x8 = XVECEXP (x3, 0, 0);
10763 : operands[2] = x8;
10764 : if (nonimmediate_operand (operands[3], E_V8HImode)
10765 : && register_operand (operands[4], E_QImode)
10766 : && rtx_equal_p (x5, operands[2])
10767 : && (
10768 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10769 : (TARGET_AVX512F) &&
10770 : #line 28852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10771 : (TARGET_AVX512BW && TARGET_AVX512VL)))
10772 : return 9446; /* *avx512vl_vpermi2varv8hi3_mask */
10773 : operands[2] = x7;
10774 : operands[1] = x8;
10775 : if (nonimmediate_operand (operands[3], E_V8HImode)
10776 : && register_operand (operands[4], E_QImode)
10777 : && rtx_equal_p (x5, operands[2])
10778 : && (
10779 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10780 : (TARGET_AVX512F) &&
10781 : #line 28841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10782 : (TARGET_AVX512BW && TARGET_AVX512VL)))
10783 : return 9518; /* avx512vl_vpermt2varv8hi3_mask */
10784 : }
10785 : break;
10786 :
10787 : case E_V64QImode:
10788 : if (pattern1006 (x2,
10789 : E_V64QImode) == 0)
10790 : {
10791 : x7 = XVECEXP (x3, 0, 1);
10792 : operands[1] = x7;
10793 : x8 = XVECEXP (x3, 0, 0);
10794 : operands[2] = x8;
10795 : if (nonimmediate_operand (operands[3], E_V64QImode)
10796 : && register_operand (operands[4], E_DImode)
10797 : && rtx_equal_p (x5, operands[2])
10798 : && (
10799 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10800 : (TARGET_AVX512F) &&
10801 : #line 28853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10802 : (TARGET_AVX512VBMI)))
10803 : return 9447; /* *avx512bw_vpermi2varv64qi3_mask */
10804 : operands[2] = x7;
10805 : operands[1] = x8;
10806 : if (nonimmediate_operand (operands[3], E_V64QImode)
10807 : && register_operand (operands[4], E_DImode)
10808 : && rtx_equal_p (x5, operands[2])
10809 : && (
10810 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10811 : (TARGET_AVX512F) &&
10812 : #line 28842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10813 : (TARGET_AVX512VBMI)))
10814 : return 9519; /* avx512bw_vpermt2varv64qi3_mask */
10815 : }
10816 : break;
10817 :
10818 : case E_V32QImode:
10819 : if (pattern1006 (x2,
10820 : E_V32QImode) == 0)
10821 : {
10822 : x7 = XVECEXP (x3, 0, 1);
10823 : operands[1] = x7;
10824 : x8 = XVECEXP (x3, 0, 0);
10825 : operands[2] = x8;
10826 : if (nonimmediate_operand (operands[3], E_V32QImode)
10827 : && register_operand (operands[4], E_SImode)
10828 : && rtx_equal_p (x5, operands[2])
10829 : && (
10830 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10831 : (TARGET_AVX512F) &&
10832 : #line 28854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10833 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
10834 : return 9448; /* *avx512vl_vpermi2varv32qi3_mask */
10835 : operands[2] = x7;
10836 : operands[1] = x8;
10837 : if (nonimmediate_operand (operands[3], E_V32QImode)
10838 : && register_operand (operands[4], E_SImode)
10839 : && rtx_equal_p (x5, operands[2])
10840 : && (
10841 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10842 : (TARGET_AVX512F) &&
10843 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10844 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
10845 : return 9520; /* avx512vl_vpermt2varv32qi3_mask */
10846 : }
10847 : break;
10848 :
10849 : case E_V16QImode:
10850 : if (pattern1006 (x2,
10851 : E_V16QImode) == 0)
10852 : {
10853 : x7 = XVECEXP (x3, 0, 1);
10854 : operands[1] = x7;
10855 : x8 = XVECEXP (x3, 0, 0);
10856 : operands[2] = x8;
10857 : if (nonimmediate_operand (operands[3], E_V16QImode)
10858 : && register_operand (operands[4], E_HImode)
10859 : && rtx_equal_p (x5, operands[2])
10860 : && (
10861 : #line 28883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10862 : (TARGET_AVX512F) &&
10863 : #line 28855 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10864 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
10865 : return 9449; /* *avx512vl_vpermi2varv16qi3_mask */
10866 : operands[2] = x7;
10867 : operands[1] = x8;
10868 : if (nonimmediate_operand (operands[3], E_V16QImode)
10869 : && register_operand (operands[4], E_HImode)
10870 : && rtx_equal_p (x5, operands[2])
10871 : && (
10872 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10873 : (TARGET_AVX512F) &&
10874 : #line 28844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10875 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
10876 : return 9521; /* avx512vl_vpermt2varv16qi3_mask */
10877 : }
10878 : break;
10879 :
10880 : default:
10881 : break;
10882 : }
10883 : if (GET_CODE (x5) == SUBREG
10884 : && known_eq (SUBREG_BYTE (x5), 0))
10885 : {
10886 : x8 = XVECEXP (x3, 0, 0);
10887 : operands[2] = x8;
10888 : x7 = XVECEXP (x3, 0, 1);
10889 : operands[1] = x7;
10890 : x9 = XEXP (x5, 0);
10891 : if (rtx_equal_p (x9, operands[2]))
10892 : {
10893 : switch (GET_MODE (operands[0]))
10894 : {
10895 : case E_V16SFmode:
10896 : if (pattern1466 (x2,
10897 : E_V16SFmode,
10898 : E_V16SImode,
10899 : E_HImode) == 0
10900 : &&
10901 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10902 : (TARGET_AVX512F))
10903 : return 9450; /* *avx512f_vpermi2varv16sf3_mask */
10904 : break;
10905 :
10906 : case E_V8SFmode:
10907 : if (pattern1466 (x2,
10908 : E_V8SFmode,
10909 : E_V8SImode,
10910 : E_QImode) == 0
10911 : && (
10912 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10913 : (TARGET_AVX512F) &&
10914 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10915 : (TARGET_AVX512VL)))
10916 : return 9451; /* *avx512vl_vpermi2varv8sf3_mask */
10917 : break;
10918 :
10919 : case E_V4SFmode:
10920 : if (pattern1466 (x2,
10921 : E_V4SFmode,
10922 : E_V4SImode,
10923 : E_QImode) == 0
10924 : && (
10925 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10926 : (TARGET_AVX512F) &&
10927 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10928 : (TARGET_AVX512VL)))
10929 : return 9452; /* *avx512vl_vpermi2varv4sf3_mask */
10930 : break;
10931 :
10932 : case E_V8DFmode:
10933 : if (pattern1466 (x2,
10934 : E_V8DFmode,
10935 : E_V8DImode,
10936 : E_QImode) == 0
10937 : &&
10938 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10939 : (TARGET_AVX512F))
10940 : return 9453; /* *avx512f_vpermi2varv8df3_mask */
10941 : break;
10942 :
10943 : case E_V4DFmode:
10944 : if (pattern1466 (x2,
10945 : E_V4DFmode,
10946 : E_V4DImode,
10947 : E_QImode) == 0
10948 : && (
10949 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10950 : (TARGET_AVX512F) &&
10951 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10952 : (TARGET_AVX512VL)))
10953 : return 9454; /* *avx512vl_vpermi2varv4df3_mask */
10954 : break;
10955 :
10956 : case E_V2DFmode:
10957 : if (pattern1466 (x2,
10958 : E_V2DFmode,
10959 : E_V2DImode,
10960 : E_QImode) == 0
10961 : && (
10962 : #line 28899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10963 : (TARGET_AVX512F) &&
10964 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10965 : (TARGET_AVX512VL)))
10966 : return 9455; /* *avx512vl_vpermi2varv2df3_mask */
10967 : break;
10968 :
10969 : default:
10970 : break;
10971 : }
10972 : }
10973 : }
10974 : x8 = XVECEXP (x3, 0, 0);
10975 : operands[1] = x8;
10976 : x7 = XVECEXP (x3, 0, 1);
10977 : operands[2] = x7;
10978 : if (!rtx_equal_p (x5, operands[2]))
10979 : return -1;
10980 : switch (GET_MODE (operands[0]))
10981 : {
10982 : case E_V16SFmode:
10983 : if (pattern1282 (x2,
10984 : E_V16SFmode,
10985 : E_V16SImode,
10986 : E_HImode) != 0
10987 : || !
10988 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10989 : (TARGET_AVX512F))
10990 : return -1;
10991 : return 9505; /* avx512f_vpermt2varv16sf3_mask */
10992 :
10993 : case E_V8DFmode:
10994 : if (pattern1282 (x2,
10995 : E_V8DFmode,
10996 : E_V8DImode,
10997 : E_QImode) != 0
10998 : || !
10999 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11000 : (TARGET_AVX512F))
11001 : return -1;
11002 : return 9507; /* avx512f_vpermt2varv8df3_mask */
11003 :
11004 : case E_V8SFmode:
11005 : if (pattern1282 (x2,
11006 : E_V8SFmode,
11007 : E_V8SImode,
11008 : E_QImode) != 0
11009 : || !(
11010 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11011 : (TARGET_AVX512F) &&
11012 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11013 : (TARGET_AVX512VL)))
11014 : return -1;
11015 : return 9509; /* avx512vl_vpermt2varv8sf3_mask */
11016 :
11017 : case E_V4DFmode:
11018 : if (pattern1282 (x2,
11019 : E_V4DFmode,
11020 : E_V4DImode,
11021 : E_QImode) != 0
11022 : || !(
11023 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11024 : (TARGET_AVX512F) &&
11025 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11026 : (TARGET_AVX512VL)))
11027 : return -1;
11028 : return 9511; /* avx512vl_vpermt2varv4df3_mask */
11029 :
11030 : case E_V4SFmode:
11031 : if (pattern1282 (x2,
11032 : E_V4SFmode,
11033 : E_V4SImode,
11034 : E_QImode) != 0
11035 : || !(
11036 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11037 : (TARGET_AVX512F) &&
11038 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11039 : (TARGET_AVX512VL)))
11040 : return -1;
11041 : return 9513; /* avx512vl_vpermt2varv4sf3_mask */
11042 :
11043 : case E_V2DFmode:
11044 : if (pattern1282 (x2,
11045 : E_V2DFmode,
11046 : E_V2DImode,
11047 : E_QImode) != 0
11048 : || !(
11049 : #line 28959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11050 : (TARGET_AVX512F) &&
11051 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11052 : (TARGET_AVX512VL)))
11053 : return -1;
11054 : return 9515; /* avx512vl_vpermt2varv2df3_mask */
11055 :
11056 : default:
11057 : return -1;
11058 : }
11059 :
11060 : case CONST_INT:
11061 : case CONST_DOUBLE:
11062 : case CONST_VECTOR:
11063 : operands[4] = x5;
11064 : x8 = XVECEXP (x3, 0, 0);
11065 : operands[1] = x8;
11066 : x7 = XVECEXP (x3, 0, 1);
11067 : operands[2] = x7;
11068 : x6 = XEXP (x2, 2);
11069 : operands[5] = x6;
11070 : switch (GET_MODE (operands[0]))
11071 : {
11072 : case E_V16SImode:
11073 : if (pattern484 (x2,
11074 : E_V16SImode,
11075 : E_HImode) != 0
11076 : || !
11077 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11078 : (TARGET_AVX512F))
11079 : return -1;
11080 : return 9457; /* avx512f_vpermt2varv16si3_maskz_1 */
11081 :
11082 : case E_V16SFmode:
11083 : if (pattern1283 (x2,
11084 : E_V16SFmode,
11085 : E_HImode,
11086 : E_V16SImode) != 0
11087 : || !
11088 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11089 : (TARGET_AVX512F))
11090 : return -1;
11091 : return 9459; /* avx512f_vpermt2varv16sf3_maskz_1 */
11092 :
11093 : case E_V8DImode:
11094 : if (pattern484 (x2,
11095 : E_V8DImode,
11096 : E_QImode) != 0
11097 : || !
11098 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11099 : (TARGET_AVX512F))
11100 : return -1;
11101 : return 9461; /* avx512f_vpermt2varv8di3_maskz_1 */
11102 :
11103 : case E_V8DFmode:
11104 : if (pattern1283 (x2,
11105 : E_V8DFmode,
11106 : E_QImode,
11107 : E_V8DImode) != 0
11108 : || !
11109 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11110 : (TARGET_AVX512F))
11111 : return -1;
11112 : return 9463; /* avx512f_vpermt2varv8df3_maskz_1 */
11113 :
11114 : case E_V8SImode:
11115 : if (pattern484 (x2,
11116 : E_V8SImode,
11117 : E_QImode) != 0
11118 : || !(
11119 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11120 : (TARGET_AVX512F) &&
11121 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11122 : (TARGET_AVX512VL)))
11123 : return -1;
11124 : return 9465; /* avx512vl_vpermt2varv8si3_maskz_1 */
11125 :
11126 : case E_V8SFmode:
11127 : if (pattern1283 (x2,
11128 : E_V8SFmode,
11129 : E_QImode,
11130 : E_V8SImode) != 0
11131 : || !(
11132 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11133 : (TARGET_AVX512F) &&
11134 : #line 28835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11135 : (TARGET_AVX512VL)))
11136 : return -1;
11137 : return 9467; /* avx512vl_vpermt2varv8sf3_maskz_1 */
11138 :
11139 : case E_V4DImode:
11140 : if (pattern484 (x2,
11141 : E_V4DImode,
11142 : E_QImode) != 0
11143 : || !(
11144 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11145 : (TARGET_AVX512F) &&
11146 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11147 : (TARGET_AVX512VL)))
11148 : return -1;
11149 : return 9469; /* avx512vl_vpermt2varv4di3_maskz_1 */
11150 :
11151 : case E_V4DFmode:
11152 : if (pattern1283 (x2,
11153 : E_V4DFmode,
11154 : E_QImode,
11155 : E_V4DImode) != 0
11156 : || !(
11157 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11158 : (TARGET_AVX512F) &&
11159 : #line 28836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11160 : (TARGET_AVX512VL)))
11161 : return -1;
11162 : return 9471; /* avx512vl_vpermt2varv4df3_maskz_1 */
11163 :
11164 : case E_V4SImode:
11165 : if (pattern484 (x2,
11166 : E_V4SImode,
11167 : E_QImode) != 0
11168 : || !(
11169 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11170 : (TARGET_AVX512F) &&
11171 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11172 : (TARGET_AVX512VL)))
11173 : return -1;
11174 : return 9473; /* avx512vl_vpermt2varv4si3_maskz_1 */
11175 :
11176 : case E_V4SFmode:
11177 : if (pattern1283 (x2,
11178 : E_V4SFmode,
11179 : E_QImode,
11180 : E_V4SImode) != 0
11181 : || !(
11182 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11183 : (TARGET_AVX512F) &&
11184 : #line 28837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11185 : (TARGET_AVX512VL)))
11186 : return -1;
11187 : return 9475; /* avx512vl_vpermt2varv4sf3_maskz_1 */
11188 :
11189 : case E_V2DImode:
11190 : if (pattern484 (x2,
11191 : E_V2DImode,
11192 : E_QImode) != 0
11193 : || !(
11194 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11195 : (TARGET_AVX512F) &&
11196 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11197 : (TARGET_AVX512VL)))
11198 : return -1;
11199 : return 9477; /* avx512vl_vpermt2varv2di3_maskz_1 */
11200 :
11201 : case E_V2DFmode:
11202 : if (pattern1283 (x2,
11203 : E_V2DFmode,
11204 : E_QImode,
11205 : E_V2DImode) != 0
11206 : || !(
11207 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11208 : (TARGET_AVX512F) &&
11209 : #line 28838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11210 : (TARGET_AVX512VL)))
11211 : return -1;
11212 : return 9479; /* avx512vl_vpermt2varv2df3_maskz_1 */
11213 :
11214 : case E_V32HImode:
11215 : if (pattern484 (x2,
11216 : E_V32HImode,
11217 : E_SImode) != 0
11218 : || !(
11219 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11220 : (TARGET_AVX512F) &&
11221 : #line 28839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11222 : (TARGET_AVX512BW)))
11223 : return -1;
11224 : return 9481; /* avx512bw_vpermt2varv32hi3_maskz_1 */
11225 :
11226 : case E_V16HImode:
11227 : if (pattern484 (x2,
11228 : E_V16HImode,
11229 : E_HImode) != 0
11230 : || !(
11231 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11232 : (TARGET_AVX512F) &&
11233 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11234 : (TARGET_AVX512BW && TARGET_AVX512VL)))
11235 : return -1;
11236 : return 9483; /* avx512vl_vpermt2varv16hi3_maskz_1 */
11237 :
11238 : case E_V8HImode:
11239 : if (pattern484 (x2,
11240 : E_V8HImode,
11241 : E_QImode) != 0
11242 : || !(
11243 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11244 : (TARGET_AVX512F) &&
11245 : #line 28841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11246 : (TARGET_AVX512BW && TARGET_AVX512VL)))
11247 : return -1;
11248 : return 9485; /* avx512vl_vpermt2varv8hi3_maskz_1 */
11249 :
11250 : case E_V64QImode:
11251 : if (pattern484 (x2,
11252 : E_V64QImode,
11253 : E_DImode) != 0
11254 : || !(
11255 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11256 : (TARGET_AVX512F) &&
11257 : #line 28842 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11258 : (TARGET_AVX512VBMI)))
11259 : return -1;
11260 : return 9487; /* avx512bw_vpermt2varv64qi3_maskz_1 */
11261 :
11262 : case E_V32QImode:
11263 : if (pattern484 (x2,
11264 : E_V32QImode,
11265 : E_SImode) != 0
11266 : || !(
11267 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11268 : (TARGET_AVX512F) &&
11269 : #line 28843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11270 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
11271 : return -1;
11272 : return 9489; /* avx512vl_vpermt2varv32qi3_maskz_1 */
11273 :
11274 : case E_V16QImode:
11275 : if (pattern484 (x2,
11276 : E_V16QImode,
11277 : E_HImode) != 0
11278 : || !(
11279 : #line 28926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11280 : (TARGET_AVX512F) &&
11281 : #line 28844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11282 : (TARGET_AVX512VBMI && TARGET_AVX512VL)))
11283 : return -1;
11284 : return 9491; /* avx512vl_vpermt2varv16qi3_maskz_1 */
11285 :
11286 : case E_V32HFmode:
11287 : if (pattern1283 (x2,
11288 : E_V32HFmode,
11289 : E_SImode,
11290 : E_V32HImode) != 0
11291 : || !
11292 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11293 : (TARGET_AVX512BW))
11294 : return -1;
11295 : return 9493; /* avx512bw_vpermt2varv32hf3_maskz_1 */
11296 :
11297 : case E_V16HFmode:
11298 : if (pattern1283 (x2,
11299 : E_V16HFmode,
11300 : E_HImode,
11301 : E_V16HImode) != 0
11302 : || !(
11303 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11304 : (TARGET_AVX512BW) &&
11305 : #line 548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11306 : (TARGET_AVX512VL)))
11307 : return -1;
11308 : return 9495; /* avx512vl_vpermt2varv16hf3_maskz_1 */
11309 :
11310 : case E_V8HFmode:
11311 : if (pattern1283 (x2,
11312 : E_V8HFmode,
11313 : E_QImode,
11314 : E_V8HImode) != 0
11315 : || !(
11316 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11317 : (TARGET_AVX512BW) &&
11318 : #line 548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11319 : (TARGET_AVX512VL)))
11320 : return -1;
11321 : return 9497; /* avx512fp16_vpermt2varv8hf3_maskz_1 */
11322 :
11323 : case E_V32BFmode:
11324 : if (pattern1283 (x2,
11325 : E_V32BFmode,
11326 : E_SImode,
11327 : E_V32HImode) != 0
11328 : || !
11329 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11330 : (TARGET_AVX512BW))
11331 : return -1;
11332 : return 9499; /* avx512bw_vpermt2varv32bf3_maskz_1 */
11333 :
11334 : case E_V16BFmode:
11335 : if (pattern1283 (x2,
11336 : E_V16BFmode,
11337 : E_HImode,
11338 : E_V16HImode) != 0
11339 : || !(
11340 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11341 : (TARGET_AVX512BW) &&
11342 : #line 549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11343 : (TARGET_AVX512VL)))
11344 : return -1;
11345 : return 9501; /* avx512vl_vpermt2varv16bf3_maskz_1 */
11346 :
11347 : case E_V8BFmode:
11348 : if (pattern1283 (x2,
11349 : E_V8BFmode,
11350 : E_QImode,
11351 : E_V8HImode) != 0
11352 : || !(
11353 : #line 28941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11354 : (TARGET_AVX512BW) &&
11355 : #line 549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11356 : (TARGET_AVX512VL)))
11357 : return -1;
11358 : return 9503; /* avx512vl_vpermt2varv8bf3_maskz_1 */
11359 :
11360 : default:
11361 : return -1;
11362 : }
11363 :
11364 : default:
11365 : return -1;
11366 : }
11367 : }
11368 :
11369 : int
11370 : recog_163 (rtx x1 ATTRIBUTE_UNUSED,
11371 : rtx_insn *insn ATTRIBUTE_UNUSED,
11372 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11373 : {
11374 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11375 : rtx x2, x3, x4;
11376 : int res ATTRIBUTE_UNUSED;
11377 : x2 = XEXP (x1, 1);
11378 : x3 = XEXP (x2, 1);
11379 : switch (GET_CODE (x3))
11380 : {
11381 : case CONST_INT:
11382 : case CONST_DOUBLE:
11383 : case CONST_VECTOR:
11384 : operands[4] = x3;
11385 : x4 = XEXP (x2, 2);
11386 : switch (GET_CODE (x4))
11387 : {
11388 : case REG:
11389 : case SUBREG:
11390 : operands[5] = x4;
11391 : switch (GET_MODE (operands[0]))
11392 : {
11393 : case E_V4SFmode:
11394 : if (pattern1400 (x2,
11395 : E_V4SFmode) != 0)
11396 : return -1;
11397 : if (nonimmediate_operand (operands[1], E_V4SFmode)
11398 : && nonimmediate_operand (operands[2], E_V4SFmode)
11399 : && nonimmediate_operand (operands[3], E_V4SFmode)
11400 : &&
11401 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11402 : (TARGET_FMA || TARGET_FMA4))
11403 : return 4058; /* *fma_fnmsub_v4sf */
11404 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
11405 : || !bcst_vector_operand (operands[2], E_V4SFmode)
11406 : || !bcst_vector_operand (operands[3], E_V4SFmode)
11407 : || !(
11408 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11409 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11410 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11411 : (TARGET_AVX512VL)))
11412 : return -1;
11413 : return 4090; /* fma_fnmsub_v4sf_maskz_1 */
11414 :
11415 : case E_V2DFmode:
11416 : if (pattern1400 (x2,
11417 : E_V2DFmode) != 0)
11418 : return -1;
11419 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11420 : && nonimmediate_operand (operands[2], E_V2DFmode)
11421 : && nonimmediate_operand (operands[3], E_V2DFmode)
11422 : &&
11423 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11424 : (TARGET_FMA || TARGET_FMA4))
11425 : return 4062; /* *fma_fnmsub_v2df */
11426 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
11427 : || !bcst_vector_operand (operands[2], E_V2DFmode)
11428 : || !bcst_vector_operand (operands[3], E_V2DFmode)
11429 : || !(
11430 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11431 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11432 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11433 : (TARGET_AVX512VL)))
11434 : return -1;
11435 : return 4099; /* fma_fnmsub_v2df_maskz_1 */
11436 :
11437 : case E_V8SFmode:
11438 : if (pattern1400 (x2,
11439 : E_V8SFmode) != 0)
11440 : return -1;
11441 : if (nonimmediate_operand (operands[1], E_V8SFmode)
11442 : && nonimmediate_operand (operands[2], E_V8SFmode)
11443 : && nonimmediate_operand (operands[3], E_V8SFmode)
11444 : &&
11445 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11446 : (TARGET_FMA || TARGET_FMA4))
11447 : return 4066; /* *fma_fnmsub_v8sf */
11448 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
11449 : || !bcst_vector_operand (operands[2], E_V8SFmode)
11450 : || !bcst_vector_operand (operands[3], E_V8SFmode)
11451 : || !(
11452 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11453 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11454 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11455 : (TARGET_AVX512VL)))
11456 : return -1;
11457 : return 4088; /* fma_fnmsub_v8sf_maskz_1 */
11458 :
11459 : case E_V4DFmode:
11460 : if (pattern1400 (x2,
11461 : E_V4DFmode) != 0)
11462 : return -1;
11463 : if (nonimmediate_operand (operands[1], E_V4DFmode)
11464 : && nonimmediate_operand (operands[2], E_V4DFmode)
11465 : && nonimmediate_operand (operands[3], E_V4DFmode)
11466 : &&
11467 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11468 : (TARGET_FMA || TARGET_FMA4))
11469 : return 4070; /* *fma_fnmsub_v4df */
11470 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
11471 : || !bcst_vector_operand (operands[2], E_V4DFmode)
11472 : || !bcst_vector_operand (operands[3], E_V4DFmode)
11473 : || !(
11474 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11475 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11476 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11477 : (TARGET_AVX512VL)))
11478 : return -1;
11479 : return 4097; /* fma_fnmsub_v4df_maskz_1 */
11480 :
11481 : case E_V32HFmode:
11482 : if (pattern1401 (x2,
11483 : E_SImode,
11484 : E_V32HFmode) != 0
11485 : || !(
11486 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11487 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1) &&
11488 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11489 : (TARGET_AVX512FP16)))
11490 : return -1;
11491 : return 4074; /* fma_fnmsub_v32hf_maskz_1 */
11492 :
11493 : case E_V16HFmode:
11494 : if (pattern1401 (x2,
11495 : E_HImode,
11496 : E_V16HFmode) != 0
11497 : || !(
11498 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11499 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11500 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11501 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11502 : return -1;
11503 : return 4078; /* fma_fnmsub_v16hf_maskz_1 */
11504 :
11505 : case E_V8HFmode:
11506 : if (pattern1401 (x2,
11507 : E_QImode,
11508 : E_V8HFmode) != 0
11509 : || !(
11510 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11511 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11512 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11513 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11514 : return -1;
11515 : return 4080; /* fma_fnmsub_v8hf_maskz_1 */
11516 :
11517 : case E_V16SFmode:
11518 : if (pattern1401 (x2,
11519 : E_HImode,
11520 : E_V16SFmode) != 0
11521 : || !
11522 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11523 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11524 : return -1;
11525 : return 4084; /* fma_fnmsub_v16sf_maskz_1 */
11526 :
11527 : case E_V8DFmode:
11528 : if (pattern1401 (x2,
11529 : E_QImode,
11530 : E_V8DFmode) != 0
11531 : || !
11532 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11533 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11534 : return -1;
11535 : return 4093; /* fma_fnmsub_v8df_maskz_1 */
11536 :
11537 : case E_V32BFmode:
11538 : if (pattern1402 (x2,
11539 : E_SImode,
11540 : E_V32BFmode) != 0
11541 : || !
11542 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11543 : (TARGET_AVX10_2))
11544 : return -1;
11545 : return 10739; /* avx10_2_fnmsubbf16_v32bf_maskz_1 */
11546 :
11547 : case E_V16BFmode:
11548 : if (pattern1402 (x2,
11549 : E_HImode,
11550 : E_V16BFmode) != 0
11551 : || !
11552 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11553 : (TARGET_AVX10_2))
11554 : return -1;
11555 : return 10741; /* avx10_2_fnmsubbf16_v16bf_maskz_1 */
11556 :
11557 : case E_V8BFmode:
11558 : if (pattern1402 (x2,
11559 : E_QImode,
11560 : E_V8BFmode) != 0
11561 : || !
11562 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11563 : (TARGET_AVX10_2))
11564 : return -1;
11565 : return 10743; /* avx10_2_fnmsubbf16_v8bf_maskz_1 */
11566 :
11567 : default:
11568 : return -1;
11569 : }
11570 :
11571 : case CONST_INT:
11572 : if (XWINT (x4, 0) != 1L)
11573 : return -1;
11574 : switch (GET_MODE (operands[0]))
11575 : {
11576 : case E_V4SFmode:
11577 : if (pattern1403 (x2,
11578 : E_V4SFmode) != 0
11579 : || !
11580 : #line 7351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11581 : (TARGET_FMA4))
11582 : return -1;
11583 : return 4360; /* *fma4i_vmfnmsub_v4sf */
11584 :
11585 : case E_V2DFmode:
11586 : if (pattern1403 (x2,
11587 : E_V2DFmode) != 0
11588 : || !(
11589 : #line 7351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11590 : (TARGET_FMA4) &&
11591 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11592 : (TARGET_SSE2)))
11593 : return -1;
11594 : return 4361; /* *fma4i_vmfnmsub_v2df */
11595 :
11596 : default:
11597 : return -1;
11598 : }
11599 :
11600 : default:
11601 : return -1;
11602 : }
11603 :
11604 : case REG:
11605 : case SUBREG:
11606 : case MEM:
11607 : switch (pattern648 (x2))
11608 : {
11609 : case 0:
11610 : if (pattern1303 (x2,
11611 : E_V32HFmode,
11612 : E_SImode) != 0)
11613 : return -1;
11614 : if (nonimmediate_operand (operands[1], E_V32HFmode)
11615 : && vector_operand (operands[3], E_V32HFmode)
11616 : && rtx_equal_p (x3, operands[1])
11617 : && (
11618 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11619 : (TARGET_AVX512F && 1) &&
11620 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11621 : (TARGET_AVX512FP16)))
11622 : return 4100; /* avx512bw_fnmsub_v32hf_mask */
11623 : if (!vector_operand (operands[1], E_V32HFmode)
11624 : || !nonimmediate_operand (operands[3], E_V32HFmode)
11625 : || !rtx_equal_p (x3, operands[3])
11626 : || !(
11627 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11628 : (TARGET_AVX512F) &&
11629 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11630 : (TARGET_AVX512FP16)))
11631 : return -1;
11632 : return 4112; /* avx512bw_fnmsub_v32hf_mask3 */
11633 :
11634 : case 1:
11635 : if (pattern1303 (x2,
11636 : E_V16HFmode,
11637 : E_HImode) != 0)
11638 : return -1;
11639 : if (nonimmediate_operand (operands[1], E_V16HFmode)
11640 : && vector_operand (operands[3], E_V16HFmode)
11641 : && rtx_equal_p (x3, operands[1])
11642 : && (
11643 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11644 : (TARGET_AVX512F && 1) &&
11645 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11646 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11647 : return 4102; /* avx512vl_fnmsub_v16hf_mask */
11648 : if (!vector_operand (operands[1], E_V16HFmode)
11649 : || !nonimmediate_operand (operands[3], E_V16HFmode)
11650 : || !rtx_equal_p (x3, operands[3])
11651 : || !(
11652 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11653 : (TARGET_AVX512F) &&
11654 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11655 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11656 : return -1;
11657 : return 4114; /* avx512vl_fnmsub_v16hf_mask3 */
11658 :
11659 : case 2:
11660 : if (pattern1303 (x2,
11661 : E_V8HFmode,
11662 : E_QImode) != 0)
11663 : return -1;
11664 : if (nonimmediate_operand (operands[1], E_V8HFmode)
11665 : && vector_operand (operands[3], E_V8HFmode)
11666 : && rtx_equal_p (x3, operands[1])
11667 : && (
11668 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11669 : (TARGET_AVX512F && 1) &&
11670 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11671 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11672 : return 4103; /* avx512fp16_fnmsub_v8hf_mask */
11673 : if (!vector_operand (operands[1], E_V8HFmode)
11674 : || !nonimmediate_operand (operands[3], E_V8HFmode)
11675 : || !rtx_equal_p (x3, operands[3])
11676 : || !(
11677 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11678 : (TARGET_AVX512F) &&
11679 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11680 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11681 : return -1;
11682 : return 4116; /* avx512fp16_fnmsub_v8hf_mask3 */
11683 :
11684 : case 3:
11685 : if (pattern1303 (x2,
11686 : E_V16SFmode,
11687 : E_HImode) != 0)
11688 : return -1;
11689 : if (nonimmediate_operand (operands[1], E_V16SFmode)
11690 : && vector_operand (operands[3], E_V16SFmode)
11691 : && rtx_equal_p (x3, operands[1])
11692 : &&
11693 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11694 : (TARGET_AVX512F && 1))
11695 : return 4104; /* avx512f_fnmsub_v16sf_mask */
11696 : if (!vector_operand (operands[1], E_V16SFmode)
11697 : || !nonimmediate_operand (operands[3], E_V16SFmode)
11698 : || !rtx_equal_p (x3, operands[3])
11699 : || !
11700 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11701 : (TARGET_AVX512F))
11702 : return -1;
11703 : return 4118; /* avx512f_fnmsub_v16sf_mask3 */
11704 :
11705 : case 4:
11706 : if (pattern1303 (x2,
11707 : E_V8SFmode,
11708 : E_QImode) != 0)
11709 : return -1;
11710 : if (nonimmediate_operand (operands[1], E_V8SFmode)
11711 : && vector_operand (operands[3], E_V8SFmode)
11712 : && rtx_equal_p (x3, operands[1])
11713 : && (
11714 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11715 : (TARGET_AVX512F && 1) &&
11716 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11717 : (TARGET_AVX512VL)))
11718 : return 4106; /* avx512vl_fnmsub_v8sf_mask */
11719 : if (!vector_operand (operands[1], E_V8SFmode)
11720 : || !nonimmediate_operand (operands[3], E_V8SFmode)
11721 : || !rtx_equal_p (x3, operands[3])
11722 : || !(
11723 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11724 : (TARGET_AVX512F) &&
11725 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11726 : (TARGET_AVX512VL)))
11727 : return -1;
11728 : return 4120; /* avx512vl_fnmsub_v8sf_mask3 */
11729 :
11730 : case 5:
11731 : if (pattern1303 (x2,
11732 : E_V4SFmode,
11733 : E_QImode) != 0)
11734 : return -1;
11735 : if (nonimmediate_operand (operands[1], E_V4SFmode)
11736 : && vector_operand (operands[3], E_V4SFmode)
11737 : && rtx_equal_p (x3, operands[1])
11738 : && (
11739 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11740 : (TARGET_AVX512F && 1) &&
11741 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11742 : (TARGET_AVX512VL)))
11743 : return 4107; /* avx512vl_fnmsub_v4sf_mask */
11744 : if (!vector_operand (operands[1], E_V4SFmode)
11745 : || !nonimmediate_operand (operands[3], E_V4SFmode)
11746 : || !rtx_equal_p (x3, operands[3])
11747 : || !(
11748 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11749 : (TARGET_AVX512F) &&
11750 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11751 : (TARGET_AVX512VL)))
11752 : return -1;
11753 : return 4122; /* avx512vl_fnmsub_v4sf_mask3 */
11754 :
11755 : case 6:
11756 : if (pattern1303 (x2,
11757 : E_V8DFmode,
11758 : E_QImode) != 0)
11759 : return -1;
11760 : if (nonimmediate_operand (operands[1], E_V8DFmode)
11761 : && vector_operand (operands[3], E_V8DFmode)
11762 : && rtx_equal_p (x3, operands[1])
11763 : &&
11764 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11765 : (TARGET_AVX512F && 1))
11766 : return 4108; /* avx512f_fnmsub_v8df_mask */
11767 : if (!vector_operand (operands[1], E_V8DFmode)
11768 : || !nonimmediate_operand (operands[3], E_V8DFmode)
11769 : || !rtx_equal_p (x3, operands[3])
11770 : || !
11771 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11772 : (TARGET_AVX512F))
11773 : return -1;
11774 : return 4124; /* avx512f_fnmsub_v8df_mask3 */
11775 :
11776 : case 7:
11777 : if (pattern1303 (x2,
11778 : E_V4DFmode,
11779 : E_QImode) != 0)
11780 : return -1;
11781 : if (nonimmediate_operand (operands[1], E_V4DFmode)
11782 : && vector_operand (operands[3], E_V4DFmode)
11783 : && rtx_equal_p (x3, operands[1])
11784 : && (
11785 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11786 : (TARGET_AVX512F && 1) &&
11787 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11788 : (TARGET_AVX512VL)))
11789 : return 4110; /* avx512vl_fnmsub_v4df_mask */
11790 : if (!vector_operand (operands[1], E_V4DFmode)
11791 : || !nonimmediate_operand (operands[3], E_V4DFmode)
11792 : || !rtx_equal_p (x3, operands[3])
11793 : || !(
11794 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11795 : (TARGET_AVX512F) &&
11796 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11797 : (TARGET_AVX512VL)))
11798 : return -1;
11799 : return 4126; /* avx512vl_fnmsub_v4df_mask3 */
11800 :
11801 : case 8:
11802 : if (pattern1303 (x2,
11803 : E_V2DFmode,
11804 : E_QImode) != 0)
11805 : return -1;
11806 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11807 : && vector_operand (operands[3], E_V2DFmode)
11808 : && rtx_equal_p (x3, operands[1])
11809 : && (
11810 : #line 6651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11811 : (TARGET_AVX512F && 1) &&
11812 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11813 : (TARGET_AVX512VL)))
11814 : return 4111; /* avx512vl_fnmsub_v2df_mask */
11815 : if (!vector_operand (operands[1], E_V2DFmode)
11816 : || !nonimmediate_operand (operands[3], E_V2DFmode)
11817 : || !rtx_equal_p (x3, operands[3])
11818 : || !(
11819 : #line 6670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11820 : (TARGET_AVX512F) &&
11821 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11822 : (TARGET_AVX512VL)))
11823 : return -1;
11824 : return 4128; /* avx512vl_fnmsub_v2df_mask3 */
11825 :
11826 : case 9:
11827 : if (pattern1304 (x2,
11828 : E_SImode,
11829 : E_V32BFmode) != 0)
11830 : return -1;
11831 : if (rtx_equal_p (x3, operands[1])
11832 : &&
11833 : #line 33067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11834 : (TARGET_AVX10_2))
11835 : return 10744; /* avx10_2_fnmsubbf16_v32bf_mask */
11836 : if (!rtx_equal_p (x3, operands[3])
11837 : || !
11838 : #line 33086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11839 : (TARGET_AVX10_2))
11840 : return -1;
11841 : return 10747; /* avx10_2_fnmsubbf16_v32bf_mask3 */
11842 :
11843 : case 10:
11844 : if (pattern1304 (x2,
11845 : E_HImode,
11846 : E_V16BFmode) != 0)
11847 : return -1;
11848 : if (rtx_equal_p (x3, operands[1])
11849 : &&
11850 : #line 33067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11851 : (TARGET_AVX10_2))
11852 : return 10745; /* avx10_2_fnmsubbf16_v16bf_mask */
11853 : if (!rtx_equal_p (x3, operands[3])
11854 : || !
11855 : #line 33086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11856 : (TARGET_AVX10_2))
11857 : return -1;
11858 : return 10748; /* avx10_2_fnmsubbf16_v16bf_mask3 */
11859 :
11860 : case 11:
11861 : if (pattern1304 (x2,
11862 : E_QImode,
11863 : E_V8BFmode) != 0)
11864 : return -1;
11865 : if (rtx_equal_p (x3, operands[1])
11866 : &&
11867 : #line 33067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11868 : (TARGET_AVX10_2))
11869 : return 10746; /* avx10_2_fnmsubbf16_v8bf_mask */
11870 : if (!rtx_equal_p (x3, operands[3])
11871 : || !
11872 : #line 33086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11873 : (TARGET_AVX10_2))
11874 : return -1;
11875 : return 10749; /* avx10_2_fnmsubbf16_v8bf_mask3 */
11876 :
11877 : case 12:
11878 : if (pattern1404 (x2,
11879 : E_V8HFmode) != 0
11880 : || !(
11881 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11882 : (TARGET_FMA || TARGET_AVX512F) &&
11883 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11884 : (TARGET_AVX512FP16)))
11885 : return -1;
11886 : return 4276; /* *fmai_fnmsub_v8hf */
11887 :
11888 : case 13:
11889 : if (pattern1404 (x2,
11890 : E_V4SFmode) != 0
11891 : || !
11892 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11893 : (TARGET_FMA || TARGET_AVX512F))
11894 : return -1;
11895 : return 4278; /* *fmai_fnmsub_v4sf */
11896 :
11897 : case 14:
11898 : if (pattern1404 (x2,
11899 : E_V2DFmode) != 0
11900 : || !(
11901 : #line 6998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11902 : (TARGET_FMA || TARGET_AVX512F) &&
11903 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11904 : (TARGET_SSE2)))
11905 : return -1;
11906 : return 4280; /* *fmai_fnmsub_v2df */
11907 :
11908 : default:
11909 : return -1;
11910 : }
11911 :
11912 : default:
11913 : return -1;
11914 : }
11915 : }
11916 :
11917 : int
11918 : recog_170 (rtx x1 ATTRIBUTE_UNUSED,
11919 : rtx_insn *insn ATTRIBUTE_UNUSED,
11920 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11921 : {
11922 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11923 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11924 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
11925 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
11926 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
11927 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
11928 : int res ATTRIBUTE_UNUSED;
11929 : x2 = XEXP (x1, 1);
11930 : x3 = XEXP (x2, 0);
11931 : x4 = XEXP (x3, 0);
11932 : x5 = XEXP (x4, 0);
11933 : operands[1] = x5;
11934 : x6 = XEXP (x3, 1);
11935 : switch (XVECLEN (x6, 0))
11936 : {
11937 : case 16:
11938 : x7 = XVECEXP (x6, 0, 0);
11939 : if (GET_CODE (x7) != CONST_INT)
11940 : return -1;
11941 : x8 = XVECEXP (x6, 0, 1);
11942 : if (GET_CODE (x8) == CONST_INT)
11943 : {
11944 : res = recog_165 (x1, insn, pnum_clobbers);
11945 : if (res >= 0)
11946 : return res;
11947 : }
11948 : operands[3] = x7;
11949 : x9 = XEXP (x4, 1);
11950 : operands[2] = x9;
11951 : operands[4] = x8;
11952 : x10 = XVECEXP (x6, 0, 2);
11953 : operands[5] = x10;
11954 : x11 = XVECEXP (x6, 0, 3);
11955 : operands[6] = x11;
11956 : x12 = XVECEXP (x6, 0, 4);
11957 : operands[7] = x12;
11958 : x13 = XVECEXP (x6, 0, 5);
11959 : operands[8] = x13;
11960 : x14 = XVECEXP (x6, 0, 6);
11961 : operands[9] = x14;
11962 : x15 = XVECEXP (x6, 0, 7);
11963 : operands[10] = x15;
11964 : x16 = XVECEXP (x6, 0, 8);
11965 : operands[11] = x16;
11966 : x17 = XVECEXP (x6, 0, 9);
11967 : operands[12] = x17;
11968 : x18 = XVECEXP (x6, 0, 10);
11969 : operands[13] = x18;
11970 : x19 = XVECEXP (x6, 0, 11);
11971 : operands[14] = x19;
11972 : x20 = XVECEXP (x6, 0, 12);
11973 : operands[15] = x20;
11974 : x21 = XVECEXP (x6, 0, 13);
11975 : operands[16] = x21;
11976 : x22 = XVECEXP (x6, 0, 14);
11977 : operands[17] = x22;
11978 : x23 = XVECEXP (x6, 0, 15);
11979 : operands[18] = x23;
11980 : x24 = XEXP (x2, 1);
11981 : operands[19] = x24;
11982 : x25 = XEXP (x2, 2);
11983 : operands[20] = x25;
11984 : if (!register_operand (operands[20], E_HImode))
11985 : return -1;
11986 : switch (GET_MODE (operands[0]))
11987 : {
11988 : case E_V16SFmode:
11989 : if (pattern1659 (x2,
11990 : E_V16SFmode,
11991 : E_V32SFmode) != 0
11992 : || !nonimm_or_0_operand (operands[19], E_V16SFmode))
11993 : return -1;
11994 : if (const_0_to_3_operand (operands[3], E_VOIDmode)
11995 : && const_0_to_3_operand (operands[4], E_VOIDmode)
11996 : && const_16_to_19_operand (operands[5], E_VOIDmode)
11997 : && const_16_to_19_operand (operands[6], E_VOIDmode)
11998 : && const_4_to_7_operand (operands[7], E_VOIDmode)
11999 : && const_4_to_7_operand (operands[8], E_VOIDmode)
12000 : && const_20_to_23_operand (operands[9], E_VOIDmode)
12001 : && const_20_to_23_operand (operands[10], E_VOIDmode)
12002 : && const_8_to_11_operand (operands[11], E_VOIDmode)
12003 : && const_8_to_11_operand (operands[12], E_VOIDmode)
12004 : && const_24_to_27_operand (operands[13], E_VOIDmode)
12005 : && const_24_to_27_operand (operands[14], E_VOIDmode)
12006 : && const_12_to_15_operand (operands[15], E_VOIDmode)
12007 : && const_12_to_15_operand (operands[16], E_VOIDmode)
12008 : && const_28_to_31_operand (operands[17], E_VOIDmode)
12009 : && const_28_to_31_operand (operands[18], E_VOIDmode)
12010 : && (
12011 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12012 : (TARGET_AVX512F) &&
12013 : #line 14609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12014 : (TARGET_AVX512F
12015 : && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
12016 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
12017 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
12018 : && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4)
12019 : && INTVAL (operands[3]) == (INTVAL (operands[11]) - 8)
12020 : && INTVAL (operands[4]) == (INTVAL (operands[12]) - 8)
12021 : && INTVAL (operands[5]) == (INTVAL (operands[13]) - 8)
12022 : && INTVAL (operands[6]) == (INTVAL (operands[14]) - 8)
12023 : && INTVAL (operands[3]) == (INTVAL (operands[15]) - 12)
12024 : && INTVAL (operands[4]) == (INTVAL (operands[16]) - 12)
12025 : && INTVAL (operands[5]) == (INTVAL (operands[17]) - 12)
12026 : && INTVAL (operands[6]) == (INTVAL (operands[18]) - 12)))))
12027 : return 7227; /* avx512f_shufps512_1_mask */
12028 : if (!const_0_to_15_operand (operands[3], E_VOIDmode)
12029 : || pattern1900 () != 0
12030 : || !(
12031 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12032 : (TARGET_AVX512F) &&
12033 : #line 20753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12034 : (TARGET_AVX512F
12035 : && (INTVAL (operands[3]) & 3) == 0
12036 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12037 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
12038 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
12039 : && (INTVAL (operands[7]) & 3) == 0
12040 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12041 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
12042 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3
12043 : && (INTVAL (operands[11]) & 3) == 0
12044 : && INTVAL (operands[11]) == INTVAL (operands[12]) - 1
12045 : && INTVAL (operands[11]) == INTVAL (operands[13]) - 2
12046 : && INTVAL (operands[11]) == INTVAL (operands[14]) - 3
12047 : && (INTVAL (operands[15]) & 3) == 0
12048 : && INTVAL (operands[15]) == INTVAL (operands[16]) - 1
12049 : && INTVAL (operands[15]) == INTVAL (operands[17]) - 2
12050 : && INTVAL (operands[15]) == INTVAL (operands[18]) - 3)))
12051 : return -1;
12052 : return 8475; /* avx512f_shuf_f32x4_1_mask */
12053 :
12054 : case E_V16SImode:
12055 : if (pattern1659 (x2,
12056 : E_V16SImode,
12057 : E_V32SImode) != 0
12058 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
12059 : || pattern1900 () != 0
12060 : || !nonimm_or_0_operand (operands[19], E_V16SImode)
12061 : || !(
12062 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12063 : (TARGET_AVX512F) &&
12064 : #line 20753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12065 : (TARGET_AVX512F
12066 : && (INTVAL (operands[3]) & 3) == 0
12067 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12068 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
12069 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
12070 : && (INTVAL (operands[7]) & 3) == 0
12071 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12072 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
12073 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3
12074 : && (INTVAL (operands[11]) & 3) == 0
12075 : && INTVAL (operands[11]) == INTVAL (operands[12]) - 1
12076 : && INTVAL (operands[11]) == INTVAL (operands[13]) - 2
12077 : && INTVAL (operands[11]) == INTVAL (operands[14]) - 3
12078 : && (INTVAL (operands[15]) & 3) == 0
12079 : && INTVAL (operands[15]) == INTVAL (operands[16]) - 1
12080 : && INTVAL (operands[15]) == INTVAL (operands[17]) - 2
12081 : && INTVAL (operands[15]) == INTVAL (operands[18]) - 3)))
12082 : return -1;
12083 : return 8477; /* avx512f_shuf_i32x4_1_mask */
12084 :
12085 : default:
12086 : return -1;
12087 : }
12088 :
12089 : case 8:
12090 : x7 = XVECEXP (x6, 0, 0);
12091 : if (GET_CODE (x7) != CONST_INT)
12092 : return -1;
12093 : x8 = XVECEXP (x6, 0, 1);
12094 : if (GET_CODE (x8) == CONST_INT)
12095 : {
12096 : res = recog_166 (x1, insn, pnum_clobbers);
12097 : if (res >= 0)
12098 : return res;
12099 : }
12100 : operands[3] = x7;
12101 : x9 = XEXP (x4, 1);
12102 : operands[2] = x9;
12103 : operands[4] = x8;
12104 : x10 = XVECEXP (x6, 0, 2);
12105 : operands[5] = x10;
12106 : x11 = XVECEXP (x6, 0, 3);
12107 : operands[6] = x11;
12108 : x12 = XVECEXP (x6, 0, 4);
12109 : operands[7] = x12;
12110 : x13 = XVECEXP (x6, 0, 5);
12111 : operands[8] = x13;
12112 : x14 = XVECEXP (x6, 0, 6);
12113 : operands[9] = x14;
12114 : x15 = XVECEXP (x6, 0, 7);
12115 : operands[10] = x15;
12116 : x24 = XEXP (x2, 1);
12117 : operands[11] = x24;
12118 : x25 = XEXP (x2, 2);
12119 : operands[12] = x25;
12120 : if (!register_operand (operands[12], E_QImode))
12121 : return -1;
12122 : switch (GET_MODE (operands[0]))
12123 : {
12124 : case E_V8SFmode:
12125 : if (pattern1778 (x2,
12126 : E_V8SFmode,
12127 : E_V16SFmode) != 0)
12128 : return -1;
12129 : if (const_0_to_3_operand (operands[3], E_VOIDmode)
12130 : && const_0_to_3_operand (operands[4], E_VOIDmode)
12131 : && const_8_to_11_operand (operands[5], E_VOIDmode)
12132 : && const_8_to_11_operand (operands[6], E_VOIDmode)
12133 : && const_4_to_7_operand (operands[7], E_VOIDmode)
12134 : && const_4_to_7_operand (operands[8], E_VOIDmode)
12135 : && const_12_to_15_operand (operands[9], E_VOIDmode)
12136 : && const_12_to_15_operand (operands[10], E_VOIDmode)
12137 : && (
12138 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12139 : (TARGET_AVX512F) &&
12140 : #line 11806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12141 : (TARGET_AVX
12142 : && TARGET_AVX512VL
12143 : && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
12144 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
12145 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
12146 : && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4)))))
12147 : return 5285; /* avx_shufps256_1_mask */
12148 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
12149 : || pattern1875 () != 0
12150 : || !(
12151 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12152 : (TARGET_AVX512F) &&
12153 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12154 : (TARGET_AVX512VL
12155 : && (INTVAL (operands[3]) & 3) == 0
12156 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12157 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
12158 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
12159 : && (INTVAL (operands[7]) & 3) == 0
12160 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12161 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
12162 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3)))
12163 : return -1;
12164 : return 8473; /* avx512vl_shuf_f32x4_1_mask */
12165 :
12166 : case E_V8DFmode:
12167 : if (pattern1778 (x2,
12168 : E_V8DFmode,
12169 : E_V16DFmode) != 0)
12170 : return -1;
12171 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
12172 : && const_8_to_9_operand (operands[4], E_VOIDmode)
12173 : && const_2_to_3_operand (operands[5], E_VOIDmode)
12174 : && const_10_to_11_operand (operands[6], E_VOIDmode)
12175 : && const_4_to_5_operand (operands[7], E_VOIDmode)
12176 : && const_12_to_13_operand (operands[8], E_VOIDmode)
12177 : && const_6_to_7_operand (operands[9], E_VOIDmode)
12178 : && const_14_to_15_operand (operands[10], E_VOIDmode)
12179 : &&
12180 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12181 : (TARGET_AVX512F))
12182 : return 7229; /* avx512f_shufpd512_1_mask */
12183 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
12184 : || pattern1875 () != 0
12185 : || !(
12186 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12187 : (TARGET_AVX512F) &&
12188 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12189 : (TARGET_AVX512F
12190 : && (INTVAL (operands[3]) & 1) == 0
12191 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12192 : && (INTVAL (operands[5]) & 1) == 0
12193 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
12194 : && (INTVAL (operands[7]) & 1) == 0
12195 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12196 : && (INTVAL (operands[9]) & 1) == 0
12197 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1)))
12198 : return -1;
12199 : return 8463; /* avx512f_shuf_f64x2_1_mask */
12200 :
12201 : case E_V8DImode:
12202 : if (pattern1779 (x2,
12203 : E_V8DImode,
12204 : E_V16DImode) != 0
12205 : || !(
12206 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12207 : (TARGET_AVX512F) &&
12208 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12209 : (TARGET_AVX512F
12210 : && (INTVAL (operands[3]) & 1) == 0
12211 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12212 : && (INTVAL (operands[5]) & 1) == 0
12213 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
12214 : && (INTVAL (operands[7]) & 1) == 0
12215 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12216 : && (INTVAL (operands[9]) & 1) == 0
12217 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1)))
12218 : return -1;
12219 : return 8465; /* avx512f_shuf_i64x2_1_mask */
12220 :
12221 : case E_V8SImode:
12222 : if (pattern1779 (x2,
12223 : E_V8SImode,
12224 : E_V16SImode) != 0
12225 : || !(
12226 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12227 : (TARGET_AVX512F) &&
12228 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12229 : (TARGET_AVX512VL
12230 : && (INTVAL (operands[3]) & 3) == 0
12231 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12232 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
12233 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
12234 : && (INTVAL (operands[7]) & 3) == 0
12235 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
12236 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
12237 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3)))
12238 : return -1;
12239 : return 8471; /* avx512vl_shuf_i32x4_1_mask */
12240 :
12241 : default:
12242 : return -1;
12243 : }
12244 :
12245 : case 4:
12246 : x7 = XVECEXP (x6, 0, 0);
12247 : if (GET_CODE (x7) != CONST_INT)
12248 : return -1;
12249 : x8 = XVECEXP (x6, 0, 1);
12250 : if (GET_CODE (x8) == CONST_INT)
12251 : {
12252 : res = recog_167 (x1, insn, pnum_clobbers);
12253 : if (res >= 0)
12254 : return res;
12255 : }
12256 : operands[3] = x7;
12257 : x9 = XEXP (x4, 1);
12258 : operands[2] = x9;
12259 : operands[4] = x8;
12260 : x10 = XVECEXP (x6, 0, 2);
12261 : operands[5] = x10;
12262 : x11 = XVECEXP (x6, 0, 3);
12263 : operands[6] = x11;
12264 : x24 = XEXP (x2, 1);
12265 : operands[7] = x24;
12266 : x25 = XEXP (x2, 2);
12267 : operands[8] = x25;
12268 : if (!register_operand (operands[8], E_QImode))
12269 : return -1;
12270 : switch (GET_MODE (operands[0]))
12271 : {
12272 : case E_V4SFmode:
12273 : if (pattern1658 (x2,
12274 : E_V4SFmode,
12275 : E_V8SFmode) != 0
12276 : || !
12277 : #line 11859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12278 : (TARGET_AVX512VL))
12279 : return -1;
12280 : return 5286; /* sse_shufps_v4sf_mask */
12281 :
12282 : case E_V4DFmode:
12283 : if (pattern1659 (x2,
12284 : E_V4DFmode,
12285 : E_V8DFmode) != 0
12286 : || !nonimm_or_0_operand (operands[7], E_V4DFmode))
12287 : return -1;
12288 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
12289 : && const_4_to_5_operand (operands[4], E_VOIDmode)
12290 : && const_2_to_3_operand (operands[5], E_VOIDmode)
12291 : && const_6_to_7_operand (operands[6], E_VOIDmode)
12292 : && (
12293 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12294 : (TARGET_AVX512F) &&
12295 : #line 14723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12296 : (TARGET_AVX && TARGET_AVX512VL)))
12297 : return 7231; /* avx_shufpd256_1_mask */
12298 : if (!const_0_to_3_operand (operands[3], E_VOIDmode)
12299 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
12300 : || !const_4_to_7_operand (operands[5], E_VOIDmode)
12301 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
12302 : || !(
12303 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12304 : (TARGET_AVX512F) &&
12305 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12306 : (TARGET_AVX512VL
12307 : && (INTVAL (operands[3]) & 1) == 0
12308 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12309 : && (INTVAL (operands[5]) & 1) == 0
12310 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1)))
12311 : return -1;
12312 : return 8461; /* avx512dq_shuf_f64x2_1_mask */
12313 :
12314 : case E_V4DImode:
12315 : if (pattern1658 (x2,
12316 : E_V4DImode,
12317 : E_V8DImode) != 0
12318 : || !(
12319 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12320 : (TARGET_AVX512F) &&
12321 : #line 20517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12322 : (TARGET_AVX512VL
12323 : && (INTVAL (operands[3]) & 1) == 0
12324 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
12325 : && (INTVAL (operands[5]) & 1) == 0
12326 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1)))
12327 : return -1;
12328 : return 8459; /* avx512dq_shuf_i64x2_1_mask */
12329 :
12330 : default:
12331 : return -1;
12332 : }
12333 :
12334 : case 2:
12335 : x7 = XVECEXP (x6, 0, 0);
12336 : if (GET_CODE (x7) != CONST_INT)
12337 : return -1;
12338 : x8 = XVECEXP (x6, 0, 1);
12339 : if (GET_CODE (x8) == CONST_INT)
12340 : {
12341 : res = recog_168 (x1, insn, pnum_clobbers);
12342 : if (res >= 0)
12343 : return res;
12344 : }
12345 : operands[3] = x7;
12346 : if (!const_0_to_1_operand (operands[3], E_VOIDmode)
12347 : || pattern1226 (x2,
12348 : E_V2DFmode,
12349 : E_V4DFmode) != 0)
12350 : return -1;
12351 : operands[4] = x8;
12352 : if (!const_2_to_3_operand (operands[4], E_VOIDmode))
12353 : return -1;
12354 : x24 = XEXP (x2, 1);
12355 : operands[5] = x24;
12356 : if (!nonimm_or_0_operand (operands[5], E_V2DFmode))
12357 : return -1;
12358 : x25 = XEXP (x2, 2);
12359 : operands[6] = x25;
12360 : if (!register_operand (operands[6], E_QImode)
12361 : || !
12362 : #line 14765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12363 : (TARGET_AVX512VL))
12364 : return -1;
12365 : return 7232; /* sse2_shufpd_v2df_mask */
12366 :
12367 : case 64:
12368 : return recog_169 (x1, insn, pnum_clobbers);
12369 :
12370 : case 32:
12371 : if (pattern905 (x6) != 0)
12372 : return -1;
12373 : x9 = XEXP (x4, 1);
12374 : operands[2] = x9;
12375 : x24 = XEXP (x2, 1);
12376 : operands[3] = x24;
12377 : x25 = XEXP (x2, 2);
12378 : operands[4] = x25;
12379 : if (!register_operand (operands[4], E_SImode))
12380 : return -1;
12381 : x7 = XVECEXP (x6, 0, 0);
12382 : switch (XWINT (x7, 0))
12383 : {
12384 : case 8L:
12385 : x8 = XVECEXP (x6, 0, 1);
12386 : if (XWINT (x8, 0) != 40L)
12387 : return -1;
12388 : x10 = XVECEXP (x6, 0, 2);
12389 : if (XWINT (x10, 0) != 9L)
12390 : return -1;
12391 : x11 = XVECEXP (x6, 0, 3);
12392 : if (XWINT (x11, 0) != 41L)
12393 : return -1;
12394 : x12 = XVECEXP (x6, 0, 4);
12395 : if (XWINT (x12, 0) != 10L)
12396 : return -1;
12397 : x13 = XVECEXP (x6, 0, 5);
12398 : if (XWINT (x13, 0) != 42L)
12399 : return -1;
12400 : x14 = XVECEXP (x6, 0, 6);
12401 : if (XWINT (x14, 0) != 11L)
12402 : return -1;
12403 : x15 = XVECEXP (x6, 0, 7);
12404 : if (XWINT (x15, 0) != 43L
12405 : || pattern1915 (x6) != 0)
12406 : return -1;
12407 : x26 = XVECEXP (x6, 0, 16);
12408 : if (XWINT (x26, 0) != 24L)
12409 : return -1;
12410 : x27 = XVECEXP (x6, 0, 17);
12411 : if (XWINT (x27, 0) != 56L)
12412 : return -1;
12413 : x28 = XVECEXP (x6, 0, 18);
12414 : if (XWINT (x28, 0) != 25L)
12415 : return -1;
12416 : x29 = XVECEXP (x6, 0, 19);
12417 : if (XWINT (x29, 0) != 57L)
12418 : return -1;
12419 : x30 = XVECEXP (x6, 0, 20);
12420 : if (XWINT (x30, 0) != 26L)
12421 : return -1;
12422 : x31 = XVECEXP (x6, 0, 21);
12423 : if (XWINT (x31, 0) != 58L)
12424 : return -1;
12425 : x32 = XVECEXP (x6, 0, 22);
12426 : if (XWINT (x32, 0) != 27L)
12427 : return -1;
12428 : x33 = XVECEXP (x6, 0, 23);
12429 : if (XWINT (x33, 0) != 59L
12430 : || pattern1920 (x6) != 0
12431 : || pattern1593 (x2,
12432 : E_V32QImode,
12433 : E_V64QImode) != 0
12434 : || !(
12435 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12436 : (TARGET_AVX512F) &&
12437 : #line 19790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12438 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12439 : return -1;
12440 : return 8367; /* avx2_interleave_highv32qi_mask */
12441 :
12442 : case 0L:
12443 : x8 = XVECEXP (x6, 0, 1);
12444 : if (XWINT (x8, 0) != 32L)
12445 : return -1;
12446 : x10 = XVECEXP (x6, 0, 2);
12447 : if (XWINT (x10, 0) != 1L)
12448 : return -1;
12449 : x11 = XVECEXP (x6, 0, 3);
12450 : if (XWINT (x11, 0) != 33L)
12451 : return -1;
12452 : x12 = XVECEXP (x6, 0, 4);
12453 : if (XWINT (x12, 0) != 2L)
12454 : return -1;
12455 : x13 = XVECEXP (x6, 0, 5);
12456 : if (XWINT (x13, 0) != 34L)
12457 : return -1;
12458 : x14 = XVECEXP (x6, 0, 6);
12459 : if (XWINT (x14, 0) != 3L)
12460 : return -1;
12461 : x15 = XVECEXP (x6, 0, 7);
12462 : if (XWINT (x15, 0) != 35L)
12463 : return -1;
12464 : x26 = XVECEXP (x6, 0, 16);
12465 : if (XWINT (x26, 0) != 16L)
12466 : return -1;
12467 : x27 = XVECEXP (x6, 0, 17);
12468 : if (XWINT (x27, 0) != 48L)
12469 : return -1;
12470 : x28 = XVECEXP (x6, 0, 18);
12471 : if (XWINT (x28, 0) != 17L)
12472 : return -1;
12473 : x29 = XVECEXP (x6, 0, 19);
12474 : if (XWINT (x29, 0) != 49L)
12475 : return -1;
12476 : x30 = XVECEXP (x6, 0, 20);
12477 : if (XWINT (x30, 0) != 18L)
12478 : return -1;
12479 : x31 = XVECEXP (x6, 0, 21);
12480 : if (XWINT (x31, 0) != 50L)
12481 : return -1;
12482 : x32 = XVECEXP (x6, 0, 22);
12483 : if (XWINT (x32, 0) != 19L)
12484 : return -1;
12485 : x33 = XVECEXP (x6, 0, 23);
12486 : if (XWINT (x33, 0) != 51L)
12487 : return -1;
12488 : x16 = XVECEXP (x6, 0, 8);
12489 : switch (XWINT (x16, 0))
12490 : {
12491 : case 4L:
12492 : x17 = XVECEXP (x6, 0, 9);
12493 : if (XWINT (x17, 0) != 36L)
12494 : return -1;
12495 : x18 = XVECEXP (x6, 0, 10);
12496 : if (XWINT (x18, 0) != 5L)
12497 : return -1;
12498 : x19 = XVECEXP (x6, 0, 11);
12499 : if (XWINT (x19, 0) != 37L)
12500 : return -1;
12501 : x20 = XVECEXP (x6, 0, 12);
12502 : if (XWINT (x20, 0) != 6L)
12503 : return -1;
12504 : x21 = XVECEXP (x6, 0, 13);
12505 : if (XWINT (x21, 0) != 38L)
12506 : return -1;
12507 : x22 = XVECEXP (x6, 0, 14);
12508 : if (XWINT (x22, 0) != 7L)
12509 : return -1;
12510 : x23 = XVECEXP (x6, 0, 15);
12511 : if (XWINT (x23, 0) != 39L)
12512 : return -1;
12513 : x34 = XVECEXP (x6, 0, 24);
12514 : if (XWINT (x34, 0) != 20L)
12515 : return -1;
12516 : x35 = XVECEXP (x6, 0, 25);
12517 : if (XWINT (x35, 0) != 52L)
12518 : return -1;
12519 : x36 = XVECEXP (x6, 0, 26);
12520 : if (XWINT (x36, 0) != 21L)
12521 : return -1;
12522 : x37 = XVECEXP (x6, 0, 27);
12523 : if (XWINT (x37, 0) != 53L)
12524 : return -1;
12525 : x38 = XVECEXP (x6, 0, 28);
12526 : if (XWINT (x38, 0) != 22L)
12527 : return -1;
12528 : x39 = XVECEXP (x6, 0, 29);
12529 : if (XWINT (x39, 0) != 54L)
12530 : return -1;
12531 : x40 = XVECEXP (x6, 0, 30);
12532 : if (XWINT (x40, 0) != 23L)
12533 : return -1;
12534 : x41 = XVECEXP (x6, 0, 31);
12535 : if (XWINT (x41, 0) != 55L
12536 : || pattern1593 (x2,
12537 : E_V32QImode,
12538 : E_V64QImode) != 0
12539 : || !(
12540 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12541 : (TARGET_AVX512F) &&
12542 : #line 19886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12543 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12544 : return -1;
12545 : return 8373; /* avx2_interleave_lowv32qi_mask */
12546 :
12547 : case 8L:
12548 : x17 = XVECEXP (x6, 0, 9);
12549 : if (XWINT (x17, 0) != 40L)
12550 : return -1;
12551 : x18 = XVECEXP (x6, 0, 10);
12552 : if (XWINT (x18, 0) != 9L)
12553 : return -1;
12554 : x19 = XVECEXP (x6, 0, 11);
12555 : if (XWINT (x19, 0) != 41L)
12556 : return -1;
12557 : x20 = XVECEXP (x6, 0, 12);
12558 : if (XWINT (x20, 0) != 10L)
12559 : return -1;
12560 : x21 = XVECEXP (x6, 0, 13);
12561 : if (XWINT (x21, 0) != 42L)
12562 : return -1;
12563 : x22 = XVECEXP (x6, 0, 14);
12564 : if (XWINT (x22, 0) != 11L)
12565 : return -1;
12566 : x23 = XVECEXP (x6, 0, 15);
12567 : if (XWINT (x23, 0) != 43L)
12568 : return -1;
12569 : x34 = XVECEXP (x6, 0, 24);
12570 : if (XWINT (x34, 0) != 24L)
12571 : return -1;
12572 : x35 = XVECEXP (x6, 0, 25);
12573 : if (XWINT (x35, 0) != 56L)
12574 : return -1;
12575 : x36 = XVECEXP (x6, 0, 26);
12576 : if (XWINT (x36, 0) != 25L)
12577 : return -1;
12578 : x37 = XVECEXP (x6, 0, 27);
12579 : if (XWINT (x37, 0) != 57L)
12580 : return -1;
12581 : x38 = XVECEXP (x6, 0, 28);
12582 : if (XWINT (x38, 0) != 26L)
12583 : return -1;
12584 : x39 = XVECEXP (x6, 0, 29);
12585 : if (XWINT (x39, 0) != 58L)
12586 : return -1;
12587 : x40 = XVECEXP (x6, 0, 30);
12588 : if (XWINT (x40, 0) != 27L)
12589 : return -1;
12590 : x41 = XVECEXP (x6, 0, 31);
12591 : if (XWINT (x41, 0) != 59L)
12592 : return -1;
12593 : switch (GET_MODE (operands[0]))
12594 : {
12595 : case E_V32HImode:
12596 : if (pattern1593 (x2,
12597 : E_V32HImode,
12598 : E_V64HImode) != 0
12599 : || !(
12600 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12601 : (TARGET_AVX512F) &&
12602 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12603 : (TARGET_AVX512BW)))
12604 : return -1;
12605 : return 8395; /* avx512bw_interleave_lowv32hi_mask */
12606 :
12607 : case E_V32HFmode:
12608 : if (pattern1593 (x2,
12609 : E_V32HFmode,
12610 : E_V64HFmode) != 0
12611 : || !(
12612 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12613 : (TARGET_AVX512F) &&
12614 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12615 : (TARGET_AVX512BW)))
12616 : return -1;
12617 : return 8397; /* avx512bw_interleave_lowv32hf_mask */
12618 :
12619 : case E_V32BFmode:
12620 : if (pattern1593 (x2,
12621 : E_V32BFmode,
12622 : E_V64BFmode) != 0
12623 : || !(
12624 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12625 : (TARGET_AVX512F) &&
12626 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12627 : (TARGET_AVX512BW)))
12628 : return -1;
12629 : return 8399; /* avx512bw_interleave_lowv32bf_mask */
12630 :
12631 : default:
12632 : return -1;
12633 : }
12634 :
12635 : default:
12636 : return -1;
12637 : }
12638 :
12639 : case 4L:
12640 : x8 = XVECEXP (x6, 0, 1);
12641 : if (XWINT (x8, 0) != 36L)
12642 : return -1;
12643 : x10 = XVECEXP (x6, 0, 2);
12644 : if (XWINT (x10, 0) != 5L)
12645 : return -1;
12646 : x11 = XVECEXP (x6, 0, 3);
12647 : if (XWINT (x11, 0) != 37L)
12648 : return -1;
12649 : x12 = XVECEXP (x6, 0, 4);
12650 : if (XWINT (x12, 0) != 6L)
12651 : return -1;
12652 : x13 = XVECEXP (x6, 0, 5);
12653 : if (XWINT (x13, 0) != 38L)
12654 : return -1;
12655 : x14 = XVECEXP (x6, 0, 6);
12656 : if (XWINT (x14, 0) != 7L)
12657 : return -1;
12658 : x15 = XVECEXP (x6, 0, 7);
12659 : if (XWINT (x15, 0) != 39L
12660 : || pattern1915 (x6) != 0)
12661 : return -1;
12662 : x26 = XVECEXP (x6, 0, 16);
12663 : if (XWINT (x26, 0) != 20L)
12664 : return -1;
12665 : x27 = XVECEXP (x6, 0, 17);
12666 : if (XWINT (x27, 0) != 52L)
12667 : return -1;
12668 : x28 = XVECEXP (x6, 0, 18);
12669 : if (XWINT (x28, 0) != 21L)
12670 : return -1;
12671 : x29 = XVECEXP (x6, 0, 19);
12672 : if (XWINT (x29, 0) != 53L)
12673 : return -1;
12674 : x30 = XVECEXP (x6, 0, 20);
12675 : if (XWINT (x30, 0) != 22L)
12676 : return -1;
12677 : x31 = XVECEXP (x6, 0, 21);
12678 : if (XWINT (x31, 0) != 54L)
12679 : return -1;
12680 : x32 = XVECEXP (x6, 0, 22);
12681 : if (XWINT (x32, 0) != 23L)
12682 : return -1;
12683 : x33 = XVECEXP (x6, 0, 23);
12684 : if (XWINT (x33, 0) != 55L
12685 : || pattern1920 (x6) != 0)
12686 : return -1;
12687 : switch (GET_MODE (operands[0]))
12688 : {
12689 : case E_V32HImode:
12690 : if (pattern1593 (x2,
12691 : E_V32HImode,
12692 : E_V64HImode) != 0
12693 : || !(
12694 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12695 : (TARGET_AVX512F) &&
12696 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12697 : (TARGET_AVX512BW)))
12698 : return -1;
12699 : return 8377; /* avx512bw_interleave_highv32hi_mask */
12700 :
12701 : case E_V32HFmode:
12702 : if (pattern1593 (x2,
12703 : E_V32HFmode,
12704 : E_V64HFmode) != 0
12705 : || !(
12706 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12707 : (TARGET_AVX512F) &&
12708 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12709 : (TARGET_AVX512BW)))
12710 : return -1;
12711 : return 8379; /* avx512bw_interleave_highv32hf_mask */
12712 :
12713 : case E_V32BFmode:
12714 : if (pattern1593 (x2,
12715 : E_V32BFmode,
12716 : E_V64BFmode) != 0
12717 : || !(
12718 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12719 : (TARGET_AVX512F) &&
12720 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12721 : (TARGET_AVX512BW)))
12722 : return -1;
12723 : return 8381; /* avx512bw_interleave_highv32bf_mask */
12724 :
12725 : default:
12726 : return -1;
12727 : }
12728 :
12729 : default:
12730 : return -1;
12731 : }
12732 :
12733 : default:
12734 : return -1;
12735 : }
12736 : }
12737 :
12738 : int
12739 : recog_196 (rtx x1 ATTRIBUTE_UNUSED,
12740 : rtx_insn *insn ATTRIBUTE_UNUSED,
12741 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12742 : {
12743 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12744 : rtx x2, x3, x4, x5;
12745 : int res ATTRIBUTE_UNUSED;
12746 : x2 = XEXP (x1, 1);
12747 : switch (pattern157 (x2))
12748 : {
12749 : case 0:
12750 : if (!(
12751 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12752 : (TARGET_AVX512F) &&
12753 : #line 24466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12754 : (TARGET_AVX2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12755 : return -1;
12756 : return 8801; /* avx2_zero_extendv16qiv16hi2_mask */
12757 :
12758 : case 1:
12759 : if (!(
12760 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12761 : (TARGET_AVX512F) &&
12762 : #line 24520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12763 : (TARGET_AVX512BW)))
12764 : return -1;
12765 : return 8809; /* avx512bw_zero_extendv32qiv32hi2_mask */
12766 :
12767 : case 2:
12768 : if (!(
12769 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12770 : (TARGET_AVX512F) &&
12771 : #line 24590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12772 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
12773 : return -1;
12774 : return 8821; /* *sse4_1_zero_extendv8qiv8hi2_mask_1 */
12775 :
12776 : case 3:
12777 : if (!
12778 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12779 : (TARGET_AVX512F))
12780 : return -1;
12781 : return 8833; /* avx512f_zero_extendv16qiv16si2_mask */
12782 :
12783 : case 4:
12784 : if (!
12785 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12786 : (TARGET_AVX512F))
12787 : return -1;
12788 : return 8863; /* avx512f_zero_extendv16hiv16si2_mask */
12789 :
12790 : case 5:
12791 : if (!(
12792 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12793 : (TARGET_AVX512F) &&
12794 : #line 24773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12795 : (TARGET_AVX2 && TARGET_AVX512VL)))
12796 : return -1;
12797 : return 8841; /* *avx2_zero_extendv8qiv8si2_mask_1 */
12798 :
12799 : case 6:
12800 : if (!(
12801 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12802 : (TARGET_AVX512F) &&
12803 : #line 24993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12804 : (TARGET_AVX2 && TARGET_AVX512VL)))
12805 : return -1;
12806 : return 8871; /* avx2_zero_extendv8hiv8si2_mask */
12807 :
12808 : case 7:
12809 : if (!(
12810 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12811 : (TARGET_AVX512F) &&
12812 : #line 24861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12813 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12814 : return -1;
12815 : return 8853; /* *sse4_1_zero_extendv4qiv4si2_mask_1 */
12816 :
12817 : case 8:
12818 : if (!(
12819 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12820 : (TARGET_AVX512F) &&
12821 : #line 25063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12822 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12823 : return -1;
12824 : return 8883; /* *sse4_1_zero_extendv4hiv4si2_mask_1 */
12825 :
12826 : case 9:
12827 : if (!
12828 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12829 : (TARGET_AVX512F))
12830 : return -1;
12831 : return 8899; /* *avx512f_zero_extendv8qiv8di2_mask_1 */
12832 :
12833 : case 10:
12834 : if (!
12835 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12836 : (TARGET_AVX512F))
12837 : return -1;
12838 : return 8930; /* avx512f_zero_extendv8hiv8di2_mask */
12839 :
12840 : case 11:
12841 : if (!
12842 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12843 : (TARGET_AVX512F))
12844 : return -1;
12845 : return 8958; /* avx512f_zero_extendv8siv8di2_mask */
12846 :
12847 : case 12:
12848 : if (!(
12849 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12850 : (TARGET_AVX512F) &&
12851 : #line 25303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12852 : (TARGET_AVX2 && TARGET_AVX512VL)))
12853 : return -1;
12854 : return 8911; /* *avx2_zero_extendv4qiv4di2_mask_1 */
12855 :
12856 : case 13:
12857 : if (!(
12858 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12859 : (TARGET_AVX512F) &&
12860 : #line 25475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12861 : (TARGET_AVX2 && TARGET_AVX512VL)))
12862 : return -1;
12863 : return 8938; /* *avx2_zero_extendv4hiv4di2_mask_1 */
12864 :
12865 : case 14:
12866 : if (!(
12867 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12868 : (TARGET_AVX512F) &&
12869 : #line 25686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12870 : (TARGET_AVX2 && TARGET_AVX512VL)))
12871 : return -1;
12872 : return 8964; /* avx2_zero_extendv4siv4di2_mask */
12873 :
12874 : case 15:
12875 : if (!(
12876 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12877 : (TARGET_AVX512F) &&
12878 : #line 25394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12879 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12880 : return -1;
12881 : return 8923; /* *sse4_1_zero_extendv2qiv2di2_mask_1 */
12882 :
12883 : case 16:
12884 : if (!(
12885 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12886 : (TARGET_AVX512F) &&
12887 : #line 25558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12888 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12889 : return -1;
12890 : return 8950; /* *sse4_1_zero_extendv2hiv2di2_mask_1 */
12891 :
12892 : case 17:
12893 : if (!(
12894 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12895 : (TARGET_AVX512F) &&
12896 : #line 25752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12897 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12898 : return -1;
12899 : return 8974; /* *sse4_1_zero_extendv2siv2di2_mask_1 */
12900 :
12901 : case 18:
12902 : x3 = XEXP (x2, 0);
12903 : x4 = XEXP (x3, 0);
12904 : x5 = XEXP (x4, 0);
12905 : operands[1] = x5;
12906 : switch (pattern907 (x2))
12907 : {
12908 : case 0:
12909 : if ((
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F) &&
12912 : #line 24578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12913 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
12914 : return 8817; /* sse4_1_zero_extendv8qiv8hi2_mask */
12915 : break;
12916 :
12917 : case 1:
12918 : if ((
12919 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12920 : (TARGET_AVX512F) &&
12921 : #line 24762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12922 : (TARGET_AVX2 && TARGET_AVX512VL)))
12923 : return 8837; /* avx2_zero_extendv8qiv8si2_mask */
12924 : break;
12925 :
12926 : case 2:
12927 : if (
12928 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12929 : (TARGET_AVX512F))
12930 : return 8895; /* avx512f_zero_extendv8qiv8di2_mask */
12931 : break;
12932 :
12933 : case 3:
12934 : if ((
12935 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12936 : (TARGET_AVX512F) &&
12937 : #line 24849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12938 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12939 : return 8849; /* sse4_1_zero_extendv4qiv4si2_mask */
12940 : break;
12941 :
12942 : case 4:
12943 : if ((
12944 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12945 : (TARGET_AVX512F) &&
12946 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12947 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12948 : return 8879; /* sse4_1_zero_extendv4hiv4si2_mask */
12949 : break;
12950 :
12951 : case 5:
12952 : if ((
12953 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12954 : (TARGET_AVX512F) &&
12955 : #line 25292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12956 : (TARGET_AVX2 && TARGET_AVX512VL)))
12957 : return 8907; /* avx2_zero_extendv4qiv4di2_mask */
12958 : break;
12959 :
12960 : case 6:
12961 : if ((
12962 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12963 : (TARGET_AVX512F) &&
12964 : #line 25464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12965 : (TARGET_AVX2 && TARGET_AVX512VL)))
12966 : return 8934; /* avx2_zero_extendv4hiv4di2_mask */
12967 : break;
12968 :
12969 : case 7:
12970 : if ((
12971 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12972 : (TARGET_AVX512F) &&
12973 : #line 25382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12974 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12975 : return 8919; /* sse4_1_zero_extendv2qiv2di2_mask */
12976 : break;
12977 :
12978 : case 8:
12979 : if ((
12980 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12981 : (TARGET_AVX512F) &&
12982 : #line 25546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12983 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12984 : return 8946; /* sse4_1_zero_extendv2hiv2di2_mask */
12985 : break;
12986 :
12987 : case 9:
12988 : if ((
12989 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12990 : (TARGET_AVX512F) &&
12991 : #line 25740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12992 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12993 : return 8970; /* sse4_1_zero_extendv2siv2di2_mask */
12994 : break;
12995 :
12996 : default:
12997 : break;
12998 : }
12999 : if (GET_CODE (x5) != SUBREG
13000 : || maybe_ne (SUBREG_BYTE (x5), 0))
13001 : return -1;
13002 : switch (pattern414 (x2))
13003 : {
13004 : case 0:
13005 : if (!
13006 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13007 : (TARGET_AVX512VL && TARGET_AVX512BW
13008 : && ix86_pre_reload_split ()))
13009 : return -1;
13010 : return 8825; /* *avx512vl_zero_extendv8qiv8hi2_mask_2 */
13011 :
13012 : case 1:
13013 : if (!
13014 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13015 : (TARGET_AVX512VL
13016 : && ix86_pre_reload_split ()))
13017 : return -1;
13018 : return 8845; /* *avx512vl_zero_extendv8qiv8si2_mask_2 */
13019 :
13020 : case 2:
13021 : if (!
13022 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13023 : (TARGET_AVX512F && ix86_pre_reload_split ()))
13024 : return -1;
13025 : return 8903; /* *avx512f_zero_extendv8qiv8di2_mask_2 */
13026 :
13027 : case 3:
13028 : if (!
13029 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13030 : (TARGET_AVX512VL
13031 : && ix86_pre_reload_split ()))
13032 : return -1;
13033 : return 8887; /* *avx512vl_zero_extendv4hiv4si2_mask_2 */
13034 :
13035 : case 4:
13036 : if (!
13037 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13038 : (TARGET_AVX512VL
13039 : && ix86_pre_reload_split ()))
13040 : return -1;
13041 : return 8942; /* *avx512vl_zero_extendv4hiv4di2_mask_2 */
13042 :
13043 : case 5:
13044 : if (!
13045 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13046 : (TARGET_AVX512VL
13047 : && ix86_pre_reload_split ()))
13048 : return -1;
13049 : return 8978; /* *avx512vl_zero_extendv2siv2di2_mask_2 */
13050 :
13051 : case 6:
13052 : if ((
13053 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13054 : (TARGET_AVX512F) &&
13055 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13056 : (TARGET_SSE4_1 && TARGET_AVX512VL
13057 : && ix86_pre_reload_split ())))
13058 : return 8857; /* *sse4_1_zero_extendv4qiv4si2_2 */
13059 : if (!
13060 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13061 : (TARGET_AVX512VL
13062 : && ix86_pre_reload_split ()))
13063 : return -1;
13064 : return 8859; /* *avx512vl_zero_extendv4qiv4si2_mask_2 */
13065 :
13066 : case 7:
13067 : if (!
13068 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13069 : (TARGET_AVX512VL
13070 : && ix86_pre_reload_split ()))
13071 : return -1;
13072 : return 8915; /* *avx512vl_zero_extendv4qiv4di2_mask_2 */
13073 :
13074 : case 8:
13075 : if (!
13076 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13077 : (TARGET_AVX512VL
13078 : && ix86_pre_reload_split ()))
13079 : return -1;
13080 : return 8954; /* *avx512vl_zero_extendv2hiv2di2_mask_2 */
13081 :
13082 : default:
13083 : return -1;
13084 : }
13085 :
13086 : default:
13087 : return -1;
13088 : }
13089 : }
13090 :
13091 : int
13092 : recog_205 (rtx x1 ATTRIBUTE_UNUSED,
13093 : rtx_insn *insn ATTRIBUTE_UNUSED,
13094 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13095 : {
13096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13097 : rtx x2;
13098 : int res ATTRIBUTE_UNUSED;
13099 : x2 = XEXP (x1, 1);
13100 : switch (pattern144 (x2))
13101 : {
13102 : case 0:
13103 : if (!(
13104 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13105 : (TARGET_AVX512F) && (
13106 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13107 : (TARGET_AVX512FP16) &&
13108 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13109 : (TARGET_AVX512VL))))
13110 : return -1;
13111 : return 4658; /* avx512fp16_fixuns_truncv8hi2_mask */
13112 :
13113 : case 1:
13114 : if (!(
13115 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13116 : (TARGET_AVX512F) && (
13117 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13118 : (TARGET_AVX512FP16) &&
13119 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13120 : (TARGET_AVX512VL))))
13121 : return -1;
13122 : return 4666; /* avx512fp16_fixuns_truncv16hi2_mask */
13123 :
13124 : case 2:
13125 : if (!(
13126 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13127 : (TARGET_AVX512F) &&
13128 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13129 : (TARGET_AVX512FP16)))
13130 : return -1;
13131 : return 4674; /* avx512fp16_fixuns_truncv32hi2_mask */
13132 :
13133 : case 3:
13134 : switch (GET_MODE (operands[1]))
13135 : {
13136 : case E_V8HFmode:
13137 : if (!vector_operand (operands[1], E_V8HFmode)
13138 : || !(
13139 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13140 : (TARGET_AVX512F) && (
13141 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13142 : (TARGET_AVX512FP16) &&
13143 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13144 : (TARGET_AVX512VL))))
13145 : return -1;
13146 : return 4682; /* avx512fp16_fixuns_truncv8si2_mask */
13147 :
13148 : case E_V8DFmode:
13149 : if (!vector_operand (operands[1], E_V8DFmode)
13150 : || !
13151 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13152 : (TARGET_AVX512F))
13153 : return -1;
13154 : return 5073; /* fixuns_truncv8dfv8si2_mask */
13155 :
13156 : case E_V8SFmode:
13157 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13158 : || !(
13159 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13160 : (TARGET_AVX512F) && (
13161 : #line 10243 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13162 : (TARGET_AVX512VL) &&
13163 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13164 : (TARGET_AVX))))
13165 : return -1;
13166 : return 5173; /* fixuns_truncv8sfv8si2_mask */
13167 :
13168 : default:
13169 : return -1;
13170 : }
13171 :
13172 : case 4:
13173 : if (!(
13174 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13175 : (TARGET_AVX512F) &&
13176 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13177 : (TARGET_AVX512FP16)))
13178 : return -1;
13179 : return 4690; /* avx512fp16_fixuns_truncv16si2_mask */
13180 :
13181 : case 5:
13182 : if (!
13183 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13184 : (TARGET_AVX512F))
13185 : return -1;
13186 : return 4924; /* fixuns_truncv16sfv16si2_mask */
13187 :
13188 : case 6:
13189 : if (!(
13190 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13191 : (TARGET_AVX512F) &&
13192 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13193 : (TARGET_AVX512FP16)))
13194 : return -1;
13195 : return 4698; /* avx512fp16_fixuns_truncv8di2_mask */
13196 :
13197 : case 7:
13198 : if (!(
13199 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13200 : (TARGET_AVX512F) &&
13201 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13202 : (TARGET_AVX512DQ && 1)))
13203 : return -1;
13204 : return 5110; /* fixuns_truncv8dfv8di2_mask */
13205 :
13206 : case 8:
13207 : if (!(
13208 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13209 : (TARGET_AVX512F) &&
13210 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13211 : (TARGET_AVX512DQ && 1)))
13212 : return -1;
13213 : return 5154; /* fixuns_truncv8sfv8di2_mask */
13214 :
13215 : case 9:
13216 : switch (GET_MODE (operands[1]))
13217 : {
13218 : case E_V4HFmode:
13219 : if (!memory_operand (operands[1], E_V4HFmode)
13220 : || !(
13221 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13222 : (TARGET_AVX512F) &&
13223 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13224 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13225 : return -1;
13226 : return 4719; /* *avx512fp16_fixuns_truncv4si2_load_mask */
13227 :
13228 : case E_V4DFmode:
13229 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13230 : || !(
13231 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13232 : (TARGET_AVX512F) &&
13233 : #line 10008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13234 : (TARGET_AVX512VL && TARGET_AVX512F)))
13235 : return -1;
13236 : return 5087; /* fixuns_truncv4dfv4si2_mask */
13237 :
13238 : case E_V4SFmode:
13239 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
13240 : || !(
13241 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13242 : (TARGET_AVX512F) &&
13243 : #line 10243 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13244 : (TARGET_AVX512VL)))
13245 : return -1;
13246 : return 5175; /* fixuns_truncv4sfv4si2_mask */
13247 :
13248 : default:
13249 : return -1;
13250 : }
13251 :
13252 : case 10:
13253 : if (!(
13254 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13255 : (TARGET_AVX512F) &&
13256 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13257 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13258 : return -1;
13259 : return 4723; /* *avx512fp16_fixuns_truncv4di2_load_mask */
13260 :
13261 : case 11:
13262 : if (!(
13263 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13264 : (TARGET_AVX512F) && (
13265 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13266 : (TARGET_AVX512DQ && 1) &&
13267 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13268 : (TARGET_AVX512VL))))
13269 : return -1;
13270 : return 5115; /* fixuns_truncv4dfv4di2_mask */
13271 :
13272 : case 12:
13273 : if (!(
13274 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13275 : (TARGET_AVX512F) && (
13276 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13277 : (TARGET_AVX512DQ && 1) &&
13278 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13279 : (TARGET_AVX512VL))))
13280 : return -1;
13281 : return 5159; /* fixuns_truncv4sfv4di2_mask */
13282 :
13283 : case 13:
13284 : if (!(
13285 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13286 : (TARGET_AVX512F) &&
13287 : #line 8312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13288 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13289 : return -1;
13290 : return 4735; /* *avx512fp16_fixuns_truncv2di2_load_mask */
13291 :
13292 : case 14:
13293 : if (!(
13294 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13295 : (TARGET_AVX512F) && (
13296 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13297 : (TARGET_AVX512DQ && 1) &&
13298 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13299 : (TARGET_AVX512VL))))
13300 : return -1;
13301 : return 5119; /* fixuns_truncv2dfv2di2_mask */
13302 :
13303 : case 15:
13304 : if (!(
13305 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13306 : (TARGET_AVX512F) &&
13307 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13308 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13309 : return -1;
13310 : return 4711; /* avx512fp16_fixuns_truncv4si2_mask */
13311 :
13312 : case 16:
13313 : if (!(
13314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13315 : (TARGET_AVX512F) &&
13316 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13317 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13318 : return -1;
13319 : return 4715; /* avx512fp16_fixuns_truncv4di2_mask */
13320 :
13321 : case 17:
13322 : if (!(
13323 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13324 : (TARGET_AVX512F) &&
13325 : #line 8302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13326 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13327 : return -1;
13328 : return 4731; /* avx512fp16_fixuns_truncv2di2_mask */
13329 :
13330 : case 18:
13331 : if (!(
13332 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13333 : (TARGET_AVX512F) &&
13334 : #line 10095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13335 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
13336 : return -1;
13337 : return 5167; /* avx512dq_fixuns_truncv2sfv2di2_mask */
13338 :
13339 : default:
13340 : return -1;
13341 : }
13342 : }
13343 :
13344 : int
13345 : recog_216 (rtx x1 ATTRIBUTE_UNUSED,
13346 : rtx_insn *insn ATTRIBUTE_UNUSED,
13347 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13348 : {
13349 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13350 : rtx x2, x3;
13351 : int res ATTRIBUTE_UNUSED;
13352 : x2 = XEXP (x1, 1);
13353 : x3 = XVECEXP (x2, 0, 0);
13354 : operands[1] = x3;
13355 : switch (GET_MODE (operands[0]))
13356 : {
13357 : case E_V16SFmode:
13358 : if (!memory_operand (operands[0], E_V16SFmode)
13359 : || GET_MODE (x2) != E_V16SFmode
13360 : || !register_operand (operands[1], E_V16SFmode)
13361 : || !(
13362 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13363 : (TARGET_SSE) &&
13364 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13365 : (TARGET_AVX512F)))
13366 : return -1;
13367 : return 2626; /* avx512f_movntv16sf */
13368 :
13369 : case E_V8SFmode:
13370 : if (!memory_operand (operands[0], E_V8SFmode)
13371 : || GET_MODE (x2) != E_V8SFmode
13372 : || !register_operand (operands[1], E_V8SFmode)
13373 : || !(
13374 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13375 : (TARGET_SSE) &&
13376 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13377 : (TARGET_AVX)))
13378 : return -1;
13379 : return 2627; /* avx_movntv8sf */
13380 :
13381 : case E_V4SFmode:
13382 : if (!memory_operand (operands[0], E_V4SFmode)
13383 : || GET_MODE (x2) != E_V4SFmode
13384 : || !register_operand (operands[1], E_V4SFmode)
13385 : || !
13386 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13387 : (TARGET_SSE))
13388 : return -1;
13389 : return 2628; /* sse_movntv4sf */
13390 :
13391 : case E_V8DFmode:
13392 : if (!memory_operand (operands[0], E_V8DFmode)
13393 : || GET_MODE (x2) != E_V8DFmode
13394 : || !register_operand (operands[1], E_V8DFmode)
13395 : || !(
13396 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13397 : (TARGET_SSE) &&
13398 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13399 : (TARGET_AVX512F)))
13400 : return -1;
13401 : return 2629; /* avx512f_movntv8df */
13402 :
13403 : case E_V4DFmode:
13404 : if (!memory_operand (operands[0], E_V4DFmode)
13405 : || GET_MODE (x2) != E_V4DFmode
13406 : || !register_operand (operands[1], E_V4DFmode)
13407 : || !(
13408 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13409 : (TARGET_SSE) &&
13410 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13411 : (TARGET_AVX)))
13412 : return -1;
13413 : return 2630; /* avx_movntv4df */
13414 :
13415 : case E_V2DFmode:
13416 : if (!memory_operand (operands[0], E_V2DFmode)
13417 : || GET_MODE (x2) != E_V2DFmode
13418 : || !register_operand (operands[1], E_V2DFmode)
13419 : || !(
13420 : #line 2045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13421 : (TARGET_SSE) &&
13422 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13423 : (TARGET_SSE2)))
13424 : return -1;
13425 : return 2631; /* sse2_movntv2df */
13426 :
13427 : case E_V8DImode:
13428 : if (!memory_operand (operands[0], E_V8DImode)
13429 : || GET_MODE (x2) != E_V8DImode
13430 : || !register_operand (operands[1], E_V8DImode)
13431 : || !(
13432 : #line 2055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13433 : (TARGET_SSE2) &&
13434 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13435 : (TARGET_AVX512F)))
13436 : return -1;
13437 : return 2632; /* avx512f_movntv8di */
13438 :
13439 : case E_V4DImode:
13440 : if (!memory_operand (operands[0], E_V4DImode)
13441 : || GET_MODE (x2) != E_V4DImode
13442 : || !register_operand (operands[1], E_V4DImode)
13443 : || !(
13444 : #line 2055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13445 : (TARGET_SSE2) &&
13446 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13447 : (TARGET_AVX)))
13448 : return -1;
13449 : return 2633; /* avx_movntv4di */
13450 :
13451 : case E_V2DImode:
13452 : if (!memory_operand (operands[0], E_V2DImode)
13453 : || GET_MODE (x2) != E_V2DImode
13454 : || !register_operand (operands[1], E_V2DImode)
13455 : || !
13456 : #line 2055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13457 : (TARGET_SSE2))
13458 : return -1;
13459 : return 2634; /* sse2_movntv2di */
13460 :
13461 : default:
13462 : return -1;
13463 : }
13464 : }
13465 :
13466 : int
13467 : recog_223 (rtx x1 ATTRIBUTE_UNUSED,
13468 : rtx_insn *insn ATTRIBUTE_UNUSED,
13469 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13470 : {
13471 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13472 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13473 : int res ATTRIBUTE_UNUSED;
13474 : x2 = XEXP (x1, 1);
13475 : x3 = XVECEXP (x2, 0, 1);
13476 : if (!const_4_or_8_to_11_operand (x3, E_SImode))
13477 : return -1;
13478 : x4 = XVECEXP (x2, 0, 0);
13479 : x5 = XEXP (x4, 0);
13480 : x6 = XVECEXP (x5, 0, 2);
13481 : switch (GET_CODE (x6))
13482 : {
13483 : case REG:
13484 : case SUBREG:
13485 : case MEM:
13486 : operands[3] = x6;
13487 : x7 = XEXP (x4, 1);
13488 : switch (GET_CODE (x7))
13489 : {
13490 : case CONST_INT:
13491 : case CONST_DOUBLE:
13492 : case CONST_VECTOR:
13493 : operands[4] = x7;
13494 : x8 = XEXP (x4, 2);
13495 : operands[5] = x8;
13496 : operands[6] = x3;
13497 : switch (GET_MODE (operands[0]))
13498 : {
13499 : case E_V32HFmode:
13500 : if (pattern1663 (x2,
13501 : E_SImode,
13502 : E_V32HFmode) != 0
13503 : || !(
13504 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13505 : (TARGET_AVX512F) && (
13506 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13507 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13508 : || V32HFmode == V8DFmode
13509 : || V32HFmode == V8DImode
13510 : || V32HFmode == V16SImode
13511 : || V32HFmode == V32HFmode)) &&
13512 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13513 : (TARGET_AVX512FP16))))
13514 : return -1;
13515 : return 4137; /* fma_fmaddsub_v32hf_maskz_1_round */
13516 :
13517 : case E_V16SFmode:
13518 : if (pattern1663 (x2,
13519 : E_HImode,
13520 : E_V16SFmode) != 0
13521 : || !(
13522 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13523 : (TARGET_AVX512F) &&
13524 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13525 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
13526 : || V16SFmode == V8DFmode
13527 : || V16SFmode == V8DImode
13528 : || V16SFmode == V16SImode
13529 : || V16SFmode == V32HFmode))))
13530 : return -1;
13531 : return 4145; /* fma_fmaddsub_v16sf_maskz_1_round */
13532 :
13533 : case E_V8DFmode:
13534 : if (pattern1663 (x2,
13535 : E_QImode,
13536 : E_V8DFmode) != 0
13537 : || !(
13538 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13539 : (TARGET_AVX512F) &&
13540 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13541 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
13542 : || V8DFmode == V8DFmode
13543 : || V8DFmode == V8DImode
13544 : || V8DFmode == V16SImode
13545 : || V8DFmode == V32HFmode))))
13546 : return -1;
13547 : return 4153; /* fma_fmaddsub_v8df_maskz_1_round */
13548 :
13549 : default:
13550 : return -1;
13551 : }
13552 :
13553 : case REG:
13554 : case SUBREG:
13555 : case MEM:
13556 : x8 = XEXP (x4, 2);
13557 : operands[4] = x8;
13558 : operands[5] = x3;
13559 : switch (GET_MODE (operands[0]))
13560 : {
13561 : case E_V32HFmode:
13562 : if (pattern1598 (x2,
13563 : E_V32HFmode,
13564 : E_SImode) != 0)
13565 : return -1;
13566 : if (register_operand (operands[1], E_V32HFmode)
13567 : && register_operand (operands[3], E_V32HFmode)
13568 : && rtx_equal_p (x7, operands[1])
13569 : && (
13570 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13571 : (TARGET_AVX512F) && (
13572 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13573 : (TARGET_AVX512F) &&
13574 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13575 : (TARGET_AVX512FP16))))
13576 : return 4159; /* avx512bw_fmaddsub_v32hf_mask_round */
13577 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
13578 : || !nonimmediate_operand (operands[3], E_V32HFmode)
13579 : || !rtx_equal_p (x7, operands[3])
13580 : || !(
13581 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13582 : (TARGET_AVX512F) && (
13583 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13584 : (TARGET_AVX512F) &&
13585 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13586 : (TARGET_AVX512FP16))))
13587 : return -1;
13588 : return 4177; /* avx512bw_fmaddsub_v32hf_mask3_round */
13589 :
13590 : case E_V16HFmode:
13591 : if (pattern1598 (x2,
13592 : E_V16HFmode,
13593 : E_HImode) != 0)
13594 : return -1;
13595 : if (register_operand (operands[1], E_V16HFmode)
13596 : && register_operand (operands[3], E_V16HFmode)
13597 : && rtx_equal_p (x7, operands[1])
13598 : && (
13599 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13600 : (TARGET_AVX512F) && (
13601 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13602 : (TARGET_AVX512F) &&
13603 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13604 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13605 : return 4161; /* avx512vl_fmaddsub_v16hf_mask_round */
13606 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
13607 : || !nonimmediate_operand (operands[3], E_V16HFmode)
13608 : || !rtx_equal_p (x7, operands[3])
13609 : || !(
13610 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13611 : (TARGET_AVX512F) && (
13612 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13613 : (TARGET_AVX512F) &&
13614 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13615 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13616 : return -1;
13617 : return 4179; /* avx512vl_fmaddsub_v16hf_mask3_round */
13618 :
13619 : case E_V8HFmode:
13620 : if (pattern1598 (x2,
13621 : E_V8HFmode,
13622 : E_QImode) != 0)
13623 : return -1;
13624 : if (register_operand (operands[1], E_V8HFmode)
13625 : && register_operand (operands[3], E_V8HFmode)
13626 : && rtx_equal_p (x7, operands[1])
13627 : && (
13628 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13629 : (TARGET_AVX512F) && (
13630 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13631 : (TARGET_AVX512F) &&
13632 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13633 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13634 : return 4163; /* avx512fp16_fmaddsub_v8hf_mask_round */
13635 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
13636 : || !nonimmediate_operand (operands[3], E_V8HFmode)
13637 : || !rtx_equal_p (x7, operands[3])
13638 : || !(
13639 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13640 : (TARGET_AVX512F) && (
13641 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13642 : (TARGET_AVX512F) &&
13643 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13644 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13645 : return -1;
13646 : return 4181; /* avx512fp16_fmaddsub_v8hf_mask3_round */
13647 :
13648 : case E_V16SFmode:
13649 : if (pattern1598 (x2,
13650 : E_V16SFmode,
13651 : E_HImode) != 0)
13652 : return -1;
13653 : if (register_operand (operands[1], E_V16SFmode)
13654 : && register_operand (operands[3], E_V16SFmode)
13655 : && rtx_equal_p (x7, operands[1])
13656 : &&
13657 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13658 : (TARGET_AVX512F))
13659 : return 4165; /* avx512f_fmaddsub_v16sf_mask_round */
13660 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
13661 : || !nonimmediate_operand (operands[3], E_V16SFmode)
13662 : || !rtx_equal_p (x7, operands[3])
13663 : || !
13664 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13665 : (TARGET_AVX512F))
13666 : return -1;
13667 : return 4183; /* avx512f_fmaddsub_v16sf_mask3_round */
13668 :
13669 : case E_V8SFmode:
13670 : if (pattern1598 (x2,
13671 : E_V8SFmode,
13672 : E_QImode) != 0)
13673 : return -1;
13674 : if (register_operand (operands[1], E_V8SFmode)
13675 : && register_operand (operands[3], E_V8SFmode)
13676 : && rtx_equal_p (x7, operands[1])
13677 : && (
13678 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13679 : (TARGET_AVX512F) && (
13680 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13681 : (TARGET_AVX512F) &&
13682 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13683 : (TARGET_AVX512VL))))
13684 : return 4167; /* avx512vl_fmaddsub_v8sf_mask_round */
13685 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13686 : || !nonimmediate_operand (operands[3], E_V8SFmode)
13687 : || !rtx_equal_p (x7, operands[3])
13688 : || !(
13689 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13690 : (TARGET_AVX512F) && (
13691 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13692 : (TARGET_AVX512F) &&
13693 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13694 : (TARGET_AVX512VL))))
13695 : return -1;
13696 : return 4185; /* avx512vl_fmaddsub_v8sf_mask3_round */
13697 :
13698 : case E_V4SFmode:
13699 : if (pattern1598 (x2,
13700 : E_V4SFmode,
13701 : E_QImode) != 0)
13702 : return -1;
13703 : if (register_operand (operands[1], E_V4SFmode)
13704 : && register_operand (operands[3], E_V4SFmode)
13705 : && rtx_equal_p (x7, operands[1])
13706 : && (
13707 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13708 : (TARGET_AVX512F) && (
13709 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13710 : (TARGET_AVX512F) &&
13711 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13712 : (TARGET_AVX512VL))))
13713 : return 4169; /* avx512vl_fmaddsub_v4sf_mask_round */
13714 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
13715 : || !nonimmediate_operand (operands[3], E_V4SFmode)
13716 : || !rtx_equal_p (x7, operands[3])
13717 : || !(
13718 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13719 : (TARGET_AVX512F) && (
13720 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13721 : (TARGET_AVX512F) &&
13722 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13723 : (TARGET_AVX512VL))))
13724 : return -1;
13725 : return 4187; /* avx512vl_fmaddsub_v4sf_mask3_round */
13726 :
13727 : case E_V8DFmode:
13728 : if (pattern1598 (x2,
13729 : E_V8DFmode,
13730 : E_QImode) != 0)
13731 : return -1;
13732 : if (register_operand (operands[1], E_V8DFmode)
13733 : && register_operand (operands[3], E_V8DFmode)
13734 : && rtx_equal_p (x7, operands[1])
13735 : &&
13736 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13737 : (TARGET_AVX512F))
13738 : return 4171; /* avx512f_fmaddsub_v8df_mask_round */
13739 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
13740 : || !nonimmediate_operand (operands[3], E_V8DFmode)
13741 : || !rtx_equal_p (x7, operands[3])
13742 : || !
13743 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13744 : (TARGET_AVX512F))
13745 : return -1;
13746 : return 4189; /* avx512f_fmaddsub_v8df_mask3_round */
13747 :
13748 : case E_V4DFmode:
13749 : if (pattern1598 (x2,
13750 : E_V4DFmode,
13751 : E_QImode) != 0)
13752 : return -1;
13753 : if (register_operand (operands[1], E_V4DFmode)
13754 : && register_operand (operands[3], E_V4DFmode)
13755 : && rtx_equal_p (x7, operands[1])
13756 : && (
13757 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13758 : (TARGET_AVX512F) && (
13759 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13760 : (TARGET_AVX512F) &&
13761 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13762 : (TARGET_AVX512VL))))
13763 : return 4173; /* avx512vl_fmaddsub_v4df_mask_round */
13764 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13765 : || !nonimmediate_operand (operands[3], E_V4DFmode)
13766 : || !rtx_equal_p (x7, operands[3])
13767 : || !(
13768 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13769 : (TARGET_AVX512F) && (
13770 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13771 : (TARGET_AVX512F) &&
13772 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13773 : (TARGET_AVX512VL))))
13774 : return -1;
13775 : return 4191; /* avx512vl_fmaddsub_v4df_mask3_round */
13776 :
13777 : case E_V2DFmode:
13778 : if (pattern1598 (x2,
13779 : E_V2DFmode,
13780 : E_QImode) != 0)
13781 : return -1;
13782 : if (register_operand (operands[1], E_V2DFmode)
13783 : && register_operand (operands[3], E_V2DFmode)
13784 : && rtx_equal_p (x7, operands[1])
13785 : && (
13786 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13787 : (TARGET_AVX512F) && (
13788 : #line 6787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13789 : (TARGET_AVX512F) &&
13790 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13791 : (TARGET_AVX512VL))))
13792 : return 4175; /* avx512vl_fmaddsub_v2df_mask_round */
13793 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
13794 : || !nonimmediate_operand (operands[3], E_V2DFmode)
13795 : || !rtx_equal_p (x7, operands[3])
13796 : || !(
13797 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13798 : (TARGET_AVX512F) && (
13799 : #line 6805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13800 : (TARGET_AVX512F) &&
13801 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13802 : (TARGET_AVX512VL))))
13803 : return -1;
13804 : return 4193; /* avx512vl_fmaddsub_v2df_mask3_round */
13805 :
13806 : default:
13807 : return -1;
13808 : }
13809 :
13810 : default:
13811 : return -1;
13812 : }
13813 :
13814 : case NEG:
13815 : x9 = XEXP (x6, 0);
13816 : operands[3] = x9;
13817 : x7 = XEXP (x4, 1);
13818 : switch (GET_CODE (x7))
13819 : {
13820 : case CONST_INT:
13821 : case CONST_DOUBLE:
13822 : case CONST_VECTOR:
13823 : operands[4] = x7;
13824 : x8 = XEXP (x4, 2);
13825 : operands[5] = x8;
13826 : operands[6] = x3;
13827 : switch (GET_MODE (operands[0]))
13828 : {
13829 : case E_V32HFmode:
13830 : if (pattern1664 (x2,
13831 : E_SImode,
13832 : E_V32HFmode) != 0
13833 : || !(
13834 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13835 : (TARGET_AVX512F) && (
13836 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13837 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13838 : || V32HFmode == V8DFmode
13839 : || V32HFmode == V8DImode
13840 : || V32HFmode == V16SImode
13841 : || V32HFmode == V32HFmode)) &&
13842 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13843 : (TARGET_AVX512FP16))))
13844 : return -1;
13845 : return 4201; /* fma_fmsubadd_v32hf_maskz_1_round */
13846 :
13847 : case E_V16SFmode:
13848 : if (pattern1664 (x2,
13849 : E_HImode,
13850 : E_V16SFmode) != 0
13851 : || !(
13852 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13853 : (TARGET_AVX512F) &&
13854 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13855 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
13856 : || V16SFmode == V8DFmode
13857 : || V16SFmode == V8DImode
13858 : || V16SFmode == V16SImode
13859 : || V16SFmode == V32HFmode))))
13860 : return -1;
13861 : return 4209; /* fma_fmsubadd_v16sf_maskz_1_round */
13862 :
13863 : case E_V8DFmode:
13864 : if (pattern1664 (x2,
13865 : E_QImode,
13866 : E_V8DFmode) != 0
13867 : || !(
13868 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13869 : (TARGET_AVX512F) &&
13870 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13871 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
13872 : || V8DFmode == V8DFmode
13873 : || V8DFmode == V8DImode
13874 : || V8DFmode == V16SImode
13875 : || V8DFmode == V32HFmode))))
13876 : return -1;
13877 : return 4217; /* fma_fmsubadd_v8df_maskz_1_round */
13878 :
13879 : default:
13880 : return -1;
13881 : }
13882 :
13883 : case REG:
13884 : case SUBREG:
13885 : case MEM:
13886 : x8 = XEXP (x4, 2);
13887 : operands[4] = x8;
13888 : operands[5] = x3;
13889 : switch (GET_MODE (operands[0]))
13890 : {
13891 : case E_V32HFmode:
13892 : if (pattern1599 (x2,
13893 : E_V32HFmode,
13894 : E_SImode) != 0)
13895 : return -1;
13896 : if (register_operand (operands[3], E_V32HFmode)
13897 : && rtx_equal_p (x7, operands[1])
13898 : && (
13899 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13900 : (TARGET_AVX512F) && (
13901 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13902 : (TARGET_AVX512F) &&
13903 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13904 : (TARGET_AVX512FP16))))
13905 : return 4223; /* avx512bw_fmsubadd_v32hf_mask_round */
13906 : if (!nonimmediate_operand (operands[3], E_V32HFmode)
13907 : || !rtx_equal_p (x7, operands[3])
13908 : || !(
13909 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13910 : (TARGET_AVX512F) && (
13911 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13912 : (TARGET_AVX512F) &&
13913 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13914 : (TARGET_AVX512FP16))))
13915 : return -1;
13916 : return 4241; /* avx512bw_fmsubadd_v32hf_mask3_round */
13917 :
13918 : case E_V16HFmode:
13919 : if (pattern1599 (x2,
13920 : E_V16HFmode,
13921 : E_HImode) != 0)
13922 : return -1;
13923 : if (register_operand (operands[3], E_V16HFmode)
13924 : && rtx_equal_p (x7, operands[1])
13925 : && (
13926 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13927 : (TARGET_AVX512F) && (
13928 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13929 : (TARGET_AVX512F) &&
13930 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13931 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13932 : return 4225; /* avx512vl_fmsubadd_v16hf_mask_round */
13933 : if (!nonimmediate_operand (operands[3], E_V16HFmode)
13934 : || !rtx_equal_p (x7, operands[3])
13935 : || !(
13936 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13937 : (TARGET_AVX512F) && (
13938 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13939 : (TARGET_AVX512F) &&
13940 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13941 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13942 : return -1;
13943 : return 4243; /* avx512vl_fmsubadd_v16hf_mask3_round */
13944 :
13945 : case E_V8HFmode:
13946 : if (pattern1599 (x2,
13947 : E_V8HFmode,
13948 : E_QImode) != 0)
13949 : return -1;
13950 : if (register_operand (operands[3], E_V8HFmode)
13951 : && rtx_equal_p (x7, operands[1])
13952 : && (
13953 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13954 : (TARGET_AVX512F) && (
13955 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13956 : (TARGET_AVX512F) &&
13957 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13958 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13959 : return 4227; /* avx512fp16_fmsubadd_v8hf_mask_round */
13960 : if (!nonimmediate_operand (operands[3], E_V8HFmode)
13961 : || !rtx_equal_p (x7, operands[3])
13962 : || !(
13963 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13964 : (TARGET_AVX512F) && (
13965 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13966 : (TARGET_AVX512F) &&
13967 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13968 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13969 : return -1;
13970 : return 4245; /* avx512fp16_fmsubadd_v8hf_mask3_round */
13971 :
13972 : case E_V16SFmode:
13973 : if (pattern1599 (x2,
13974 : E_V16SFmode,
13975 : E_HImode) != 0)
13976 : return -1;
13977 : if (register_operand (operands[3], E_V16SFmode)
13978 : && rtx_equal_p (x7, operands[1])
13979 : &&
13980 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13981 : (TARGET_AVX512F))
13982 : return 4229; /* avx512f_fmsubadd_v16sf_mask_round */
13983 : if (!nonimmediate_operand (operands[3], E_V16SFmode)
13984 : || !rtx_equal_p (x7, operands[3])
13985 : || !
13986 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13987 : (TARGET_AVX512F))
13988 : return -1;
13989 : return 4247; /* avx512f_fmsubadd_v16sf_mask3_round */
13990 :
13991 : case E_V8SFmode:
13992 : if (pattern1599 (x2,
13993 : E_V8SFmode,
13994 : E_QImode) != 0)
13995 : return -1;
13996 : if (register_operand (operands[3], E_V8SFmode)
13997 : && rtx_equal_p (x7, operands[1])
13998 : && (
13999 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14000 : (TARGET_AVX512F) && (
14001 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14002 : (TARGET_AVX512F) &&
14003 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14004 : (TARGET_AVX512VL))))
14005 : return 4231; /* avx512vl_fmsubadd_v8sf_mask_round */
14006 : if (!nonimmediate_operand (operands[3], E_V8SFmode)
14007 : || !rtx_equal_p (x7, operands[3])
14008 : || !(
14009 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14010 : (TARGET_AVX512F) && (
14011 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14012 : (TARGET_AVX512F) &&
14013 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14014 : (TARGET_AVX512VL))))
14015 : return -1;
14016 : return 4249; /* avx512vl_fmsubadd_v8sf_mask3_round */
14017 :
14018 : case E_V4SFmode:
14019 : if (pattern1599 (x2,
14020 : E_V4SFmode,
14021 : E_QImode) != 0)
14022 : return -1;
14023 : if (register_operand (operands[3], E_V4SFmode)
14024 : && rtx_equal_p (x7, operands[1])
14025 : && (
14026 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14027 : (TARGET_AVX512F) && (
14028 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14029 : (TARGET_AVX512F) &&
14030 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14031 : (TARGET_AVX512VL))))
14032 : return 4233; /* avx512vl_fmsubadd_v4sf_mask_round */
14033 : if (!nonimmediate_operand (operands[3], E_V4SFmode)
14034 : || !rtx_equal_p (x7, operands[3])
14035 : || !(
14036 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14037 : (TARGET_AVX512F) && (
14038 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14039 : (TARGET_AVX512F) &&
14040 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14041 : (TARGET_AVX512VL))))
14042 : return -1;
14043 : return 4251; /* avx512vl_fmsubadd_v4sf_mask3_round */
14044 :
14045 : case E_V8DFmode:
14046 : if (pattern1599 (x2,
14047 : E_V8DFmode,
14048 : E_QImode) != 0)
14049 : return -1;
14050 : if (register_operand (operands[3], E_V8DFmode)
14051 : && rtx_equal_p (x7, operands[1])
14052 : &&
14053 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14054 : (TARGET_AVX512F))
14055 : return 4235; /* avx512f_fmsubadd_v8df_mask_round */
14056 : if (!nonimmediate_operand (operands[3], E_V8DFmode)
14057 : || !rtx_equal_p (x7, operands[3])
14058 : || !
14059 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14060 : (TARGET_AVX512F))
14061 : return -1;
14062 : return 4253; /* avx512f_fmsubadd_v8df_mask3_round */
14063 :
14064 : case E_V4DFmode:
14065 : if (pattern1599 (x2,
14066 : E_V4DFmode,
14067 : E_QImode) != 0)
14068 : return -1;
14069 : if (register_operand (operands[3], E_V4DFmode)
14070 : && rtx_equal_p (x7, operands[1])
14071 : && (
14072 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14073 : (TARGET_AVX512F) && (
14074 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14075 : (TARGET_AVX512F) &&
14076 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14077 : (TARGET_AVX512VL))))
14078 : return 4237; /* avx512vl_fmsubadd_v4df_mask_round */
14079 : if (!nonimmediate_operand (operands[3], E_V4DFmode)
14080 : || !rtx_equal_p (x7, operands[3])
14081 : || !(
14082 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14083 : (TARGET_AVX512F) && (
14084 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14085 : (TARGET_AVX512F) &&
14086 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14087 : (TARGET_AVX512VL))))
14088 : return -1;
14089 : return 4255; /* avx512vl_fmsubadd_v4df_mask3_round */
14090 :
14091 : case E_V2DFmode:
14092 : if (pattern1599 (x2,
14093 : E_V2DFmode,
14094 : E_QImode) != 0)
14095 : return -1;
14096 : if (register_operand (operands[3], E_V2DFmode)
14097 : && rtx_equal_p (x7, operands[1])
14098 : && (
14099 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14100 : (TARGET_AVX512F) && (
14101 : #line 6858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14102 : (TARGET_AVX512F) &&
14103 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14104 : (TARGET_AVX512VL))))
14105 : return 4239; /* avx512vl_fmsubadd_v2df_mask_round */
14106 : if (!nonimmediate_operand (operands[3], E_V2DFmode)
14107 : || !rtx_equal_p (x7, operands[3])
14108 : || !(
14109 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14110 : (TARGET_AVX512F) && (
14111 : #line 6877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14112 : (TARGET_AVX512F) &&
14113 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14114 : (TARGET_AVX512VL))))
14115 : return -1;
14116 : return 4257; /* avx512vl_fmsubadd_v2df_mask3_round */
14117 :
14118 : default:
14119 : return -1;
14120 : }
14121 :
14122 : default:
14123 : return -1;
14124 : }
14125 :
14126 : default:
14127 : return -1;
14128 : }
14129 : }
14130 :
14131 : int
14132 : recog_236 (rtx x1 ATTRIBUTE_UNUSED,
14133 : rtx_insn *insn ATTRIBUTE_UNUSED,
14134 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14135 : {
14136 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14137 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14138 : rtx x10;
14139 : int res ATTRIBUTE_UNUSED;
14140 : if (pnum_clobbers == NULL)
14141 : return -1;
14142 : x2 = XEXP (x1, 0);
14143 : if (GET_CODE (x2) != MEM)
14144 : return -1;
14145 : operands[5] = x2;
14146 : x3 = XEXP (x2, 0);
14147 : if (GET_CODE (x3) != UNSPEC
14148 : || XVECLEN (x3, 0) != 4
14149 : || XINT (x3, 1) != 155)
14150 : return -1;
14151 : x4 = XVECEXP (x3, 0, 0);
14152 : operands[0] = x4;
14153 : x5 = XVECEXP (x3, 0, 1);
14154 : operands[2] = x5;
14155 : x6 = XVECEXP (x3, 0, 2);
14156 : operands[4] = x6;
14157 : if (!const1248_operand (operands[4], E_SImode))
14158 : return -1;
14159 : x7 = XVECEXP (x3, 0, 3);
14160 : operands[6] = x7;
14161 : x8 = XEXP (x1, 1);
14162 : x9 = XVECEXP (x8, 0, 1);
14163 : operands[3] = x9;
14164 : x10 = XVECEXP (x8, 0, 0);
14165 : if (!rtx_equal_p (x10, operands[6]))
14166 : return -1;
14167 : switch (GET_MODE (operands[5]))
14168 : {
14169 : case E_V16SImode:
14170 : if (!vsib_mem_operator (operands[5], E_V16SImode)
14171 : || GET_MODE (x8) != E_V16SImode)
14172 : return -1;
14173 : switch (GET_MODE (x3))
14174 : {
14175 : case E_SImode:
14176 : switch (pattern1720 (
14177 : E_SImode))
14178 : {
14179 : case 0:
14180 : if (!(
14181 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14182 : (TARGET_AVX512F) &&
14183 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14184 : (Pmode == SImode)))
14185 : return -1;
14186 : *pnum_clobbers = 1;
14187 : return 9912; /* *avx512f_scattersiv16si */
14188 :
14189 : case 1:
14190 : if (!(
14191 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14192 : (TARGET_AVX512F) &&
14193 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14194 : (Pmode == SImode)))
14195 : return -1;
14196 : *pnum_clobbers = 1;
14197 : return 9936; /* *avx512f_scatterdiv16si */
14198 :
14199 : default:
14200 : return -1;
14201 : }
14202 :
14203 : case E_DImode:
14204 : switch (pattern1720 (
14205 : E_DImode))
14206 : {
14207 : case 0:
14208 : if (!(
14209 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14210 : (TARGET_AVX512F) &&
14211 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14212 : (Pmode == DImode)))
14213 : return -1;
14214 : *pnum_clobbers = 1;
14215 : return 9924; /* *avx512f_scattersiv16si */
14216 :
14217 : case 1:
14218 : if (!(
14219 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14220 : (TARGET_AVX512F) &&
14221 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14222 : (Pmode == DImode)))
14223 : return -1;
14224 : *pnum_clobbers = 1;
14225 : return 9948; /* *avx512f_scatterdiv16si */
14226 :
14227 : default:
14228 : return -1;
14229 : }
14230 :
14231 : default:
14232 : return -1;
14233 : }
14234 :
14235 : case E_V16SFmode:
14236 : if (!vsib_mem_operator (operands[5], E_V16SFmode)
14237 : || GET_MODE (x8) != E_V16SFmode)
14238 : return -1;
14239 : switch (GET_MODE (x3))
14240 : {
14241 : case E_SImode:
14242 : switch (pattern1721 (
14243 : E_SImode))
14244 : {
14245 : case 0:
14246 : if (!(
14247 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14248 : (TARGET_AVX512F) &&
14249 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14250 : (Pmode == SImode)))
14251 : return -1;
14252 : *pnum_clobbers = 1;
14253 : return 9913; /* *avx512f_scattersiv16sf */
14254 :
14255 : case 1:
14256 : if (!(
14257 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14258 : (TARGET_AVX512F) &&
14259 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14260 : (Pmode == SImode)))
14261 : return -1;
14262 : *pnum_clobbers = 1;
14263 : return 9937; /* *avx512f_scatterdiv16sf */
14264 :
14265 : default:
14266 : return -1;
14267 : }
14268 :
14269 : case E_DImode:
14270 : switch (pattern1721 (
14271 : E_DImode))
14272 : {
14273 : case 0:
14274 : if (!(
14275 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14276 : (TARGET_AVX512F) &&
14277 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14278 : (Pmode == DImode)))
14279 : return -1;
14280 : *pnum_clobbers = 1;
14281 : return 9925; /* *avx512f_scattersiv16sf */
14282 :
14283 : case 1:
14284 : if (!(
14285 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14286 : (TARGET_AVX512F) &&
14287 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14288 : (Pmode == DImode)))
14289 : return -1;
14290 : *pnum_clobbers = 1;
14291 : return 9949; /* *avx512f_scatterdiv16sf */
14292 :
14293 : default:
14294 : return -1;
14295 : }
14296 :
14297 : default:
14298 : return -1;
14299 : }
14300 :
14301 : case E_V8DImode:
14302 : switch (pattern1615 (x1,
14303 : E_V8DImode))
14304 : {
14305 : case 0:
14306 : if (!(
14307 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14308 : (TARGET_AVX512F) &&
14309 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14310 : (Pmode == SImode)))
14311 : return -1;
14312 : *pnum_clobbers = 1;
14313 : return 9914; /* *avx512f_scattersiv8di */
14314 :
14315 : case 1:
14316 : if (!(
14317 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14318 : (TARGET_AVX512F) &&
14319 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14320 : (Pmode == SImode)))
14321 : return -1;
14322 : *pnum_clobbers = 1;
14323 : return 9938; /* *avx512f_scatterdiv8di */
14324 :
14325 : case 2:
14326 : if (!(
14327 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_AVX512F) &&
14329 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14330 : (Pmode == DImode)))
14331 : return -1;
14332 : *pnum_clobbers = 1;
14333 : return 9926; /* *avx512f_scattersiv8di */
14334 :
14335 : case 3:
14336 : if (!(
14337 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14338 : (TARGET_AVX512F) &&
14339 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14340 : (Pmode == DImode)))
14341 : return -1;
14342 : *pnum_clobbers = 1;
14343 : return 9950; /* *avx512f_scatterdiv8di */
14344 :
14345 : default:
14346 : return -1;
14347 : }
14348 :
14349 : case E_V8DFmode:
14350 : switch (pattern1615 (x1,
14351 : E_V8DFmode))
14352 : {
14353 : case 0:
14354 : if (!(
14355 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14356 : (TARGET_AVX512F) &&
14357 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14358 : (Pmode == SImode)))
14359 : return -1;
14360 : *pnum_clobbers = 1;
14361 : return 9915; /* *avx512f_scattersiv8df */
14362 :
14363 : case 1:
14364 : if (!(
14365 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14366 : (TARGET_AVX512F) &&
14367 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14368 : (Pmode == SImode)))
14369 : return -1;
14370 : *pnum_clobbers = 1;
14371 : return 9939; /* *avx512f_scatterdiv8df */
14372 :
14373 : case 2:
14374 : if (!(
14375 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14376 : (TARGET_AVX512F) &&
14377 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14378 : (Pmode == DImode)))
14379 : return -1;
14380 : *pnum_clobbers = 1;
14381 : return 9927; /* *avx512f_scattersiv8df */
14382 :
14383 : case 3:
14384 : if (!(
14385 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14386 : (TARGET_AVX512F) &&
14387 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14388 : (Pmode == DImode)))
14389 : return -1;
14390 : *pnum_clobbers = 1;
14391 : return 9951; /* *avx512f_scatterdiv8df */
14392 :
14393 : default:
14394 : return -1;
14395 : }
14396 :
14397 : case E_V8SImode:
14398 : switch (pattern1616 (x1,
14399 : E_V8SImode))
14400 : {
14401 : case 0:
14402 : switch (pattern1759 (
14403 : E_SImode))
14404 : {
14405 : case 0:
14406 : if (!(
14407 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14408 : (TARGET_AVX512F) && ((((
14409 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14410 : (TARGET_AVX512VL) &&
14411 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14412 : (Pmode == SImode)) &&
14413 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14414 : (Pmode == SImode)) &&
14415 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14416 : (TARGET_AVX512VL)) &&
14417 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14418 : (TARGET_AVX512VL))))
14419 : return -1;
14420 : *pnum_clobbers = 1;
14421 : return 9916; /* *avx512f_scattersiv8si */
14422 :
14423 : case 1:
14424 : if (!(
14425 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14426 : (TARGET_AVX512F) && (((
14427 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14428 : (TARGET_AVX512VL) &&
14429 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14430 : (Pmode == SImode)) &&
14431 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14432 : (Pmode == SImode)) &&
14433 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14434 : (TARGET_AVX512VL))))
14435 : return -1;
14436 : *pnum_clobbers = 1;
14437 : return 9940; /* *avx512f_scatterdiv8si */
14438 :
14439 : default:
14440 : return -1;
14441 : }
14442 :
14443 : case 1:
14444 : switch (pattern1759 (
14445 : E_DImode))
14446 : {
14447 : case 0:
14448 : if (!(
14449 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14450 : (TARGET_AVX512F) && ((((
14451 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14452 : (TARGET_AVX512VL) &&
14453 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14454 : (Pmode == DImode)) &&
14455 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14456 : (Pmode == DImode)) &&
14457 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14458 : (TARGET_AVX512VL)) &&
14459 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14460 : (TARGET_AVX512VL))))
14461 : return -1;
14462 : *pnum_clobbers = 1;
14463 : return 9928; /* *avx512f_scattersiv8si */
14464 :
14465 : case 1:
14466 : if (!(
14467 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14468 : (TARGET_AVX512F) && (((
14469 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14470 : (TARGET_AVX512VL) &&
14471 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14472 : (Pmode == DImode)) &&
14473 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14474 : (Pmode == DImode)) &&
14475 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14476 : (TARGET_AVX512VL))))
14477 : return -1;
14478 : *pnum_clobbers = 1;
14479 : return 9952; /* *avx512f_scatterdiv8si */
14480 :
14481 : default:
14482 : return -1;
14483 : }
14484 :
14485 : default:
14486 : return -1;
14487 : }
14488 :
14489 : case E_V8SFmode:
14490 : switch (pattern1616 (x1,
14491 : E_V8SFmode))
14492 : {
14493 : case 0:
14494 : switch (pattern1760 (
14495 : E_SImode))
14496 : {
14497 : case 0:
14498 : if (!(
14499 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14500 : (TARGET_AVX512F) && ((((
14501 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14502 : (TARGET_AVX512VL) &&
14503 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14504 : (Pmode == SImode)) &&
14505 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14506 : (Pmode == SImode)) &&
14507 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14508 : (TARGET_AVX512VL)) &&
14509 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14510 : (TARGET_AVX512VL))))
14511 : return -1;
14512 : *pnum_clobbers = 1;
14513 : return 9917; /* *avx512f_scattersiv8sf */
14514 :
14515 : case 1:
14516 : if (!(
14517 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14518 : (TARGET_AVX512F) && (((
14519 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14520 : (TARGET_AVX512VL) &&
14521 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14522 : (Pmode == SImode)) &&
14523 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14524 : (Pmode == SImode)) &&
14525 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14526 : (TARGET_AVX512VL))))
14527 : return -1;
14528 : *pnum_clobbers = 1;
14529 : return 9941; /* *avx512f_scatterdiv8sf */
14530 :
14531 : default:
14532 : return -1;
14533 : }
14534 :
14535 : case 1:
14536 : switch (pattern1760 (
14537 : E_DImode))
14538 : {
14539 : case 0:
14540 : if (!(
14541 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14542 : (TARGET_AVX512F) && ((((
14543 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14544 : (TARGET_AVX512VL) &&
14545 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14546 : (Pmode == DImode)) &&
14547 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14548 : (Pmode == DImode)) &&
14549 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14550 : (TARGET_AVX512VL)) &&
14551 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14552 : (TARGET_AVX512VL))))
14553 : return -1;
14554 : *pnum_clobbers = 1;
14555 : return 9929; /* *avx512f_scattersiv8sf */
14556 :
14557 : case 1:
14558 : if (!(
14559 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14560 : (TARGET_AVX512F) && (((
14561 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14562 : (TARGET_AVX512VL) &&
14563 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14564 : (Pmode == DImode)) &&
14565 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14566 : (Pmode == DImode)) &&
14567 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14568 : (TARGET_AVX512VL))))
14569 : return -1;
14570 : *pnum_clobbers = 1;
14571 : return 9953; /* *avx512f_scatterdiv8sf */
14572 :
14573 : default:
14574 : return -1;
14575 : }
14576 :
14577 : default:
14578 : return -1;
14579 : }
14580 :
14581 : case E_V4DImode:
14582 : switch (pattern1618 (x1,
14583 : E_V4DImode))
14584 : {
14585 : case 0:
14586 : if (!(
14587 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14588 : (TARGET_AVX512F) && ((((
14589 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14590 : (TARGET_AVX512VL) &&
14591 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14592 : (Pmode == SImode)) &&
14593 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14594 : (Pmode == SImode)) &&
14595 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14596 : (TARGET_AVX512VL)) &&
14597 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14598 : (TARGET_AVX512VL))))
14599 : return -1;
14600 : *pnum_clobbers = 1;
14601 : return 9918; /* *avx512f_scattersiv4di */
14602 :
14603 : case 1:
14604 : if (!(
14605 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14606 : (TARGET_AVX512F) && (((
14607 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14608 : (TARGET_AVX512VL) &&
14609 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14610 : (Pmode == SImode)) &&
14611 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14612 : (Pmode == SImode)) &&
14613 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14614 : (TARGET_AVX512VL))))
14615 : return -1;
14616 : *pnum_clobbers = 1;
14617 : return 9942; /* *avx512f_scatterdiv4di */
14618 :
14619 : case 2:
14620 : if (!(
14621 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14622 : (TARGET_AVX512F) && ((((
14623 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14624 : (TARGET_AVX512VL) &&
14625 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14626 : (Pmode == DImode)) &&
14627 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14628 : (Pmode == DImode)) &&
14629 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14630 : (TARGET_AVX512VL)) &&
14631 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14632 : (TARGET_AVX512VL))))
14633 : return -1;
14634 : *pnum_clobbers = 1;
14635 : return 9930; /* *avx512f_scattersiv4di */
14636 :
14637 : case 3:
14638 : if (!(
14639 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14640 : (TARGET_AVX512F) && (((
14641 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14642 : (TARGET_AVX512VL) &&
14643 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14644 : (Pmode == DImode)) &&
14645 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14646 : (Pmode == DImode)) &&
14647 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14648 : (TARGET_AVX512VL))))
14649 : return -1;
14650 : *pnum_clobbers = 1;
14651 : return 9954; /* *avx512f_scatterdiv4di */
14652 :
14653 : default:
14654 : return -1;
14655 : }
14656 :
14657 : case E_V4DFmode:
14658 : switch (pattern1618 (x1,
14659 : E_V4DFmode))
14660 : {
14661 : case 0:
14662 : if (!(
14663 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14664 : (TARGET_AVX512F) && ((((
14665 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14666 : (TARGET_AVX512VL) &&
14667 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14668 : (Pmode == SImode)) &&
14669 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14670 : (Pmode == SImode)) &&
14671 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14672 : (TARGET_AVX512VL)) &&
14673 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14674 : (TARGET_AVX512VL))))
14675 : return -1;
14676 : *pnum_clobbers = 1;
14677 : return 9919; /* *avx512f_scattersiv4df */
14678 :
14679 : case 1:
14680 : if (!(
14681 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14682 : (TARGET_AVX512F) && (((
14683 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14684 : (TARGET_AVX512VL) &&
14685 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14686 : (Pmode == SImode)) &&
14687 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14688 : (Pmode == SImode)) &&
14689 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14690 : (TARGET_AVX512VL))))
14691 : return -1;
14692 : *pnum_clobbers = 1;
14693 : return 9943; /* *avx512f_scatterdiv4df */
14694 :
14695 : case 2:
14696 : if (!(
14697 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14698 : (TARGET_AVX512F) && ((((
14699 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14700 : (TARGET_AVX512VL) &&
14701 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14702 : (Pmode == DImode)) &&
14703 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14704 : (Pmode == DImode)) &&
14705 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14706 : (TARGET_AVX512VL)) &&
14707 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14708 : (TARGET_AVX512VL))))
14709 : return -1;
14710 : *pnum_clobbers = 1;
14711 : return 9931; /* *avx512f_scattersiv4df */
14712 :
14713 : case 3:
14714 : if (!(
14715 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14716 : (TARGET_AVX512F) && (((
14717 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14718 : (TARGET_AVX512VL) &&
14719 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14720 : (Pmode == DImode)) &&
14721 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14722 : (Pmode == DImode)) &&
14723 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14724 : (TARGET_AVX512VL))))
14725 : return -1;
14726 : *pnum_clobbers = 1;
14727 : return 9955; /* *avx512f_scatterdiv4df */
14728 :
14729 : default:
14730 : return -1;
14731 : }
14732 :
14733 : case E_V4SImode:
14734 : switch (pattern1620 (x1,
14735 : E_V4SImode))
14736 : {
14737 : case 0:
14738 : if (!(
14739 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14740 : (TARGET_AVX512F) && ((((
14741 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14742 : (TARGET_AVX512VL) &&
14743 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14744 : (Pmode == SImode)) &&
14745 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14746 : (Pmode == SImode)) &&
14747 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14748 : (TARGET_AVX512VL)) &&
14749 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14750 : (TARGET_AVX512VL))))
14751 : return -1;
14752 : *pnum_clobbers = 1;
14753 : return 9920; /* *avx512f_scattersiv4si */
14754 :
14755 : case 1:
14756 : if (!(
14757 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14758 : (TARGET_AVX512F) && (((
14759 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14760 : (TARGET_AVX512VL) &&
14761 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14762 : (Pmode == SImode)) &&
14763 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14764 : (Pmode == SImode)) &&
14765 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14766 : (TARGET_AVX512VL))))
14767 : return -1;
14768 : *pnum_clobbers = 1;
14769 : return 9944; /* *avx512f_scatterdiv4si */
14770 :
14771 : case 2:
14772 : if (!(
14773 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14774 : (TARGET_AVX512F) && ((((
14775 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14776 : (TARGET_AVX512VL) &&
14777 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14778 : (Pmode == DImode)) &&
14779 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14780 : (Pmode == DImode)) &&
14781 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14782 : (TARGET_AVX512VL)) &&
14783 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14784 : (TARGET_AVX512VL))))
14785 : return -1;
14786 : *pnum_clobbers = 1;
14787 : return 9932; /* *avx512f_scattersiv4si */
14788 :
14789 : case 3:
14790 : if (!(
14791 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14792 : (TARGET_AVX512F) && (((
14793 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14794 : (TARGET_AVX512VL) &&
14795 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14796 : (Pmode == DImode)) &&
14797 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14798 : (Pmode == DImode)) &&
14799 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14800 : (TARGET_AVX512VL))))
14801 : return -1;
14802 : *pnum_clobbers = 1;
14803 : return 9956; /* *avx512f_scatterdiv4si */
14804 :
14805 : default:
14806 : return -1;
14807 : }
14808 :
14809 : case E_V4SFmode:
14810 : switch (pattern1620 (x1,
14811 : E_V4SFmode))
14812 : {
14813 : case 0:
14814 : if (!(
14815 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14816 : (TARGET_AVX512F) && ((((
14817 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14818 : (TARGET_AVX512VL) &&
14819 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14820 : (Pmode == SImode)) &&
14821 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14822 : (Pmode == SImode)) &&
14823 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14824 : (TARGET_AVX512VL)) &&
14825 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14826 : (TARGET_AVX512VL))))
14827 : return -1;
14828 : *pnum_clobbers = 1;
14829 : return 9921; /* *avx512f_scattersiv4sf */
14830 :
14831 : case 1:
14832 : if (!(
14833 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14834 : (TARGET_AVX512F) && (((
14835 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14836 : (TARGET_AVX512VL) &&
14837 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14838 : (Pmode == SImode)) &&
14839 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14840 : (Pmode == SImode)) &&
14841 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14842 : (TARGET_AVX512VL))))
14843 : return -1;
14844 : *pnum_clobbers = 1;
14845 : return 9945; /* *avx512f_scatterdiv4sf */
14846 :
14847 : case 2:
14848 : if (!(
14849 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14850 : (TARGET_AVX512F) && ((((
14851 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14852 : (TARGET_AVX512VL) &&
14853 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14854 : (Pmode == DImode)) &&
14855 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14856 : (Pmode == DImode)) &&
14857 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14858 : (TARGET_AVX512VL)) &&
14859 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14860 : (TARGET_AVX512VL))))
14861 : return -1;
14862 : *pnum_clobbers = 1;
14863 : return 9933; /* *avx512f_scattersiv4sf */
14864 :
14865 : case 3:
14866 : if (!(
14867 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14868 : (TARGET_AVX512F) && (((
14869 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14870 : (TARGET_AVX512VL) &&
14871 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14872 : (Pmode == DImode)) &&
14873 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14874 : (Pmode == DImode)) &&
14875 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14876 : (TARGET_AVX512VL))))
14877 : return -1;
14878 : *pnum_clobbers = 1;
14879 : return 9957; /* *avx512f_scatterdiv4sf */
14880 :
14881 : default:
14882 : return -1;
14883 : }
14884 :
14885 : case E_V2DImode:
14886 : switch (pattern1620 (x1,
14887 : E_V2DImode))
14888 : {
14889 : case 0:
14890 : if (!(
14891 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14892 : (TARGET_AVX512F) && ((((
14893 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14894 : (TARGET_AVX512VL) &&
14895 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14896 : (Pmode == SImode)) &&
14897 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14898 : (Pmode == SImode)) &&
14899 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14900 : (TARGET_AVX512VL)) &&
14901 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14902 : (TARGET_AVX512VL))))
14903 : return -1;
14904 : *pnum_clobbers = 1;
14905 : return 9922; /* *avx512f_scattersiv2di */
14906 :
14907 : case 1:
14908 : if (!(
14909 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14910 : (TARGET_AVX512F) && (((
14911 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14912 : (TARGET_AVX512VL) &&
14913 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14914 : (Pmode == SImode)) &&
14915 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14916 : (Pmode == SImode)) &&
14917 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14918 : (TARGET_AVX512VL))))
14919 : return -1;
14920 : *pnum_clobbers = 1;
14921 : return 9946; /* *avx512f_scatterdiv2di */
14922 :
14923 : case 2:
14924 : if (!(
14925 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14926 : (TARGET_AVX512F) && ((((
14927 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14928 : (TARGET_AVX512VL) &&
14929 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14930 : (Pmode == DImode)) &&
14931 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14932 : (Pmode == DImode)) &&
14933 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_AVX512VL)) &&
14935 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14936 : (TARGET_AVX512VL))))
14937 : return -1;
14938 : *pnum_clobbers = 1;
14939 : return 9934; /* *avx512f_scattersiv2di */
14940 :
14941 : case 3:
14942 : if (!(
14943 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14944 : (TARGET_AVX512F) && (((
14945 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14946 : (TARGET_AVX512VL) &&
14947 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14948 : (Pmode == DImode)) &&
14949 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14950 : (Pmode == DImode)) &&
14951 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14952 : (TARGET_AVX512VL))))
14953 : return -1;
14954 : *pnum_clobbers = 1;
14955 : return 9958; /* *avx512f_scatterdiv2di */
14956 :
14957 : default:
14958 : return -1;
14959 : }
14960 :
14961 : case E_V2DFmode:
14962 : switch (pattern1620 (x1,
14963 : E_V2DFmode))
14964 : {
14965 : case 0:
14966 : if (!(
14967 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14968 : (TARGET_AVX512F) && ((((
14969 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14970 : (TARGET_AVX512VL) &&
14971 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14972 : (Pmode == SImode)) &&
14973 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14974 : (Pmode == SImode)) &&
14975 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14976 : (TARGET_AVX512VL)) &&
14977 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14978 : (TARGET_AVX512VL))))
14979 : return -1;
14980 : *pnum_clobbers = 1;
14981 : return 9923; /* *avx512f_scattersiv2df */
14982 :
14983 : case 1:
14984 : if (!(
14985 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14986 : (TARGET_AVX512F) && (((
14987 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14988 : (TARGET_AVX512VL) &&
14989 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14990 : (Pmode == SImode)) &&
14991 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
14992 : (Pmode == SImode)) &&
14993 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14994 : (TARGET_AVX512VL))))
14995 : return -1;
14996 : *pnum_clobbers = 1;
14997 : return 9947; /* *avx512f_scatterdiv2df */
14998 :
14999 : case 2:
15000 : if (!(
15001 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15002 : (TARGET_AVX512F) && ((((
15003 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15004 : (TARGET_AVX512VL) &&
15005 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15006 : (Pmode == DImode)) &&
15007 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15008 : (Pmode == DImode)) &&
15009 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15010 : (TARGET_AVX512VL)) &&
15011 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15012 : (TARGET_AVX512VL))))
15013 : return -1;
15014 : *pnum_clobbers = 1;
15015 : return 9935; /* *avx512f_scattersiv2df */
15016 :
15017 : case 3:
15018 : if (!(
15019 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15020 : (TARGET_AVX512F) && (((
15021 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15022 : (TARGET_AVX512VL) &&
15023 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15024 : (Pmode == DImode)) &&
15025 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
15026 : (Pmode == DImode)) &&
15027 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_AVX512VL))))
15029 : return -1;
15030 : *pnum_clobbers = 1;
15031 : return 9959; /* *avx512f_scatterdiv2df */
15032 :
15033 : default:
15034 : return -1;
15035 : }
15036 :
15037 : default:
15038 : return -1;
15039 : }
15040 : }
15041 :
15042 : int
15043 : recog_255 (rtx x1 ATTRIBUTE_UNUSED,
15044 : rtx_insn *insn ATTRIBUTE_UNUSED,
15045 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15046 : {
15047 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15048 : rtx x2, x3, x4, x5, x6;
15049 : int res ATTRIBUTE_UNUSED;
15050 : x2 = XEXP (x1, 0);
15051 : operands[0] = x2;
15052 : x3 = XEXP (x1, 1);
15053 : x4 = XVECEXP (x3, 0, 0);
15054 : operands[1] = x4;
15055 : x5 = XVECEXP (x3, 0, 1);
15056 : operands[2] = x5;
15057 : x6 = XVECEXP (x3, 0, 2);
15058 : operands[3] = x6;
15059 : switch (GET_MODE (operands[0]))
15060 : {
15061 : case E_V16SImode:
15062 : if (pattern915 (x3,
15063 : E_HImode,
15064 : E_V16SImode) != 0
15065 : || !
15066 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15067 : (TARGET_AVX512F))
15068 : return -1;
15069 : return 9960; /* avx512f_compressv16si_mask */
15070 :
15071 : case E_V16SFmode:
15072 : if (pattern915 (x3,
15073 : E_HImode,
15074 : E_V16SFmode) != 0
15075 : || !
15076 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15077 : (TARGET_AVX512F))
15078 : return -1;
15079 : return 9961; /* avx512f_compressv16sf_mask */
15080 :
15081 : case E_V8DImode:
15082 : if (pattern915 (x3,
15083 : E_QImode,
15084 : E_V8DImode) != 0
15085 : || !
15086 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15087 : (TARGET_AVX512F))
15088 : return -1;
15089 : return 9962; /* avx512f_compressv8di_mask */
15090 :
15091 : case E_V8DFmode:
15092 : if (pattern915 (x3,
15093 : E_QImode,
15094 : E_V8DFmode) != 0
15095 : || !
15096 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15097 : (TARGET_AVX512F))
15098 : return -1;
15099 : return 9963; /* avx512f_compressv8df_mask */
15100 :
15101 : case E_V8SImode:
15102 : if (pattern915 (x3,
15103 : E_QImode,
15104 : E_V8SImode) != 0
15105 : || !(
15106 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15107 : (TARGET_AVX512F) &&
15108 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15109 : (TARGET_AVX512VL)))
15110 : return -1;
15111 : return 9964; /* avx512vl_compressv8si_mask */
15112 :
15113 : case E_V8SFmode:
15114 : if (pattern915 (x3,
15115 : E_QImode,
15116 : E_V8SFmode) != 0
15117 : || !(
15118 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15119 : (TARGET_AVX512F) &&
15120 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15121 : (TARGET_AVX512VL)))
15122 : return -1;
15123 : return 9965; /* avx512vl_compressv8sf_mask */
15124 :
15125 : case E_V4DImode:
15126 : if (pattern915 (x3,
15127 : E_QImode,
15128 : E_V4DImode) != 0
15129 : || !(
15130 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15131 : (TARGET_AVX512F) &&
15132 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15133 : (TARGET_AVX512VL)))
15134 : return -1;
15135 : return 9966; /* avx512vl_compressv4di_mask */
15136 :
15137 : case E_V4DFmode:
15138 : if (pattern915 (x3,
15139 : E_QImode,
15140 : E_V4DFmode) != 0
15141 : || !(
15142 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15143 : (TARGET_AVX512F) &&
15144 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15145 : (TARGET_AVX512VL)))
15146 : return -1;
15147 : return 9967; /* avx512vl_compressv4df_mask */
15148 :
15149 : case E_V4SImode:
15150 : if (pattern915 (x3,
15151 : E_QImode,
15152 : E_V4SImode) != 0
15153 : || !(
15154 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15155 : (TARGET_AVX512F) &&
15156 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15157 : (TARGET_AVX512VL)))
15158 : return -1;
15159 : return 9968; /* avx512vl_compressv4si_mask */
15160 :
15161 : case E_V4SFmode:
15162 : if (pattern915 (x3,
15163 : E_QImode,
15164 : E_V4SFmode) != 0
15165 : || !(
15166 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15167 : (TARGET_AVX512F) &&
15168 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15169 : (TARGET_AVX512VL)))
15170 : return -1;
15171 : return 9969; /* avx512vl_compressv4sf_mask */
15172 :
15173 : case E_V2DImode:
15174 : if (pattern915 (x3,
15175 : E_QImode,
15176 : E_V2DImode) != 0
15177 : || !(
15178 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15179 : (TARGET_AVX512F) &&
15180 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15181 : (TARGET_AVX512VL)))
15182 : return -1;
15183 : return 9970; /* avx512vl_compressv2di_mask */
15184 :
15185 : case E_V2DFmode:
15186 : if (pattern915 (x3,
15187 : E_QImode,
15188 : E_V2DFmode) != 0
15189 : || !(
15190 : #line 30355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15191 : (TARGET_AVX512F) &&
15192 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15193 : (TARGET_AVX512VL)))
15194 : return -1;
15195 : return 9971; /* avx512vl_compressv2df_mask */
15196 :
15197 : case E_V64QImode:
15198 : if (pattern915 (x3,
15199 : E_DImode,
15200 : E_V64QImode) != 0
15201 : || !
15202 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15203 : (TARGET_AVX512VBMI2))
15204 : return -1;
15205 : return 9972; /* compressv64qi_mask */
15206 :
15207 : case E_V16QImode:
15208 : if (pattern915 (x3,
15209 : E_HImode,
15210 : E_V16QImode) != 0
15211 : || !(
15212 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15213 : (TARGET_AVX512VBMI2) &&
15214 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15215 : (TARGET_AVX512VL)))
15216 : return -1;
15217 : return 9973; /* compressv16qi_mask */
15218 :
15219 : case E_V32QImode:
15220 : if (pattern915 (x3,
15221 : E_SImode,
15222 : E_V32QImode) != 0
15223 : || !(
15224 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15225 : (TARGET_AVX512VBMI2) &&
15226 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15227 : (TARGET_AVX512VL)))
15228 : return -1;
15229 : return 9974; /* compressv32qi_mask */
15230 :
15231 : case E_V32HImode:
15232 : if (pattern915 (x3,
15233 : E_SImode,
15234 : E_V32HImode) != 0
15235 : || !
15236 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15237 : (TARGET_AVX512VBMI2))
15238 : return -1;
15239 : return 9975; /* compressv32hi_mask */
15240 :
15241 : case E_V16HImode:
15242 : if (pattern915 (x3,
15243 : E_HImode,
15244 : E_V16HImode) != 0
15245 : || !(
15246 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15247 : (TARGET_AVX512VBMI2) &&
15248 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15249 : (TARGET_AVX512VL)))
15250 : return -1;
15251 : return 9976; /* compressv16hi_mask */
15252 :
15253 : case E_V8HImode:
15254 : if (pattern915 (x3,
15255 : E_QImode,
15256 : E_V8HImode) != 0
15257 : || !(
15258 : #line 30368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15259 : (TARGET_AVX512VBMI2) &&
15260 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15261 : (TARGET_AVX512VL)))
15262 : return -1;
15263 : return 9977; /* compressv8hi_mask */
15264 :
15265 : default:
15266 : return -1;
15267 : }
15268 : }
15269 :
15270 : int
15271 : recog_267 (rtx x1 ATTRIBUTE_UNUSED,
15272 : rtx_insn *insn ATTRIBUTE_UNUSED,
15273 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15274 : {
15275 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15276 : rtx x2, x3, x4, x5;
15277 : int res ATTRIBUTE_UNUSED;
15278 : x2 = XEXP (x1, 0);
15279 : operands[0] = x2;
15280 : x3 = XEXP (x1, 1);
15281 : x4 = XVECEXP (x3, 0, 0);
15282 : operands[1] = x4;
15283 : x5 = XVECEXP (x3, 0, 1);
15284 : operands[2] = x5;
15285 : switch (pattern677 (x3))
15286 : {
15287 : case 0:
15288 : if (
15289 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15290 : (TARGET_AVX512FP16 && 1 && 1))
15291 : return 4366; /* fma_fcmaddc_v32hf */
15292 : break;
15293 :
15294 : case 1:
15295 : if ((
15296 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15297 : (TARGET_AVX512FP16 && 1 && 1) &&
15298 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15299 : (TARGET_AVX512VL)))
15300 : return 4372; /* fma_fcmaddc_v16hf */
15301 : break;
15302 :
15303 : case 2:
15304 : if ((
15305 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15306 : (TARGET_AVX512FP16 && 1 && 1) &&
15307 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15308 : (TARGET_AVX512VL)))
15309 : return 4376; /* fma_fcmaddc_v8hf */
15310 : break;
15311 :
15312 : default:
15313 : break;
15314 : }
15315 : if (GET_CODE (x5) != SUBREG
15316 : || maybe_ne (SUBREG_BYTE (x5), 0))
15317 : return -1;
15318 : switch (pattern602 (x3))
15319 : {
15320 : case 0:
15321 : if (!
15322 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15323 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
15324 : return -1;
15325 : return 4399; /* fma_v32hf_fcmaddc_bcst */
15326 :
15327 : case 1:
15328 : if (!(
15329 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15330 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15331 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15332 : (TARGET_AVX512VL)))
15333 : return -1;
15334 : return 4400; /* fma_v16hf_fcmaddc_bcst */
15335 :
15336 : case 2:
15337 : if (!(
15338 : #line 7613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15339 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
15340 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15341 : (TARGET_AVX512VL)))
15342 : return -1;
15343 : return 4401; /* fma_v8hf_fcmaddc_bcst */
15344 :
15345 : default:
15346 : return -1;
15347 : }
15348 : }
15349 :
15350 : int
15351 : recog_274 (rtx x1 ATTRIBUTE_UNUSED,
15352 : rtx_insn *insn ATTRIBUTE_UNUSED,
15353 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15354 : {
15355 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15356 : rtx x2, x3, x4, x5, x6, x7, x8;
15357 : int res ATTRIBUTE_UNUSED;
15358 : x2 = XEXP (x1, 1);
15359 : x3 = XEXP (x2, 0);
15360 : x4 = XEXP (x3, 1);
15361 : if (GET_CODE (x4) != PARALLEL)
15362 : return -1;
15363 : x5 = XEXP (x3, 0);
15364 : operands[1] = x5;
15365 : x6 = XEXP (x2, 1);
15366 : operands[2] = x6;
15367 : switch (XVECLEN (x4, 0))
15368 : {
15369 : case 1:
15370 : x7 = XVECEXP (x4, 0, 0);
15371 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15372 : return -1;
15373 : switch (GET_CODE (operands[2]))
15374 : {
15375 : case CONST_INT:
15376 : case CONST_DOUBLE:
15377 : case CONST_VECTOR:
15378 : switch (GET_MODE (operands[0]))
15379 : {
15380 : case E_V2DImode:
15381 : if (pattern1150 (x2,
15382 : E_DImode,
15383 : E_V2DImode) != 0
15384 : || !
15385 : #line 1871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15386 : (TARGET_SSE2))
15387 : return -1;
15388 : return 2617; /* *sse2_movq128_v2di */
15389 :
15390 : case E_V2DFmode:
15391 : if (pattern1150 (x2,
15392 : E_DFmode,
15393 : E_V2DFmode) != 0
15394 : || !
15395 : #line 1871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15396 : (TARGET_SSE2))
15397 : return -1;
15398 : return 2618; /* *sse2_movq128_v2df */
15399 :
15400 : default:
15401 : return -1;
15402 : }
15403 :
15404 : case REG:
15405 : case SUBREG:
15406 : case MEM:
15407 : if (!nonimmediate_operand (operands[2], E_DFmode)
15408 : || pattern1151 (x2,
15409 : E_V2DFmode,
15410 : E_DFmode) != 0
15411 : || !
15412 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15413 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15414 : return -1;
15415 : return 7251; /* sse2_loadhpd */
15416 :
15417 : default:
15418 : return -1;
15419 : }
15420 :
15421 : case 2:
15422 : x7 = XVECEXP (x4, 0, 0);
15423 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
15424 : return -1;
15425 : x8 = XVECEXP (x4, 0, 1);
15426 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
15427 : return -1;
15428 : switch (GET_MODE (operands[0]))
15429 : {
15430 : case E_V4SFmode:
15431 : if (pattern1151 (x2,
15432 : E_V4SFmode,
15433 : E_V2SFmode) != 0
15434 : || !nonimmediate_operand (operands[2], E_V2SFmode)
15435 : || !
15436 : #line 11951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15437 : (TARGET_SSE))
15438 : return -1;
15439 : return 5290; /* sse_loadhps */
15440 :
15441 : case E_V4DImode:
15442 : if (pattern1152 (x2,
15443 : E_V2DImode,
15444 : E_V4DImode) != 0
15445 : || !
15446 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15447 : (TARGET_AVX && 1))
15448 : return -1;
15449 : return 9540; /* vec_set_hi_v4di */
15450 :
15451 : case E_V4DFmode:
15452 : if (pattern1152 (x2,
15453 : E_V2DFmode,
15454 : E_V4DFmode) != 0
15455 : || !
15456 : #line 29159 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15457 : (TARGET_AVX && 1))
15458 : return -1;
15459 : return 9542; /* vec_set_hi_v4df */
15460 :
15461 : default:
15462 : return -1;
15463 : }
15464 :
15465 : case 8:
15466 : if (pattern681 (x4) != 0)
15467 : return -1;
15468 : switch (GET_MODE (operands[0]))
15469 : {
15470 : case E_V16SFmode:
15471 : if (pattern1152 (x2,
15472 : E_V8SFmode,
15473 : E_V16SFmode) != 0
15474 : || !
15475 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15476 : (TARGET_AVX512DQ))
15477 : return -1;
15478 : return 8446; /* vec_set_hi_v16sf */
15479 :
15480 : case E_V16SImode:
15481 : if (pattern1152 (x2,
15482 : E_V8SImode,
15483 : E_V16SImode) != 0
15484 : || !
15485 : #line 20450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15486 : (TARGET_AVX512DQ))
15487 : return -1;
15488 : return 8448; /* vec_set_hi_v16si */
15489 :
15490 : case E_V16HImode:
15491 : if (pattern1152 (x2,
15492 : E_V8HImode,
15493 : E_V16HImode) != 0
15494 : || !
15495 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15496 : (TARGET_AVX))
15497 : return -1;
15498 : return 9555; /* vec_set_hi_v16hi */
15499 :
15500 : case E_V16HFmode:
15501 : if (pattern1152 (x2,
15502 : E_V8HFmode,
15503 : E_V16HFmode) != 0
15504 : || !
15505 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15506 : (TARGET_AVX))
15507 : return -1;
15508 : return 9556; /* vec_set_hi_v16hf */
15509 :
15510 : case E_V16BFmode:
15511 : if (pattern1152 (x2,
15512 : E_V8BFmode,
15513 : E_V16BFmode) != 0
15514 : || !
15515 : #line 29254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15516 : (TARGET_AVX))
15517 : return -1;
15518 : return 9557; /* vec_set_hi_v16bf */
15519 :
15520 : default:
15521 : return -1;
15522 : }
15523 :
15524 : case 4:
15525 : if (pattern682 (x4,
15526 : 3,
15527 : 2,
15528 : 1) != 0)
15529 : return -1;
15530 : switch (GET_MODE (operands[0]))
15531 : {
15532 : case E_V8DFmode:
15533 : if (pattern1152 (x2,
15534 : E_V4DFmode,
15535 : E_V8DFmode) != 0
15536 : || !
15537 : #line 20480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15538 : (TARGET_AVX512F))
15539 : return -1;
15540 : return 8454; /* vec_set_hi_v8df */
15541 :
15542 : case E_V8DImode:
15543 : if (pattern1152 (x2,
15544 : E_V4DImode,
15545 : E_V8DImode) != 0
15546 : || !
15547 : #line 20480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15548 : (TARGET_AVX512F))
15549 : return -1;
15550 : return 8456; /* vec_set_hi_v8di */
15551 :
15552 : case E_V8SImode:
15553 : if (pattern1152 (x2,
15554 : E_V4SImode,
15555 : E_V8SImode) != 0
15556 : || !
15557 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15558 : (TARGET_AVX))
15559 : return -1;
15560 : return 9548; /* vec_set_hi_v8si */
15561 :
15562 : case E_V8SFmode:
15563 : if (pattern1152 (x2,
15564 : E_V4SFmode,
15565 : E_V8SFmode) != 0
15566 : || !
15567 : #line 29207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15568 : (TARGET_AVX))
15569 : return -1;
15570 : return 9550; /* vec_set_hi_v8sf */
15571 :
15572 : default:
15573 : return -1;
15574 : }
15575 :
15576 : case 16:
15577 : if (pattern795 (x4,
15578 : 6,
15579 : 5,
15580 : 4) != 0
15581 : || pattern1490 (x4,
15582 : 11,
15583 : 10,
15584 : 9,
15585 : 8,
15586 : 7) != 0
15587 : || pattern1152 (x2,
15588 : E_V16QImode,
15589 : E_V32QImode) != 0
15590 : || !
15591 : #line 29306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15592 : (TARGET_AVX))
15593 : return -1;
15594 : return 9559; /* vec_set_hi_v32qi */
15595 :
15596 : default:
15597 : return -1;
15598 : }
15599 : }
15600 :
15601 : int
15602 : recog_275 (rtx x1 ATTRIBUTE_UNUSED,
15603 : rtx_insn *insn ATTRIBUTE_UNUSED,
15604 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15605 : {
15606 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15607 : rtx x2, x3, x4, x5, x6;
15608 : int res ATTRIBUTE_UNUSED;
15609 : x2 = XEXP (x1, 1);
15610 : x3 = XEXP (x2, 0);
15611 : switch (XVECLEN (x3, 0))
15612 : {
15613 : case 1:
15614 : x4 = XVECEXP (x3, 0, 0);
15615 : operands[1] = x4;
15616 : switch (XINT (x3, 1))
15617 : {
15618 : case 47:
15619 : if (GET_MODE (x3) == E_V4SImode
15620 : && pattern798 (x2,
15621 : E_V4SImode,
15622 : E_V4DFmode,
15623 : E_V8SImode) == 0
15624 : &&
15625 : #line 9762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15626 : (TARGET_AVX))
15627 : return 5044; /* *avx_cvtpd2dq256_2 */
15628 : if (GET_MODE (x3) != E_V2SImode)
15629 : return -1;
15630 : x5 = XEXP (x2, 1);
15631 : if (GET_CODE (x5) != CONST_VECTOR
15632 : || pattern512 (x5,
15633 : E_V2SImode,
15634 : 2) != 0
15635 : || !register_operand (operands[0], E_V4SImode)
15636 : || GET_MODE (x2) != E_V4SImode
15637 : || !vector_operand (operands[1], E_V2DFmode)
15638 : || !
15639 : #line 9775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15640 : (TARGET_SSE2))
15641 : return -1;
15642 : return 5045; /* sse2_cvtpd2dq */
15643 :
15644 : case 157:
15645 : if (pattern679 (x2) != 0
15646 : || !
15647 : #line 9845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15648 : (TARGET_AVX512VL))
15649 : return -1;
15650 : return 5056; /* fixuns_notruncv2dfv2si2 */
15651 :
15652 : case 174:
15653 : if (pattern679 (x2) != 0
15654 : || !
15655 : #line 9912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15656 : (TARGET_AVX512VL))
15657 : return -1;
15658 : return 5075; /* *unspec_fixuns_truncv2dfv2si2 */
15659 :
15660 : case 254:
15661 : if (GET_MODE (x3) != E_V8QImode
15662 : || pattern798 (x2,
15663 : E_V8QImode,
15664 : E_V8HFmode,
15665 : E_V16QImode) != 0
15666 : || !
15667 : #line 32572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15668 : (TARGET_AVX10_2))
15669 : return -1;
15670 : return 10567; /* *vcvtph2bf8v8hf */
15671 :
15672 : case 255:
15673 : if (GET_MODE (x3) != E_V8QImode
15674 : || pattern798 (x2,
15675 : E_V8QImode,
15676 : E_V8HFmode,
15677 : E_V16QImode) != 0
15678 : || !
15679 : #line 32572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15680 : (TARGET_AVX10_2))
15681 : return -1;
15682 : return 10568; /* *vcvtph2bf8sv8hf */
15683 :
15684 : case 256:
15685 : if (GET_MODE (x3) != E_V8QImode
15686 : || pattern798 (x2,
15687 : E_V8QImode,
15688 : E_V8HFmode,
15689 : E_V16QImode) != 0
15690 : || !
15691 : #line 32572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15692 : (TARGET_AVX10_2))
15693 : return -1;
15694 : return 10569; /* *vcvtph2hf8v8hf */
15695 :
15696 : case 257:
15697 : if (GET_MODE (x3) != E_V8QImode
15698 : || pattern798 (x2,
15699 : E_V8QImode,
15700 : E_V8HFmode,
15701 : E_V16QImode) != 0
15702 : || !
15703 : #line 32572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15704 : (TARGET_AVX10_2))
15705 : return -1;
15706 : return 10570; /* *vcvtph2hf8sv8hf */
15707 :
15708 : default:
15709 : return -1;
15710 : }
15711 :
15712 : case 2:
15713 : x4 = XVECEXP (x3, 0, 0);
15714 : operands[1] = x4;
15715 : x6 = XVECEXP (x3, 0, 1);
15716 : operands[2] = x6;
15717 : x5 = XEXP (x2, 1);
15718 : operands[3] = x5;
15719 : switch (XINT (x3, 1))
15720 : {
15721 : case 151:
15722 : if (GET_MODE (x3) != E_V4HImode
15723 : || !register_operand (operands[0], E_V8HImode)
15724 : || GET_MODE (x2) != E_V8HImode
15725 : || !register_operand (operands[1], E_V4SFmode)
15726 : || !const_0_to_255_operand (operands[2], E_SImode)
15727 : || !const0_operand (operands[3], E_V4HImode)
15728 : || !
15729 : #line 29846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15730 : ((TARGET_F16C || TARGET_AVX512VL) && 1))
15731 : return -1;
15732 : return 9731; /* *vcvtps2ph */
15733 :
15734 : case 246:
15735 : if (pattern922 (x2) != 0
15736 : || !
15737 : #line 32482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15738 : (TARGET_AVX10_2))
15739 : return -1;
15740 : return 10543; /* *vcvtbiasph2bf8v8hf */
15741 :
15742 : case 247:
15743 : if (pattern922 (x2) != 0
15744 : || !
15745 : #line 32482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15746 : (TARGET_AVX10_2))
15747 : return -1;
15748 : return 10544; /* *vcvtbiasph2bf8sv8hf */
15749 :
15750 : case 248:
15751 : if (pattern922 (x2) != 0
15752 : || !
15753 : #line 32482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15754 : (TARGET_AVX10_2))
15755 : return -1;
15756 : return 10545; /* *vcvtbiasph2hf8v8hf */
15757 :
15758 : case 249:
15759 : if (pattern922 (x2) != 0
15760 : || !
15761 : #line 32482 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15762 : (TARGET_AVX10_2))
15763 : return -1;
15764 : return 10546; /* *vcvtbiasph2hf8sv8hf */
15765 :
15766 : default:
15767 : return -1;
15768 : }
15769 :
15770 : default:
15771 : return -1;
15772 : }
15773 : }
15774 :
15775 : int
15776 : recog_279 (rtx x1 ATTRIBUTE_UNUSED,
15777 : rtx_insn *insn ATTRIBUTE_UNUSED,
15778 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15779 : {
15780 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15781 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15782 : int res ATTRIBUTE_UNUSED;
15783 : x2 = XEXP (x1, 1);
15784 : x3 = XEXP (x2, 1);
15785 : x4 = XVECEXP (x3, 0, 2);
15786 : if (GET_CODE (x4) != CONST_INT)
15787 : return -1;
15788 : x5 = XVECEXP (x3, 0, 3);
15789 : if (GET_CODE (x5) != CONST_INT)
15790 : return -1;
15791 : x6 = XVECEXP (x3, 0, 0);
15792 : switch (XWINT (x6, 0))
15793 : {
15794 : case 6L:
15795 : x7 = XVECEXP (x3, 0, 1);
15796 : if (XWINT (x7, 0) != 7L
15797 : || XWINT (x4, 0) != 2L
15798 : || XWINT (x5, 0) != 3L
15799 : || pattern1568 (x2) != 0
15800 : || !
15801 : #line 11389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15802 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15803 : return -1;
15804 : return 5255; /* sse_movhlps */
15805 :
15806 : case 0L:
15807 : x7 = XVECEXP (x3, 0, 1);
15808 : switch (XWINT (x7, 0))
15809 : {
15810 : case 1L:
15811 : if (XWINT (x4, 0) != 4L
15812 : || XWINT (x5, 0) != 5L
15813 : || pattern1568 (x2) != 0
15814 : || !
15815 : #line 11434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15816 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)))
15817 : return -1;
15818 : return 5256; /* sse_movlhps */
15819 :
15820 : case 4L:
15821 : switch (XWINT (x4, 0))
15822 : {
15823 : case 1L:
15824 : if (XWINT (x5, 0) != 5L
15825 : || pattern1323 (x2,
15826 : E_V4SFmode,
15827 : E_V8SFmode) != 0
15828 : || !
15829 : #line 11651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15830 : (TARGET_SSE))
15831 : return -1;
15832 : return 5271; /* vec_interleave_lowv4sf */
15833 :
15834 : case 2L:
15835 : if (XWINT (x5, 0) != 6L)
15836 : return -1;
15837 : switch (GET_MODE (operands[0]))
15838 : {
15839 : case E_V4DFmode:
15840 : if (!register_operand (operands[0], E_V4DFmode)
15841 : || GET_MODE (x2) != E_V4DFmode)
15842 : return -1;
15843 : x8 = XEXP (x2, 0);
15844 : if (GET_MODE (x8) != E_V8DFmode)
15845 : return -1;
15846 : if (nonimmediate_operand (operands[1], E_V4DFmode))
15847 : {
15848 : x9 = XEXP (x8, 1);
15849 : if (rtx_equal_p (x9, operands[1])
15850 : &&
15851 : #line 13794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15852 : (TARGET_AVX && 1))
15853 : return 5424; /* avx_movddup256 */
15854 : }
15855 : if (!register_operand (operands[1], E_V4DFmode))
15856 : return -1;
15857 : x9 = XEXP (x8, 1);
15858 : operands[2] = x9;
15859 : if (!nonimmediate_operand (operands[2], E_V4DFmode)
15860 : || !
15861 : #line 13808 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15862 : (TARGET_AVX && 1))
15863 : return -1;
15864 : return 5426; /* avx_unpcklpd256 */
15865 :
15866 : case E_V4DImode:
15867 : if (pattern1631 (x2,
15868 : E_V4DImode,
15869 : E_V8DImode) != 0
15870 : || !
15871 : #line 14840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15872 : (TARGET_AVX2 && 1))
15873 : return -1;
15874 : return 7239; /* avx2_interleave_lowv4di */
15875 :
15876 : default:
15877 : return -1;
15878 : }
15879 :
15880 : default:
15881 : return -1;
15882 : }
15883 :
15884 : case 0L:
15885 : if (XWINT (x4, 0) != 6L
15886 : || XWINT (x5, 0) != 6L
15887 : || pattern1569 (x2) != 0
15888 : || !
15889 : #line 11741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15890 : (TARGET_SSE3 && 1))
15891 : return -1;
15892 : return 5280; /* sse3_movsldup */
15893 :
15894 : default:
15895 : return -1;
15896 : }
15897 :
15898 : case 2L:
15899 : x7 = XVECEXP (x3, 0, 1);
15900 : if (XWINT (x7, 0) != 6L
15901 : || XWINT (x4, 0) != 3L
15902 : || XWINT (x5, 0) != 7L
15903 : || pattern1323 (x2,
15904 : E_V4SFmode,
15905 : E_V8SFmode) != 0
15906 : || !
15907 : #line 11546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15908 : (TARGET_SSE && 1))
15909 : return -1;
15910 : return 5264; /* vec_interleave_highv4sf */
15911 :
15912 : case 1L:
15913 : if (XWINT (x5, 0) != 7L)
15914 : return -1;
15915 : x7 = XVECEXP (x3, 0, 1);
15916 : switch (XWINT (x7, 0))
15917 : {
15918 : case 1L:
15919 : if (XWINT (x4, 0) != 7L
15920 : || pattern1569 (x2) != 0
15921 : || !
15922 : #line 11688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15923 : (TARGET_SSE3 && 1))
15924 : return -1;
15925 : return 5274; /* sse3_movshdup */
15926 :
15927 : case 5L:
15928 : if (XWINT (x4, 0) != 3L)
15929 : return -1;
15930 : x8 = XEXP (x2, 0);
15931 : x9 = XEXP (x8, 1);
15932 : operands[2] = x9;
15933 : switch (GET_MODE (operands[0]))
15934 : {
15935 : case E_V4DFmode:
15936 : if (pattern1425 (x2,
15937 : E_V4DFmode,
15938 : E_V8DFmode) != 0
15939 : || !
15940 : #line 13664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15941 : (TARGET_AVX && 1))
15942 : return -1;
15943 : return 5416; /* avx_unpckhpd256 */
15944 :
15945 : case E_V4DImode:
15946 : if (pattern1425 (x2,
15947 : E_V4DImode,
15948 : E_V8DImode) != 0
15949 : || !
15950 : #line 14790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15951 : (TARGET_AVX2 && 1))
15952 : return -1;
15953 : return 7233; /* avx2_interleave_highv4di */
15954 :
15955 : default:
15956 : return -1;
15957 : }
15958 :
15959 : default:
15960 : return -1;
15961 : }
15962 :
15963 : default:
15964 : return -1;
15965 : }
15966 : }
15967 :
15968 : int
15969 : recog_283 (rtx x1 ATTRIBUTE_UNUSED,
15970 : rtx_insn *insn ATTRIBUTE_UNUSED,
15971 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15972 : {
15973 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15974 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15975 : rtx x10, x11, x12, x13;
15976 : int res ATTRIBUTE_UNUSED;
15977 : x2 = XEXP (x1, 1);
15978 : x3 = XEXP (x2, 1);
15979 : x4 = XVECEXP (x3, 0, 0);
15980 : if (GET_CODE (x4) != CONST_INT)
15981 : return -1;
15982 : x5 = XVECEXP (x3, 0, 1);
15983 : if (GET_CODE (x5) == CONST_INT)
15984 : {
15985 : res = recog_282 (x1, insn, pnum_clobbers);
15986 : if (res >= 0)
15987 : return res;
15988 : }
15989 : operands[3] = x4;
15990 : x6 = XEXP (x2, 0);
15991 : x7 = XEXP (x6, 1);
15992 : operands[2] = x7;
15993 : operands[4] = x5;
15994 : x8 = XVECEXP (x3, 0, 2);
15995 : operands[5] = x8;
15996 : x9 = XVECEXP (x3, 0, 3);
15997 : operands[6] = x9;
15998 : x10 = XVECEXP (x3, 0, 4);
15999 : operands[7] = x10;
16000 : x11 = XVECEXP (x3, 0, 5);
16001 : operands[8] = x11;
16002 : x12 = XVECEXP (x3, 0, 6);
16003 : operands[9] = x12;
16004 : x13 = XVECEXP (x3, 0, 7);
16005 : operands[10] = x13;
16006 : switch (GET_MODE (operands[0]))
16007 : {
16008 : case E_V8SFmode:
16009 : if (pattern1425 (x2,
16010 : E_V8SFmode,
16011 : E_V16SFmode) != 0)
16012 : return -1;
16013 : if (const_0_to_3_operand (operands[3], E_VOIDmode)
16014 : && const_0_to_3_operand (operands[4], E_VOIDmode)
16015 : && const_8_to_11_operand (operands[5], E_VOIDmode)
16016 : && const_8_to_11_operand (operands[6], E_VOIDmode)
16017 : && const_4_to_7_operand (operands[7], E_VOIDmode)
16018 : && const_4_to_7_operand (operands[8], E_VOIDmode)
16019 : && const_12_to_15_operand (operands[9], E_VOIDmode)
16020 : && const_12_to_15_operand (operands[10], E_VOIDmode)
16021 : &&
16022 : #line 11806 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16023 : (TARGET_AVX
16024 : && 1
16025 : && (INTVAL (operands[3]) == (INTVAL (operands[7]) - 4)
16026 : && INTVAL (operands[4]) == (INTVAL (operands[8]) - 4)
16027 : && INTVAL (operands[5]) == (INTVAL (operands[9]) - 4)
16028 : && INTVAL (operands[6]) == (INTVAL (operands[10]) - 4))))
16029 : return 5284; /* avx_shufps256_1 */
16030 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
16031 : || pattern1695 () != 0
16032 : || !
16033 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16034 : (TARGET_AVX512VL
16035 : && (INTVAL (operands[3]) & 3) == 0
16036 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16037 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
16038 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
16039 : && (INTVAL (operands[7]) & 3) == 0
16040 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16041 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
16042 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3))
16043 : return -1;
16044 : return 8472; /* avx512vl_shuf_f32x4_1 */
16045 :
16046 : case E_V8DFmode:
16047 : if (pattern1425 (x2,
16048 : E_V8DFmode,
16049 : E_V16DFmode) != 0)
16050 : return -1;
16051 : if (const_0_to_1_operand (operands[3], E_VOIDmode)
16052 : && const_8_to_9_operand (operands[4], E_VOIDmode)
16053 : && const_2_to_3_operand (operands[5], E_VOIDmode)
16054 : && const_10_to_11_operand (operands[6], E_VOIDmode)
16055 : && const_4_to_5_operand (operands[7], E_VOIDmode)
16056 : && const_12_to_13_operand (operands[8], E_VOIDmode)
16057 : && const_6_to_7_operand (operands[9], E_VOIDmode)
16058 : && const_14_to_15_operand (operands[10], E_VOIDmode)
16059 : &&
16060 : #line 14674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16061 : (TARGET_AVX512F))
16062 : return 7228; /* avx512f_shufpd512_1 */
16063 : if (!const_0_to_7_operand (operands[3], E_VOIDmode)
16064 : || pattern1695 () != 0
16065 : || !
16066 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16067 : (TARGET_AVX512F
16068 : && (INTVAL (operands[3]) & 1) == 0
16069 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16070 : && (INTVAL (operands[5]) & 1) == 0
16071 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
16072 : && (INTVAL (operands[7]) & 1) == 0
16073 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16074 : && (INTVAL (operands[9]) & 1) == 0
16075 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1))
16076 : return -1;
16077 : return 8462; /* avx512f_shuf_f64x2_1 */
16078 :
16079 : case E_V8DImode:
16080 : if (pattern1696 (x2,
16081 : E_V8DImode,
16082 : E_V16DImode) != 0
16083 : || !
16084 : #line 20575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16085 : (TARGET_AVX512F
16086 : && (INTVAL (operands[3]) & 1) == 0
16087 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16088 : && (INTVAL (operands[5]) & 1) == 0
16089 : && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
16090 : && (INTVAL (operands[7]) & 1) == 0
16091 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16092 : && (INTVAL (operands[9]) & 1) == 0
16093 : && INTVAL (operands[9]) == INTVAL (operands[10]) - 1))
16094 : return -1;
16095 : return 8464; /* avx512f_shuf_i64x2_1 */
16096 :
16097 : case E_V8SImode:
16098 : if (pattern1696 (x2,
16099 : E_V8SImode,
16100 : E_V16SImode) != 0
16101 : || !
16102 : #line 20673 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16103 : (TARGET_AVX512VL
16104 : && (INTVAL (operands[3]) & 3) == 0
16105 : && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
16106 : && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
16107 : && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
16108 : && (INTVAL (operands[7]) & 3) == 0
16109 : && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
16110 : && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
16111 : && INTVAL (operands[7]) == INTVAL (operands[10]) - 3))
16112 : return -1;
16113 : return 8470; /* avx512vl_shuf_i32x4_1 */
16114 :
16115 : default:
16116 : return -1;
16117 : }
16118 : }
16119 :
16120 : int
16121 : recog_286 (rtx x1 ATTRIBUTE_UNUSED,
16122 : rtx_insn *insn ATTRIBUTE_UNUSED,
16123 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16124 : {
16125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16126 : rtx x2, x3, x4, x5, x6, x7;
16127 : int res ATTRIBUTE_UNUSED;
16128 : x2 = XEXP (x1, 1);
16129 : x3 = XEXP (x2, 1);
16130 : x4 = XVECEXP (x3, 0, 0);
16131 : if (GET_CODE (x4) != CONST_INT)
16132 : return -1;
16133 : x5 = XVECEXP (x3, 0, 1);
16134 : if (GET_CODE (x5) == CONST_INT)
16135 : {
16136 : x6 = XEXP (x2, 0);
16137 : x7 = XEXP (x6, 1);
16138 : operands[2] = x7;
16139 : switch (XWINT (x4, 0))
16140 : {
16141 : case 1L:
16142 : if (XWINT (x5, 0) == 3L)
16143 : {
16144 : switch (GET_MODE (operands[0]))
16145 : {
16146 : case E_V2DFmode:
16147 : if (pattern1493 (x2,
16148 : E_V2DFmode,
16149 : E_V4DFmode) == 0
16150 : &&
16151 : #line 13737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16152 : (TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 1)))
16153 : return 5419; /* *vec_interleave_highv2df */
16154 : break;
16155 :
16156 : case E_V2DImode:
16157 : if (pattern1494 (x2,
16158 : E_V2DImode,
16159 : E_V4DImode) == 0
16160 : &&
16161 : #line 14820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16162 : (TARGET_SSE2 && 1))
16163 : return 7237; /* vec_interleave_highv2di */
16164 : break;
16165 :
16166 : default:
16167 : break;
16168 : }
16169 : }
16170 : break;
16171 :
16172 : case 0L:
16173 : if (XWINT (x5, 0) == 2L)
16174 : {
16175 : switch (GET_MODE (operands[0]))
16176 : {
16177 : case E_V2DFmode:
16178 : if (pattern1493 (x2,
16179 : E_V2DFmode,
16180 : E_V4DFmode) == 0
16181 : &&
16182 : #line 13880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16183 : (TARGET_SSE2 && ix86_vec_interleave_v2df_operator_ok (operands, 0)))
16184 : return 5429; /* *vec_interleave_lowv2df */
16185 : break;
16186 :
16187 : case E_V2DImode:
16188 : if (pattern1494 (x2,
16189 : E_V2DImode,
16190 : E_V4DImode) == 0
16191 : &&
16192 : #line 14870 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16193 : (TARGET_SSE2 && 1))
16194 : return 7243; /* vec_interleave_lowv2di */
16195 : break;
16196 :
16197 : default:
16198 : break;
16199 : }
16200 : }
16201 : break;
16202 :
16203 : default:
16204 : break;
16205 : }
16206 : }
16207 : operands[3] = x4;
16208 : if (!const_0_to_1_operand (operands[3], E_VOIDmode))
16209 : return -1;
16210 : x6 = XEXP (x2, 0);
16211 : x7 = XEXP (x6, 1);
16212 : operands[2] = x7;
16213 : operands[4] = x5;
16214 : if (!const_2_to_3_operand (operands[4], E_VOIDmode))
16215 : return -1;
16216 : switch (GET_MODE (operands[0]))
16217 : {
16218 : case E_V2DImode:
16219 : if (pattern1494 (x2,
16220 : E_V2DImode,
16221 : E_V4DImode) != 0
16222 : || !
16223 : #line 14888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16224 : (TARGET_SSE2))
16225 : return -1;
16226 : return 7245; /* sse2_shufpd_v2di */
16227 :
16228 : case E_V2DFmode:
16229 : if (pattern1494 (x2,
16230 : E_V2DFmode,
16231 : E_V4DFmode) != 0
16232 : || !
16233 : #line 14888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16234 : (TARGET_SSE2))
16235 : return -1;
16236 : return 7246; /* sse2_shufpd_v2df */
16237 :
16238 : default:
16239 : return -1;
16240 : }
16241 : }
16242 :
16243 : int
16244 : recog_288 (rtx x1 ATTRIBUTE_UNUSED,
16245 : rtx_insn *insn ATTRIBUTE_UNUSED,
16246 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16247 : {
16248 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16249 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16250 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16251 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
16252 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
16253 : rtx x34, x35, x36, x37;
16254 : int res ATTRIBUTE_UNUSED;
16255 : x2 = XEXP (x1, 1);
16256 : x3 = XEXP (x2, 1);
16257 : if (pattern683 (x3) != 0)
16258 : return -1;
16259 : x4 = XEXP (x2, 0);
16260 : x5 = XEXP (x4, 1);
16261 : operands[2] = x5;
16262 : x6 = XVECEXP (x3, 0, 0);
16263 : switch (XWINT (x6, 0))
16264 : {
16265 : case 8L:
16266 : x7 = XVECEXP (x3, 0, 1);
16267 : if (XWINT (x7, 0) != 40L)
16268 : return -1;
16269 : x8 = XVECEXP (x3, 0, 2);
16270 : if (XWINT (x8, 0) != 9L)
16271 : return -1;
16272 : x9 = XVECEXP (x3, 0, 3);
16273 : if (XWINT (x9, 0) != 41L)
16274 : return -1;
16275 : x10 = XVECEXP (x3, 0, 4);
16276 : if (XWINT (x10, 0) != 10L)
16277 : return -1;
16278 : x11 = XVECEXP (x3, 0, 5);
16279 : if (XWINT (x11, 0) != 42L)
16280 : return -1;
16281 : x12 = XVECEXP (x3, 0, 6);
16282 : if (XWINT (x12, 0) != 11L)
16283 : return -1;
16284 : x13 = XVECEXP (x3, 0, 7);
16285 : if (XWINT (x13, 0) != 43L
16286 : || pattern1913 (x3) != 0)
16287 : return -1;
16288 : x14 = XVECEXP (x3, 0, 16);
16289 : if (XWINT (x14, 0) != 24L)
16290 : return -1;
16291 : x15 = XVECEXP (x3, 0, 17);
16292 : if (XWINT (x15, 0) != 56L)
16293 : return -1;
16294 : x16 = XVECEXP (x3, 0, 18);
16295 : if (XWINT (x16, 0) != 25L)
16296 : return -1;
16297 : x17 = XVECEXP (x3, 0, 19);
16298 : if (XWINT (x17, 0) != 57L)
16299 : return -1;
16300 : x18 = XVECEXP (x3, 0, 20);
16301 : if (XWINT (x18, 0) != 26L)
16302 : return -1;
16303 : x19 = XVECEXP (x3, 0, 21);
16304 : if (XWINT (x19, 0) != 58L)
16305 : return -1;
16306 : x20 = XVECEXP (x3, 0, 22);
16307 : if (XWINT (x20, 0) != 27L)
16308 : return -1;
16309 : x21 = XVECEXP (x3, 0, 23);
16310 : if (XWINT (x21, 0) != 59L
16311 : || pattern1919 (x3) != 0
16312 : || pattern1425 (x2,
16313 : E_V32QImode,
16314 : E_V64QImode) != 0
16315 : || !
16316 : #line 19790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16317 : (TARGET_AVX2 && 1 && 1))
16318 : return -1;
16319 : return 8366; /* avx2_interleave_highv32qi */
16320 :
16321 : case 0L:
16322 : x7 = XVECEXP (x3, 0, 1);
16323 : if (XWINT (x7, 0) != 32L)
16324 : return -1;
16325 : x8 = XVECEXP (x3, 0, 2);
16326 : if (XWINT (x8, 0) != 1L)
16327 : return -1;
16328 : x9 = XVECEXP (x3, 0, 3);
16329 : if (XWINT (x9, 0) != 33L)
16330 : return -1;
16331 : x10 = XVECEXP (x3, 0, 4);
16332 : if (XWINT (x10, 0) != 2L)
16333 : return -1;
16334 : x11 = XVECEXP (x3, 0, 5);
16335 : if (XWINT (x11, 0) != 34L)
16336 : return -1;
16337 : x12 = XVECEXP (x3, 0, 6);
16338 : if (XWINT (x12, 0) != 3L)
16339 : return -1;
16340 : x13 = XVECEXP (x3, 0, 7);
16341 : if (XWINT (x13, 0) != 35L)
16342 : return -1;
16343 : x14 = XVECEXP (x3, 0, 16);
16344 : if (XWINT (x14, 0) != 16L)
16345 : return -1;
16346 : x15 = XVECEXP (x3, 0, 17);
16347 : if (XWINT (x15, 0) != 48L)
16348 : return -1;
16349 : x16 = XVECEXP (x3, 0, 18);
16350 : if (XWINT (x16, 0) != 17L)
16351 : return -1;
16352 : x17 = XVECEXP (x3, 0, 19);
16353 : if (XWINT (x17, 0) != 49L)
16354 : return -1;
16355 : x18 = XVECEXP (x3, 0, 20);
16356 : if (XWINT (x18, 0) != 18L)
16357 : return -1;
16358 : x19 = XVECEXP (x3, 0, 21);
16359 : if (XWINT (x19, 0) != 50L)
16360 : return -1;
16361 : x20 = XVECEXP (x3, 0, 22);
16362 : if (XWINT (x20, 0) != 19L)
16363 : return -1;
16364 : x21 = XVECEXP (x3, 0, 23);
16365 : if (XWINT (x21, 0) != 51L)
16366 : return -1;
16367 : x22 = XVECEXP (x3, 0, 8);
16368 : switch (XWINT (x22, 0))
16369 : {
16370 : case 4L:
16371 : x23 = XVECEXP (x3, 0, 9);
16372 : if (XWINT (x23, 0) != 36L)
16373 : return -1;
16374 : x24 = XVECEXP (x3, 0, 10);
16375 : if (XWINT (x24, 0) != 5L)
16376 : return -1;
16377 : x25 = XVECEXP (x3, 0, 11);
16378 : if (XWINT (x25, 0) != 37L)
16379 : return -1;
16380 : x26 = XVECEXP (x3, 0, 12);
16381 : if (XWINT (x26, 0) != 6L)
16382 : return -1;
16383 : x27 = XVECEXP (x3, 0, 13);
16384 : if (XWINT (x27, 0) != 38L)
16385 : return -1;
16386 : x28 = XVECEXP (x3, 0, 14);
16387 : if (XWINT (x28, 0) != 7L)
16388 : return -1;
16389 : x29 = XVECEXP (x3, 0, 15);
16390 : if (XWINT (x29, 0) != 39L)
16391 : return -1;
16392 : x30 = XVECEXP (x3, 0, 24);
16393 : if (XWINT (x30, 0) != 20L)
16394 : return -1;
16395 : x31 = XVECEXP (x3, 0, 25);
16396 : if (XWINT (x31, 0) != 52L)
16397 : return -1;
16398 : x32 = XVECEXP (x3, 0, 26);
16399 : if (XWINT (x32, 0) != 21L)
16400 : return -1;
16401 : x33 = XVECEXP (x3, 0, 27);
16402 : if (XWINT (x33, 0) != 53L)
16403 : return -1;
16404 : x34 = XVECEXP (x3, 0, 28);
16405 : if (XWINT (x34, 0) != 22L)
16406 : return -1;
16407 : x35 = XVECEXP (x3, 0, 29);
16408 : if (XWINT (x35, 0) != 54L)
16409 : return -1;
16410 : x36 = XVECEXP (x3, 0, 30);
16411 : if (XWINT (x36, 0) != 23L)
16412 : return -1;
16413 : x37 = XVECEXP (x3, 0, 31);
16414 : if (XWINT (x37, 0) != 55L
16415 : || pattern1425 (x2,
16416 : E_V32QImode,
16417 : E_V64QImode) != 0
16418 : || !
16419 : #line 19886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16420 : (TARGET_AVX2 && 1 && 1))
16421 : return -1;
16422 : return 8372; /* avx2_interleave_lowv32qi */
16423 :
16424 : case 8L:
16425 : x23 = XVECEXP (x3, 0, 9);
16426 : if (XWINT (x23, 0) != 40L)
16427 : return -1;
16428 : x24 = XVECEXP (x3, 0, 10);
16429 : if (XWINT (x24, 0) != 9L)
16430 : return -1;
16431 : x25 = XVECEXP (x3, 0, 11);
16432 : if (XWINT (x25, 0) != 41L)
16433 : return -1;
16434 : x26 = XVECEXP (x3, 0, 12);
16435 : if (XWINT (x26, 0) != 10L)
16436 : return -1;
16437 : x27 = XVECEXP (x3, 0, 13);
16438 : if (XWINT (x27, 0) != 42L)
16439 : return -1;
16440 : x28 = XVECEXP (x3, 0, 14);
16441 : if (XWINT (x28, 0) != 11L)
16442 : return -1;
16443 : x29 = XVECEXP (x3, 0, 15);
16444 : if (XWINT (x29, 0) != 43L)
16445 : return -1;
16446 : x30 = XVECEXP (x3, 0, 24);
16447 : if (XWINT (x30, 0) != 24L)
16448 : return -1;
16449 : x31 = XVECEXP (x3, 0, 25);
16450 : if (XWINT (x31, 0) != 56L)
16451 : return -1;
16452 : x32 = XVECEXP (x3, 0, 26);
16453 : if (XWINT (x32, 0) != 25L)
16454 : return -1;
16455 : x33 = XVECEXP (x3, 0, 27);
16456 : if (XWINT (x33, 0) != 57L)
16457 : return -1;
16458 : x34 = XVECEXP (x3, 0, 28);
16459 : if (XWINT (x34, 0) != 26L)
16460 : return -1;
16461 : x35 = XVECEXP (x3, 0, 29);
16462 : if (XWINT (x35, 0) != 58L)
16463 : return -1;
16464 : x36 = XVECEXP (x3, 0, 30);
16465 : if (XWINT (x36, 0) != 27L)
16466 : return -1;
16467 : x37 = XVECEXP (x3, 0, 31);
16468 : if (XWINT (x37, 0) != 59L)
16469 : return -1;
16470 : switch (GET_MODE (operands[0]))
16471 : {
16472 : case E_V32HImode:
16473 : if (pattern1425 (x2,
16474 : E_V32HImode,
16475 : E_V64HImode) != 0
16476 : || !
16477 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16478 : (TARGET_AVX512BW))
16479 : return -1;
16480 : return 8394; /* *avx512bw_interleave_lowv32hi */
16481 :
16482 : case E_V32HFmode:
16483 : if (pattern1425 (x2,
16484 : E_V32HFmode,
16485 : E_V64HFmode) != 0
16486 : || !
16487 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16488 : (TARGET_AVX512BW))
16489 : return -1;
16490 : return 8396; /* *avx512bw_interleave_lowv32hf */
16491 :
16492 : case E_V32BFmode:
16493 : if (pattern1425 (x2,
16494 : E_V32BFmode,
16495 : E_V64BFmode) != 0
16496 : || !
16497 : #line 20006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16498 : (TARGET_AVX512BW))
16499 : return -1;
16500 : return 8398; /* *avx512bw_interleave_lowv32bf */
16501 :
16502 : default:
16503 : return -1;
16504 : }
16505 :
16506 : default:
16507 : return -1;
16508 : }
16509 :
16510 : case 4L:
16511 : x7 = XVECEXP (x3, 0, 1);
16512 : if (XWINT (x7, 0) != 36L)
16513 : return -1;
16514 : x8 = XVECEXP (x3, 0, 2);
16515 : if (XWINT (x8, 0) != 5L)
16516 : return -1;
16517 : x9 = XVECEXP (x3, 0, 3);
16518 : if (XWINT (x9, 0) != 37L)
16519 : return -1;
16520 : x10 = XVECEXP (x3, 0, 4);
16521 : if (XWINT (x10, 0) != 6L)
16522 : return -1;
16523 : x11 = XVECEXP (x3, 0, 5);
16524 : if (XWINT (x11, 0) != 38L)
16525 : return -1;
16526 : x12 = XVECEXP (x3, 0, 6);
16527 : if (XWINT (x12, 0) != 7L)
16528 : return -1;
16529 : x13 = XVECEXP (x3, 0, 7);
16530 : if (XWINT (x13, 0) != 39L
16531 : || pattern1913 (x3) != 0)
16532 : return -1;
16533 : x14 = XVECEXP (x3, 0, 16);
16534 : if (XWINT (x14, 0) != 20L)
16535 : return -1;
16536 : x15 = XVECEXP (x3, 0, 17);
16537 : if (XWINT (x15, 0) != 52L)
16538 : return -1;
16539 : x16 = XVECEXP (x3, 0, 18);
16540 : if (XWINT (x16, 0) != 21L)
16541 : return -1;
16542 : x17 = XVECEXP (x3, 0, 19);
16543 : if (XWINT (x17, 0) != 53L)
16544 : return -1;
16545 : x18 = XVECEXP (x3, 0, 20);
16546 : if (XWINT (x18, 0) != 22L)
16547 : return -1;
16548 : x19 = XVECEXP (x3, 0, 21);
16549 : if (XWINT (x19, 0) != 54L)
16550 : return -1;
16551 : x20 = XVECEXP (x3, 0, 22);
16552 : if (XWINT (x20, 0) != 23L)
16553 : return -1;
16554 : x21 = XVECEXP (x3, 0, 23);
16555 : if (XWINT (x21, 0) != 55L
16556 : || pattern1919 (x3) != 0)
16557 : return -1;
16558 : switch (GET_MODE (operands[0]))
16559 : {
16560 : case E_V32HImode:
16561 : if (pattern1425 (x2,
16562 : E_V32HImode,
16563 : E_V64HImode) != 0
16564 : || !
16565 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16566 : (TARGET_AVX512BW))
16567 : return -1;
16568 : return 8376; /* avx512bw_interleave_highv32hi */
16569 :
16570 : case E_V32HFmode:
16571 : if (pattern1425 (x2,
16572 : E_V32HFmode,
16573 : E_V64HFmode) != 0
16574 : || !
16575 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16576 : (TARGET_AVX512BW))
16577 : return -1;
16578 : return 8378; /* avx512bw_interleave_highv32hf */
16579 :
16580 : case E_V32BFmode:
16581 : if (pattern1425 (x2,
16582 : E_V32BFmode,
16583 : E_V64BFmode) != 0
16584 : || !
16585 : #line 19938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16586 : (TARGET_AVX512BW))
16587 : return -1;
16588 : return 8380; /* avx512bw_interleave_highv32bf */
16589 :
16590 : default:
16591 : return -1;
16592 : }
16593 :
16594 : default:
16595 : return -1;
16596 : }
16597 : }
16598 :
16599 : int
16600 : recog_298 (rtx x1 ATTRIBUTE_UNUSED,
16601 : rtx_insn *insn ATTRIBUTE_UNUSED,
16602 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16603 : {
16604 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16605 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16606 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16607 : int res ATTRIBUTE_UNUSED;
16608 : x2 = XEXP (x1, 1);
16609 : x3 = XEXP (x2, 1);
16610 : x4 = XVECEXP (x3, 0, 1);
16611 : operands[3] = x4;
16612 : x5 = XVECEXP (x3, 0, 2);
16613 : operands[4] = x5;
16614 : x6 = XVECEXP (x3, 0, 3);
16615 : operands[5] = x6;
16616 : x7 = XVECEXP (x3, 0, 5);
16617 : operands[7] = x7;
16618 : x8 = XVECEXP (x3, 0, 6);
16619 : operands[8] = x8;
16620 : x9 = XVECEXP (x3, 0, 7);
16621 : operands[9] = x9;
16622 : x10 = XVECEXP (x3, 0, 8);
16623 : operands[10] = x10;
16624 : x11 = XVECEXP (x3, 0, 9);
16625 : operands[11] = x11;
16626 : x12 = XVECEXP (x3, 0, 10);
16627 : operands[12] = x12;
16628 : x13 = XVECEXP (x3, 0, 11);
16629 : operands[13] = x13;
16630 : x14 = XVECEXP (x3, 0, 12);
16631 : operands[14] = x14;
16632 : x15 = XVECEXP (x3, 0, 13);
16633 : operands[15] = x15;
16634 : x16 = XVECEXP (x3, 0, 14);
16635 : operands[16] = x16;
16636 : x17 = XVECEXP (x3, 0, 15);
16637 : operands[17] = x17;
16638 : switch (GET_MODE (operands[0]))
16639 : {
16640 : case E_V16SFmode:
16641 : if (!register_operand (operands[0], E_V16SFmode)
16642 : || GET_MODE (x2) != E_V16SFmode
16643 : || !register_operand (operands[1], E_V16SFmode)
16644 : || pattern1861 () != 0
16645 : || !
16646 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16647 : (TARGET_AVX512F
16648 : && (INTVAL (operands[2]) & 3) == 0
16649 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
16650 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
16651 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
16652 : && (INTVAL (operands[6]) & 3) == 0
16653 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
16654 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
16655 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
16656 : && (INTVAL (operands[10]) & 3) == 0
16657 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
16658 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
16659 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
16660 : && (INTVAL (operands[14]) & 3) == 0
16661 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
16662 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
16663 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3))
16664 : return -1;
16665 : return 8478; /* *avx512f_shuf_f32x4_1_1 */
16666 :
16667 : case E_V16SImode:
16668 : if (!register_operand (operands[0], E_V16SImode)
16669 : || GET_MODE (x2) != E_V16SImode)
16670 : return -1;
16671 : if (register_operand (operands[1], E_V16SImode)
16672 : && pattern1861 () == 0
16673 : &&
16674 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16675 : (TARGET_AVX512F
16676 : && (INTVAL (operands[2]) & 3) == 0
16677 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
16678 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
16679 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
16680 : && (INTVAL (operands[6]) & 3) == 0
16681 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
16682 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
16683 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
16684 : && (INTVAL (operands[10]) & 3) == 0
16685 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
16686 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
16687 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
16688 : && (INTVAL (operands[14]) & 3) == 0
16689 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
16690 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
16691 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3))
16692 : return 8480; /* *avx512f_shuf_i32x4_1_1 */
16693 : if (!nonimmediate_operand (operands[1], E_V16SImode)
16694 : || pattern1728 () != 0
16695 : || !const_8_to_11_operand (operands[10], E_VOIDmode)
16696 : || !const_8_to_11_operand (operands[11], E_VOIDmode)
16697 : || !const_8_to_11_operand (operands[12], E_VOIDmode)
16698 : || !const_8_to_11_operand (operands[13], E_VOIDmode)
16699 : || !const_12_to_15_operand (operands[14], E_VOIDmode)
16700 : || !const_12_to_15_operand (operands[15], E_VOIDmode)
16701 : || !const_12_to_15_operand (operands[16], E_VOIDmode)
16702 : || !const_12_to_15_operand (operands[17], E_VOIDmode)
16703 : || !
16704 : #line 20887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16705 : (TARGET_AVX512F
16706 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
16707 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
16708 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
16709 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
16710 : && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
16711 : && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
16712 : && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
16713 : && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
16714 : && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
16715 : && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
16716 : && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
16717 : && INTVAL (operands[5]) + 12 == INTVAL (operands[17])))
16718 : return -1;
16719 : return 8482; /* avx512f_pshufd_1 */
16720 :
16721 : default:
16722 : return -1;
16723 : }
16724 : }
16725 :
16726 : int
16727 : recog_309 (rtx x1 ATTRIBUTE_UNUSED,
16728 : rtx_insn *insn ATTRIBUTE_UNUSED,
16729 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16730 : {
16731 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16732 : rtx x2, x3, x4;
16733 : int res ATTRIBUTE_UNUSED;
16734 : x2 = XEXP (x1, 1);
16735 : x3 = XEXP (x2, 0);
16736 : x4 = XEXP (x3, 0);
16737 : switch (GET_CODE (x4))
16738 : {
16739 : case REG:
16740 : case SUBREG:
16741 : case MEM:
16742 : case NOT:
16743 : switch (pattern535 (x2))
16744 : {
16745 : case 0:
16746 : if (!(
16747 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16748 : ((64 == 64 || TARGET_AVX512VL
16749 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16750 : && ix86_pre_reload_split ()
16751 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16752 : STRIP_UNARY (operands[4]))
16753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16754 : STRIP_UNARY (operands[4]))
16755 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16756 : STRIP_UNARY (operands[3]))
16757 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16758 : STRIP_UNARY (operands[3])))) &&
16759 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16760 : (TARGET_AVX512F)))
16761 : return -1;
16762 : return 5557; /* *avx512bw_vpternlogv64qi_1 */
16763 :
16764 : case 1:
16765 : if (!(
16766 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16767 : ((32 == 64 || TARGET_AVX512VL
16768 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16769 : && ix86_pre_reload_split ()
16770 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16771 : STRIP_UNARY (operands[4]))
16772 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16773 : STRIP_UNARY (operands[4]))
16774 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16775 : STRIP_UNARY (operands[3]))
16776 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16777 : STRIP_UNARY (operands[3])))) &&
16778 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16779 : (TARGET_AVX)))
16780 : return -1;
16781 : return 5584; /* *avx512vl_vpternlogv32qi_1 */
16782 :
16783 : case 2:
16784 : if (!
16785 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16786 : ((16 == 64 || TARGET_AVX512VL
16787 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16788 : && ix86_pre_reload_split ()
16789 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16790 : STRIP_UNARY (operands[4]))
16791 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16792 : STRIP_UNARY (operands[4]))
16793 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16794 : STRIP_UNARY (operands[3]))
16795 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16796 : STRIP_UNARY (operands[3])))))
16797 : return -1;
16798 : return 5611; /* *avx512vl_vpternlogv16qi_1 */
16799 :
16800 : case 3:
16801 : if (!(
16802 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16803 : ((64 == 64 || TARGET_AVX512VL
16804 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16805 : && ix86_pre_reload_split ()
16806 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16807 : STRIP_UNARY (operands[4]))
16808 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16809 : STRIP_UNARY (operands[4]))
16810 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16811 : STRIP_UNARY (operands[3]))
16812 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16813 : STRIP_UNARY (operands[3])))) &&
16814 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16815 : (TARGET_AVX512F)))
16816 : return -1;
16817 : return 5638; /* *avx512bw_vpternlogv32hi_1 */
16818 :
16819 : case 4:
16820 : if (!(
16821 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16822 : ((32 == 64 || TARGET_AVX512VL
16823 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16824 : && ix86_pre_reload_split ()
16825 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16826 : STRIP_UNARY (operands[4]))
16827 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16828 : STRIP_UNARY (operands[4]))
16829 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16830 : STRIP_UNARY (operands[3]))
16831 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16832 : STRIP_UNARY (operands[3])))) &&
16833 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16834 : (TARGET_AVX)))
16835 : return -1;
16836 : return 5665; /* *avx512vl_vpternlogv16hi_1 */
16837 :
16838 : case 5:
16839 : if (!
16840 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16841 : ((16 == 64 || TARGET_AVX512VL
16842 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16843 : && ix86_pre_reload_split ()
16844 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16845 : STRIP_UNARY (operands[4]))
16846 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16847 : STRIP_UNARY (operands[4]))
16848 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16849 : STRIP_UNARY (operands[3]))
16850 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16851 : STRIP_UNARY (operands[3])))))
16852 : return -1;
16853 : return 5692; /* *avx512vl_vpternlogv8hi_1 */
16854 :
16855 : case 6:
16856 : if (!(
16857 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16858 : ((64 == 64 || TARGET_AVX512VL
16859 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16860 : && ix86_pre_reload_split ()
16861 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16862 : STRIP_UNARY (operands[4]))
16863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16864 : STRIP_UNARY (operands[4]))
16865 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16866 : STRIP_UNARY (operands[3]))
16867 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16868 : STRIP_UNARY (operands[3])))) &&
16869 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16870 : (TARGET_AVX512F)))
16871 : return -1;
16872 : return 5719; /* *avx512f_vpternlogv16si_1 */
16873 :
16874 : case 7:
16875 : if (!(
16876 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16877 : ((32 == 64 || TARGET_AVX512VL
16878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16879 : && ix86_pre_reload_split ()
16880 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16881 : STRIP_UNARY (operands[4]))
16882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16883 : STRIP_UNARY (operands[4]))
16884 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16885 : STRIP_UNARY (operands[3]))
16886 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16887 : STRIP_UNARY (operands[3])))) &&
16888 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16889 : (TARGET_AVX)))
16890 : return -1;
16891 : return 5746; /* *avx512vl_vpternlogv8si_1 */
16892 :
16893 : case 8:
16894 : if (!
16895 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16896 : ((16 == 64 || TARGET_AVX512VL
16897 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16898 : && ix86_pre_reload_split ()
16899 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16900 : STRIP_UNARY (operands[4]))
16901 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16902 : STRIP_UNARY (operands[4]))
16903 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16904 : STRIP_UNARY (operands[3]))
16905 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16906 : STRIP_UNARY (operands[3])))))
16907 : return -1;
16908 : return 5773; /* *avx512vl_vpternlogv4si_1 */
16909 :
16910 : case 9:
16911 : if (!(
16912 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16913 : ((64 == 64 || TARGET_AVX512VL
16914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16915 : && ix86_pre_reload_split ()
16916 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16917 : STRIP_UNARY (operands[4]))
16918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16919 : STRIP_UNARY (operands[4]))
16920 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16921 : STRIP_UNARY (operands[3]))
16922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16923 : STRIP_UNARY (operands[3])))) &&
16924 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16925 : (TARGET_AVX512F)))
16926 : return -1;
16927 : return 5800; /* *avx512f_vpternlogv8di_1 */
16928 :
16929 : case 10:
16930 : if (!(
16931 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16932 : ((32 == 64 || TARGET_AVX512VL
16933 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16934 : && ix86_pre_reload_split ()
16935 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16936 : STRIP_UNARY (operands[4]))
16937 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16938 : STRIP_UNARY (operands[4]))
16939 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16940 : STRIP_UNARY (operands[3]))
16941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16942 : STRIP_UNARY (operands[3])))) &&
16943 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16944 : (TARGET_AVX)))
16945 : return -1;
16946 : return 5827; /* *avx512vl_vpternlogv4di_1 */
16947 :
16948 : case 11:
16949 : if (!
16950 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16951 : ((16 == 64 || TARGET_AVX512VL
16952 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16953 : && ix86_pre_reload_split ()
16954 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16955 : STRIP_UNARY (operands[4]))
16956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16957 : STRIP_UNARY (operands[4]))
16958 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16959 : STRIP_UNARY (operands[3]))
16960 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16961 : STRIP_UNARY (operands[3])))))
16962 : return -1;
16963 : return 5854; /* *avx512vl_vpternlogv2di_1 */
16964 :
16965 : case 12:
16966 : if (!(
16967 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16968 : ((64 == 64 || TARGET_AVX512VL
16969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16970 : && ix86_pre_reload_split ()
16971 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16972 : STRIP_UNARY (operands[4]))
16973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16974 : STRIP_UNARY (operands[4]))
16975 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16976 : STRIP_UNARY (operands[3]))
16977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16978 : STRIP_UNARY (operands[3])))) &&
16979 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16980 : (TARGET_AVX512F)))
16981 : return -1;
16982 : return 5560; /* *avx512bw_vpternlogv64qi_1 */
16983 :
16984 : case 13:
16985 : if (!(
16986 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16987 : ((32 == 64 || TARGET_AVX512VL
16988 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16989 : && ix86_pre_reload_split ()
16990 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
16991 : STRIP_UNARY (operands[4]))
16992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16993 : STRIP_UNARY (operands[4]))
16994 : || rtx_equal_p (STRIP_UNARY (operands[1]),
16995 : STRIP_UNARY (operands[3]))
16996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
16997 : STRIP_UNARY (operands[3])))) &&
16998 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16999 : (TARGET_AVX)))
17000 : return -1;
17001 : return 5587; /* *avx512vl_vpternlogv32qi_1 */
17002 :
17003 : case 14:
17004 : if (!
17005 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17006 : ((16 == 64 || TARGET_AVX512VL
17007 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17008 : && ix86_pre_reload_split ()
17009 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17010 : STRIP_UNARY (operands[4]))
17011 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17012 : STRIP_UNARY (operands[4]))
17013 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17014 : STRIP_UNARY (operands[3]))
17015 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17016 : STRIP_UNARY (operands[3])))))
17017 : return -1;
17018 : return 5614; /* *avx512vl_vpternlogv16qi_1 */
17019 :
17020 : case 15:
17021 : if (!(
17022 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17023 : ((64 == 64 || TARGET_AVX512VL
17024 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17025 : && ix86_pre_reload_split ()
17026 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17027 : STRIP_UNARY (operands[4]))
17028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17029 : STRIP_UNARY (operands[4]))
17030 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17031 : STRIP_UNARY (operands[3]))
17032 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17033 : STRIP_UNARY (operands[3])))) &&
17034 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17035 : (TARGET_AVX512F)))
17036 : return -1;
17037 : return 5641; /* *avx512bw_vpternlogv32hi_1 */
17038 :
17039 : case 16:
17040 : if (!(
17041 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17042 : ((32 == 64 || TARGET_AVX512VL
17043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17044 : && ix86_pre_reload_split ()
17045 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17046 : STRIP_UNARY (operands[4]))
17047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17048 : STRIP_UNARY (operands[4]))
17049 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17050 : STRIP_UNARY (operands[3]))
17051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17052 : STRIP_UNARY (operands[3])))) &&
17053 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17054 : (TARGET_AVX)))
17055 : return -1;
17056 : return 5668; /* *avx512vl_vpternlogv16hi_1 */
17057 :
17058 : case 17:
17059 : if (!
17060 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17061 : ((16 == 64 || TARGET_AVX512VL
17062 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17063 : && ix86_pre_reload_split ()
17064 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17065 : STRIP_UNARY (operands[4]))
17066 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17067 : STRIP_UNARY (operands[4]))
17068 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17069 : STRIP_UNARY (operands[3]))
17070 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17071 : STRIP_UNARY (operands[3])))))
17072 : return -1;
17073 : return 5695; /* *avx512vl_vpternlogv8hi_1 */
17074 :
17075 : case 18:
17076 : if (!(
17077 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17078 : ((64 == 64 || TARGET_AVX512VL
17079 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17080 : && ix86_pre_reload_split ()
17081 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17082 : STRIP_UNARY (operands[4]))
17083 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17084 : STRIP_UNARY (operands[4]))
17085 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17086 : STRIP_UNARY (operands[3]))
17087 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17088 : STRIP_UNARY (operands[3])))) &&
17089 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17090 : (TARGET_AVX512F)))
17091 : return -1;
17092 : return 5722; /* *avx512f_vpternlogv16si_1 */
17093 :
17094 : case 19:
17095 : if (!(
17096 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17097 : ((32 == 64 || TARGET_AVX512VL
17098 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17099 : && ix86_pre_reload_split ()
17100 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17101 : STRIP_UNARY (operands[4]))
17102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17103 : STRIP_UNARY (operands[4]))
17104 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17105 : STRIP_UNARY (operands[3]))
17106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17107 : STRIP_UNARY (operands[3])))) &&
17108 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17109 : (TARGET_AVX)))
17110 : return -1;
17111 : return 5749; /* *avx512vl_vpternlogv8si_1 */
17112 :
17113 : case 20:
17114 : if (!
17115 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17116 : ((16 == 64 || TARGET_AVX512VL
17117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17118 : && ix86_pre_reload_split ()
17119 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17120 : STRIP_UNARY (operands[4]))
17121 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17122 : STRIP_UNARY (operands[4]))
17123 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17124 : STRIP_UNARY (operands[3]))
17125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17126 : STRIP_UNARY (operands[3])))))
17127 : return -1;
17128 : return 5776; /* *avx512vl_vpternlogv4si_1 */
17129 :
17130 : case 21:
17131 : if (!(
17132 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17133 : ((64 == 64 || TARGET_AVX512VL
17134 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17135 : && ix86_pre_reload_split ()
17136 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17137 : STRIP_UNARY (operands[4]))
17138 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17139 : STRIP_UNARY (operands[4]))
17140 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17141 : STRIP_UNARY (operands[3]))
17142 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17143 : STRIP_UNARY (operands[3])))) &&
17144 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17145 : (TARGET_AVX512F)))
17146 : return -1;
17147 : return 5803; /* *avx512f_vpternlogv8di_1 */
17148 :
17149 : case 22:
17150 : if (!(
17151 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17152 : ((32 == 64 || TARGET_AVX512VL
17153 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17154 : && ix86_pre_reload_split ()
17155 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17156 : STRIP_UNARY (operands[4]))
17157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17158 : STRIP_UNARY (operands[4]))
17159 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17160 : STRIP_UNARY (operands[3]))
17161 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17162 : STRIP_UNARY (operands[3])))) &&
17163 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17164 : (TARGET_AVX)))
17165 : return -1;
17166 : return 5830; /* *avx512vl_vpternlogv4di_1 */
17167 :
17168 : case 23:
17169 : if (!
17170 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17171 : ((16 == 64 || TARGET_AVX512VL
17172 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17173 : && ix86_pre_reload_split ()
17174 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17175 : STRIP_UNARY (operands[4]))
17176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17177 : STRIP_UNARY (operands[4]))
17178 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17179 : STRIP_UNARY (operands[3]))
17180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17181 : STRIP_UNARY (operands[3])))))
17182 : return -1;
17183 : return 5857; /* *avx512vl_vpternlogv2di_1 */
17184 :
17185 : case 24:
17186 : if (!(
17187 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17188 : ((64 == 64 || TARGET_AVX512VL
17189 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17190 : && ix86_pre_reload_split ()
17191 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17192 : STRIP_UNARY (operands[4]))
17193 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17194 : STRIP_UNARY (operands[4]))
17195 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17196 : STRIP_UNARY (operands[3]))
17197 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17198 : STRIP_UNARY (operands[3])))) &&
17199 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17200 : (TARGET_AVX512F)))
17201 : return -1;
17202 : return 5563; /* *avx512bw_vpternlogv64qi_1 */
17203 :
17204 : case 25:
17205 : if (!(
17206 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17207 : ((32 == 64 || TARGET_AVX512VL
17208 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17209 : && ix86_pre_reload_split ()
17210 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17211 : STRIP_UNARY (operands[4]))
17212 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17213 : STRIP_UNARY (operands[4]))
17214 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17215 : STRIP_UNARY (operands[3]))
17216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17217 : STRIP_UNARY (operands[3])))) &&
17218 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17219 : (TARGET_AVX)))
17220 : return -1;
17221 : return 5590; /* *avx512vl_vpternlogv32qi_1 */
17222 :
17223 : case 26:
17224 : if (!
17225 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17226 : ((16 == 64 || TARGET_AVX512VL
17227 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17228 : && ix86_pre_reload_split ()
17229 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17230 : STRIP_UNARY (operands[4]))
17231 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17232 : STRIP_UNARY (operands[4]))
17233 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17234 : STRIP_UNARY (operands[3]))
17235 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17236 : STRIP_UNARY (operands[3])))))
17237 : return -1;
17238 : return 5617; /* *avx512vl_vpternlogv16qi_1 */
17239 :
17240 : case 27:
17241 : if (!(
17242 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17243 : ((64 == 64 || TARGET_AVX512VL
17244 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17245 : && ix86_pre_reload_split ()
17246 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17247 : STRIP_UNARY (operands[4]))
17248 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17249 : STRIP_UNARY (operands[4]))
17250 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17251 : STRIP_UNARY (operands[3]))
17252 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17253 : STRIP_UNARY (operands[3])))) &&
17254 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17255 : (TARGET_AVX512F)))
17256 : return -1;
17257 : return 5644; /* *avx512bw_vpternlogv32hi_1 */
17258 :
17259 : case 28:
17260 : if (!(
17261 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17262 : ((32 == 64 || TARGET_AVX512VL
17263 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17264 : && ix86_pre_reload_split ()
17265 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17266 : STRIP_UNARY (operands[4]))
17267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17268 : STRIP_UNARY (operands[4]))
17269 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17270 : STRIP_UNARY (operands[3]))
17271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17272 : STRIP_UNARY (operands[3])))) &&
17273 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17274 : (TARGET_AVX)))
17275 : return -1;
17276 : return 5671; /* *avx512vl_vpternlogv16hi_1 */
17277 :
17278 : case 29:
17279 : if (!
17280 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17281 : ((16 == 64 || TARGET_AVX512VL
17282 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17283 : && ix86_pre_reload_split ()
17284 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17285 : STRIP_UNARY (operands[4]))
17286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17287 : STRIP_UNARY (operands[4]))
17288 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17289 : STRIP_UNARY (operands[3]))
17290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17291 : STRIP_UNARY (operands[3])))))
17292 : return -1;
17293 : return 5698; /* *avx512vl_vpternlogv8hi_1 */
17294 :
17295 : case 30:
17296 : if (!(
17297 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17298 : ((64 == 64 || TARGET_AVX512VL
17299 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17300 : && ix86_pre_reload_split ()
17301 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17302 : STRIP_UNARY (operands[4]))
17303 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17304 : STRIP_UNARY (operands[4]))
17305 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17306 : STRIP_UNARY (operands[3]))
17307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17308 : STRIP_UNARY (operands[3])))) &&
17309 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17310 : (TARGET_AVX512F)))
17311 : return -1;
17312 : return 5725; /* *avx512f_vpternlogv16si_1 */
17313 :
17314 : case 31:
17315 : if (!(
17316 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17317 : ((32 == 64 || TARGET_AVX512VL
17318 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17319 : && ix86_pre_reload_split ()
17320 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17321 : STRIP_UNARY (operands[4]))
17322 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17323 : STRIP_UNARY (operands[4]))
17324 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17325 : STRIP_UNARY (operands[3]))
17326 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17327 : STRIP_UNARY (operands[3])))) &&
17328 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17329 : (TARGET_AVX)))
17330 : return -1;
17331 : return 5752; /* *avx512vl_vpternlogv8si_1 */
17332 :
17333 : case 32:
17334 : if (!
17335 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17336 : ((16 == 64 || TARGET_AVX512VL
17337 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17338 : && ix86_pre_reload_split ()
17339 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17340 : STRIP_UNARY (operands[4]))
17341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17342 : STRIP_UNARY (operands[4]))
17343 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17344 : STRIP_UNARY (operands[3]))
17345 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17346 : STRIP_UNARY (operands[3])))))
17347 : return -1;
17348 : return 5779; /* *avx512vl_vpternlogv4si_1 */
17349 :
17350 : case 33:
17351 : if (!(
17352 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17353 : ((64 == 64 || TARGET_AVX512VL
17354 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17355 : && ix86_pre_reload_split ()
17356 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17357 : STRIP_UNARY (operands[4]))
17358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17359 : STRIP_UNARY (operands[4]))
17360 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17361 : STRIP_UNARY (operands[3]))
17362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17363 : STRIP_UNARY (operands[3])))) &&
17364 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17365 : (TARGET_AVX512F)))
17366 : return -1;
17367 : return 5806; /* *avx512f_vpternlogv8di_1 */
17368 :
17369 : case 34:
17370 : if (!(
17371 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17372 : ((32 == 64 || TARGET_AVX512VL
17373 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17374 : && ix86_pre_reload_split ()
17375 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17376 : STRIP_UNARY (operands[4]))
17377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17378 : STRIP_UNARY (operands[4]))
17379 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17380 : STRIP_UNARY (operands[3]))
17381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17382 : STRIP_UNARY (operands[3])))) &&
17383 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17384 : (TARGET_AVX)))
17385 : return -1;
17386 : return 5833; /* *avx512vl_vpternlogv4di_1 */
17387 :
17388 : case 35:
17389 : if (!
17390 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17391 : ((16 == 64 || TARGET_AVX512VL
17392 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17393 : && ix86_pre_reload_split ()
17394 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17395 : STRIP_UNARY (operands[4]))
17396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17397 : STRIP_UNARY (operands[4]))
17398 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17399 : STRIP_UNARY (operands[3]))
17400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17401 : STRIP_UNARY (operands[3])))))
17402 : return -1;
17403 : return 5860; /* *avx512vl_vpternlogv2di_1 */
17404 :
17405 : case 36:
17406 : if (!(
17407 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17408 : ((64 == 64 || TARGET_AVX512VL
17409 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17410 : && ix86_pre_reload_split ()) &&
17411 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17412 : (TARGET_AVX512F)))
17413 : return -1;
17414 : return 6841; /* *avx512bw_vpternlogv64qi_3 */
17415 :
17416 : case 37:
17417 : if (!(
17418 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17419 : ((32 == 64 || TARGET_AVX512VL
17420 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17421 : && ix86_pre_reload_split ()) &&
17422 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17423 : (TARGET_AVX)))
17424 : return -1;
17425 : return 6850; /* *avx512vl_vpternlogv32qi_3 */
17426 :
17427 : case 38:
17428 : if (!
17429 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17430 : ((16 == 64 || TARGET_AVX512VL
17431 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17432 : && ix86_pre_reload_split ()))
17433 : return -1;
17434 : return 6859; /* *avx512vl_vpternlogv16qi_3 */
17435 :
17436 : case 39:
17437 : if (!(
17438 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17439 : ((64 == 64 || TARGET_AVX512VL
17440 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17441 : && ix86_pre_reload_split ()) &&
17442 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17443 : (TARGET_AVX512F)))
17444 : return -1;
17445 : return 6868; /* *avx512bw_vpternlogv32hi_3 */
17446 :
17447 : case 40:
17448 : if (!(
17449 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17450 : ((32 == 64 || TARGET_AVX512VL
17451 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17452 : && ix86_pre_reload_split ()) &&
17453 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17454 : (TARGET_AVX)))
17455 : return -1;
17456 : return 6877; /* *avx512vl_vpternlogv16hi_3 */
17457 :
17458 : case 41:
17459 : if (!
17460 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17461 : ((16 == 64 || TARGET_AVX512VL
17462 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17463 : && ix86_pre_reload_split ()))
17464 : return -1;
17465 : return 6886; /* *avx512vl_vpternlogv8hi_3 */
17466 :
17467 : case 42:
17468 : if (!(
17469 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17470 : ((64 == 64 || TARGET_AVX512VL
17471 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17472 : && ix86_pre_reload_split ()) &&
17473 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17474 : (TARGET_AVX512F)))
17475 : return -1;
17476 : return 6895; /* *avx512f_vpternlogv16si_3 */
17477 :
17478 : case 43:
17479 : if (!(
17480 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17481 : ((32 == 64 || TARGET_AVX512VL
17482 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17483 : && ix86_pre_reload_split ()) &&
17484 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17485 : (TARGET_AVX)))
17486 : return -1;
17487 : return 6904; /* *avx512vl_vpternlogv8si_3 */
17488 :
17489 : case 44:
17490 : if (!
17491 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17492 : ((16 == 64 || TARGET_AVX512VL
17493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17494 : && ix86_pre_reload_split ()))
17495 : return -1;
17496 : return 6913; /* *avx512vl_vpternlogv4si_3 */
17497 :
17498 : case 45:
17499 : if (!(
17500 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17501 : ((64 == 64 || TARGET_AVX512VL
17502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17503 : && ix86_pre_reload_split ()) &&
17504 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17505 : (TARGET_AVX512F)))
17506 : return -1;
17507 : return 6922; /* *avx512f_vpternlogv8di_3 */
17508 :
17509 : case 46:
17510 : if (!(
17511 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17512 : ((32 == 64 || TARGET_AVX512VL
17513 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17514 : && ix86_pre_reload_split ()) &&
17515 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17516 : (TARGET_AVX)))
17517 : return -1;
17518 : return 6931; /* *avx512vl_vpternlogv4di_3 */
17519 :
17520 : case 47:
17521 : if (!
17522 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17523 : ((16 == 64 || TARGET_AVX512VL
17524 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17525 : && ix86_pre_reload_split ()))
17526 : return -1;
17527 : return 6940; /* *avx512vl_vpternlogv2di_3 */
17528 :
17529 : default:
17530 : return -1;
17531 : }
17532 :
17533 : case AND:
17534 : switch (pattern537 (x2))
17535 : {
17536 : case 0:
17537 : if (!(
17538 : #line 14187 "/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 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17543 : STRIP_UNARY (operands[4]))
17544 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17545 : STRIP_UNARY (operands[4]))
17546 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17547 : STRIP_UNARY (operands[3]))
17548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17549 : STRIP_UNARY (operands[3])))) &&
17550 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17551 : (TARGET_AVX512F)))
17552 : return -1;
17553 : return 6205; /* *avx512bw_vpternlogv64qi_2 */
17554 :
17555 : case 1:
17556 : if (!(
17557 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17558 : ((32 == 64 || TARGET_AVX512VL
17559 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17560 : && ix86_pre_reload_split ()
17561 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17562 : STRIP_UNARY (operands[4]))
17563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17564 : STRIP_UNARY (operands[4]))
17565 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17566 : STRIP_UNARY (operands[3]))
17567 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17568 : STRIP_UNARY (operands[3])))) &&
17569 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17570 : (TARGET_AVX)))
17571 : return -1;
17572 : return 6232; /* *avx512vl_vpternlogv32qi_2 */
17573 :
17574 : case 2:
17575 : if (!
17576 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17577 : ((16 == 64 || TARGET_AVX512VL
17578 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17579 : && ix86_pre_reload_split ()
17580 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17581 : STRIP_UNARY (operands[4]))
17582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17583 : STRIP_UNARY (operands[4]))
17584 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17585 : STRIP_UNARY (operands[3]))
17586 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17587 : STRIP_UNARY (operands[3])))))
17588 : return -1;
17589 : return 6259; /* *avx512vl_vpternlogv16qi_2 */
17590 :
17591 : case 3:
17592 : if (!(
17593 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17594 : ((64 == 64 || TARGET_AVX512VL
17595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17596 : && ix86_pre_reload_split ()
17597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17598 : STRIP_UNARY (operands[4]))
17599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17600 : STRIP_UNARY (operands[4]))
17601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17602 : STRIP_UNARY (operands[3]))
17603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17604 : STRIP_UNARY (operands[3])))) &&
17605 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17606 : (TARGET_AVX512F)))
17607 : return -1;
17608 : return 6286; /* *avx512bw_vpternlogv32hi_2 */
17609 :
17610 : case 4:
17611 : if (!(
17612 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17613 : ((32 == 64 || TARGET_AVX512VL
17614 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17615 : && ix86_pre_reload_split ()
17616 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17617 : STRIP_UNARY (operands[4]))
17618 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17619 : STRIP_UNARY (operands[4]))
17620 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17621 : STRIP_UNARY (operands[3]))
17622 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17623 : STRIP_UNARY (operands[3])))) &&
17624 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17625 : (TARGET_AVX)))
17626 : return -1;
17627 : return 6313; /* *avx512vl_vpternlogv16hi_2 */
17628 :
17629 : case 5:
17630 : if (!
17631 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17632 : ((16 == 64 || TARGET_AVX512VL
17633 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17634 : && ix86_pre_reload_split ()
17635 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17636 : STRIP_UNARY (operands[4]))
17637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17638 : STRIP_UNARY (operands[4]))
17639 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17640 : STRIP_UNARY (operands[3]))
17641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17642 : STRIP_UNARY (operands[3])))))
17643 : return -1;
17644 : return 6340; /* *avx512vl_vpternlogv8hi_2 */
17645 :
17646 : case 6:
17647 : if (!(
17648 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17649 : ((64 == 64 || TARGET_AVX512VL
17650 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17651 : && ix86_pre_reload_split ()
17652 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17653 : STRIP_UNARY (operands[4]))
17654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17655 : STRIP_UNARY (operands[4]))
17656 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17657 : STRIP_UNARY (operands[3]))
17658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17659 : STRIP_UNARY (operands[3])))) &&
17660 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17661 : (TARGET_AVX512F)))
17662 : return -1;
17663 : return 6367; /* *avx512f_vpternlogv16si_2 */
17664 :
17665 : case 7:
17666 : if (!(
17667 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17668 : ((32 == 64 || TARGET_AVX512VL
17669 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17670 : && ix86_pre_reload_split ()
17671 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17672 : STRIP_UNARY (operands[4]))
17673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17674 : STRIP_UNARY (operands[4]))
17675 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17676 : STRIP_UNARY (operands[3]))
17677 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17678 : STRIP_UNARY (operands[3])))) &&
17679 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17680 : (TARGET_AVX)))
17681 : return -1;
17682 : return 6394; /* *avx512vl_vpternlogv8si_2 */
17683 :
17684 : case 8:
17685 : if (!
17686 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17687 : ((16 == 64 || TARGET_AVX512VL
17688 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17689 : && ix86_pre_reload_split ()
17690 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17691 : STRIP_UNARY (operands[4]))
17692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17693 : STRIP_UNARY (operands[4]))
17694 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17695 : STRIP_UNARY (operands[3]))
17696 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17697 : STRIP_UNARY (operands[3])))))
17698 : return -1;
17699 : return 6421; /* *avx512vl_vpternlogv4si_2 */
17700 :
17701 : case 9:
17702 : if (!(
17703 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17704 : ((64 == 64 || TARGET_AVX512VL
17705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17706 : && ix86_pre_reload_split ()
17707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17708 : STRIP_UNARY (operands[4]))
17709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17710 : STRIP_UNARY (operands[4]))
17711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17712 : STRIP_UNARY (operands[3]))
17713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17714 : STRIP_UNARY (operands[3])))) &&
17715 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17716 : (TARGET_AVX512F)))
17717 : return -1;
17718 : return 6448; /* *avx512f_vpternlogv8di_2 */
17719 :
17720 : case 10:
17721 : if (!(
17722 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17723 : ((32 == 64 || TARGET_AVX512VL
17724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17725 : && ix86_pre_reload_split ()
17726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17727 : STRIP_UNARY (operands[4]))
17728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17729 : STRIP_UNARY (operands[4]))
17730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17731 : STRIP_UNARY (operands[3]))
17732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17733 : STRIP_UNARY (operands[3])))) &&
17734 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17735 : (TARGET_AVX)))
17736 : return -1;
17737 : return 6475; /* *avx512vl_vpternlogv4di_2 */
17738 :
17739 : case 11:
17740 : if (!
17741 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17742 : ((16 == 64 || TARGET_AVX512VL
17743 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17744 : && ix86_pre_reload_split ()
17745 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17746 : STRIP_UNARY (operands[4]))
17747 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17748 : STRIP_UNARY (operands[4]))
17749 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17750 : STRIP_UNARY (operands[3]))
17751 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17752 : STRIP_UNARY (operands[3])))))
17753 : return -1;
17754 : return 6502; /* *avx512vl_vpternlogv2di_2 */
17755 :
17756 : default:
17757 : return -1;
17758 : }
17759 :
17760 : case IOR:
17761 : switch (pattern537 (x2))
17762 : {
17763 : case 0:
17764 : if (!(
17765 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17766 : ((64 == 64 || TARGET_AVX512VL
17767 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17768 : && ix86_pre_reload_split ()
17769 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17770 : STRIP_UNARY (operands[4]))
17771 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17772 : STRIP_UNARY (operands[4]))
17773 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17774 : STRIP_UNARY (operands[3]))
17775 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17776 : STRIP_UNARY (operands[3])))) &&
17777 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17778 : (TARGET_AVX512F)))
17779 : return -1;
17780 : return 6208; /* *avx512bw_vpternlogv64qi_2 */
17781 :
17782 : case 1:
17783 : if (!(
17784 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17785 : ((32 == 64 || TARGET_AVX512VL
17786 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17787 : && ix86_pre_reload_split ()
17788 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17789 : STRIP_UNARY (operands[4]))
17790 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17791 : STRIP_UNARY (operands[4]))
17792 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17793 : STRIP_UNARY (operands[3]))
17794 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17795 : STRIP_UNARY (operands[3])))) &&
17796 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17797 : (TARGET_AVX)))
17798 : return -1;
17799 : return 6235; /* *avx512vl_vpternlogv32qi_2 */
17800 :
17801 : case 2:
17802 : if (!
17803 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17804 : ((16 == 64 || TARGET_AVX512VL
17805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17806 : && ix86_pre_reload_split ()
17807 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17808 : STRIP_UNARY (operands[4]))
17809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17810 : STRIP_UNARY (operands[4]))
17811 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17812 : STRIP_UNARY (operands[3]))
17813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17814 : STRIP_UNARY (operands[3])))))
17815 : return -1;
17816 : return 6262; /* *avx512vl_vpternlogv16qi_2 */
17817 :
17818 : case 3:
17819 : if (!(
17820 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17821 : ((64 == 64 || TARGET_AVX512VL
17822 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17823 : && ix86_pre_reload_split ()
17824 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17825 : STRIP_UNARY (operands[4]))
17826 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17827 : STRIP_UNARY (operands[4]))
17828 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17829 : STRIP_UNARY (operands[3]))
17830 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17831 : STRIP_UNARY (operands[3])))) &&
17832 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17833 : (TARGET_AVX512F)))
17834 : return -1;
17835 : return 6289; /* *avx512bw_vpternlogv32hi_2 */
17836 :
17837 : case 4:
17838 : if (!(
17839 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17840 : ((32 == 64 || TARGET_AVX512VL
17841 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17842 : && ix86_pre_reload_split ()
17843 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17844 : STRIP_UNARY (operands[4]))
17845 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17846 : STRIP_UNARY (operands[4]))
17847 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17848 : STRIP_UNARY (operands[3]))
17849 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17850 : STRIP_UNARY (operands[3])))) &&
17851 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17852 : (TARGET_AVX)))
17853 : return -1;
17854 : return 6316; /* *avx512vl_vpternlogv16hi_2 */
17855 :
17856 : case 5:
17857 : if (!
17858 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17859 : ((16 == 64 || TARGET_AVX512VL
17860 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17861 : && ix86_pre_reload_split ()
17862 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17863 : STRIP_UNARY (operands[4]))
17864 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17865 : STRIP_UNARY (operands[4]))
17866 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17867 : STRIP_UNARY (operands[3]))
17868 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17869 : STRIP_UNARY (operands[3])))))
17870 : return -1;
17871 : return 6343; /* *avx512vl_vpternlogv8hi_2 */
17872 :
17873 : case 6:
17874 : if (!(
17875 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17876 : ((64 == 64 || TARGET_AVX512VL
17877 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17878 : && ix86_pre_reload_split ()
17879 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17880 : STRIP_UNARY (operands[4]))
17881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17882 : STRIP_UNARY (operands[4]))
17883 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17884 : STRIP_UNARY (operands[3]))
17885 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17886 : STRIP_UNARY (operands[3])))) &&
17887 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17888 : (TARGET_AVX512F)))
17889 : return -1;
17890 : return 6370; /* *avx512f_vpternlogv16si_2 */
17891 :
17892 : case 7:
17893 : if (!(
17894 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17895 : ((32 == 64 || TARGET_AVX512VL
17896 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17897 : && ix86_pre_reload_split ()
17898 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17899 : STRIP_UNARY (operands[4]))
17900 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17901 : STRIP_UNARY (operands[4]))
17902 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17903 : STRIP_UNARY (operands[3]))
17904 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17905 : STRIP_UNARY (operands[3])))) &&
17906 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17907 : (TARGET_AVX)))
17908 : return -1;
17909 : return 6397; /* *avx512vl_vpternlogv8si_2 */
17910 :
17911 : case 8:
17912 : if (!
17913 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17914 : ((16 == 64 || TARGET_AVX512VL
17915 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17916 : && ix86_pre_reload_split ()
17917 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17918 : STRIP_UNARY (operands[4]))
17919 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17920 : STRIP_UNARY (operands[4]))
17921 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17922 : STRIP_UNARY (operands[3]))
17923 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17924 : STRIP_UNARY (operands[3])))))
17925 : return -1;
17926 : return 6424; /* *avx512vl_vpternlogv4si_2 */
17927 :
17928 : case 9:
17929 : if (!(
17930 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17931 : ((64 == 64 || TARGET_AVX512VL
17932 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17933 : && ix86_pre_reload_split ()
17934 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17935 : STRIP_UNARY (operands[4]))
17936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17937 : STRIP_UNARY (operands[4]))
17938 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17939 : STRIP_UNARY (operands[3]))
17940 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17941 : STRIP_UNARY (operands[3])))) &&
17942 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17943 : (TARGET_AVX512F)))
17944 : return -1;
17945 : return 6451; /* *avx512f_vpternlogv8di_2 */
17946 :
17947 : case 10:
17948 : if (!(
17949 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17950 : ((32 == 64 || TARGET_AVX512VL
17951 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17952 : && ix86_pre_reload_split ()
17953 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17954 : STRIP_UNARY (operands[4]))
17955 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17956 : STRIP_UNARY (operands[4]))
17957 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17958 : STRIP_UNARY (operands[3]))
17959 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17960 : STRIP_UNARY (operands[3])))) &&
17961 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17962 : (TARGET_AVX)))
17963 : return -1;
17964 : return 6478; /* *avx512vl_vpternlogv4di_2 */
17965 :
17966 : case 11:
17967 : if (!
17968 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17969 : ((16 == 64 || TARGET_AVX512VL
17970 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17971 : && ix86_pre_reload_split ()
17972 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17973 : STRIP_UNARY (operands[4]))
17974 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17975 : STRIP_UNARY (operands[4]))
17976 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17977 : STRIP_UNARY (operands[3]))
17978 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17979 : STRIP_UNARY (operands[3])))))
17980 : return -1;
17981 : return 6505; /* *avx512vl_vpternlogv2di_2 */
17982 :
17983 : default:
17984 : return -1;
17985 : }
17986 :
17987 : case XOR:
17988 : switch (pattern537 (x2))
17989 : {
17990 : case 0:
17991 : if (!(
17992 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17993 : ((64 == 64 || TARGET_AVX512VL
17994 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17995 : && ix86_pre_reload_split ()
17996 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17997 : STRIP_UNARY (operands[4]))
17998 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17999 : STRIP_UNARY (operands[4]))
18000 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18001 : STRIP_UNARY (operands[3]))
18002 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18003 : STRIP_UNARY (operands[3])))) &&
18004 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18005 : (TARGET_AVX512F)))
18006 : return -1;
18007 : return 6211; /* *avx512bw_vpternlogv64qi_2 */
18008 :
18009 : case 1:
18010 : if (!(
18011 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18012 : ((32 == 64 || TARGET_AVX512VL
18013 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18014 : && ix86_pre_reload_split ()
18015 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18016 : STRIP_UNARY (operands[4]))
18017 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18018 : STRIP_UNARY (operands[4]))
18019 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18020 : STRIP_UNARY (operands[3]))
18021 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18022 : STRIP_UNARY (operands[3])))) &&
18023 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18024 : (TARGET_AVX)))
18025 : return -1;
18026 : return 6238; /* *avx512vl_vpternlogv32qi_2 */
18027 :
18028 : case 2:
18029 : if (!
18030 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18031 : ((16 == 64 || TARGET_AVX512VL
18032 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18033 : && ix86_pre_reload_split ()
18034 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18035 : STRIP_UNARY (operands[4]))
18036 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18037 : STRIP_UNARY (operands[4]))
18038 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18039 : STRIP_UNARY (operands[3]))
18040 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18041 : STRIP_UNARY (operands[3])))))
18042 : return -1;
18043 : return 6265; /* *avx512vl_vpternlogv16qi_2 */
18044 :
18045 : case 3:
18046 : if (!(
18047 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18048 : ((64 == 64 || TARGET_AVX512VL
18049 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18050 : && ix86_pre_reload_split ()
18051 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18052 : STRIP_UNARY (operands[4]))
18053 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18054 : STRIP_UNARY (operands[4]))
18055 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18056 : STRIP_UNARY (operands[3]))
18057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18058 : STRIP_UNARY (operands[3])))) &&
18059 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18060 : (TARGET_AVX512F)))
18061 : return -1;
18062 : return 6292; /* *avx512bw_vpternlogv32hi_2 */
18063 :
18064 : case 4:
18065 : if (!(
18066 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18067 : ((32 == 64 || TARGET_AVX512VL
18068 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18069 : && ix86_pre_reload_split ()
18070 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18071 : STRIP_UNARY (operands[4]))
18072 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18073 : STRIP_UNARY (operands[4]))
18074 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18075 : STRIP_UNARY (operands[3]))
18076 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18077 : STRIP_UNARY (operands[3])))) &&
18078 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18079 : (TARGET_AVX)))
18080 : return -1;
18081 : return 6319; /* *avx512vl_vpternlogv16hi_2 */
18082 :
18083 : case 5:
18084 : if (!
18085 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18086 : ((16 == 64 || TARGET_AVX512VL
18087 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18088 : && ix86_pre_reload_split ()
18089 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18090 : STRIP_UNARY (operands[4]))
18091 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18092 : STRIP_UNARY (operands[4]))
18093 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18094 : STRIP_UNARY (operands[3]))
18095 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18096 : STRIP_UNARY (operands[3])))))
18097 : return -1;
18098 : return 6346; /* *avx512vl_vpternlogv8hi_2 */
18099 :
18100 : case 6:
18101 : if (!(
18102 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18103 : ((64 == 64 || TARGET_AVX512VL
18104 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18105 : && ix86_pre_reload_split ()
18106 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18107 : STRIP_UNARY (operands[4]))
18108 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18109 : STRIP_UNARY (operands[4]))
18110 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18111 : STRIP_UNARY (operands[3]))
18112 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18113 : STRIP_UNARY (operands[3])))) &&
18114 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18115 : (TARGET_AVX512F)))
18116 : return -1;
18117 : return 6373; /* *avx512f_vpternlogv16si_2 */
18118 :
18119 : case 7:
18120 : if (!(
18121 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18122 : ((32 == 64 || TARGET_AVX512VL
18123 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18124 : && ix86_pre_reload_split ()
18125 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18126 : STRIP_UNARY (operands[4]))
18127 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18128 : STRIP_UNARY (operands[4]))
18129 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18130 : STRIP_UNARY (operands[3]))
18131 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18132 : STRIP_UNARY (operands[3])))) &&
18133 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18134 : (TARGET_AVX)))
18135 : return -1;
18136 : return 6400; /* *avx512vl_vpternlogv8si_2 */
18137 :
18138 : case 8:
18139 : if (!
18140 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18141 : ((16 == 64 || TARGET_AVX512VL
18142 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18143 : && ix86_pre_reload_split ()
18144 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18145 : STRIP_UNARY (operands[4]))
18146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18147 : STRIP_UNARY (operands[4]))
18148 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18149 : STRIP_UNARY (operands[3]))
18150 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18151 : STRIP_UNARY (operands[3])))))
18152 : return -1;
18153 : return 6427; /* *avx512vl_vpternlogv4si_2 */
18154 :
18155 : case 9:
18156 : if (!(
18157 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18158 : ((64 == 64 || TARGET_AVX512VL
18159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18160 : && ix86_pre_reload_split ()
18161 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18162 : STRIP_UNARY (operands[4]))
18163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18164 : STRIP_UNARY (operands[4]))
18165 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18166 : STRIP_UNARY (operands[3]))
18167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18168 : STRIP_UNARY (operands[3])))) &&
18169 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18170 : (TARGET_AVX512F)))
18171 : return -1;
18172 : return 6454; /* *avx512f_vpternlogv8di_2 */
18173 :
18174 : case 10:
18175 : if (!(
18176 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18177 : ((32 == 64 || TARGET_AVX512VL
18178 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18179 : && ix86_pre_reload_split ()
18180 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18181 : STRIP_UNARY (operands[4]))
18182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18183 : STRIP_UNARY (operands[4]))
18184 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18185 : STRIP_UNARY (operands[3]))
18186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18187 : STRIP_UNARY (operands[3])))) &&
18188 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18189 : (TARGET_AVX)))
18190 : return -1;
18191 : return 6481; /* *avx512vl_vpternlogv4di_2 */
18192 :
18193 : case 11:
18194 : if (!
18195 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18196 : ((16 == 64 || TARGET_AVX512VL
18197 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18198 : && ix86_pre_reload_split ()
18199 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18200 : STRIP_UNARY (operands[4]))
18201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18202 : STRIP_UNARY (operands[4]))
18203 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18204 : STRIP_UNARY (operands[3]))
18205 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18206 : STRIP_UNARY (operands[3])))))
18207 : return -1;
18208 : return 6508; /* *avx512vl_vpternlogv2di_2 */
18209 :
18210 : default:
18211 : return -1;
18212 : }
18213 :
18214 : default:
18215 : return -1;
18216 : }
18217 : }
18218 :
18219 : int
18220 : recog_318 (rtx x1 ATTRIBUTE_UNUSED,
18221 : rtx_insn *insn ATTRIBUTE_UNUSED,
18222 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18223 : {
18224 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18225 : rtx x2, x3, x4;
18226 : int res ATTRIBUTE_UNUSED;
18227 : x2 = XEXP (x1, 1);
18228 : x3 = XEXP (x2, 0);
18229 : switch (GET_CODE (x3))
18230 : {
18231 : case AND:
18232 : x4 = XEXP (x3, 0);
18233 : switch (GET_CODE (x4))
18234 : {
18235 : case REG:
18236 : case SUBREG:
18237 : case MEM:
18238 : case NOT:
18239 : switch (pattern541 (x2))
18240 : {
18241 : case 0:
18242 : if (!(
18243 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18244 : ((64 == 64 || TARGET_AVX512VL
18245 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18246 : && ix86_pre_reload_split ()
18247 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18248 : STRIP_UNARY (operands[4]))
18249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18250 : STRIP_UNARY (operands[4]))
18251 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18252 : STRIP_UNARY (operands[3]))
18253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18254 : STRIP_UNARY (operands[3])))) &&
18255 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18256 : (TARGET_AVX512F)))
18257 : return -1;
18258 : return 5863; /* *avx512bw_vpternlogv32hf_1 */
18259 :
18260 : case 1:
18261 : if (!(
18262 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18263 : ((32 == 64 || TARGET_AVX512VL
18264 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18265 : && ix86_pre_reload_split ()
18266 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18267 : STRIP_UNARY (operands[4]))
18268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18269 : STRIP_UNARY (operands[4]))
18270 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18271 : STRIP_UNARY (operands[3]))
18272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18273 : STRIP_UNARY (operands[3])))) &&
18274 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18275 : (TARGET_AVX)))
18276 : return -1;
18277 : return 5890; /* *avx512vl_vpternlogv16hf_1 */
18278 :
18279 : case 2:
18280 : if (!
18281 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18282 : ((16 == 64 || TARGET_AVX512VL
18283 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18284 : && ix86_pre_reload_split ()
18285 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18286 : STRIP_UNARY (operands[4]))
18287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18288 : STRIP_UNARY (operands[4]))
18289 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18290 : STRIP_UNARY (operands[3]))
18291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18292 : STRIP_UNARY (operands[3])))))
18293 : return -1;
18294 : return 5917; /* *avx512fp16_vpternlogv8hf_1 */
18295 :
18296 : case 3:
18297 : if (!(
18298 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18299 : ((64 == 64 || TARGET_AVX512VL
18300 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18301 : && ix86_pre_reload_split ()
18302 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18303 : STRIP_UNARY (operands[4]))
18304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18305 : STRIP_UNARY (operands[4]))
18306 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18307 : STRIP_UNARY (operands[3]))
18308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18309 : STRIP_UNARY (operands[3])))) &&
18310 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18311 : (TARGET_AVX512F)))
18312 : return -1;
18313 : return 5944; /* *avx512bw_vpternlogv32bf_1 */
18314 :
18315 : case 4:
18316 : if (!(
18317 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18318 : ((32 == 64 || TARGET_AVX512VL
18319 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18320 : && ix86_pre_reload_split ()
18321 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18322 : STRIP_UNARY (operands[4]))
18323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18324 : STRIP_UNARY (operands[4]))
18325 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18326 : STRIP_UNARY (operands[3]))
18327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18328 : STRIP_UNARY (operands[3])))) &&
18329 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18330 : (TARGET_AVX)))
18331 : return -1;
18332 : return 5971; /* *avx512vl_vpternlogv16bf_1 */
18333 :
18334 : case 5:
18335 : if (!
18336 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18337 : ((16 == 64 || TARGET_AVX512VL
18338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18339 : && ix86_pre_reload_split ()
18340 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18341 : STRIP_UNARY (operands[4]))
18342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18343 : STRIP_UNARY (operands[4]))
18344 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18345 : STRIP_UNARY (operands[3]))
18346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18347 : STRIP_UNARY (operands[3])))))
18348 : return -1;
18349 : return 5998; /* *avx512vl_vpternlogv8bf_1 */
18350 :
18351 : case 6:
18352 : if (!(
18353 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18354 : ((64 == 64 || TARGET_AVX512VL
18355 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18356 : && ix86_pre_reload_split ()
18357 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18358 : STRIP_UNARY (operands[4]))
18359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18360 : STRIP_UNARY (operands[4]))
18361 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18362 : STRIP_UNARY (operands[3]))
18363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18364 : STRIP_UNARY (operands[3])))) &&
18365 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18366 : (TARGET_AVX512F)))
18367 : return -1;
18368 : return 6025; /* *avx512f_vpternlogv16sf_1 */
18369 :
18370 : case 7:
18371 : if (!(
18372 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18373 : ((32 == 64 || TARGET_AVX512VL
18374 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18375 : && ix86_pre_reload_split ()
18376 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18377 : STRIP_UNARY (operands[4]))
18378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18379 : STRIP_UNARY (operands[4]))
18380 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18381 : STRIP_UNARY (operands[3]))
18382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18383 : STRIP_UNARY (operands[3])))) &&
18384 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18385 : (TARGET_AVX)))
18386 : return -1;
18387 : return 6052; /* *avx512vl_vpternlogv8sf_1 */
18388 :
18389 : case 8:
18390 : if (!
18391 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18392 : ((16 == 64 || TARGET_AVX512VL
18393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18394 : && ix86_pre_reload_split ()
18395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18396 : STRIP_UNARY (operands[4]))
18397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18398 : STRIP_UNARY (operands[4]))
18399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18400 : STRIP_UNARY (operands[3]))
18401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18402 : STRIP_UNARY (operands[3])))))
18403 : return -1;
18404 : return 6079; /* *avx512vl_vpternlogv4sf_1 */
18405 :
18406 : case 9:
18407 : if (!(
18408 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18409 : ((64 == 64 || TARGET_AVX512VL
18410 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18411 : && ix86_pre_reload_split ()
18412 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18413 : STRIP_UNARY (operands[4]))
18414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18415 : STRIP_UNARY (operands[4]))
18416 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18417 : STRIP_UNARY (operands[3]))
18418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18419 : STRIP_UNARY (operands[3])))) &&
18420 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18421 : (TARGET_AVX512F)))
18422 : return -1;
18423 : return 6106; /* *avx512f_vpternlogv8df_1 */
18424 :
18425 : case 10:
18426 : if (!(
18427 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18428 : ((32 == 64 || TARGET_AVX512VL
18429 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18430 : && ix86_pre_reload_split ()
18431 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18432 : STRIP_UNARY (operands[4]))
18433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18434 : STRIP_UNARY (operands[4]))
18435 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18436 : STRIP_UNARY (operands[3]))
18437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18438 : STRIP_UNARY (operands[3])))) &&
18439 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18440 : (TARGET_AVX)))
18441 : return -1;
18442 : return 6133; /* *avx512vl_vpternlogv4df_1 */
18443 :
18444 : case 11:
18445 : if (!(
18446 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18447 : ((16 == 64 || TARGET_AVX512VL
18448 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18449 : && ix86_pre_reload_split ()
18450 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18451 : STRIP_UNARY (operands[4]))
18452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18453 : STRIP_UNARY (operands[4]))
18454 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18455 : STRIP_UNARY (operands[3]))
18456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18457 : STRIP_UNARY (operands[3])))) &&
18458 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18459 : (TARGET_SSE2)))
18460 : return -1;
18461 : return 6160; /* *avx512vl_vpternlogv2df_1 */
18462 :
18463 : case 12:
18464 : if (!(
18465 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18466 : ((64 == 64 || TARGET_AVX512VL
18467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18468 : && ix86_pre_reload_split ()
18469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18470 : STRIP_UNARY (operands[4]))
18471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18472 : STRIP_UNARY (operands[4]))
18473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18474 : STRIP_UNARY (operands[3]))
18475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18476 : STRIP_UNARY (operands[3])))) &&
18477 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18478 : (TARGET_AVX512F)))
18479 : return -1;
18480 : return 5866; /* *avx512bw_vpternlogv32hf_1 */
18481 :
18482 : case 13:
18483 : if (!(
18484 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18485 : ((32 == 64 || TARGET_AVX512VL
18486 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18487 : && ix86_pre_reload_split ()
18488 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18489 : STRIP_UNARY (operands[4]))
18490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18491 : STRIP_UNARY (operands[4]))
18492 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18493 : STRIP_UNARY (operands[3]))
18494 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18495 : STRIP_UNARY (operands[3])))) &&
18496 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18497 : (TARGET_AVX)))
18498 : return -1;
18499 : return 5893; /* *avx512vl_vpternlogv16hf_1 */
18500 :
18501 : case 14:
18502 : if (!
18503 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18504 : ((16 == 64 || TARGET_AVX512VL
18505 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18506 : && ix86_pre_reload_split ()
18507 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18508 : STRIP_UNARY (operands[4]))
18509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18510 : STRIP_UNARY (operands[4]))
18511 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18512 : STRIP_UNARY (operands[3]))
18513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18514 : STRIP_UNARY (operands[3])))))
18515 : return -1;
18516 : return 5920; /* *avx512fp16_vpternlogv8hf_1 */
18517 :
18518 : case 15:
18519 : if (!(
18520 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18521 : ((64 == 64 || TARGET_AVX512VL
18522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18523 : && ix86_pre_reload_split ()
18524 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18525 : STRIP_UNARY (operands[4]))
18526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18527 : STRIP_UNARY (operands[4]))
18528 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18529 : STRIP_UNARY (operands[3]))
18530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18531 : STRIP_UNARY (operands[3])))) &&
18532 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18533 : (TARGET_AVX512F)))
18534 : return -1;
18535 : return 5947; /* *avx512bw_vpternlogv32bf_1 */
18536 :
18537 : case 16:
18538 : if (!(
18539 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18540 : ((32 == 64 || TARGET_AVX512VL
18541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18542 : && ix86_pre_reload_split ()
18543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18544 : STRIP_UNARY (operands[4]))
18545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18546 : STRIP_UNARY (operands[4]))
18547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18548 : STRIP_UNARY (operands[3]))
18549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18550 : STRIP_UNARY (operands[3])))) &&
18551 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18552 : (TARGET_AVX)))
18553 : return -1;
18554 : return 5974; /* *avx512vl_vpternlogv16bf_1 */
18555 :
18556 : case 17:
18557 : if (!
18558 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18559 : ((16 == 64 || TARGET_AVX512VL
18560 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18561 : && ix86_pre_reload_split ()
18562 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18563 : STRIP_UNARY (operands[4]))
18564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18565 : STRIP_UNARY (operands[4]))
18566 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18567 : STRIP_UNARY (operands[3]))
18568 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18569 : STRIP_UNARY (operands[3])))))
18570 : return -1;
18571 : return 6001; /* *avx512vl_vpternlogv8bf_1 */
18572 :
18573 : case 18:
18574 : if (!(
18575 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18576 : ((64 == 64 || TARGET_AVX512VL
18577 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18578 : && ix86_pre_reload_split ()
18579 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18580 : STRIP_UNARY (operands[4]))
18581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18582 : STRIP_UNARY (operands[4]))
18583 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18584 : STRIP_UNARY (operands[3]))
18585 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18586 : STRIP_UNARY (operands[3])))) &&
18587 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18588 : (TARGET_AVX512F)))
18589 : return -1;
18590 : return 6028; /* *avx512f_vpternlogv16sf_1 */
18591 :
18592 : case 19:
18593 : if (!(
18594 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18595 : ((32 == 64 || TARGET_AVX512VL
18596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18597 : && ix86_pre_reload_split ()
18598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18599 : STRIP_UNARY (operands[4]))
18600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18601 : STRIP_UNARY (operands[4]))
18602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18603 : STRIP_UNARY (operands[3]))
18604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18605 : STRIP_UNARY (operands[3])))) &&
18606 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18607 : (TARGET_AVX)))
18608 : return -1;
18609 : return 6055; /* *avx512vl_vpternlogv8sf_1 */
18610 :
18611 : case 20:
18612 : if (!
18613 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18614 : ((16 == 64 || TARGET_AVX512VL
18615 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18616 : && ix86_pre_reload_split ()
18617 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18618 : STRIP_UNARY (operands[4]))
18619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18620 : STRIP_UNARY (operands[4]))
18621 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18622 : STRIP_UNARY (operands[3]))
18623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18624 : STRIP_UNARY (operands[3])))))
18625 : return -1;
18626 : return 6082; /* *avx512vl_vpternlogv4sf_1 */
18627 :
18628 : case 21:
18629 : if (!(
18630 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18631 : ((64 == 64 || TARGET_AVX512VL
18632 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18633 : && ix86_pre_reload_split ()
18634 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18635 : STRIP_UNARY (operands[4]))
18636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18637 : STRIP_UNARY (operands[4]))
18638 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18639 : STRIP_UNARY (operands[3]))
18640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18641 : STRIP_UNARY (operands[3])))) &&
18642 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18643 : (TARGET_AVX512F)))
18644 : return -1;
18645 : return 6109; /* *avx512f_vpternlogv8df_1 */
18646 :
18647 : case 22:
18648 : if (!(
18649 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18650 : ((32 == 64 || TARGET_AVX512VL
18651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18652 : && ix86_pre_reload_split ()
18653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18654 : STRIP_UNARY (operands[4]))
18655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18656 : STRIP_UNARY (operands[4]))
18657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18658 : STRIP_UNARY (operands[3]))
18659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18660 : STRIP_UNARY (operands[3])))) &&
18661 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18662 : (TARGET_AVX)))
18663 : return -1;
18664 : return 6136; /* *avx512vl_vpternlogv4df_1 */
18665 :
18666 : case 23:
18667 : if (!(
18668 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18669 : ((16 == 64 || TARGET_AVX512VL
18670 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18671 : && ix86_pre_reload_split ()
18672 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18673 : STRIP_UNARY (operands[4]))
18674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18675 : STRIP_UNARY (operands[4]))
18676 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18677 : STRIP_UNARY (operands[3]))
18678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18679 : STRIP_UNARY (operands[3])))) &&
18680 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18681 : (TARGET_SSE2)))
18682 : return -1;
18683 : return 6163; /* *avx512vl_vpternlogv2df_1 */
18684 :
18685 : case 24:
18686 : if (!(
18687 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18688 : ((64 == 64 || TARGET_AVX512VL
18689 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18690 : && ix86_pre_reload_split ()
18691 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18692 : STRIP_UNARY (operands[4]))
18693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18694 : STRIP_UNARY (operands[4]))
18695 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18696 : STRIP_UNARY (operands[3]))
18697 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18698 : STRIP_UNARY (operands[3])))) &&
18699 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18700 : (TARGET_AVX512F)))
18701 : return -1;
18702 : return 5869; /* *avx512bw_vpternlogv32hf_1 */
18703 :
18704 : case 25:
18705 : if (!(
18706 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18707 : ((32 == 64 || TARGET_AVX512VL
18708 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18709 : && ix86_pre_reload_split ()
18710 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18711 : STRIP_UNARY (operands[4]))
18712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18713 : STRIP_UNARY (operands[4]))
18714 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18715 : STRIP_UNARY (operands[3]))
18716 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18717 : STRIP_UNARY (operands[3])))) &&
18718 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18719 : (TARGET_AVX)))
18720 : return -1;
18721 : return 5896; /* *avx512vl_vpternlogv16hf_1 */
18722 :
18723 : case 26:
18724 : if (!
18725 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18726 : ((16 == 64 || TARGET_AVX512VL
18727 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18728 : && ix86_pre_reload_split ()
18729 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18730 : STRIP_UNARY (operands[4]))
18731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18732 : STRIP_UNARY (operands[4]))
18733 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18734 : STRIP_UNARY (operands[3]))
18735 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18736 : STRIP_UNARY (operands[3])))))
18737 : return -1;
18738 : return 5923; /* *avx512fp16_vpternlogv8hf_1 */
18739 :
18740 : case 27:
18741 : if (!(
18742 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18743 : ((64 == 64 || TARGET_AVX512VL
18744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18745 : && ix86_pre_reload_split ()
18746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18747 : STRIP_UNARY (operands[4]))
18748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18749 : STRIP_UNARY (operands[4]))
18750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18751 : STRIP_UNARY (operands[3]))
18752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18753 : STRIP_UNARY (operands[3])))) &&
18754 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18755 : (TARGET_AVX512F)))
18756 : return -1;
18757 : return 5950; /* *avx512bw_vpternlogv32bf_1 */
18758 :
18759 : case 28:
18760 : if (!(
18761 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18762 : ((32 == 64 || TARGET_AVX512VL
18763 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18764 : && ix86_pre_reload_split ()
18765 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18766 : STRIP_UNARY (operands[4]))
18767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18768 : STRIP_UNARY (operands[4]))
18769 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18770 : STRIP_UNARY (operands[3]))
18771 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18772 : STRIP_UNARY (operands[3])))) &&
18773 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18774 : (TARGET_AVX)))
18775 : return -1;
18776 : return 5977; /* *avx512vl_vpternlogv16bf_1 */
18777 :
18778 : case 29:
18779 : if (!
18780 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18781 : ((16 == 64 || TARGET_AVX512VL
18782 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18783 : && ix86_pre_reload_split ()
18784 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18785 : STRIP_UNARY (operands[4]))
18786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18787 : STRIP_UNARY (operands[4]))
18788 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18789 : STRIP_UNARY (operands[3]))
18790 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18791 : STRIP_UNARY (operands[3])))))
18792 : return -1;
18793 : return 6004; /* *avx512vl_vpternlogv8bf_1 */
18794 :
18795 : case 30:
18796 : if (!(
18797 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18798 : ((64 == 64 || TARGET_AVX512VL
18799 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18800 : && ix86_pre_reload_split ()
18801 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18802 : STRIP_UNARY (operands[4]))
18803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18804 : STRIP_UNARY (operands[4]))
18805 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18806 : STRIP_UNARY (operands[3]))
18807 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18808 : STRIP_UNARY (operands[3])))) &&
18809 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18810 : (TARGET_AVX512F)))
18811 : return -1;
18812 : return 6031; /* *avx512f_vpternlogv16sf_1 */
18813 :
18814 : case 31:
18815 : if (!(
18816 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18817 : ((32 == 64 || TARGET_AVX512VL
18818 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18819 : && ix86_pre_reload_split ()
18820 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18821 : STRIP_UNARY (operands[4]))
18822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18823 : STRIP_UNARY (operands[4]))
18824 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18825 : STRIP_UNARY (operands[3]))
18826 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18827 : STRIP_UNARY (operands[3])))) &&
18828 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18829 : (TARGET_AVX)))
18830 : return -1;
18831 : return 6058; /* *avx512vl_vpternlogv8sf_1 */
18832 :
18833 : case 32:
18834 : if (!
18835 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18836 : ((16 == 64 || TARGET_AVX512VL
18837 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18838 : && ix86_pre_reload_split ()
18839 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18840 : STRIP_UNARY (operands[4]))
18841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18842 : STRIP_UNARY (operands[4]))
18843 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18844 : STRIP_UNARY (operands[3]))
18845 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18846 : STRIP_UNARY (operands[3])))))
18847 : return -1;
18848 : return 6085; /* *avx512vl_vpternlogv4sf_1 */
18849 :
18850 : case 33:
18851 : if (!(
18852 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18853 : ((64 == 64 || TARGET_AVX512VL
18854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18855 : && ix86_pre_reload_split ()
18856 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18857 : STRIP_UNARY (operands[4]))
18858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18859 : STRIP_UNARY (operands[4]))
18860 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18861 : STRIP_UNARY (operands[3]))
18862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18863 : STRIP_UNARY (operands[3])))) &&
18864 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18865 : (TARGET_AVX512F)))
18866 : return -1;
18867 : return 6112; /* *avx512f_vpternlogv8df_1 */
18868 :
18869 : case 34:
18870 : if (!(
18871 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18872 : ((32 == 64 || TARGET_AVX512VL
18873 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18874 : && ix86_pre_reload_split ()
18875 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18876 : STRIP_UNARY (operands[4]))
18877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18878 : STRIP_UNARY (operands[4]))
18879 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18880 : STRIP_UNARY (operands[3]))
18881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18882 : STRIP_UNARY (operands[3])))) &&
18883 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18884 : (TARGET_AVX)))
18885 : return -1;
18886 : return 6139; /* *avx512vl_vpternlogv4df_1 */
18887 :
18888 : case 35:
18889 : if (!(
18890 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18891 : ((16 == 64 || TARGET_AVX512VL
18892 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18893 : && ix86_pre_reload_split ()
18894 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18895 : STRIP_UNARY (operands[4]))
18896 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18897 : STRIP_UNARY (operands[4]))
18898 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18899 : STRIP_UNARY (operands[3]))
18900 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18901 : STRIP_UNARY (operands[3])))) &&
18902 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18903 : (TARGET_SSE2)))
18904 : return -1;
18905 : return 6166; /* *avx512vl_vpternlogv2df_1 */
18906 :
18907 : case 36:
18908 : if (!(
18909 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18910 : ((64 == 64 || TARGET_AVX512VL
18911 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18912 : && ix86_pre_reload_split ()) &&
18913 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18914 : (TARGET_AVX512F)))
18915 : return -1;
18916 : return 6943; /* *avx512bw_vpternlogv32hf_3 */
18917 :
18918 : case 37:
18919 : if (!(
18920 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18921 : ((32 == 64 || TARGET_AVX512VL
18922 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18923 : && ix86_pre_reload_split ()) &&
18924 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18925 : (TARGET_AVX)))
18926 : return -1;
18927 : return 6952; /* *avx512vl_vpternlogv16hf_3 */
18928 :
18929 : case 38:
18930 : if (!
18931 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18932 : ((16 == 64 || TARGET_AVX512VL
18933 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18934 : && ix86_pre_reload_split ()))
18935 : return -1;
18936 : return 6961; /* *avx512fp16_vpternlogv8hf_3 */
18937 :
18938 : case 39:
18939 : if (!(
18940 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18941 : ((64 == 64 || TARGET_AVX512VL
18942 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18943 : && ix86_pre_reload_split ()) &&
18944 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18945 : (TARGET_AVX512F)))
18946 : return -1;
18947 : return 6970; /* *avx512bw_vpternlogv32bf_3 */
18948 :
18949 : case 40:
18950 : if (!(
18951 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18952 : ((32 == 64 || TARGET_AVX512VL
18953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18954 : && ix86_pre_reload_split ()) &&
18955 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18956 : (TARGET_AVX)))
18957 : return -1;
18958 : return 6979; /* *avx512vl_vpternlogv16bf_3 */
18959 :
18960 : case 41:
18961 : if (!
18962 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18963 : ((16 == 64 || TARGET_AVX512VL
18964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18965 : && ix86_pre_reload_split ()))
18966 : return -1;
18967 : return 6988; /* *avx512vl_vpternlogv8bf_3 */
18968 :
18969 : case 42:
18970 : if (!(
18971 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18972 : ((64 == 64 || TARGET_AVX512VL
18973 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18974 : && ix86_pre_reload_split ()) &&
18975 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18976 : (TARGET_AVX512F)))
18977 : return -1;
18978 : return 6997; /* *avx512f_vpternlogv16sf_3 */
18979 :
18980 : case 43:
18981 : if (!(
18982 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18983 : ((32 == 64 || TARGET_AVX512VL
18984 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18985 : && ix86_pre_reload_split ()) &&
18986 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18987 : (TARGET_AVX)))
18988 : return -1;
18989 : return 7006; /* *avx512vl_vpternlogv8sf_3 */
18990 :
18991 : case 44:
18992 : if (!
18993 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18994 : ((16 == 64 || TARGET_AVX512VL
18995 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18996 : && ix86_pre_reload_split ()))
18997 : return -1;
18998 : return 7015; /* *avx512vl_vpternlogv4sf_3 */
18999 :
19000 : case 45:
19001 : if (!(
19002 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : ((64 == 64 || TARGET_AVX512VL
19004 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19005 : && ix86_pre_reload_split ()) &&
19006 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19007 : (TARGET_AVX512F)))
19008 : return -1;
19009 : return 7024; /* *avx512f_vpternlogv8df_3 */
19010 :
19011 : case 46:
19012 : if (!(
19013 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19014 : ((32 == 64 || TARGET_AVX512VL
19015 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19016 : && ix86_pre_reload_split ()) &&
19017 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19018 : (TARGET_AVX)))
19019 : return -1;
19020 : return 7033; /* *avx512vl_vpternlogv4df_3 */
19021 :
19022 : case 47:
19023 : if (!(
19024 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19025 : ((16 == 64 || TARGET_AVX512VL
19026 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19027 : && ix86_pre_reload_split ()) &&
19028 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19029 : (TARGET_SSE2)))
19030 : return -1;
19031 : return 7042; /* *avx512vl_vpternlogv2df_3 */
19032 :
19033 : default:
19034 : return -1;
19035 : }
19036 :
19037 : case AND:
19038 : switch (pattern542 (x2))
19039 : {
19040 : case 0:
19041 : if (!(
19042 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19043 : ((64 == 64 || TARGET_AVX512VL
19044 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19045 : && ix86_pre_reload_split ()
19046 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19047 : STRIP_UNARY (operands[4]))
19048 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19049 : STRIP_UNARY (operands[4]))
19050 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19051 : STRIP_UNARY (operands[3]))
19052 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19053 : STRIP_UNARY (operands[3])))) &&
19054 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19055 : (TARGET_AVX512F)))
19056 : return -1;
19057 : return 6511; /* *avx512bw_vpternlogv32hf_2 */
19058 :
19059 : case 1:
19060 : if (!(
19061 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19062 : ((32 == 64 || TARGET_AVX512VL
19063 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19064 : && ix86_pre_reload_split ()
19065 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19066 : STRIP_UNARY (operands[4]))
19067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19068 : STRIP_UNARY (operands[4]))
19069 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19070 : STRIP_UNARY (operands[3]))
19071 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19072 : STRIP_UNARY (operands[3])))) &&
19073 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19074 : (TARGET_AVX)))
19075 : return -1;
19076 : return 6538; /* *avx512vl_vpternlogv16hf_2 */
19077 :
19078 : case 2:
19079 : if (!
19080 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19081 : ((16 == 64 || TARGET_AVX512VL
19082 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19083 : && ix86_pre_reload_split ()
19084 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19085 : STRIP_UNARY (operands[4]))
19086 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19087 : STRIP_UNARY (operands[4]))
19088 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19089 : STRIP_UNARY (operands[3]))
19090 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19091 : STRIP_UNARY (operands[3])))))
19092 : return -1;
19093 : return 6565; /* *avx512fp16_vpternlogv8hf_2 */
19094 :
19095 : case 3:
19096 : if (!(
19097 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19098 : ((64 == 64 || TARGET_AVX512VL
19099 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19100 : && ix86_pre_reload_split ()
19101 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19102 : STRIP_UNARY (operands[4]))
19103 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19104 : STRIP_UNARY (operands[4]))
19105 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19106 : STRIP_UNARY (operands[3]))
19107 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19108 : STRIP_UNARY (operands[3])))) &&
19109 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19110 : (TARGET_AVX512F)))
19111 : return -1;
19112 : return 6592; /* *avx512bw_vpternlogv32bf_2 */
19113 :
19114 : case 4:
19115 : if (!(
19116 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19117 : ((32 == 64 || TARGET_AVX512VL
19118 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19119 : && ix86_pre_reload_split ()
19120 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19121 : STRIP_UNARY (operands[4]))
19122 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19123 : STRIP_UNARY (operands[4]))
19124 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19125 : STRIP_UNARY (operands[3]))
19126 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19127 : STRIP_UNARY (operands[3])))) &&
19128 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19129 : (TARGET_AVX)))
19130 : return -1;
19131 : return 6619; /* *avx512vl_vpternlogv16bf_2 */
19132 :
19133 : case 5:
19134 : if (!
19135 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19136 : ((16 == 64 || TARGET_AVX512VL
19137 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19138 : && ix86_pre_reload_split ()
19139 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19140 : STRIP_UNARY (operands[4]))
19141 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19142 : STRIP_UNARY (operands[4]))
19143 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19144 : STRIP_UNARY (operands[3]))
19145 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19146 : STRIP_UNARY (operands[3])))))
19147 : return -1;
19148 : return 6646; /* *avx512vl_vpternlogv8bf_2 */
19149 :
19150 : case 6:
19151 : if (!(
19152 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19153 : ((64 == 64 || TARGET_AVX512VL
19154 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19155 : && ix86_pre_reload_split ()
19156 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19157 : STRIP_UNARY (operands[4]))
19158 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19159 : STRIP_UNARY (operands[4]))
19160 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19161 : STRIP_UNARY (operands[3]))
19162 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19163 : STRIP_UNARY (operands[3])))) &&
19164 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19165 : (TARGET_AVX512F)))
19166 : return -1;
19167 : return 6673; /* *avx512f_vpternlogv16sf_2 */
19168 :
19169 : case 7:
19170 : if (!(
19171 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19172 : ((32 == 64 || TARGET_AVX512VL
19173 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19174 : && ix86_pre_reload_split ()
19175 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19176 : STRIP_UNARY (operands[4]))
19177 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19178 : STRIP_UNARY (operands[4]))
19179 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19180 : STRIP_UNARY (operands[3]))
19181 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19182 : STRIP_UNARY (operands[3])))) &&
19183 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19184 : (TARGET_AVX)))
19185 : return -1;
19186 : return 6700; /* *avx512vl_vpternlogv8sf_2 */
19187 :
19188 : case 8:
19189 : if (!
19190 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19191 : ((16 == 64 || TARGET_AVX512VL
19192 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19193 : && ix86_pre_reload_split ()
19194 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19195 : STRIP_UNARY (operands[4]))
19196 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19197 : STRIP_UNARY (operands[4]))
19198 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19199 : STRIP_UNARY (operands[3]))
19200 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19201 : STRIP_UNARY (operands[3])))))
19202 : return -1;
19203 : return 6727; /* *avx512vl_vpternlogv4sf_2 */
19204 :
19205 : case 9:
19206 : if (!(
19207 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19208 : ((64 == 64 || TARGET_AVX512VL
19209 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19210 : && ix86_pre_reload_split ()
19211 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19212 : STRIP_UNARY (operands[4]))
19213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19214 : STRIP_UNARY (operands[4]))
19215 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19216 : STRIP_UNARY (operands[3]))
19217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19218 : STRIP_UNARY (operands[3])))) &&
19219 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19220 : (TARGET_AVX512F)))
19221 : return -1;
19222 : return 6754; /* *avx512f_vpternlogv8df_2 */
19223 :
19224 : case 10:
19225 : if (!(
19226 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19227 : ((32 == 64 || TARGET_AVX512VL
19228 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19229 : && ix86_pre_reload_split ()
19230 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19231 : STRIP_UNARY (operands[4]))
19232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19233 : STRIP_UNARY (operands[4]))
19234 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19235 : STRIP_UNARY (operands[3]))
19236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19237 : STRIP_UNARY (operands[3])))) &&
19238 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19239 : (TARGET_AVX)))
19240 : return -1;
19241 : return 6781; /* *avx512vl_vpternlogv4df_2 */
19242 :
19243 : case 11:
19244 : if (!(
19245 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19246 : ((16 == 64 || TARGET_AVX512VL
19247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19248 : && ix86_pre_reload_split ()
19249 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19250 : STRIP_UNARY (operands[4]))
19251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19252 : STRIP_UNARY (operands[4]))
19253 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19254 : STRIP_UNARY (operands[3]))
19255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19256 : STRIP_UNARY (operands[3])))) &&
19257 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19258 : (TARGET_SSE2)))
19259 : return -1;
19260 : return 6808; /* *avx512vl_vpternlogv2df_2 */
19261 :
19262 : default:
19263 : return -1;
19264 : }
19265 :
19266 : case IOR:
19267 : switch (pattern542 (x2))
19268 : {
19269 : case 0:
19270 : if (!(
19271 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19272 : ((64 == 64 || TARGET_AVX512VL
19273 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19274 : && ix86_pre_reload_split ()
19275 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19276 : STRIP_UNARY (operands[4]))
19277 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19278 : STRIP_UNARY (operands[4]))
19279 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19280 : STRIP_UNARY (operands[3]))
19281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19282 : STRIP_UNARY (operands[3])))) &&
19283 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19284 : (TARGET_AVX512F)))
19285 : return -1;
19286 : return 6514; /* *avx512bw_vpternlogv32hf_2 */
19287 :
19288 : case 1:
19289 : if (!(
19290 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19291 : ((32 == 64 || TARGET_AVX512VL
19292 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19293 : && ix86_pre_reload_split ()
19294 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19295 : STRIP_UNARY (operands[4]))
19296 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19297 : STRIP_UNARY (operands[4]))
19298 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19299 : STRIP_UNARY (operands[3]))
19300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19301 : STRIP_UNARY (operands[3])))) &&
19302 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19303 : (TARGET_AVX)))
19304 : return -1;
19305 : return 6541; /* *avx512vl_vpternlogv16hf_2 */
19306 :
19307 : case 2:
19308 : if (!
19309 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19310 : ((16 == 64 || TARGET_AVX512VL
19311 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19312 : && ix86_pre_reload_split ()
19313 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19314 : STRIP_UNARY (operands[4]))
19315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19316 : STRIP_UNARY (operands[4]))
19317 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19318 : STRIP_UNARY (operands[3]))
19319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19320 : STRIP_UNARY (operands[3])))))
19321 : return -1;
19322 : return 6568; /* *avx512fp16_vpternlogv8hf_2 */
19323 :
19324 : case 3:
19325 : if (!(
19326 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19327 : ((64 == 64 || TARGET_AVX512VL
19328 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19329 : && ix86_pre_reload_split ()
19330 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19331 : STRIP_UNARY (operands[4]))
19332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19333 : STRIP_UNARY (operands[4]))
19334 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19335 : STRIP_UNARY (operands[3]))
19336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19337 : STRIP_UNARY (operands[3])))) &&
19338 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19339 : (TARGET_AVX512F)))
19340 : return -1;
19341 : return 6595; /* *avx512bw_vpternlogv32bf_2 */
19342 :
19343 : case 4:
19344 : if (!(
19345 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19346 : ((32 == 64 || TARGET_AVX512VL
19347 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19348 : && ix86_pre_reload_split ()
19349 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19350 : STRIP_UNARY (operands[4]))
19351 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19352 : STRIP_UNARY (operands[4]))
19353 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19354 : STRIP_UNARY (operands[3]))
19355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19356 : STRIP_UNARY (operands[3])))) &&
19357 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19358 : (TARGET_AVX)))
19359 : return -1;
19360 : return 6622; /* *avx512vl_vpternlogv16bf_2 */
19361 :
19362 : case 5:
19363 : if (!
19364 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19365 : ((16 == 64 || TARGET_AVX512VL
19366 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19367 : && ix86_pre_reload_split ()
19368 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19369 : STRIP_UNARY (operands[4]))
19370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19371 : STRIP_UNARY (operands[4]))
19372 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19373 : STRIP_UNARY (operands[3]))
19374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19375 : STRIP_UNARY (operands[3])))))
19376 : return -1;
19377 : return 6649; /* *avx512vl_vpternlogv8bf_2 */
19378 :
19379 : case 6:
19380 : if (!(
19381 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19382 : ((64 == 64 || TARGET_AVX512VL
19383 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19384 : && ix86_pre_reload_split ()
19385 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19386 : STRIP_UNARY (operands[4]))
19387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19388 : STRIP_UNARY (operands[4]))
19389 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19390 : STRIP_UNARY (operands[3]))
19391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19392 : STRIP_UNARY (operands[3])))) &&
19393 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19394 : (TARGET_AVX512F)))
19395 : return -1;
19396 : return 6676; /* *avx512f_vpternlogv16sf_2 */
19397 :
19398 : case 7:
19399 : if (!(
19400 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19401 : ((32 == 64 || TARGET_AVX512VL
19402 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19403 : && ix86_pre_reload_split ()
19404 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19405 : STRIP_UNARY (operands[4]))
19406 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19407 : STRIP_UNARY (operands[4]))
19408 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19409 : STRIP_UNARY (operands[3]))
19410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19411 : STRIP_UNARY (operands[3])))) &&
19412 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19413 : (TARGET_AVX)))
19414 : return -1;
19415 : return 6703; /* *avx512vl_vpternlogv8sf_2 */
19416 :
19417 : case 8:
19418 : if (!
19419 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19420 : ((16 == 64 || TARGET_AVX512VL
19421 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19422 : && ix86_pre_reload_split ()
19423 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19424 : STRIP_UNARY (operands[4]))
19425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19426 : STRIP_UNARY (operands[4]))
19427 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19428 : STRIP_UNARY (operands[3]))
19429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19430 : STRIP_UNARY (operands[3])))))
19431 : return -1;
19432 : return 6730; /* *avx512vl_vpternlogv4sf_2 */
19433 :
19434 : case 9:
19435 : if (!(
19436 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19437 : ((64 == 64 || TARGET_AVX512VL
19438 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19439 : && ix86_pre_reload_split ()
19440 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19441 : STRIP_UNARY (operands[4]))
19442 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19443 : STRIP_UNARY (operands[4]))
19444 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19445 : STRIP_UNARY (operands[3]))
19446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19447 : STRIP_UNARY (operands[3])))) &&
19448 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19449 : (TARGET_AVX512F)))
19450 : return -1;
19451 : return 6757; /* *avx512f_vpternlogv8df_2 */
19452 :
19453 : case 10:
19454 : if (!(
19455 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19456 : ((32 == 64 || TARGET_AVX512VL
19457 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19458 : && ix86_pre_reload_split ()
19459 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19460 : STRIP_UNARY (operands[4]))
19461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19462 : STRIP_UNARY (operands[4]))
19463 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19464 : STRIP_UNARY (operands[3]))
19465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19466 : STRIP_UNARY (operands[3])))) &&
19467 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19468 : (TARGET_AVX)))
19469 : return -1;
19470 : return 6784; /* *avx512vl_vpternlogv4df_2 */
19471 :
19472 : case 11:
19473 : if (!(
19474 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19475 : ((16 == 64 || TARGET_AVX512VL
19476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19477 : && ix86_pre_reload_split ()
19478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19479 : STRIP_UNARY (operands[4]))
19480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19481 : STRIP_UNARY (operands[4]))
19482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19483 : STRIP_UNARY (operands[3]))
19484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19485 : STRIP_UNARY (operands[3])))) &&
19486 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19487 : (TARGET_SSE2)))
19488 : return -1;
19489 : return 6811; /* *avx512vl_vpternlogv2df_2 */
19490 :
19491 : default:
19492 : return -1;
19493 : }
19494 :
19495 : case XOR:
19496 : switch (pattern542 (x2))
19497 : {
19498 : case 0:
19499 : if (!(
19500 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19501 : ((64 == 64 || TARGET_AVX512VL
19502 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19503 : && ix86_pre_reload_split ()
19504 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19505 : STRIP_UNARY (operands[4]))
19506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19507 : STRIP_UNARY (operands[4]))
19508 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19509 : STRIP_UNARY (operands[3]))
19510 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19511 : STRIP_UNARY (operands[3])))) &&
19512 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19513 : (TARGET_AVX512F)))
19514 : return -1;
19515 : return 6517; /* *avx512bw_vpternlogv32hf_2 */
19516 :
19517 : case 1:
19518 : if (!(
19519 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19520 : ((32 == 64 || TARGET_AVX512VL
19521 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19522 : && ix86_pre_reload_split ()
19523 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19524 : STRIP_UNARY (operands[4]))
19525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19526 : STRIP_UNARY (operands[4]))
19527 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19528 : STRIP_UNARY (operands[3]))
19529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19530 : STRIP_UNARY (operands[3])))) &&
19531 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19532 : (TARGET_AVX)))
19533 : return -1;
19534 : return 6544; /* *avx512vl_vpternlogv16hf_2 */
19535 :
19536 : case 2:
19537 : if (!
19538 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19539 : ((16 == 64 || TARGET_AVX512VL
19540 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19541 : && ix86_pre_reload_split ()
19542 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19543 : STRIP_UNARY (operands[4]))
19544 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19545 : STRIP_UNARY (operands[4]))
19546 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19547 : STRIP_UNARY (operands[3]))
19548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19549 : STRIP_UNARY (operands[3])))))
19550 : return -1;
19551 : return 6571; /* *avx512fp16_vpternlogv8hf_2 */
19552 :
19553 : case 3:
19554 : if (!(
19555 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19556 : ((64 == 64 || TARGET_AVX512VL
19557 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19558 : && ix86_pre_reload_split ()
19559 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19560 : STRIP_UNARY (operands[4]))
19561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19562 : STRIP_UNARY (operands[4]))
19563 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19564 : STRIP_UNARY (operands[3]))
19565 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19566 : STRIP_UNARY (operands[3])))) &&
19567 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19568 : (TARGET_AVX512F)))
19569 : return -1;
19570 : return 6598; /* *avx512bw_vpternlogv32bf_2 */
19571 :
19572 : case 4:
19573 : if (!(
19574 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19575 : ((32 == 64 || TARGET_AVX512VL
19576 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19577 : && ix86_pre_reload_split ()
19578 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19579 : STRIP_UNARY (operands[4]))
19580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19581 : STRIP_UNARY (operands[4]))
19582 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19583 : STRIP_UNARY (operands[3]))
19584 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19585 : STRIP_UNARY (operands[3])))) &&
19586 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19587 : (TARGET_AVX)))
19588 : return -1;
19589 : return 6625; /* *avx512vl_vpternlogv16bf_2 */
19590 :
19591 : case 5:
19592 : if (!
19593 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19594 : ((16 == 64 || TARGET_AVX512VL
19595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19596 : && ix86_pre_reload_split ()
19597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19598 : STRIP_UNARY (operands[4]))
19599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19600 : STRIP_UNARY (operands[4]))
19601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19602 : STRIP_UNARY (operands[3]))
19603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19604 : STRIP_UNARY (operands[3])))))
19605 : return -1;
19606 : return 6652; /* *avx512vl_vpternlogv8bf_2 */
19607 :
19608 : case 6:
19609 : if (!(
19610 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19611 : ((64 == 64 || TARGET_AVX512VL
19612 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19613 : && ix86_pre_reload_split ()
19614 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19615 : STRIP_UNARY (operands[4]))
19616 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19617 : STRIP_UNARY (operands[4]))
19618 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19619 : STRIP_UNARY (operands[3]))
19620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19621 : STRIP_UNARY (operands[3])))) &&
19622 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19623 : (TARGET_AVX512F)))
19624 : return -1;
19625 : return 6679; /* *avx512f_vpternlogv16sf_2 */
19626 :
19627 : case 7:
19628 : if (!(
19629 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19630 : ((32 == 64 || TARGET_AVX512VL
19631 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19632 : && ix86_pre_reload_split ()
19633 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19634 : STRIP_UNARY (operands[4]))
19635 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19636 : STRIP_UNARY (operands[4]))
19637 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19638 : STRIP_UNARY (operands[3]))
19639 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19640 : STRIP_UNARY (operands[3])))) &&
19641 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19642 : (TARGET_AVX)))
19643 : return -1;
19644 : return 6706; /* *avx512vl_vpternlogv8sf_2 */
19645 :
19646 : case 8:
19647 : if (!
19648 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19649 : ((16 == 64 || TARGET_AVX512VL
19650 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19651 : && ix86_pre_reload_split ()
19652 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19653 : STRIP_UNARY (operands[4]))
19654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19655 : STRIP_UNARY (operands[4]))
19656 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19657 : STRIP_UNARY (operands[3]))
19658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19659 : STRIP_UNARY (operands[3])))))
19660 : return -1;
19661 : return 6733; /* *avx512vl_vpternlogv4sf_2 */
19662 :
19663 : case 9:
19664 : if (!(
19665 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19666 : ((64 == 64 || TARGET_AVX512VL
19667 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19668 : && ix86_pre_reload_split ()
19669 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19670 : STRIP_UNARY (operands[4]))
19671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19672 : STRIP_UNARY (operands[4]))
19673 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19674 : STRIP_UNARY (operands[3]))
19675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19676 : STRIP_UNARY (operands[3])))) &&
19677 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19678 : (TARGET_AVX512F)))
19679 : return -1;
19680 : return 6760; /* *avx512f_vpternlogv8df_2 */
19681 :
19682 : case 10:
19683 : if (!(
19684 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19685 : ((32 == 64 || TARGET_AVX512VL
19686 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19687 : && ix86_pre_reload_split ()
19688 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19689 : STRIP_UNARY (operands[4]))
19690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19691 : STRIP_UNARY (operands[4]))
19692 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19693 : STRIP_UNARY (operands[3]))
19694 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19695 : STRIP_UNARY (operands[3])))) &&
19696 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19697 : (TARGET_AVX)))
19698 : return -1;
19699 : return 6787; /* *avx512vl_vpternlogv4df_2 */
19700 :
19701 : case 11:
19702 : if (!(
19703 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19704 : ((16 == 64 || TARGET_AVX512VL
19705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19706 : && ix86_pre_reload_split ()
19707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19708 : STRIP_UNARY (operands[4]))
19709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19710 : STRIP_UNARY (operands[4]))
19711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19712 : STRIP_UNARY (operands[3]))
19713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19714 : STRIP_UNARY (operands[3])))) &&
19715 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19716 : (TARGET_SSE2)))
19717 : return -1;
19718 : return 6814; /* *avx512vl_vpternlogv2df_2 */
19719 :
19720 : default:
19721 : return -1;
19722 : }
19723 :
19724 : default:
19725 : return -1;
19726 : }
19727 :
19728 : case IOR:
19729 : x4 = XEXP (x3, 0);
19730 : switch (GET_CODE (x4))
19731 : {
19732 : case REG:
19733 : case SUBREG:
19734 : case MEM:
19735 : case NOT:
19736 : switch (pattern541 (x2))
19737 : {
19738 : case 0:
19739 : if (!(
19740 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19741 : ((64 == 64 || TARGET_AVX512VL
19742 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19743 : && ix86_pre_reload_split ()
19744 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19745 : STRIP_UNARY (operands[4]))
19746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19747 : STRIP_UNARY (operands[4]))
19748 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19749 : STRIP_UNARY (operands[3]))
19750 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19751 : STRIP_UNARY (operands[3])))) &&
19752 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19753 : (TARGET_AVX512F)))
19754 : return -1;
19755 : return 5872; /* *avx512bw_vpternlogv32hf_1 */
19756 :
19757 : case 1:
19758 : if (!(
19759 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19760 : ((32 == 64 || TARGET_AVX512VL
19761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19762 : && ix86_pre_reload_split ()
19763 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19764 : STRIP_UNARY (operands[4]))
19765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19766 : STRIP_UNARY (operands[4]))
19767 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19768 : STRIP_UNARY (operands[3]))
19769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19770 : STRIP_UNARY (operands[3])))) &&
19771 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19772 : (TARGET_AVX)))
19773 : return -1;
19774 : return 5899; /* *avx512vl_vpternlogv16hf_1 */
19775 :
19776 : case 2:
19777 : if (!
19778 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19779 : ((16 == 64 || TARGET_AVX512VL
19780 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19781 : && ix86_pre_reload_split ()
19782 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19783 : STRIP_UNARY (operands[4]))
19784 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19785 : STRIP_UNARY (operands[4]))
19786 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19787 : STRIP_UNARY (operands[3]))
19788 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19789 : STRIP_UNARY (operands[3])))))
19790 : return -1;
19791 : return 5926; /* *avx512fp16_vpternlogv8hf_1 */
19792 :
19793 : case 3:
19794 : if (!(
19795 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19796 : ((64 == 64 || TARGET_AVX512VL
19797 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19798 : && ix86_pre_reload_split ()
19799 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19800 : STRIP_UNARY (operands[4]))
19801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19802 : STRIP_UNARY (operands[4]))
19803 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19804 : STRIP_UNARY (operands[3]))
19805 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19806 : STRIP_UNARY (operands[3])))) &&
19807 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19808 : (TARGET_AVX512F)))
19809 : return -1;
19810 : return 5953; /* *avx512bw_vpternlogv32bf_1 */
19811 :
19812 : case 4:
19813 : if (!(
19814 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19815 : ((32 == 64 || TARGET_AVX512VL
19816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19817 : && ix86_pre_reload_split ()
19818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19819 : STRIP_UNARY (operands[4]))
19820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19821 : STRIP_UNARY (operands[4]))
19822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19823 : STRIP_UNARY (operands[3]))
19824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19825 : STRIP_UNARY (operands[3])))) &&
19826 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19827 : (TARGET_AVX)))
19828 : return -1;
19829 : return 5980; /* *avx512vl_vpternlogv16bf_1 */
19830 :
19831 : case 5:
19832 : if (!
19833 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19834 : ((16 == 64 || TARGET_AVX512VL
19835 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19836 : && ix86_pre_reload_split ()
19837 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19838 : STRIP_UNARY (operands[4]))
19839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19840 : STRIP_UNARY (operands[4]))
19841 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19842 : STRIP_UNARY (operands[3]))
19843 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19844 : STRIP_UNARY (operands[3])))))
19845 : return -1;
19846 : return 6007; /* *avx512vl_vpternlogv8bf_1 */
19847 :
19848 : case 6:
19849 : if (!(
19850 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19851 : ((64 == 64 || TARGET_AVX512VL
19852 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19853 : && ix86_pre_reload_split ()
19854 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19855 : STRIP_UNARY (operands[4]))
19856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19857 : STRIP_UNARY (operands[4]))
19858 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19859 : STRIP_UNARY (operands[3]))
19860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19861 : STRIP_UNARY (operands[3])))) &&
19862 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19863 : (TARGET_AVX512F)))
19864 : return -1;
19865 : return 6034; /* *avx512f_vpternlogv16sf_1 */
19866 :
19867 : case 7:
19868 : if (!(
19869 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19870 : ((32 == 64 || TARGET_AVX512VL
19871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19872 : && ix86_pre_reload_split ()
19873 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19874 : STRIP_UNARY (operands[4]))
19875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19876 : STRIP_UNARY (operands[4]))
19877 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19878 : STRIP_UNARY (operands[3]))
19879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19880 : STRIP_UNARY (operands[3])))) &&
19881 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19882 : (TARGET_AVX)))
19883 : return -1;
19884 : return 6061; /* *avx512vl_vpternlogv8sf_1 */
19885 :
19886 : case 8:
19887 : if (!
19888 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19889 : ((16 == 64 || TARGET_AVX512VL
19890 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19891 : && ix86_pre_reload_split ()
19892 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19893 : STRIP_UNARY (operands[4]))
19894 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19895 : STRIP_UNARY (operands[4]))
19896 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19897 : STRIP_UNARY (operands[3]))
19898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19899 : STRIP_UNARY (operands[3])))))
19900 : return -1;
19901 : return 6088; /* *avx512vl_vpternlogv4sf_1 */
19902 :
19903 : case 9:
19904 : if (!(
19905 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19906 : ((64 == 64 || TARGET_AVX512VL
19907 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19908 : && ix86_pre_reload_split ()
19909 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19910 : STRIP_UNARY (operands[4]))
19911 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19912 : STRIP_UNARY (operands[4]))
19913 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19914 : STRIP_UNARY (operands[3]))
19915 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19916 : STRIP_UNARY (operands[3])))) &&
19917 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19918 : (TARGET_AVX512F)))
19919 : return -1;
19920 : return 6115; /* *avx512f_vpternlogv8df_1 */
19921 :
19922 : case 10:
19923 : if (!(
19924 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19925 : ((32 == 64 || TARGET_AVX512VL
19926 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19927 : && ix86_pre_reload_split ()
19928 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19929 : STRIP_UNARY (operands[4]))
19930 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19931 : STRIP_UNARY (operands[4]))
19932 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19933 : STRIP_UNARY (operands[3]))
19934 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19935 : STRIP_UNARY (operands[3])))) &&
19936 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19937 : (TARGET_AVX)))
19938 : return -1;
19939 : return 6142; /* *avx512vl_vpternlogv4df_1 */
19940 :
19941 : case 11:
19942 : if (!(
19943 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19944 : ((16 == 64 || TARGET_AVX512VL
19945 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19946 : && ix86_pre_reload_split ()
19947 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19948 : STRIP_UNARY (operands[4]))
19949 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19950 : STRIP_UNARY (operands[4]))
19951 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19952 : STRIP_UNARY (operands[3]))
19953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19954 : STRIP_UNARY (operands[3])))) &&
19955 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19956 : (TARGET_SSE2)))
19957 : return -1;
19958 : return 6169; /* *avx512vl_vpternlogv2df_1 */
19959 :
19960 : case 12:
19961 : if (!(
19962 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19963 : ((64 == 64 || TARGET_AVX512VL
19964 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19965 : && ix86_pre_reload_split ()
19966 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19967 : STRIP_UNARY (operands[4]))
19968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19969 : STRIP_UNARY (operands[4]))
19970 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19971 : STRIP_UNARY (operands[3]))
19972 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19973 : STRIP_UNARY (operands[3])))) &&
19974 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19975 : (TARGET_AVX512F)))
19976 : return -1;
19977 : return 5875; /* *avx512bw_vpternlogv32hf_1 */
19978 :
19979 : case 13:
19980 : if (!(
19981 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19982 : ((32 == 64 || TARGET_AVX512VL
19983 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19984 : && ix86_pre_reload_split ()
19985 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19986 : STRIP_UNARY (operands[4]))
19987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19988 : STRIP_UNARY (operands[4]))
19989 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19990 : STRIP_UNARY (operands[3]))
19991 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19992 : STRIP_UNARY (operands[3])))) &&
19993 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19994 : (TARGET_AVX)))
19995 : return -1;
19996 : return 5902; /* *avx512vl_vpternlogv16hf_1 */
19997 :
19998 : case 14:
19999 : if (!
20000 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20001 : ((16 == 64 || TARGET_AVX512VL
20002 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20003 : && ix86_pre_reload_split ()
20004 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20005 : STRIP_UNARY (operands[4]))
20006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20007 : STRIP_UNARY (operands[4]))
20008 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20009 : STRIP_UNARY (operands[3]))
20010 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20011 : STRIP_UNARY (operands[3])))))
20012 : return -1;
20013 : return 5929; /* *avx512fp16_vpternlogv8hf_1 */
20014 :
20015 : case 15:
20016 : if (!(
20017 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20018 : ((64 == 64 || TARGET_AVX512VL
20019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20020 : && ix86_pre_reload_split ()
20021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20022 : STRIP_UNARY (operands[4]))
20023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20024 : STRIP_UNARY (operands[4]))
20025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20026 : STRIP_UNARY (operands[3]))
20027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20028 : STRIP_UNARY (operands[3])))) &&
20029 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20030 : (TARGET_AVX512F)))
20031 : return -1;
20032 : return 5956; /* *avx512bw_vpternlogv32bf_1 */
20033 :
20034 : case 16:
20035 : if (!(
20036 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20037 : ((32 == 64 || TARGET_AVX512VL
20038 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20039 : && ix86_pre_reload_split ()
20040 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20041 : STRIP_UNARY (operands[4]))
20042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20043 : STRIP_UNARY (operands[4]))
20044 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20045 : STRIP_UNARY (operands[3]))
20046 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20047 : STRIP_UNARY (operands[3])))) &&
20048 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20049 : (TARGET_AVX)))
20050 : return -1;
20051 : return 5983; /* *avx512vl_vpternlogv16bf_1 */
20052 :
20053 : case 17:
20054 : if (!
20055 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20056 : ((16 == 64 || TARGET_AVX512VL
20057 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20058 : && ix86_pre_reload_split ()
20059 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20060 : STRIP_UNARY (operands[4]))
20061 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20062 : STRIP_UNARY (operands[4]))
20063 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20064 : STRIP_UNARY (operands[3]))
20065 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20066 : STRIP_UNARY (operands[3])))))
20067 : return -1;
20068 : return 6010; /* *avx512vl_vpternlogv8bf_1 */
20069 :
20070 : case 18:
20071 : if (!(
20072 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20073 : ((64 == 64 || TARGET_AVX512VL
20074 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20075 : && ix86_pre_reload_split ()
20076 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20077 : STRIP_UNARY (operands[4]))
20078 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20079 : STRIP_UNARY (operands[4]))
20080 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20081 : STRIP_UNARY (operands[3]))
20082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20083 : STRIP_UNARY (operands[3])))) &&
20084 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20085 : (TARGET_AVX512F)))
20086 : return -1;
20087 : return 6037; /* *avx512f_vpternlogv16sf_1 */
20088 :
20089 : case 19:
20090 : if (!(
20091 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20092 : ((32 == 64 || TARGET_AVX512VL
20093 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20094 : && ix86_pre_reload_split ()
20095 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20096 : STRIP_UNARY (operands[4]))
20097 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20098 : STRIP_UNARY (operands[4]))
20099 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20100 : STRIP_UNARY (operands[3]))
20101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20102 : STRIP_UNARY (operands[3])))) &&
20103 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20104 : (TARGET_AVX)))
20105 : return -1;
20106 : return 6064; /* *avx512vl_vpternlogv8sf_1 */
20107 :
20108 : case 20:
20109 : if (!
20110 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20111 : ((16 == 64 || TARGET_AVX512VL
20112 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20113 : && ix86_pre_reload_split ()
20114 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20115 : STRIP_UNARY (operands[4]))
20116 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20117 : STRIP_UNARY (operands[4]))
20118 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20119 : STRIP_UNARY (operands[3]))
20120 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20121 : STRIP_UNARY (operands[3])))))
20122 : return -1;
20123 : return 6091; /* *avx512vl_vpternlogv4sf_1 */
20124 :
20125 : case 21:
20126 : if (!(
20127 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20128 : ((64 == 64 || TARGET_AVX512VL
20129 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20130 : && ix86_pre_reload_split ()
20131 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20132 : STRIP_UNARY (operands[4]))
20133 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20134 : STRIP_UNARY (operands[4]))
20135 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20136 : STRIP_UNARY (operands[3]))
20137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20138 : STRIP_UNARY (operands[3])))) &&
20139 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20140 : (TARGET_AVX512F)))
20141 : return -1;
20142 : return 6118; /* *avx512f_vpternlogv8df_1 */
20143 :
20144 : case 22:
20145 : if (!(
20146 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20147 : ((32 == 64 || TARGET_AVX512VL
20148 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20149 : && ix86_pre_reload_split ()
20150 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20151 : STRIP_UNARY (operands[4]))
20152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20153 : STRIP_UNARY (operands[4]))
20154 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20155 : STRIP_UNARY (operands[3]))
20156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20157 : STRIP_UNARY (operands[3])))) &&
20158 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20159 : (TARGET_AVX)))
20160 : return -1;
20161 : return 6145; /* *avx512vl_vpternlogv4df_1 */
20162 :
20163 : case 23:
20164 : if (!(
20165 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20166 : ((16 == 64 || TARGET_AVX512VL
20167 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20168 : && ix86_pre_reload_split ()
20169 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20170 : STRIP_UNARY (operands[4]))
20171 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20172 : STRIP_UNARY (operands[4]))
20173 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20174 : STRIP_UNARY (operands[3]))
20175 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20176 : STRIP_UNARY (operands[3])))) &&
20177 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20178 : (TARGET_SSE2)))
20179 : return -1;
20180 : return 6172; /* *avx512vl_vpternlogv2df_1 */
20181 :
20182 : case 24:
20183 : if (!(
20184 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20185 : ((64 == 64 || TARGET_AVX512VL
20186 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20187 : && ix86_pre_reload_split ()
20188 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20189 : STRIP_UNARY (operands[4]))
20190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20191 : STRIP_UNARY (operands[4]))
20192 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20193 : STRIP_UNARY (operands[3]))
20194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20195 : STRIP_UNARY (operands[3])))) &&
20196 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20197 : (TARGET_AVX512F)))
20198 : return -1;
20199 : return 5878; /* *avx512bw_vpternlogv32hf_1 */
20200 :
20201 : case 25:
20202 : if (!(
20203 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20204 : ((32 == 64 || TARGET_AVX512VL
20205 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20206 : && ix86_pre_reload_split ()
20207 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20208 : STRIP_UNARY (operands[4]))
20209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20210 : STRIP_UNARY (operands[4]))
20211 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20212 : STRIP_UNARY (operands[3]))
20213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20214 : STRIP_UNARY (operands[3])))) &&
20215 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20216 : (TARGET_AVX)))
20217 : return -1;
20218 : return 5905; /* *avx512vl_vpternlogv16hf_1 */
20219 :
20220 : case 26:
20221 : if (!
20222 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20223 : ((16 == 64 || TARGET_AVX512VL
20224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20225 : && ix86_pre_reload_split ()
20226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20227 : STRIP_UNARY (operands[4]))
20228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20229 : STRIP_UNARY (operands[4]))
20230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20231 : STRIP_UNARY (operands[3]))
20232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20233 : STRIP_UNARY (operands[3])))))
20234 : return -1;
20235 : return 5932; /* *avx512fp16_vpternlogv8hf_1 */
20236 :
20237 : case 27:
20238 : if (!(
20239 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20240 : ((64 == 64 || TARGET_AVX512VL
20241 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20242 : && ix86_pre_reload_split ()
20243 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20244 : STRIP_UNARY (operands[4]))
20245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20246 : STRIP_UNARY (operands[4]))
20247 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20248 : STRIP_UNARY (operands[3]))
20249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20250 : STRIP_UNARY (operands[3])))) &&
20251 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20252 : (TARGET_AVX512F)))
20253 : return -1;
20254 : return 5959; /* *avx512bw_vpternlogv32bf_1 */
20255 :
20256 : case 28:
20257 : if (!(
20258 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20259 : ((32 == 64 || TARGET_AVX512VL
20260 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20261 : && ix86_pre_reload_split ()
20262 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20263 : STRIP_UNARY (operands[4]))
20264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20265 : STRIP_UNARY (operands[4]))
20266 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20267 : STRIP_UNARY (operands[3]))
20268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20269 : STRIP_UNARY (operands[3])))) &&
20270 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20271 : (TARGET_AVX)))
20272 : return -1;
20273 : return 5986; /* *avx512vl_vpternlogv16bf_1 */
20274 :
20275 : case 29:
20276 : if (!
20277 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20278 : ((16 == 64 || TARGET_AVX512VL
20279 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20280 : && ix86_pre_reload_split ()
20281 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20282 : STRIP_UNARY (operands[4]))
20283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20284 : STRIP_UNARY (operands[4]))
20285 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20286 : STRIP_UNARY (operands[3]))
20287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20288 : STRIP_UNARY (operands[3])))))
20289 : return -1;
20290 : return 6013; /* *avx512vl_vpternlogv8bf_1 */
20291 :
20292 : case 30:
20293 : if (!(
20294 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20295 : ((64 == 64 || TARGET_AVX512VL
20296 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20297 : && ix86_pre_reload_split ()
20298 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20299 : STRIP_UNARY (operands[4]))
20300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20301 : STRIP_UNARY (operands[4]))
20302 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20303 : STRIP_UNARY (operands[3]))
20304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20305 : STRIP_UNARY (operands[3])))) &&
20306 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20307 : (TARGET_AVX512F)))
20308 : return -1;
20309 : return 6040; /* *avx512f_vpternlogv16sf_1 */
20310 :
20311 : case 31:
20312 : if (!(
20313 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20314 : ((32 == 64 || TARGET_AVX512VL
20315 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20316 : && ix86_pre_reload_split ()
20317 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20318 : STRIP_UNARY (operands[4]))
20319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20320 : STRIP_UNARY (operands[4]))
20321 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20322 : STRIP_UNARY (operands[3]))
20323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20324 : STRIP_UNARY (operands[3])))) &&
20325 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20326 : (TARGET_AVX)))
20327 : return -1;
20328 : return 6067; /* *avx512vl_vpternlogv8sf_1 */
20329 :
20330 : case 32:
20331 : if (!
20332 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20333 : ((16 == 64 || TARGET_AVX512VL
20334 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20335 : && ix86_pre_reload_split ()
20336 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20337 : STRIP_UNARY (operands[4]))
20338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20339 : STRIP_UNARY (operands[4]))
20340 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20341 : STRIP_UNARY (operands[3]))
20342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20343 : STRIP_UNARY (operands[3])))))
20344 : return -1;
20345 : return 6094; /* *avx512vl_vpternlogv4sf_1 */
20346 :
20347 : case 33:
20348 : if (!(
20349 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20350 : ((64 == 64 || TARGET_AVX512VL
20351 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20352 : && ix86_pre_reload_split ()
20353 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20354 : STRIP_UNARY (operands[4]))
20355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20356 : STRIP_UNARY (operands[4]))
20357 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20358 : STRIP_UNARY (operands[3]))
20359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20360 : STRIP_UNARY (operands[3])))) &&
20361 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20362 : (TARGET_AVX512F)))
20363 : return -1;
20364 : return 6121; /* *avx512f_vpternlogv8df_1 */
20365 :
20366 : case 34:
20367 : if (!(
20368 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20369 : ((32 == 64 || TARGET_AVX512VL
20370 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20371 : && ix86_pre_reload_split ()
20372 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20373 : STRIP_UNARY (operands[4]))
20374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20375 : STRIP_UNARY (operands[4]))
20376 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20377 : STRIP_UNARY (operands[3]))
20378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20379 : STRIP_UNARY (operands[3])))) &&
20380 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20381 : (TARGET_AVX)))
20382 : return -1;
20383 : return 6148; /* *avx512vl_vpternlogv4df_1 */
20384 :
20385 : case 35:
20386 : if (!(
20387 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20388 : ((16 == 64 || TARGET_AVX512VL
20389 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20390 : && ix86_pre_reload_split ()
20391 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20392 : STRIP_UNARY (operands[4]))
20393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20394 : STRIP_UNARY (operands[4]))
20395 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20396 : STRIP_UNARY (operands[3]))
20397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20398 : STRIP_UNARY (operands[3])))) &&
20399 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20400 : (TARGET_SSE2)))
20401 : return -1;
20402 : return 6175; /* *avx512vl_vpternlogv2df_1 */
20403 :
20404 : case 36:
20405 : if (!(
20406 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20407 : ((64 == 64 || TARGET_AVX512VL
20408 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20409 : && ix86_pre_reload_split ()) &&
20410 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20411 : (TARGET_AVX512F)))
20412 : return -1;
20413 : return 6946; /* *avx512bw_vpternlogv32hf_3 */
20414 :
20415 : case 37:
20416 : if (!(
20417 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20418 : ((32 == 64 || TARGET_AVX512VL
20419 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20420 : && ix86_pre_reload_split ()) &&
20421 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20422 : (TARGET_AVX)))
20423 : return -1;
20424 : return 6955; /* *avx512vl_vpternlogv16hf_3 */
20425 :
20426 : case 38:
20427 : if (!
20428 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20429 : ((16 == 64 || TARGET_AVX512VL
20430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20431 : && ix86_pre_reload_split ()))
20432 : return -1;
20433 : return 6964; /* *avx512fp16_vpternlogv8hf_3 */
20434 :
20435 : case 39:
20436 : if (!(
20437 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20438 : ((64 == 64 || TARGET_AVX512VL
20439 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20440 : && ix86_pre_reload_split ()) &&
20441 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20442 : (TARGET_AVX512F)))
20443 : return -1;
20444 : return 6973; /* *avx512bw_vpternlogv32bf_3 */
20445 :
20446 : case 40:
20447 : if (!(
20448 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20449 : ((32 == 64 || TARGET_AVX512VL
20450 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20451 : && ix86_pre_reload_split ()) &&
20452 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20453 : (TARGET_AVX)))
20454 : return -1;
20455 : return 6982; /* *avx512vl_vpternlogv16bf_3 */
20456 :
20457 : case 41:
20458 : if (!
20459 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20460 : ((16 == 64 || TARGET_AVX512VL
20461 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20462 : && ix86_pre_reload_split ()))
20463 : return -1;
20464 : return 6991; /* *avx512vl_vpternlogv8bf_3 */
20465 :
20466 : case 42:
20467 : if (!(
20468 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20469 : ((64 == 64 || TARGET_AVX512VL
20470 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20471 : && ix86_pre_reload_split ()) &&
20472 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20473 : (TARGET_AVX512F)))
20474 : return -1;
20475 : return 7000; /* *avx512f_vpternlogv16sf_3 */
20476 :
20477 : case 43:
20478 : if (!(
20479 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20480 : ((32 == 64 || TARGET_AVX512VL
20481 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20482 : && ix86_pre_reload_split ()) &&
20483 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20484 : (TARGET_AVX)))
20485 : return -1;
20486 : return 7009; /* *avx512vl_vpternlogv8sf_3 */
20487 :
20488 : case 44:
20489 : if (!
20490 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20491 : ((16 == 64 || TARGET_AVX512VL
20492 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20493 : && ix86_pre_reload_split ()))
20494 : return -1;
20495 : return 7018; /* *avx512vl_vpternlogv4sf_3 */
20496 :
20497 : case 45:
20498 : if (!(
20499 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20500 : ((64 == 64 || TARGET_AVX512VL
20501 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20502 : && ix86_pre_reload_split ()) &&
20503 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20504 : (TARGET_AVX512F)))
20505 : return -1;
20506 : return 7027; /* *avx512f_vpternlogv8df_3 */
20507 :
20508 : case 46:
20509 : if (!(
20510 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20511 : ((32 == 64 || TARGET_AVX512VL
20512 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20513 : && ix86_pre_reload_split ()) &&
20514 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20515 : (TARGET_AVX)))
20516 : return -1;
20517 : return 7036; /* *avx512vl_vpternlogv4df_3 */
20518 :
20519 : case 47:
20520 : if (!(
20521 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20522 : ((16 == 64 || TARGET_AVX512VL
20523 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20524 : && ix86_pre_reload_split ()) &&
20525 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20526 : (TARGET_SSE2)))
20527 : return -1;
20528 : return 7045; /* *avx512vl_vpternlogv2df_3 */
20529 :
20530 : default:
20531 : return -1;
20532 : }
20533 :
20534 : case AND:
20535 : switch (pattern542 (x2))
20536 : {
20537 : case 0:
20538 : if (!(
20539 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20540 : ((64 == 64 || TARGET_AVX512VL
20541 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20542 : && ix86_pre_reload_split ()
20543 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20544 : STRIP_UNARY (operands[4]))
20545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20546 : STRIP_UNARY (operands[4]))
20547 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20548 : STRIP_UNARY (operands[3]))
20549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20550 : STRIP_UNARY (operands[3])))) &&
20551 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20552 : (TARGET_AVX512F)))
20553 : return -1;
20554 : return 6520; /* *avx512bw_vpternlogv32hf_2 */
20555 :
20556 : case 1:
20557 : if (!(
20558 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20559 : ((32 == 64 || TARGET_AVX512VL
20560 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20561 : && ix86_pre_reload_split ()
20562 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20563 : STRIP_UNARY (operands[4]))
20564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20565 : STRIP_UNARY (operands[4]))
20566 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20567 : STRIP_UNARY (operands[3]))
20568 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20569 : STRIP_UNARY (operands[3])))) &&
20570 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20571 : (TARGET_AVX)))
20572 : return -1;
20573 : return 6547; /* *avx512vl_vpternlogv16hf_2 */
20574 :
20575 : case 2:
20576 : if (!
20577 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20578 : ((16 == 64 || TARGET_AVX512VL
20579 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20580 : && ix86_pre_reload_split ()
20581 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20582 : STRIP_UNARY (operands[4]))
20583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20584 : STRIP_UNARY (operands[4]))
20585 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20586 : STRIP_UNARY (operands[3]))
20587 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20588 : STRIP_UNARY (operands[3])))))
20589 : return -1;
20590 : return 6574; /* *avx512fp16_vpternlogv8hf_2 */
20591 :
20592 : case 3:
20593 : if (!(
20594 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20595 : ((64 == 64 || TARGET_AVX512VL
20596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20597 : && ix86_pre_reload_split ()
20598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20599 : STRIP_UNARY (operands[4]))
20600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20601 : STRIP_UNARY (operands[4]))
20602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20603 : STRIP_UNARY (operands[3]))
20604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20605 : STRIP_UNARY (operands[3])))) &&
20606 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20607 : (TARGET_AVX512F)))
20608 : return -1;
20609 : return 6601; /* *avx512bw_vpternlogv32bf_2 */
20610 :
20611 : case 4:
20612 : if (!(
20613 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20614 : ((32 == 64 || TARGET_AVX512VL
20615 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20616 : && ix86_pre_reload_split ()
20617 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20618 : STRIP_UNARY (operands[4]))
20619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20620 : STRIP_UNARY (operands[4]))
20621 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20622 : STRIP_UNARY (operands[3]))
20623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20624 : STRIP_UNARY (operands[3])))) &&
20625 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20626 : (TARGET_AVX)))
20627 : return -1;
20628 : return 6628; /* *avx512vl_vpternlogv16bf_2 */
20629 :
20630 : case 5:
20631 : if (!
20632 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20633 : ((16 == 64 || TARGET_AVX512VL
20634 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20635 : && ix86_pre_reload_split ()
20636 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20637 : STRIP_UNARY (operands[4]))
20638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20639 : STRIP_UNARY (operands[4]))
20640 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20641 : STRIP_UNARY (operands[3]))
20642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20643 : STRIP_UNARY (operands[3])))))
20644 : return -1;
20645 : return 6655; /* *avx512vl_vpternlogv8bf_2 */
20646 :
20647 : case 6:
20648 : if (!(
20649 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20650 : ((64 == 64 || TARGET_AVX512VL
20651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20652 : && ix86_pre_reload_split ()
20653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20654 : STRIP_UNARY (operands[4]))
20655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20656 : STRIP_UNARY (operands[4]))
20657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20658 : STRIP_UNARY (operands[3]))
20659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20660 : STRIP_UNARY (operands[3])))) &&
20661 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20662 : (TARGET_AVX512F)))
20663 : return -1;
20664 : return 6682; /* *avx512f_vpternlogv16sf_2 */
20665 :
20666 : case 7:
20667 : if (!(
20668 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20669 : ((32 == 64 || TARGET_AVX512VL
20670 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20671 : && ix86_pre_reload_split ()
20672 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20673 : STRIP_UNARY (operands[4]))
20674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20675 : STRIP_UNARY (operands[4]))
20676 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20677 : STRIP_UNARY (operands[3]))
20678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20679 : STRIP_UNARY (operands[3])))) &&
20680 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20681 : (TARGET_AVX)))
20682 : return -1;
20683 : return 6709; /* *avx512vl_vpternlogv8sf_2 */
20684 :
20685 : case 8:
20686 : if (!
20687 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20688 : ((16 == 64 || TARGET_AVX512VL
20689 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20690 : && ix86_pre_reload_split ()
20691 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20692 : STRIP_UNARY (operands[4]))
20693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20694 : STRIP_UNARY (operands[4]))
20695 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20696 : STRIP_UNARY (operands[3]))
20697 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20698 : STRIP_UNARY (operands[3])))))
20699 : return -1;
20700 : return 6736; /* *avx512vl_vpternlogv4sf_2 */
20701 :
20702 : case 9:
20703 : if (!(
20704 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20705 : ((64 == 64 || TARGET_AVX512VL
20706 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20707 : && ix86_pre_reload_split ()
20708 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20709 : STRIP_UNARY (operands[4]))
20710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20711 : STRIP_UNARY (operands[4]))
20712 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20713 : STRIP_UNARY (operands[3]))
20714 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20715 : STRIP_UNARY (operands[3])))) &&
20716 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20717 : (TARGET_AVX512F)))
20718 : return -1;
20719 : return 6763; /* *avx512f_vpternlogv8df_2 */
20720 :
20721 : case 10:
20722 : if (!(
20723 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20724 : ((32 == 64 || TARGET_AVX512VL
20725 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20726 : && ix86_pre_reload_split ()
20727 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20728 : STRIP_UNARY (operands[4]))
20729 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20730 : STRIP_UNARY (operands[4]))
20731 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20732 : STRIP_UNARY (operands[3]))
20733 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20734 : STRIP_UNARY (operands[3])))) &&
20735 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20736 : (TARGET_AVX)))
20737 : return -1;
20738 : return 6790; /* *avx512vl_vpternlogv4df_2 */
20739 :
20740 : case 11:
20741 : if (!(
20742 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20743 : ((16 == 64 || TARGET_AVX512VL
20744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20745 : && ix86_pre_reload_split ()
20746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20747 : STRIP_UNARY (operands[4]))
20748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20749 : STRIP_UNARY (operands[4]))
20750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20751 : STRIP_UNARY (operands[3]))
20752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20753 : STRIP_UNARY (operands[3])))) &&
20754 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20755 : (TARGET_SSE2)))
20756 : return -1;
20757 : return 6817; /* *avx512vl_vpternlogv2df_2 */
20758 :
20759 : default:
20760 : return -1;
20761 : }
20762 :
20763 : case IOR:
20764 : switch (pattern542 (x2))
20765 : {
20766 : case 0:
20767 : if (!(
20768 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20769 : ((64 == 64 || TARGET_AVX512VL
20770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20771 : && ix86_pre_reload_split ()
20772 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20773 : STRIP_UNARY (operands[4]))
20774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20775 : STRIP_UNARY (operands[4]))
20776 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20777 : STRIP_UNARY (operands[3]))
20778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20779 : STRIP_UNARY (operands[3])))) &&
20780 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20781 : (TARGET_AVX512F)))
20782 : return -1;
20783 : return 6523; /* *avx512bw_vpternlogv32hf_2 */
20784 :
20785 : case 1:
20786 : if (!(
20787 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20788 : ((32 == 64 || TARGET_AVX512VL
20789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20790 : && ix86_pre_reload_split ()
20791 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20792 : STRIP_UNARY (operands[4]))
20793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20794 : STRIP_UNARY (operands[4]))
20795 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20796 : STRIP_UNARY (operands[3]))
20797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20798 : STRIP_UNARY (operands[3])))) &&
20799 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20800 : (TARGET_AVX)))
20801 : return -1;
20802 : return 6550; /* *avx512vl_vpternlogv16hf_2 */
20803 :
20804 : case 2:
20805 : if (!
20806 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20807 : ((16 == 64 || TARGET_AVX512VL
20808 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20809 : && ix86_pre_reload_split ()
20810 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20811 : STRIP_UNARY (operands[4]))
20812 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20813 : STRIP_UNARY (operands[4]))
20814 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20815 : STRIP_UNARY (operands[3]))
20816 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20817 : STRIP_UNARY (operands[3])))))
20818 : return -1;
20819 : return 6577; /* *avx512fp16_vpternlogv8hf_2 */
20820 :
20821 : case 3:
20822 : if (!(
20823 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20824 : ((64 == 64 || TARGET_AVX512VL
20825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20826 : && ix86_pre_reload_split ()
20827 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20828 : STRIP_UNARY (operands[4]))
20829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20830 : STRIP_UNARY (operands[4]))
20831 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20832 : STRIP_UNARY (operands[3]))
20833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20834 : STRIP_UNARY (operands[3])))) &&
20835 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20836 : (TARGET_AVX512F)))
20837 : return -1;
20838 : return 6604; /* *avx512bw_vpternlogv32bf_2 */
20839 :
20840 : case 4:
20841 : if (!(
20842 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20843 : ((32 == 64 || TARGET_AVX512VL
20844 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20845 : && ix86_pre_reload_split ()
20846 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20847 : STRIP_UNARY (operands[4]))
20848 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20849 : STRIP_UNARY (operands[4]))
20850 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20851 : STRIP_UNARY (operands[3]))
20852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20853 : STRIP_UNARY (operands[3])))) &&
20854 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20855 : (TARGET_AVX)))
20856 : return -1;
20857 : return 6631; /* *avx512vl_vpternlogv16bf_2 */
20858 :
20859 : case 5:
20860 : if (!
20861 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20862 : ((16 == 64 || TARGET_AVX512VL
20863 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20864 : && ix86_pre_reload_split ()
20865 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20866 : STRIP_UNARY (operands[4]))
20867 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20868 : STRIP_UNARY (operands[4]))
20869 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20870 : STRIP_UNARY (operands[3]))
20871 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20872 : STRIP_UNARY (operands[3])))))
20873 : return -1;
20874 : return 6658; /* *avx512vl_vpternlogv8bf_2 */
20875 :
20876 : case 6:
20877 : if (!(
20878 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20879 : ((64 == 64 || TARGET_AVX512VL
20880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20881 : && ix86_pre_reload_split ()
20882 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20883 : STRIP_UNARY (operands[4]))
20884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20885 : STRIP_UNARY (operands[4]))
20886 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20887 : STRIP_UNARY (operands[3]))
20888 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20889 : STRIP_UNARY (operands[3])))) &&
20890 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20891 : (TARGET_AVX512F)))
20892 : return -1;
20893 : return 6685; /* *avx512f_vpternlogv16sf_2 */
20894 :
20895 : case 7:
20896 : if (!(
20897 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20898 : ((32 == 64 || TARGET_AVX512VL
20899 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20900 : && ix86_pre_reload_split ()
20901 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20902 : STRIP_UNARY (operands[4]))
20903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20904 : STRIP_UNARY (operands[4]))
20905 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20906 : STRIP_UNARY (operands[3]))
20907 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20908 : STRIP_UNARY (operands[3])))) &&
20909 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20910 : (TARGET_AVX)))
20911 : return -1;
20912 : return 6712; /* *avx512vl_vpternlogv8sf_2 */
20913 :
20914 : case 8:
20915 : if (!
20916 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20917 : ((16 == 64 || TARGET_AVX512VL
20918 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20919 : && ix86_pre_reload_split ()
20920 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20921 : STRIP_UNARY (operands[4]))
20922 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20923 : STRIP_UNARY (operands[4]))
20924 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20925 : STRIP_UNARY (operands[3]))
20926 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20927 : STRIP_UNARY (operands[3])))))
20928 : return -1;
20929 : return 6739; /* *avx512vl_vpternlogv4sf_2 */
20930 :
20931 : case 9:
20932 : if (!(
20933 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20934 : ((64 == 64 || TARGET_AVX512VL
20935 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20936 : && ix86_pre_reload_split ()
20937 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20938 : STRIP_UNARY (operands[4]))
20939 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20940 : STRIP_UNARY (operands[4]))
20941 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20942 : STRIP_UNARY (operands[3]))
20943 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20944 : STRIP_UNARY (operands[3])))) &&
20945 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20946 : (TARGET_AVX512F)))
20947 : return -1;
20948 : return 6766; /* *avx512f_vpternlogv8df_2 */
20949 :
20950 : case 10:
20951 : if (!(
20952 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20953 : ((32 == 64 || TARGET_AVX512VL
20954 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20955 : && ix86_pre_reload_split ()
20956 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20957 : STRIP_UNARY (operands[4]))
20958 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20959 : STRIP_UNARY (operands[4]))
20960 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20961 : STRIP_UNARY (operands[3]))
20962 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20963 : STRIP_UNARY (operands[3])))) &&
20964 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20965 : (TARGET_AVX)))
20966 : return -1;
20967 : return 6793; /* *avx512vl_vpternlogv4df_2 */
20968 :
20969 : case 11:
20970 : if (!(
20971 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20972 : ((16 == 64 || TARGET_AVX512VL
20973 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
20974 : && ix86_pre_reload_split ()
20975 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
20976 : STRIP_UNARY (operands[4]))
20977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20978 : STRIP_UNARY (operands[4]))
20979 : || rtx_equal_p (STRIP_UNARY (operands[1]),
20980 : STRIP_UNARY (operands[3]))
20981 : || rtx_equal_p (STRIP_UNARY (operands[2]),
20982 : STRIP_UNARY (operands[3])))) &&
20983 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20984 : (TARGET_SSE2)))
20985 : return -1;
20986 : return 6820; /* *avx512vl_vpternlogv2df_2 */
20987 :
20988 : default:
20989 : return -1;
20990 : }
20991 :
20992 : case XOR:
20993 : switch (pattern542 (x2))
20994 : {
20995 : case 0:
20996 : if (!(
20997 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20998 : ((64 == 64 || TARGET_AVX512VL
20999 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21000 : && ix86_pre_reload_split ()
21001 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21002 : STRIP_UNARY (operands[4]))
21003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21004 : STRIP_UNARY (operands[4]))
21005 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21006 : STRIP_UNARY (operands[3]))
21007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21008 : STRIP_UNARY (operands[3])))) &&
21009 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21010 : (TARGET_AVX512F)))
21011 : return -1;
21012 : return 6526; /* *avx512bw_vpternlogv32hf_2 */
21013 :
21014 : case 1:
21015 : if (!(
21016 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21017 : ((32 == 64 || TARGET_AVX512VL
21018 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21019 : && ix86_pre_reload_split ()
21020 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21021 : STRIP_UNARY (operands[4]))
21022 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21023 : STRIP_UNARY (operands[4]))
21024 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21025 : STRIP_UNARY (operands[3]))
21026 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21027 : STRIP_UNARY (operands[3])))) &&
21028 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21029 : (TARGET_AVX)))
21030 : return -1;
21031 : return 6553; /* *avx512vl_vpternlogv16hf_2 */
21032 :
21033 : case 2:
21034 : if (!
21035 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21036 : ((16 == 64 || TARGET_AVX512VL
21037 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21038 : && ix86_pre_reload_split ()
21039 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21040 : STRIP_UNARY (operands[4]))
21041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21042 : STRIP_UNARY (operands[4]))
21043 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21044 : STRIP_UNARY (operands[3]))
21045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21046 : STRIP_UNARY (operands[3])))))
21047 : return -1;
21048 : return 6580; /* *avx512fp16_vpternlogv8hf_2 */
21049 :
21050 : case 3:
21051 : if (!(
21052 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21053 : ((64 == 64 || TARGET_AVX512VL
21054 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21055 : && ix86_pre_reload_split ()
21056 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21057 : STRIP_UNARY (operands[4]))
21058 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21059 : STRIP_UNARY (operands[4]))
21060 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21061 : STRIP_UNARY (operands[3]))
21062 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21063 : STRIP_UNARY (operands[3])))) &&
21064 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21065 : (TARGET_AVX512F)))
21066 : return -1;
21067 : return 6607; /* *avx512bw_vpternlogv32bf_2 */
21068 :
21069 : case 4:
21070 : if (!(
21071 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21072 : ((32 == 64 || TARGET_AVX512VL
21073 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21074 : && ix86_pre_reload_split ()
21075 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21076 : STRIP_UNARY (operands[4]))
21077 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21078 : STRIP_UNARY (operands[4]))
21079 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21080 : STRIP_UNARY (operands[3]))
21081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21082 : STRIP_UNARY (operands[3])))) &&
21083 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21084 : (TARGET_AVX)))
21085 : return -1;
21086 : return 6634; /* *avx512vl_vpternlogv16bf_2 */
21087 :
21088 : case 5:
21089 : if (!
21090 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21091 : ((16 == 64 || TARGET_AVX512VL
21092 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21093 : && ix86_pre_reload_split ()
21094 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21095 : STRIP_UNARY (operands[4]))
21096 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21097 : STRIP_UNARY (operands[4]))
21098 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21099 : STRIP_UNARY (operands[3]))
21100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21101 : STRIP_UNARY (operands[3])))))
21102 : return -1;
21103 : return 6661; /* *avx512vl_vpternlogv8bf_2 */
21104 :
21105 : case 6:
21106 : if (!(
21107 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21108 : ((64 == 64 || TARGET_AVX512VL
21109 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21110 : && ix86_pre_reload_split ()
21111 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21112 : STRIP_UNARY (operands[4]))
21113 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21114 : STRIP_UNARY (operands[4]))
21115 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21116 : STRIP_UNARY (operands[3]))
21117 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21118 : STRIP_UNARY (operands[3])))) &&
21119 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21120 : (TARGET_AVX512F)))
21121 : return -1;
21122 : return 6688; /* *avx512f_vpternlogv16sf_2 */
21123 :
21124 : case 7:
21125 : if (!(
21126 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21127 : ((32 == 64 || TARGET_AVX512VL
21128 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21129 : && ix86_pre_reload_split ()
21130 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21131 : STRIP_UNARY (operands[4]))
21132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21133 : STRIP_UNARY (operands[4]))
21134 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21135 : STRIP_UNARY (operands[3]))
21136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21137 : STRIP_UNARY (operands[3])))) &&
21138 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21139 : (TARGET_AVX)))
21140 : return -1;
21141 : return 6715; /* *avx512vl_vpternlogv8sf_2 */
21142 :
21143 : case 8:
21144 : if (!
21145 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21146 : ((16 == 64 || TARGET_AVX512VL
21147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21148 : && ix86_pre_reload_split ()
21149 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21150 : STRIP_UNARY (operands[4]))
21151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21152 : STRIP_UNARY (operands[4]))
21153 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21154 : STRIP_UNARY (operands[3]))
21155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21156 : STRIP_UNARY (operands[3])))))
21157 : return -1;
21158 : return 6742; /* *avx512vl_vpternlogv4sf_2 */
21159 :
21160 : case 9:
21161 : if (!(
21162 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21163 : ((64 == 64 || TARGET_AVX512VL
21164 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21165 : && ix86_pre_reload_split ()
21166 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21167 : STRIP_UNARY (operands[4]))
21168 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21169 : STRIP_UNARY (operands[4]))
21170 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21171 : STRIP_UNARY (operands[3]))
21172 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21173 : STRIP_UNARY (operands[3])))) &&
21174 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21175 : (TARGET_AVX512F)))
21176 : return -1;
21177 : return 6769; /* *avx512f_vpternlogv8df_2 */
21178 :
21179 : case 10:
21180 : if (!(
21181 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21182 : ((32 == 64 || TARGET_AVX512VL
21183 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21184 : && ix86_pre_reload_split ()
21185 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21186 : STRIP_UNARY (operands[4]))
21187 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21188 : STRIP_UNARY (operands[4]))
21189 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21190 : STRIP_UNARY (operands[3]))
21191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21192 : STRIP_UNARY (operands[3])))) &&
21193 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21194 : (TARGET_AVX)))
21195 : return -1;
21196 : return 6796; /* *avx512vl_vpternlogv4df_2 */
21197 :
21198 : case 11:
21199 : if (!(
21200 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21201 : ((16 == 64 || TARGET_AVX512VL
21202 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21203 : && ix86_pre_reload_split ()
21204 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
21205 : STRIP_UNARY (operands[4]))
21206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21207 : STRIP_UNARY (operands[4]))
21208 : || rtx_equal_p (STRIP_UNARY (operands[1]),
21209 : STRIP_UNARY (operands[3]))
21210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
21211 : STRIP_UNARY (operands[3])))) &&
21212 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21213 : (TARGET_SSE2)))
21214 : return -1;
21215 : return 6823; /* *avx512vl_vpternlogv2df_2 */
21216 :
21217 : default:
21218 : return -1;
21219 : }
21220 :
21221 : default:
21222 : return -1;
21223 : }
21224 :
21225 : case XOR:
21226 : return recog_315 (x1, insn, pnum_clobbers);
21227 :
21228 : default:
21229 : return -1;
21230 : }
21231 : }
21232 :
21233 : int
21234 : recog_382 (rtx x1 ATTRIBUTE_UNUSED,
21235 : rtx_insn *insn ATTRIBUTE_UNUSED,
21236 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21237 : {
21238 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21239 : rtx x2, x3, x4, x5, x6, x7;
21240 : int res ATTRIBUTE_UNUSED;
21241 : if (pnum_clobbers == NULL)
21242 : return -1;
21243 : x2 = XVECEXP (x1, 0, 0);
21244 : x3 = XEXP (x2, 1);
21245 : if (GET_MODE (x3) != E_SImode)
21246 : return -1;
21247 : x4 = XVECEXP (x1, 0, 1);
21248 : if (GET_CODE (x4) != USE)
21249 : return -1;
21250 : x5 = XEXP (x2, 0);
21251 : operands[0] = x5;
21252 : if (!register_operand (operands[0], E_SImode))
21253 : return -1;
21254 : x6 = XEXP (x3, 0);
21255 : operands[3] = x6;
21256 : x7 = XEXP (x4, 0);
21257 : operands[4] = x7;
21258 : switch (GET_MODE (operands[3]))
21259 : {
21260 : case E_SFmode:
21261 : if (!nonimmediate_operand (operands[3], E_SFmode)
21262 : || !nonimmediate_operand (operands[4], E_V4SFmode)
21263 : || !
21264 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21265 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
21266 : && optimize_function_for_speed_p (cfun)))
21267 : return -1;
21268 : *pnum_clobbers = 2;
21269 : return 227; /* *fixuns_truncsf_1 */
21270 :
21271 : case E_DFmode:
21272 : if (!nonimmediate_operand (operands[3], E_DFmode)
21273 : || !nonimmediate_operand (operands[4], E_V2DFmode)
21274 : || !
21275 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21276 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
21277 : && optimize_function_for_speed_p (cfun)))
21278 : return -1;
21279 : *pnum_clobbers = 2;
21280 : return 228; /* *fixuns_truncdf_1 */
21281 :
21282 : default:
21283 : return -1;
21284 : }
21285 : }
21286 :
21287 : int
21288 : recog_384 (rtx x1 ATTRIBUTE_UNUSED,
21289 : rtx_insn *insn ATTRIBUTE_UNUSED,
21290 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21291 : {
21292 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21293 : rtx x2, x3, x4, x5, x6;
21294 : int res ATTRIBUTE_UNUSED;
21295 : x2 = XVECEXP (x1, 0, 0);
21296 : x3 = XEXP (x2, 0);
21297 : operands[0] = x3;
21298 : x4 = XEXP (x2, 1);
21299 : x5 = XEXP (x4, 0);
21300 : operands[1] = x5;
21301 : x6 = XVECEXP (x1, 0, 1);
21302 : switch (GET_CODE (x6))
21303 : {
21304 : case CLOBBER:
21305 : if (pnum_clobbers == NULL
21306 : || !register_operand (operands[1], E_DImode))
21307 : return -1;
21308 : switch (pattern940 (x1))
21309 : {
21310 : case 0:
21311 : if (!
21312 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21313 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21314 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
21315 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21316 : return -1;
21317 : *pnum_clobbers = 2;
21318 : return 258; /* floatdisf2_i387_with_xmm */
21319 :
21320 : case 1:
21321 : if (!
21322 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21323 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21324 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
21325 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21326 : return -1;
21327 : *pnum_clobbers = 2;
21328 : return 259; /* floatdidf2_i387_with_xmm */
21329 :
21330 : case 2:
21331 : if (!
21332 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21333 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
21334 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
21335 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
21336 : return -1;
21337 : *pnum_clobbers = 2;
21338 : return 260; /* floatdixf2_i387_with_xmm */
21339 :
21340 : default:
21341 : return -1;
21342 : }
21343 :
21344 : case UNSPEC:
21345 : if (pattern693 (x1,
21346 : E_V2SImode,
21347 : E_V2SFmode) != 0
21348 : || !
21349 : #line 1623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21350 : (TARGET_3DNOW))
21351 : return -1;
21352 : return 2138; /* mmx_floatv2siv2sf2 */
21353 :
21354 : default:
21355 : return -1;
21356 : }
21357 : }
21358 :
21359 : int
21360 : recog_385 (rtx x1 ATTRIBUTE_UNUSED,
21361 : rtx_insn *insn ATTRIBUTE_UNUSED,
21362 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21363 : {
21364 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21365 : rtx x2, x3, x4, x5, x6;
21366 : int res ATTRIBUTE_UNUSED;
21367 : if (pnum_clobbers == NULL)
21368 : return -1;
21369 : x2 = XVECEXP (x1, 0, 1);
21370 : if (GET_CODE (x2) != CLOBBER)
21371 : return -1;
21372 : x3 = XVECEXP (x1, 0, 0);
21373 : x4 = XEXP (x3, 0);
21374 : operands[0] = x4;
21375 : x5 = XEXP (x3, 1);
21376 : x6 = XEXP (x5, 0);
21377 : operands[1] = x6;
21378 : if (!nonimmediate_operand (operands[1], E_SImode))
21379 : return -1;
21380 : switch (pattern940 (x1))
21381 : {
21382 : case 0:
21383 : if (!
21384 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21385 : (!TARGET_64BIT
21386 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
21387 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21388 : return -1;
21389 : *pnum_clobbers = 1;
21390 : return 265; /* floatunssisf2_i387_with_xmm */
21391 :
21392 : case 1:
21393 : if (!
21394 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21395 : (!TARGET_64BIT
21396 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
21397 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21398 : return -1;
21399 : *pnum_clobbers = 1;
21400 : return 266; /* floatunssidf2_i387_with_xmm */
21401 :
21402 : case 2:
21403 : if (!
21404 : #line 6306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21405 : (!TARGET_64BIT
21406 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
21407 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
21408 : return -1;
21409 : *pnum_clobbers = 1;
21410 : return 267; /* floatunssixf2_i387_with_xmm */
21411 :
21412 : default:
21413 : return -1;
21414 : }
21415 : }
21416 :
21417 : int
21418 : recog_387 (rtx x1 ATTRIBUTE_UNUSED,
21419 : rtx_insn *insn ATTRIBUTE_UNUSED,
21420 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21421 : {
21422 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21423 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21424 : rtx x10, x11, x12, x13, x14;
21425 : int res ATTRIBUTE_UNUSED;
21426 : x2 = XVECEXP (x1, 0, 0);
21427 : x3 = XEXP (x2, 1);
21428 : x4 = XEXP (x3, 0);
21429 : switch (GET_CODE (x4))
21430 : {
21431 : case REG:
21432 : case SUBREG:
21433 : case MEM:
21434 : operands[1] = x4;
21435 : res = recog_386 (x1, insn, pnum_clobbers);
21436 : if (res >= 0)
21437 : return res;
21438 : if (GET_CODE (x4) != SUBREG
21439 : || maybe_ne (SUBREG_BYTE (x4), 0)
21440 : || GET_MODE (x4) != E_QImode)
21441 : return -1;
21442 : x5 = XEXP (x4, 0);
21443 : switch (GET_CODE (x5))
21444 : {
21445 : case ASHIFTRT:
21446 : case LSHIFTRT:
21447 : case SIGN_EXTRACT:
21448 : case ZERO_EXTRACT:
21449 : operands[3] = x5;
21450 : x6 = XVECEXP (x1, 0, 1);
21451 : if (GET_CODE (x6) != CLOBBER
21452 : || pattern573 (x1) != 0)
21453 : return -1;
21454 : x7 = XEXP (x5, 0);
21455 : operands[2] = x7;
21456 : switch (pattern1535 (x2))
21457 : {
21458 : case 0:
21459 : if (
21460 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21461 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21462 : return 307; /* *addqi_exthi_1_slp */
21463 : break;
21464 :
21465 : case 1:
21466 : if (
21467 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21468 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21469 : return 308; /* *addqi_extsi_1_slp */
21470 : break;
21471 :
21472 : case 2:
21473 : if ((
21474 : #line 7044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21475 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
21476 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21477 : (TARGET_64BIT)))
21478 : return 309; /* *addqi_extdi_1_slp */
21479 : break;
21480 :
21481 : case 3:
21482 : return 331; /* *addqi_exthi_0 */
21483 :
21484 : case 4:
21485 : return 332; /* *addqi_extsi_0 */
21486 :
21487 : case 5:
21488 : if (
21489 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21490 : (TARGET_64BIT))
21491 : return 333; /* *addqi_extdi_0 */
21492 : break;
21493 :
21494 : default:
21495 : break;
21496 : }
21497 : x8 = XEXP (x3, 1);
21498 : if (GET_CODE (x8) != SUBREG)
21499 : return -1;
21500 : switch (pattern1536 (x2))
21501 : {
21502 : case 0:
21503 : if (!
21504 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21505 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21506 : return -1;
21507 : return 310; /* *addqi_exthi_2_slp */
21508 :
21509 : case 1:
21510 : if (!
21511 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21512 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21513 : return -1;
21514 : return 311; /* *addqi_extsi_2_slp */
21515 :
21516 : case 2:
21517 : if (!(
21518 : #line 7073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21519 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
21520 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21521 : (TARGET_64BIT)))
21522 : return -1;
21523 : return 312; /* *addqi_extdi_2_slp */
21524 :
21525 : case 3:
21526 : return 334; /* *addqi_ext2hi_0 */
21527 :
21528 : case 4:
21529 : return 335; /* *addqi_ext2si_0 */
21530 :
21531 : case 5:
21532 : if (!
21533 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21534 : (TARGET_64BIT))
21535 : return -1;
21536 : return 336; /* *addqi_ext2di_0 */
21537 :
21538 : default:
21539 : return -1;
21540 : }
21541 :
21542 : default:
21543 : return -1;
21544 : }
21545 :
21546 : case ZERO_EXTEND:
21547 : x6 = XVECEXP (x1, 0, 1);
21548 : if (pattern355 (x6) != 0)
21549 : return -1;
21550 : switch (pattern942 (x2))
21551 : {
21552 : case 0:
21553 : if (!(
21554 : #line 6562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21555 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
21556 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21557 : (!TARGET_64BIT)))
21558 : return -1;
21559 : return 272; /* *adddi3_doubleword_zext */
21560 :
21561 : case 1:
21562 : if (!(
21563 : #line 6562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21564 : (ix86_binary_operator_ok (UNKNOWN, TImode, operands, TARGET_APX_NDD)) &&
21565 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21566 : (TARGET_64BIT)))
21567 : return -1;
21568 : return 273; /* *addti3_doubleword_zext */
21569 :
21570 : default:
21571 : return -1;
21572 : }
21573 :
21574 : case PLUS:
21575 : if (pattern344 (x1) != 0)
21576 : return -1;
21577 : x5 = XEXP (x4, 0);
21578 : switch (GET_CODE (x5))
21579 : {
21580 : case ASHIFT:
21581 : switch (pattern1167 (x3))
21582 : {
21583 : case 0:
21584 : if (!(
21585 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21586 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21587 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21588 : (!TARGET_64BIT)))
21589 : return -1;
21590 : return 274; /* *adddi3_doubleword_concat */
21591 :
21592 : case 1:
21593 : if (!(
21594 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21595 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21596 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21597 : (TARGET_64BIT)))
21598 : return -1;
21599 : return 277; /* *addti3_doubleword_concat */
21600 :
21601 : case 2:
21602 : if (!(
21603 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21604 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21605 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21606 : (!TARGET_64BIT)))
21607 : return -1;
21608 : return 280; /* *adddi3_doubleword_concat_zext */
21609 :
21610 : case 3:
21611 : if (!(
21612 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21613 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21614 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21615 : (TARGET_64BIT)))
21616 : return -1;
21617 : return 283; /* *addti3_doubleword_concat_zext */
21618 :
21619 : default:
21620 : return -1;
21621 : }
21622 :
21623 : case LTU:
21624 : case UNLT:
21625 : operands[4] = x5;
21626 : x9 = XEXP (x5, 1);
21627 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21628 : return -1;
21629 : x7 = XEXP (x5, 0);
21630 : operands[3] = x7;
21631 : if (!flags_reg_operand (operands[3], E_VOIDmode))
21632 : return -1;
21633 : x10 = XEXP (x4, 1);
21634 : operands[1] = x10;
21635 : x8 = XEXP (x3, 1);
21636 : operands[2] = x8;
21637 : switch (GET_MODE (operands[0]))
21638 : {
21639 : case E_QImode:
21640 : if (pattern1636 (x3,
21641 : E_QImode) != 0
21642 : || !
21643 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21644 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
21645 : return -1;
21646 : return 457; /* addqi3_carry */
21647 :
21648 : case E_HImode:
21649 : if (pattern1636 (x3,
21650 : E_HImode) != 0
21651 : || !
21652 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21653 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
21654 : return -1;
21655 : return 458; /* addhi3_carry */
21656 :
21657 : case E_SImode:
21658 : if (pattern1637 (x3,
21659 : E_SImode) != 0
21660 : || !
21661 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21662 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
21663 : return -1;
21664 : return 459; /* addsi3_carry */
21665 :
21666 : case E_DImode:
21667 : if (pattern1637 (x3,
21668 : E_DImode) != 0
21669 : || !(
21670 : #line 8840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21671 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
21672 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21673 : (TARGET_64BIT)))
21674 : return -1;
21675 : return 460; /* adddi3_carry */
21676 :
21677 : default:
21678 : return -1;
21679 : }
21680 :
21681 : case EQ:
21682 : switch (pattern1170 (x3))
21683 : {
21684 : case 0:
21685 : if (!
21686 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21687 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
21688 : && ix86_pre_reload_split ()))
21689 : return -1;
21690 : return 582; /* *addqi3_eq */
21691 :
21692 : case 1:
21693 : if (!
21694 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21695 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
21696 : && ix86_pre_reload_split ()))
21697 : return -1;
21698 : return 583; /* *addhi3_eq */
21699 :
21700 : case 2:
21701 : if (!
21702 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21703 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
21704 : && ix86_pre_reload_split ()))
21705 : return -1;
21706 : return 584; /* *addsi3_eq */
21707 :
21708 : case 3:
21709 : if (!(
21710 : #line 10479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21711 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
21712 : && ix86_pre_reload_split ()) &&
21713 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21714 : (TARGET_64BIT)))
21715 : return -1;
21716 : return 585; /* *adddi3_eq */
21717 :
21718 : default:
21719 : return -1;
21720 : }
21721 :
21722 : case NE:
21723 : switch (pattern1173 (x3))
21724 : {
21725 : case 0:
21726 : if (!
21727 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21728 : (CONST_INT_P (operands[2])
21729 : && (QImode != DImode
21730 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
21731 : && ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
21732 : && ix86_pre_reload_split ()))
21733 : return -1;
21734 : return 586; /* *addqi3_ne */
21735 :
21736 : case 1:
21737 : if (!
21738 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21739 : (CONST_INT_P (operands[2])
21740 : && (HImode != DImode
21741 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
21742 : && ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
21743 : && ix86_pre_reload_split ()))
21744 : return -1;
21745 : return 587; /* *addhi3_ne */
21746 :
21747 : case 2:
21748 : if (!
21749 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21750 : (CONST_INT_P (operands[2])
21751 : && (SImode != DImode
21752 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
21753 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
21754 : && ix86_pre_reload_split ()))
21755 : return -1;
21756 : return 588; /* *addsi3_ne */
21757 :
21758 : case 3:
21759 : if (!(
21760 : #line 10500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21761 : (CONST_INT_P (operands[2])
21762 : && (DImode != DImode
21763 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
21764 : && ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
21765 : && ix86_pre_reload_split ()) &&
21766 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21767 : (TARGET_64BIT)))
21768 : return -1;
21769 : return 589; /* *adddi3_ne */
21770 :
21771 : default:
21772 : return -1;
21773 : }
21774 :
21775 : default:
21776 : return -1;
21777 : }
21778 :
21779 : case IOR:
21780 : switch (pattern359 (x1))
21781 : {
21782 : case 0:
21783 : if (!(
21784 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21785 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21786 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21787 : (!TARGET_64BIT)))
21788 : return -1;
21789 : return 275; /* *adddi3_doubleword_concat */
21790 :
21791 : case 1:
21792 : if (!(
21793 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21794 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21795 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21796 : (TARGET_64BIT)))
21797 : return -1;
21798 : return 278; /* *addti3_doubleword_concat */
21799 :
21800 : case 2:
21801 : if (!(
21802 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21803 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21804 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21805 : (!TARGET_64BIT)))
21806 : return -1;
21807 : return 281; /* *adddi3_doubleword_concat_zext */
21808 :
21809 : case 3:
21810 : if (!(
21811 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21812 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21813 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21814 : (TARGET_64BIT)))
21815 : return -1;
21816 : return 284; /* *addti3_doubleword_concat_zext */
21817 :
21818 : default:
21819 : return -1;
21820 : }
21821 :
21822 : case XOR:
21823 : switch (pattern359 (x1))
21824 : {
21825 : case 0:
21826 : if (!(
21827 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21828 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21829 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21830 : (!TARGET_64BIT)))
21831 : return -1;
21832 : return 276; /* *adddi3_doubleword_concat */
21833 :
21834 : case 1:
21835 : if (!(
21836 : #line 6593 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21837 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21838 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21839 : (TARGET_64BIT)))
21840 : return -1;
21841 : return 279; /* *addti3_doubleword_concat */
21842 :
21843 : case 2:
21844 : if (!(
21845 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21846 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
21847 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21848 : (!TARGET_64BIT)))
21849 : return -1;
21850 : return 282; /* *adddi3_doubleword_concat_zext */
21851 :
21852 : case 3:
21853 : if (!(
21854 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21855 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
21856 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21857 : (TARGET_64BIT)))
21858 : return -1;
21859 : return 285; /* *addti3_doubleword_concat_zext */
21860 :
21861 : default:
21862 : return -1;
21863 : }
21864 :
21865 : case LTU:
21866 : case UNLT:
21867 : switch (pattern360 (x1))
21868 : {
21869 : case 0:
21870 : if (pattern1537 (x3,
21871 : E_QImode) != 0
21872 : || !
21873 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21874 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21875 : return -1;
21876 : return 465; /* *addqi3_carry_0 */
21877 :
21878 : case 1:
21879 : if (pattern1537 (x3,
21880 : E_HImode) != 0
21881 : || !
21882 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21883 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21884 : return -1;
21885 : return 466; /* *addhi3_carry_0 */
21886 :
21887 : case 2:
21888 : if (pattern1537 (x3,
21889 : E_SImode) != 0
21890 : || !
21891 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21892 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21893 : return -1;
21894 : return 467; /* *addsi3_carry_0 */
21895 :
21896 : case 3:
21897 : if (pattern1537 (x3,
21898 : E_DImode) != 0
21899 : || !(
21900 : #line 8941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21901 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
21902 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21903 : (TARGET_64BIT)))
21904 : return -1;
21905 : return 468; /* *adddi3_carry_0 */
21906 :
21907 : default:
21908 : return -1;
21909 : }
21910 :
21911 : case GE:
21912 : case GEU:
21913 : switch (pattern360 (x1))
21914 : {
21915 : case 0:
21916 : if (pattern1538 (x3,
21917 : E_QImode) != 0
21918 : || !
21919 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21920 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21921 : return -1;
21922 : return 473; /* *addqi3_carry_0r */
21923 :
21924 : case 1:
21925 : if (pattern1538 (x3,
21926 : E_HImode) != 0
21927 : || !
21928 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21929 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21930 : return -1;
21931 : return 474; /* *addhi3_carry_0r */
21932 :
21933 : case 2:
21934 : if (pattern1538 (x3,
21935 : E_SImode) != 0
21936 : || !
21937 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21938 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])))
21939 : return -1;
21940 : return 475; /* *addsi3_carry_0r */
21941 :
21942 : case 3:
21943 : if (pattern1538 (x3,
21944 : E_DImode) != 0
21945 : || !(
21946 : #line 8975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21947 : (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1])) &&
21948 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21949 : (TARGET_64BIT)))
21950 : return -1;
21951 : return 476; /* *adddi3_carry_0r */
21952 :
21953 : default:
21954 : return -1;
21955 : }
21956 :
21957 : case EQ:
21958 : switch (pattern364 (x1))
21959 : {
21960 : case 0:
21961 : if (!
21962 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21963 : (ix86_unary_operator_ok (PLUS, QImode, operands)
21964 : && ix86_pre_reload_split ()))
21965 : return -1;
21966 : return 590; /* *addqi3_eq_0 */
21967 :
21968 : case 1:
21969 : if (!
21970 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21971 : (ix86_unary_operator_ok (PLUS, HImode, operands)
21972 : && ix86_pre_reload_split ()))
21973 : return -1;
21974 : return 591; /* *addhi3_eq_0 */
21975 :
21976 : case 2:
21977 : if (!
21978 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21979 : (ix86_unary_operator_ok (PLUS, SImode, operands)
21980 : && ix86_pre_reload_split ()))
21981 : return -1;
21982 : return 592; /* *addsi3_eq_0 */
21983 :
21984 : case 3:
21985 : if (!(
21986 : #line 10526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21987 : (ix86_unary_operator_ok (PLUS, DImode, operands)
21988 : && ix86_pre_reload_split ()) &&
21989 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21990 : (TARGET_64BIT)))
21991 : return -1;
21992 : return 593; /* *adddi3_eq_0 */
21993 :
21994 : default:
21995 : return -1;
21996 : }
21997 :
21998 : case NE:
21999 : switch (pattern364 (x1))
22000 : {
22001 : case 0:
22002 : if (!
22003 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22004 : (ix86_unary_operator_ok (PLUS, QImode, operands)
22005 : && ix86_pre_reload_split ()))
22006 : return -1;
22007 : return 594; /* *addqi3_ne_0 */
22008 :
22009 : case 1:
22010 : if (!
22011 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22012 : (ix86_unary_operator_ok (PLUS, HImode, operands)
22013 : && ix86_pre_reload_split ()))
22014 : return -1;
22015 : return 595; /* *addhi3_ne_0 */
22016 :
22017 : case 2:
22018 : if (!
22019 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22020 : (ix86_unary_operator_ok (PLUS, SImode, operands)
22021 : && ix86_pre_reload_split ()))
22022 : return -1;
22023 : return 596; /* *addsi3_ne_0 */
22024 :
22025 : case 3:
22026 : if (!(
22027 : #line 10547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22028 : (ix86_unary_operator_ok (PLUS, DImode, operands)
22029 : && ix86_pre_reload_split ()) &&
22030 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22031 : (TARGET_64BIT)))
22032 : return -1;
22033 : return 597; /* *adddi3_ne_0 */
22034 :
22035 : default:
22036 : return -1;
22037 : }
22038 :
22039 : case MINUS:
22040 : x6 = XVECEXP (x1, 0, 1);
22041 : if (pattern355 (x6) != 0)
22042 : return -1;
22043 : switch (pattern946 (x2))
22044 : {
22045 : case 0:
22046 : if (!
22047 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22048 : (CONST_INT_P (operands[2])
22049 : && (QImode != DImode
22050 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22051 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22052 : && ix86_pre_reload_split ()))
22053 : return -1;
22054 : return 602; /* *subqi3_ne */
22055 :
22056 : case 1:
22057 : if (!
22058 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22059 : (CONST_INT_P (operands[2])
22060 : && (HImode != DImode
22061 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22062 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22063 : && ix86_pre_reload_split ()))
22064 : return -1;
22065 : return 603; /* *subhi3_ne */
22066 :
22067 : case 2:
22068 : if (!
22069 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22070 : (CONST_INT_P (operands[2])
22071 : && (SImode != DImode
22072 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22073 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22074 : && ix86_pre_reload_split ()))
22075 : return -1;
22076 : return 604; /* *subsi3_ne */
22077 :
22078 : case 3:
22079 : if (!(
22080 : #line 10595 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22081 : (CONST_INT_P (operands[2])
22082 : && (DImode != DImode
22083 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22084 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22085 : && ix86_pre_reload_split ()) &&
22086 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22087 : (TARGET_64BIT)))
22088 : return -1;
22089 : return 605; /* *subdi3_ne */
22090 :
22091 : case 4:
22092 : if (!
22093 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22094 : (CONST_INT_P (operands[2])
22095 : && (QImode != DImode
22096 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22097 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22098 : && ix86_pre_reload_split ()))
22099 : return -1;
22100 : return 606; /* *subqi3_eq_1 */
22101 :
22102 : case 5:
22103 : if (!
22104 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22105 : (CONST_INT_P (operands[2])
22106 : && (HImode != DImode
22107 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22108 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22109 : && ix86_pre_reload_split ()))
22110 : return -1;
22111 : return 607; /* *subhi3_eq_1 */
22112 :
22113 : case 6:
22114 : if (!
22115 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22116 : (CONST_INT_P (operands[2])
22117 : && (SImode != DImode
22118 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22119 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22120 : && ix86_pre_reload_split ()))
22121 : return -1;
22122 : return 608; /* *subsi3_eq_1 */
22123 :
22124 : case 7:
22125 : if (!(
22126 : #line 10624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22127 : (CONST_INT_P (operands[2])
22128 : && (DImode != DImode
22129 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
22130 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22131 : && ix86_pre_reload_split ()) &&
22132 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22133 : (TARGET_64BIT)))
22134 : return -1;
22135 : return 609; /* *subdi3_eq_1 */
22136 :
22137 : default:
22138 : return -1;
22139 : }
22140 :
22141 : case LSHIFTRT:
22142 : x10 = XEXP (x4, 1);
22143 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
22144 : return -1;
22145 : x8 = XEXP (x3, 1);
22146 : if (GET_CODE (x8) != ASHIFT)
22147 : return -1;
22148 : x11 = XEXP (x8, 0);
22149 : if (GET_CODE (x11) != LTU)
22150 : return -1;
22151 : x12 = XEXP (x11, 0);
22152 : if (GET_CODE (x12) != REG
22153 : || REGNO (x12) != 17
22154 : || GET_MODE (x12) != E_CCCmode)
22155 : return -1;
22156 : x13 = XEXP (x11, 1);
22157 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22158 : return -1;
22159 : x14 = XEXP (x8, 1);
22160 : if (GET_CODE (x14) != CONST_INT
22161 : || pattern349 (x1) != 0)
22162 : return -1;
22163 : switch (XWINT (x14, 0))
22164 : {
22165 : case 31L:
22166 : if (pattern1698 (x3,
22167 : E_SImode) != 0)
22168 : return -1;
22169 : return 1417; /* rcrsi2 */
22170 :
22171 : case 63L:
22172 : if (pattern1698 (x3,
22173 : E_DImode) != 0
22174 : || !
22175 : #line 19114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22176 : (TARGET_64BIT))
22177 : return -1;
22178 : return 1418; /* rcrdi2 */
22179 :
22180 : default:
22181 : return -1;
22182 : }
22183 :
22184 : case UNSPEC:
22185 : x6 = XVECEXP (x1, 0, 1);
22186 : if (pattern355 (x6) != 0)
22187 : return -1;
22188 : switch (pattern950 (x2))
22189 : {
22190 : case 0:
22191 : if (!
22192 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22193 : (ptr_mode == SImode))
22194 : return -1;
22195 : return 1695; /* *add_tp_si */
22196 :
22197 : case 1:
22198 : if (!
22199 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22200 : (ptr_mode == DImode))
22201 : return -1;
22202 : return 1696; /* *add_tp_di */
22203 :
22204 : case 2:
22205 : if (!
22206 : #line 23686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22207 : (!TARGET_64BIT && TARGET_GNU2_TLS))
22208 : return -1;
22209 : return 1700; /* *tls_dynamic_gnu2_combine_32 */
22210 :
22211 : case 3:
22212 : if (!(
22213 : #line 23749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22214 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
22215 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22216 : (ptr_mode == SImode)))
22217 : return -1;
22218 : return 1705; /* *tls_dynamic_gnu2_combine_64_si */
22219 :
22220 : case 4:
22221 : if (!(
22222 : #line 23749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22223 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
22224 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22225 : (ptr_mode == DImode)))
22226 : return -1;
22227 : return 1706; /* *tls_dynamic_gnu2_combine_64_di */
22228 :
22229 : default:
22230 : return -1;
22231 : }
22232 :
22233 : default:
22234 : return -1;
22235 : }
22236 : }
22237 :
22238 : int
22239 : recog_404 (rtx x1 ATTRIBUTE_UNUSED,
22240 : rtx_insn *insn ATTRIBUTE_UNUSED,
22241 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22242 : {
22243 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22244 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22245 : rtx x10, x11;
22246 : int res ATTRIBUTE_UNUSED;
22247 : x2 = XVECEXP (x1, 0, 0);
22248 : x3 = XEXP (x2, 1);
22249 : x4 = XEXP (x3, 0);
22250 : x5 = XEXP (x4, 1);
22251 : if (GET_CODE (x5) != CONST_INT)
22252 : return -1;
22253 : switch (pattern703 (x1))
22254 : {
22255 : case 0:
22256 : switch (XWINT (x5, 0))
22257 : {
22258 : case 0L:
22259 : x6 = XEXP (x3, 1);
22260 : if (GET_CODE (x6) != PLUS)
22261 : return -1;
22262 : x7 = XEXP (x6, 1);
22263 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
22264 : return -1;
22265 : x8 = XEXP (x2, 0);
22266 : operands[0] = x8;
22267 : operands[1] = x4;
22268 : x9 = XEXP (x4, 0);
22269 : operands[2] = x9;
22270 : switch (pattern1588 (x3))
22271 : {
22272 : case 0:
22273 : if (!
22274 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22275 : (TARGET_CMOVE))
22276 : return -1;
22277 : return 453; /* *dec_cmovhi */
22278 :
22279 : case 1:
22280 : if (!
22281 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22282 : (TARGET_CMOVE))
22283 : return -1;
22284 : return 454; /* *dec_cmovsi */
22285 :
22286 : case 2:
22287 : if (!(
22288 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22289 : (TARGET_CMOVE) &&
22290 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22291 : (TARGET_64BIT)))
22292 : return -1;
22293 : return 455; /* *dec_cmovdi */
22294 :
22295 : default:
22296 : return -1;
22297 : }
22298 :
22299 : case -1L:
22300 : switch (pattern1193 (x2))
22301 : {
22302 : case 0:
22303 : if (!(
22304 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22305 : (TARGET_AVX512BW) &&
22306 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22307 : (TARGET_AVX512DQ)))
22308 : return -1;
22309 : return 2693; /* *kortest_cmpqi_jcc */
22310 :
22311 : case 1:
22312 : if (!
22313 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22314 : (TARGET_AVX512BW))
22315 : return -1;
22316 : return 2694; /* *kortest_cmphi_jcc */
22317 :
22318 : case 2:
22319 : if (!
22320 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22321 : (TARGET_AVX512BW))
22322 : return -1;
22323 : return 2695; /* *kortest_cmpsi_jcc */
22324 :
22325 : case 3:
22326 : if (!(
22327 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22328 : (TARGET_AVX512BW) &&
22329 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22330 : (TARGET_AVX512BW && TARGET_64BIT)))
22331 : return -1;
22332 : return 2696; /* *kortest_cmpdi_jcc */
22333 :
22334 : case 4:
22335 : if (!(
22336 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22337 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22338 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22339 : (TARGET_AVX512DQ)))
22340 : return -1;
22341 : return 2697; /* *kortest_cmpqi_movqicc */
22342 :
22343 : case 5:
22344 : if (!
22345 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22346 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL))
22347 : return -1;
22348 : return 2698; /* *kortest_cmphi_movqicc */
22349 :
22350 : case 6:
22351 : if (!(
22352 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22353 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22354 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22355 : (TARGET_AVX512BW)))
22356 : return -1;
22357 : return 2699; /* *kortest_cmpsi_movqicc */
22358 :
22359 : case 7:
22360 : if (!(
22361 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22362 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
22363 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22364 : (TARGET_AVX512BW && TARGET_64BIT)))
22365 : return -1;
22366 : return 2700; /* *kortest_cmpdi_movqicc */
22367 :
22368 : case 8:
22369 : if (!(
22370 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22371 : (TARGET_AVX512BW && TARGET_CMOVE
22372 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22373 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22374 : (TARGET_AVX512DQ)))
22375 : return -1;
22376 : return 2701; /* *kortest_cmpqi_movhicc */
22377 :
22378 : case 9:
22379 : if (!
22380 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22381 : (TARGET_AVX512BW && TARGET_CMOVE
22382 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
22383 : return -1;
22384 : return 2704; /* *kortest_cmphi_movhicc */
22385 :
22386 : case 10:
22387 : if (!(
22388 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22389 : (TARGET_AVX512BW && TARGET_CMOVE
22390 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22391 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22392 : (TARGET_AVX512BW)))
22393 : return -1;
22394 : return 2707; /* *kortest_cmpsi_movhicc */
22395 :
22396 : case 11:
22397 : if (!(
22398 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22399 : (TARGET_AVX512BW && TARGET_CMOVE
22400 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22401 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22402 : (TARGET_AVX512BW && TARGET_64BIT)))
22403 : return -1;
22404 : return 2710; /* *kortest_cmpdi_movhicc */
22405 :
22406 : case 12:
22407 : if (!(
22408 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22409 : (TARGET_AVX512BW && TARGET_CMOVE
22410 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22411 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22412 : (TARGET_AVX512DQ)))
22413 : return -1;
22414 : return 2702; /* *kortest_cmpqi_movsicc */
22415 :
22416 : case 13:
22417 : if (!
22418 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22419 : (TARGET_AVX512BW && TARGET_CMOVE
22420 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
22421 : return -1;
22422 : return 2705; /* *kortest_cmphi_movsicc */
22423 :
22424 : case 14:
22425 : if (!(
22426 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22427 : (TARGET_AVX512BW && TARGET_CMOVE
22428 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22429 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22430 : (TARGET_AVX512BW)))
22431 : return -1;
22432 : return 2708; /* *kortest_cmpsi_movsicc */
22433 :
22434 : case 15:
22435 : if (!(
22436 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22437 : (TARGET_AVX512BW && TARGET_CMOVE
22438 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22439 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22440 : (TARGET_AVX512BW && TARGET_64BIT)))
22441 : return -1;
22442 : return 2711; /* *kortest_cmpdi_movsicc */
22443 :
22444 : case 16:
22445 : if (!(
22446 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22447 : (TARGET_AVX512BW && TARGET_CMOVE
22448 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22449 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22450 : (TARGET_64BIT) &&
22451 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22452 : (TARGET_AVX512DQ)) &&
22453 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22454 : (TARGET_64BIT)) &&
22455 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22456 : (TARGET_64BIT)) &&
22457 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22458 : (TARGET_64BIT))))
22459 : return -1;
22460 : return 2703; /* *kortest_cmpqi_movdicc */
22461 :
22462 : case 17:
22463 : if (!(
22464 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22465 : (TARGET_AVX512BW && TARGET_CMOVE
22466 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
22467 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22468 : (TARGET_64BIT)))
22469 : return -1;
22470 : return 2706; /* *kortest_cmphi_movdicc */
22471 :
22472 : case 18:
22473 : if (!(
22474 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22475 : (TARGET_AVX512BW && TARGET_CMOVE
22476 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22477 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22478 : (TARGET_64BIT) &&
22479 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22480 : (TARGET_AVX512BW)) &&
22481 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22482 : (TARGET_64BIT)) &&
22483 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22484 : (TARGET_64BIT)) &&
22485 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22486 : (TARGET_64BIT))))
22487 : return -1;
22488 : return 2709; /* *kortest_cmpsi_movdicc */
22489 :
22490 : case 19:
22491 : if (!(
22492 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22493 : (TARGET_AVX512BW && TARGET_CMOVE
22494 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
22495 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22496 : (TARGET_64BIT) &&
22497 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22498 : (TARGET_AVX512BW && TARGET_64BIT)) &&
22499 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22500 : (TARGET_64BIT)) &&
22501 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22502 : (TARGET_64BIT)) &&
22503 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22504 : (TARGET_64BIT))))
22505 : return -1;
22506 : return 2712; /* *kortest_cmpdi_movdicc */
22507 :
22508 : default:
22509 : return -1;
22510 : }
22511 :
22512 : default:
22513 : return -1;
22514 : }
22515 :
22516 : case 1:
22517 : x9 = XEXP (x4, 0);
22518 : x10 = XEXP (x9, 1);
22519 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
22520 : || XWINT (x5, 0) != 0L)
22521 : return -1;
22522 : switch (pattern1346 (x2))
22523 : {
22524 : case 0:
22525 : x11 = XEXP (x9, 2);
22526 : operands[2] = x11;
22527 : switch (pattern1706 (x3))
22528 : {
22529 : case 0:
22530 : if (
22531 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22532 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22533 : && (CONST_INT_P (operands[2])
22534 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
22535 : && INTVAL (operands[2])
22536 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
22537 : : !memory_operand (operands[1], SImode))
22538 : && ix86_pre_reload_split ()))
22539 : return 1456; /* *jcc_btsi */
22540 : break;
22541 :
22542 : case 1:
22543 : if ((
22544 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22545 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22546 : && (CONST_INT_P (operands[2])
22547 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
22548 : && INTVAL (operands[2])
22549 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
22550 : : !memory_operand (operands[1], DImode))
22551 : && ix86_pre_reload_split ()) &&
22552 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22553 : (TARGET_64BIT)))
22554 : return 1457; /* *jcc_btdi */
22555 : break;
22556 :
22557 : default:
22558 : break;
22559 : }
22560 : if (GET_CODE (x11) != SUBREG)
22561 : return -1;
22562 : switch (pattern1708 (x3))
22563 : {
22564 : case 0:
22565 : if (!
22566 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22567 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22568 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
22569 : == GET_MODE_BITSIZE (SImode)-1
22570 : && ix86_pre_reload_split ()))
22571 : return -1;
22572 : return 1460; /* *jcc_btsi_mask_1 */
22573 :
22574 : case 1:
22575 : if (!
22576 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22577 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22578 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
22579 : == GET_MODE_BITSIZE (SImode)-1
22580 : && ix86_pre_reload_split ()))
22581 : return -1;
22582 : return 1462; /* *jcc_btsi_mask_1 */
22583 :
22584 : case 2:
22585 : if (!(
22586 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22587 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22588 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
22589 : == GET_MODE_BITSIZE (SImode)-1
22590 : && ix86_pre_reload_split ()) &&
22591 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22592 : (TARGET_64BIT)))
22593 : return -1;
22594 : return 1464; /* *jcc_btsi_mask_1 */
22595 :
22596 : case 3:
22597 : if (!(
22598 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22599 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22600 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
22601 : == GET_MODE_BITSIZE (DImode)-1
22602 : && ix86_pre_reload_split ()) &&
22603 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22604 : (TARGET_64BIT)))
22605 : return -1;
22606 : return 1461; /* *jcc_btdi_mask_1 */
22607 :
22608 : case 4:
22609 : if (!(
22610 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22611 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22612 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
22613 : == GET_MODE_BITSIZE (DImode)-1
22614 : && ix86_pre_reload_split ()) &&
22615 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22616 : (TARGET_64BIT)))
22617 : return -1;
22618 : return 1463; /* *jcc_btdi_mask_1 */
22619 :
22620 : case 5:
22621 : if (!(
22622 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22623 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22624 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
22625 : == GET_MODE_BITSIZE (DImode)-1
22626 : && ix86_pre_reload_split ()) &&
22627 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22628 : (TARGET_64BIT)))
22629 : return -1;
22630 : return 1465; /* *jcc_btdi_mask_1 */
22631 :
22632 : default:
22633 : return -1;
22634 : }
22635 :
22636 : case 1:
22637 : if (!
22638 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22639 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22640 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
22641 : == GET_MODE_BITSIZE (SImode)-1
22642 : && ix86_pre_reload_split ()))
22643 : return -1;
22644 : return 1458; /* *jcc_btsi_mask */
22645 :
22646 : case 2:
22647 : if (!(
22648 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22649 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
22650 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
22651 : == GET_MODE_BITSIZE (DImode)-1
22652 : && ix86_pre_reload_split ()) &&
22653 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22654 : (TARGET_64BIT)))
22655 : return -1;
22656 : return 1459; /* *jcc_btdi_mask */
22657 :
22658 : default:
22659 : return -1;
22660 : }
22661 :
22662 : default:
22663 : return -1;
22664 : }
22665 : }
22666 :
22667 : int
22668 : recog_417 (rtx x1 ATTRIBUTE_UNUSED,
22669 : rtx_insn *insn ATTRIBUTE_UNUSED,
22670 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22671 : {
22672 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22673 : rtx x2, x3, x4, x5, x6, x7;
22674 : int res ATTRIBUTE_UNUSED;
22675 : x2 = XVECEXP (x1, 0, 0);
22676 : x3 = XEXP (x2, 0);
22677 : operands[0] = x3;
22678 : x4 = XEXP (x2, 1);
22679 : x5 = XEXP (x4, 0);
22680 : operands[1] = x5;
22681 : x6 = XVECEXP (x1, 0, 1);
22682 : switch (GET_CODE (x6))
22683 : {
22684 : case CLOBBER:
22685 : x7 = XEXP (x6, 0);
22686 : switch (pattern705 (x7))
22687 : {
22688 : case 0:
22689 : if (!register_operand (operands[0], E_DImode)
22690 : || GET_MODE (x4) != E_DImode
22691 : || !general_operand (operands[1], E_DImode))
22692 : return -1;
22693 : if ((
22694 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22695 : (TARGET_CMOVE
22696 : && ix86_pre_reload_split ()) &&
22697 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22698 : (!TARGET_64BIT)))
22699 : return 1027; /* *absdi2_doubleword */
22700 : if (!(
22701 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22702 : (TARGET_CMOVE
22703 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
22704 : && ix86_pre_reload_split ()) &&
22705 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22706 : (TARGET_64BIT)))
22707 : return -1;
22708 : return 1034; /* *absdi2_1 */
22709 :
22710 : case 1:
22711 : if (!register_operand (operands[0], E_TImode)
22712 : || GET_MODE (x4) != E_TImode
22713 : || !general_operand (operands[1], E_TImode)
22714 : || !(
22715 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22716 : (TARGET_CMOVE
22717 : && ix86_pre_reload_split ()) &&
22718 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22719 : (TARGET_64BIT)))
22720 : return -1;
22721 : return 1028; /* *absti2_doubleword */
22722 :
22723 : case 2:
22724 : if (!register_operand (operands[0], E_QImode)
22725 : || GET_MODE (x4) != E_QImode
22726 : || !general_operand (operands[1], E_QImode)
22727 : || !
22728 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22729 : (TARGET_CMOVE
22730 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
22731 : && ix86_pre_reload_split ()))
22732 : return -1;
22733 : return 1031; /* *absqi2_1 */
22734 :
22735 : case 3:
22736 : if (!register_operand (operands[0], E_HImode)
22737 : || GET_MODE (x4) != E_HImode
22738 : || !general_operand (operands[1], E_HImode)
22739 : || !
22740 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22741 : (TARGET_CMOVE
22742 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
22743 : && ix86_pre_reload_split ()))
22744 : return -1;
22745 : return 1032; /* *abshi2_1 */
22746 :
22747 : case 4:
22748 : if (!register_operand (operands[0], E_SImode)
22749 : || GET_MODE (x4) != E_SImode
22750 : || !general_operand (operands[1], E_SImode)
22751 : || !
22752 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22753 : (TARGET_CMOVE
22754 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
22755 : && ix86_pre_reload_split ()))
22756 : return -1;
22757 : return 1033; /* *abssi2_1 */
22758 :
22759 : case 5:
22760 : if (!register_operand (operands[0], E_SFmode)
22761 : || GET_MODE (x4) != E_SFmode
22762 : || !register_operand (operands[1], E_SFmode)
22763 : || !
22764 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22765 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
22766 : return -1;
22767 : return 1042; /* *abssf2_i387_1 */
22768 :
22769 : case 6:
22770 : if (!register_operand (operands[0], E_DFmode)
22771 : || GET_MODE (x4) != E_DFmode
22772 : || !register_operand (operands[1], E_DFmode)
22773 : || !
22774 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22775 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
22776 : return -1;
22777 : return 1044; /* *absdf2_i387_1 */
22778 :
22779 : case 7:
22780 : if (!register_operand (operands[0], E_XFmode)
22781 : || GET_MODE (x4) != E_XFmode
22782 : || !register_operand (operands[1], E_XFmode)
22783 : || !
22784 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22785 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
22786 : return -1;
22787 : return 1046; /* *absxf2_i387_1 */
22788 :
22789 : default:
22790 : return -1;
22791 : }
22792 :
22793 : case USE:
22794 : switch (pattern709 (x1, pnum_clobbers))
22795 : {
22796 : case 0:
22797 : if (!
22798 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22799 : (TARGET_SSE))
22800 : return -1;
22801 : return 1039; /* *abstf2_1 */
22802 :
22803 : case 1:
22804 : if (!
22805 : #line 15179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22806 : (TARGET_AVX512FP16))
22807 : return -1;
22808 : *pnum_clobbers = 1;
22809 : return 1048; /* *abshf2_1 */
22810 :
22811 : case 2:
22812 : if (!
22813 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22814 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
22815 : return -1;
22816 : *pnum_clobbers = 1;
22817 : return 1050; /* *abssf2_1 */
22818 :
22819 : case 3:
22820 : if (!
22821 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22822 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
22823 : return -1;
22824 : *pnum_clobbers = 1;
22825 : return 1052; /* *absdf2_1 */
22826 :
22827 : case 4:
22828 : if (!
22829 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22830 : (TARGET_MMX_WITH_SSE))
22831 : return -1;
22832 : return 2106; /* *mmx_absv2sf2 */
22833 :
22834 : case 5:
22835 : if (!
22836 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22837 : (TARGET_SSE))
22838 : return -1;
22839 : return 2152; /* *mmx_absv2bf */
22840 :
22841 : case 6:
22842 : if (!(
22843 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22844 : (TARGET_SSE) &&
22845 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22846 : (TARGET_MMX_WITH_SSE)))
22847 : return -1;
22848 : return 2154; /* *mmx_absv4bf */
22849 :
22850 : case 7:
22851 : if (!
22852 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22853 : (TARGET_SSE))
22854 : return -1;
22855 : return 2156; /* *mmx_absv2hf */
22856 :
22857 : case 8:
22858 : if (!(
22859 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22860 : (TARGET_SSE) &&
22861 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22862 : (TARGET_MMX_WITH_SSE)))
22863 : return -1;
22864 : return 2158; /* *mmx_absv4hf */
22865 :
22866 : case 9:
22867 : if (!(
22868 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22869 : (TARGET_SSE) &&
22870 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22871 : (TARGET_AVX512F)))
22872 : return -1;
22873 : return 2716; /* *absv32bf2 */
22874 :
22875 : case 10:
22876 : if (!(
22877 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22878 : (TARGET_SSE) &&
22879 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22880 : (TARGET_AVX)))
22881 : return -1;
22882 : return 2718; /* *absv16bf2 */
22883 :
22884 : case 11:
22885 : if (!(
22886 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22887 : (TARGET_SSE) &&
22888 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22889 : (TARGET_SSE2)))
22890 : return -1;
22891 : return 2720; /* *absv8bf2 */
22892 :
22893 : case 12:
22894 : if (!(
22895 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22896 : (TARGET_SSE) &&
22897 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22898 : (TARGET_AVX512F)))
22899 : return -1;
22900 : return 2722; /* *absv32hf2 */
22901 :
22902 : case 13:
22903 : if (!(
22904 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22905 : (TARGET_SSE) &&
22906 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22907 : (TARGET_AVX)))
22908 : return -1;
22909 : return 2724; /* *absv16hf2 */
22910 :
22911 : case 14:
22912 : if (!(
22913 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22914 : (TARGET_SSE) &&
22915 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22916 : (TARGET_SSE2)))
22917 : return -1;
22918 : return 2726; /* *absv8hf2 */
22919 :
22920 : case 15:
22921 : if (!(
22922 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22923 : (TARGET_SSE) &&
22924 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22925 : (TARGET_AVX512F)))
22926 : return -1;
22927 : return 2728; /* *absv16sf2 */
22928 :
22929 : case 16:
22930 : if (!(
22931 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22932 : (TARGET_SSE) &&
22933 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22934 : (TARGET_AVX)))
22935 : return -1;
22936 : return 2730; /* *absv8sf2 */
22937 :
22938 : case 17:
22939 : if (!
22940 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22941 : (TARGET_SSE))
22942 : return -1;
22943 : return 2732; /* *absv4sf2 */
22944 :
22945 : case 18:
22946 : if (!(
22947 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22948 : (TARGET_SSE) &&
22949 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22950 : (TARGET_AVX512F)))
22951 : return -1;
22952 : return 2734; /* *absv8df2 */
22953 :
22954 : case 19:
22955 : if (!(
22956 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22957 : (TARGET_SSE) &&
22958 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22959 : (TARGET_AVX)))
22960 : return -1;
22961 : return 2736; /* *absv4df2 */
22962 :
22963 : case 20:
22964 : if (!(
22965 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22966 : (TARGET_SSE) &&
22967 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22968 : (TARGET_SSE2)))
22969 : return -1;
22970 : return 2738; /* *absv2df2 */
22971 :
22972 : default:
22973 : return -1;
22974 : }
22975 :
22976 : default:
22977 : return -1;
22978 : }
22979 : }
22980 :
22981 : int
22982 : recog_427 (rtx x1 ATTRIBUTE_UNUSED,
22983 : rtx_insn *insn ATTRIBUTE_UNUSED,
22984 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22985 : {
22986 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22987 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22988 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22989 : rtx x18, x19, x20, x21;
22990 : int res ATTRIBUTE_UNUSED;
22991 : x2 = XVECEXP (x1, 0, 0);
22992 : x3 = XEXP (x2, 1);
22993 : x4 = XEXP (x3, 0);
22994 : if (GET_CODE (x4) != UNSPEC
22995 : || XVECLEN (x4, 0) != 4
22996 : || XINT (x4, 1) != 154)
22997 : return -1;
22998 : x5 = XVECEXP (x4, 0, 1);
22999 : if (GET_CODE (x5) != MEM)
23000 : return -1;
23001 : x6 = XEXP (x5, 0);
23002 : if (GET_CODE (x6) != UNSPEC
23003 : || XVECLEN (x6, 0) != 3
23004 : || XINT (x6, 1) != 155)
23005 : return -1;
23006 : x7 = XVECEXP (x4, 0, 2);
23007 : if (GET_CODE (x7) != MEM
23008 : || GET_MODE (x7) != E_BLKmode)
23009 : return -1;
23010 : x8 = XEXP (x7, 0);
23011 : if (GET_CODE (x8) != SCRATCH)
23012 : return -1;
23013 : x9 = XEXP (x3, 1);
23014 : if (GET_CODE (x9) != PARALLEL
23015 : || XVECLEN (x9, 0) != 4)
23016 : return -1;
23017 : x10 = XVECEXP (x9, 0, 0);
23018 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23019 : return -1;
23020 : x11 = XVECEXP (x9, 0, 1);
23021 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
23022 : return -1;
23023 : x12 = XVECEXP (x9, 0, 2);
23024 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
23025 : return -1;
23026 : x13 = XVECEXP (x9, 0, 3);
23027 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
23028 : return -1;
23029 : x14 = XVECEXP (x1, 0, 1);
23030 : if (GET_CODE (x14) != CLOBBER)
23031 : return -1;
23032 : x15 = XEXP (x2, 0);
23033 : operands[0] = x15;
23034 : x16 = XVECEXP (x6, 0, 1);
23035 : if (!register_operand (x16, E_V4DImode))
23036 : return -1;
23037 : x17 = XVECEXP (x6, 0, 2);
23038 : if (!const1248_operand (x17, E_SImode))
23039 : return -1;
23040 : x18 = XEXP (x14, 0);
23041 : operands[1] = x18;
23042 : x19 = XVECEXP (x4, 0, 0);
23043 : switch (GET_CODE (x19))
23044 : {
23045 : case REG:
23046 : case SUBREG:
23047 : operands[2] = x19;
23048 : operands[7] = x5;
23049 : x20 = XVECEXP (x6, 0, 0);
23050 : operands[3] = x20;
23051 : operands[4] = x16;
23052 : operands[6] = x17;
23053 : x21 = XVECEXP (x4, 0, 3);
23054 : operands[5] = x21;
23055 : switch (GET_MODE (operands[0]))
23056 : {
23057 : case E_V4SImode:
23058 : switch (pattern1881 (x3,
23059 : E_V8SImode,
23060 : E_V4SImode,
23061 : E_SImode))
23062 : {
23063 : case 0:
23064 : if (!(
23065 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23066 : (TARGET_AVX2) &&
23067 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23068 : (Pmode == SImode)))
23069 : return -1;
23070 : return 9808; /* *avx2_gatherdiv8si_3 */
23071 :
23072 : case 1:
23073 : if (!(
23074 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23075 : (TARGET_AVX2) &&
23076 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23077 : (Pmode == DImode)))
23078 : return -1;
23079 : return 9810; /* *avx2_gatherdiv8si_3 */
23080 :
23081 : default:
23082 : return -1;
23083 : }
23084 :
23085 : case E_V4SFmode:
23086 : switch (pattern1881 (x3,
23087 : E_V8SFmode,
23088 : E_V4SFmode,
23089 : E_SFmode))
23090 : {
23091 : case 0:
23092 : if (!(
23093 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23094 : (TARGET_AVX2) &&
23095 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23096 : (Pmode == SImode)))
23097 : return -1;
23098 : return 9809; /* *avx2_gatherdiv8sf_3 */
23099 :
23100 : case 1:
23101 : if (!(
23102 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23103 : (TARGET_AVX2) &&
23104 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23105 : (Pmode == DImode)))
23106 : return -1;
23107 : return 9811; /* *avx2_gatherdiv8sf_3 */
23108 :
23109 : default:
23110 : return -1;
23111 : }
23112 :
23113 : default:
23114 : return -1;
23115 : }
23116 :
23117 : case PC:
23118 : operands[6] = x5;
23119 : x20 = XVECEXP (x6, 0, 0);
23120 : operands[2] = x20;
23121 : operands[3] = x16;
23122 : operands[5] = x17;
23123 : x21 = XVECEXP (x4, 0, 3);
23124 : operands[4] = x21;
23125 : switch (GET_MODE (operands[0]))
23126 : {
23127 : case E_V4SImode:
23128 : switch (pattern1877 (x3,
23129 : E_V8SImode,
23130 : E_V4SImode,
23131 : E_SImode))
23132 : {
23133 : case 0:
23134 : if (!(
23135 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23136 : (TARGET_AVX2) &&
23137 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23138 : (Pmode == SImode)))
23139 : return -1;
23140 : return 9812; /* *avx2_gatherdiv8si_4 */
23141 :
23142 : case 1:
23143 : if (!(
23144 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23145 : (TARGET_AVX2) &&
23146 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23147 : (Pmode == DImode)))
23148 : return -1;
23149 : return 9814; /* *avx2_gatherdiv8si_4 */
23150 :
23151 : default:
23152 : return -1;
23153 : }
23154 :
23155 : case E_V4SFmode:
23156 : switch (pattern1877 (x3,
23157 : E_V8SFmode,
23158 : E_V4SFmode,
23159 : E_SFmode))
23160 : {
23161 : case 0:
23162 : if (!(
23163 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23164 : (TARGET_AVX2) &&
23165 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23166 : (Pmode == SImode)))
23167 : return -1;
23168 : return 9813; /* *avx2_gatherdiv8sf_4 */
23169 :
23170 : case 1:
23171 : if (!(
23172 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23173 : (TARGET_AVX2) &&
23174 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23175 : (Pmode == DImode)))
23176 : return -1;
23177 : return 9815; /* *avx2_gatherdiv8sf_4 */
23178 :
23179 : default:
23180 : return -1;
23181 : }
23182 :
23183 : default:
23184 : return -1;
23185 : }
23186 :
23187 : default:
23188 : return -1;
23189 : }
23190 : }
23191 :
23192 : int
23193 : recog_433 (rtx x1 ATTRIBUTE_UNUSED,
23194 : rtx_insn *insn ATTRIBUTE_UNUSED,
23195 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23196 : {
23197 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23198 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23199 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23200 : rtx x18, x19, x20;
23201 : int res ATTRIBUTE_UNUSED;
23202 : x2 = XVECEXP (x1, 0, 1);
23203 : if (GET_CODE (x2) != SET)
23204 : return -1;
23205 : x3 = XVECEXP (x1, 0, 0);
23206 : x4 = XEXP (x3, 0);
23207 : operands[0] = x4;
23208 : x5 = XEXP (x3, 1);
23209 : switch (XVECLEN (x5, 0))
23210 : {
23211 : case 1:
23212 : if (XINT (x5, 1) != 10
23213 : || GET_MODE (x5) != E_DImode)
23214 : return -1;
23215 : x6 = XVECEXP (x5, 0, 0);
23216 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23217 : return -1;
23218 : x7 = XEXP (x2, 1);
23219 : if (pattern824 (x7,
23220 : E_DImode,
23221 : 10,
23222 : 1,
23223 : UNSPEC_VOLATILE) != 0
23224 : || pattern1182 (x1,
23225 : E_SImode,
23226 : 10) != 0
23227 : || !register_operand (operands[0], E_DImode))
23228 : return -1;
23229 : x8 = XEXP (x2, 0);
23230 : operands[1] = x8;
23231 : if (!register_operand (operands[1], E_DImode))
23232 : return -1;
23233 : x9 = XVECEXP (x1, 0, 2);
23234 : x10 = XEXP (x9, 0);
23235 : operands[2] = x10;
23236 : if (!register_operand (operands[2], E_SImode)
23237 : || !
23238 : #line 29835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23239 : (TARGET_64BIT))
23240 : return -1;
23241 : return 1954; /* rdtscp_rex64 */
23242 :
23243 : case 5:
23244 : if (XINT (x5, 1) != 109)
23245 : return -1;
23246 : x7 = XEXP (x2, 1);
23247 : if (GET_CODE (x7) != UNSPEC_VOLATILE
23248 : || XVECLEN (x7, 0) != 1
23249 : || XINT (x7, 1) != 109
23250 : || pattern1182 (x1,
23251 : E_CCZmode,
23252 : 109) != 0)
23253 : return -1;
23254 : x9 = XVECEXP (x1, 0, 2);
23255 : x10 = XEXP (x9, 0);
23256 : if (GET_CODE (x10) != REG
23257 : || REGNO (x10) != 17
23258 : || GET_MODE (x10) != E_CCZmode)
23259 : return -1;
23260 : x6 = XVECEXP (x5, 0, 0);
23261 : operands[1] = x6;
23262 : x11 = XVECEXP (x5, 0, 1);
23263 : operands[2] = x11;
23264 : x12 = XVECEXP (x5, 0, 2);
23265 : operands[3] = x12;
23266 : x13 = XVECEXP (x5, 0, 3);
23267 : operands[4] = x13;
23268 : x14 = XVECEXP (x5, 0, 4);
23269 : operands[5] = x14;
23270 : if (!const_int_operand (operands[5], E_SImode))
23271 : return -1;
23272 : x8 = XEXP (x2, 0);
23273 : if (!rtx_equal_p (x8, operands[1]))
23274 : return -1;
23275 : switch (GET_MODE (operands[0]))
23276 : {
23277 : case E_DImode:
23278 : if (pattern1866 (x1,
23279 : E_DImode,
23280 : E_SImode) != 0
23281 : || !(
23282 : #line 486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23283 : (TARGET_CMPXCHG8B) &&
23284 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23285 : (!TARGET_64BIT)))
23286 : return -1;
23287 : return 11074; /* atomic_compare_and_swapdi_doubleword */
23288 :
23289 : case E_TImode:
23290 : if (pattern1866 (x1,
23291 : E_TImode,
23292 : E_DImode) != 0
23293 : || !(
23294 : #line 486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23295 : (TARGET_CMPXCHG16B) &&
23296 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23297 : (TARGET_64BIT)))
23298 : return -1;
23299 : return 11075; /* atomic_compare_and_swapti_doubleword */
23300 :
23301 : default:
23302 : return -1;
23303 : }
23304 :
23305 : case 4:
23306 : x7 = XEXP (x2, 1);
23307 : if (GET_CODE (x7) != UNSPEC_VOLATILE
23308 : || XVECLEN (x7, 0) != 1)
23309 : return -1;
23310 : x15 = XVECEXP (x7, 0, 0);
23311 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23312 : return -1;
23313 : x9 = XVECEXP (x1, 0, 2);
23314 : if (GET_CODE (x9) != SET)
23315 : return -1;
23316 : x10 = XEXP (x9, 0);
23317 : if (GET_CODE (x10) != REG
23318 : || REGNO (x10) != 17)
23319 : return -1;
23320 : x6 = XVECEXP (x5, 0, 0);
23321 : operands[1] = x6;
23322 : x11 = XVECEXP (x5, 0, 1);
23323 : operands[2] = x11;
23324 : x12 = XVECEXP (x5, 0, 2);
23325 : operands[3] = x12;
23326 : x13 = XVECEXP (x5, 0, 3);
23327 : operands[4] = x13;
23328 : x8 = XEXP (x2, 0);
23329 : if (!rtx_equal_p (x8, operands[1]))
23330 : return -1;
23331 : switch (XINT (x5, 1))
23332 : {
23333 : case 109:
23334 : if (XINT (x7, 1) != 109)
23335 : return -1;
23336 : x16 = XEXP (x9, 1);
23337 : if (pattern1181 (x16,
23338 : E_CCZmode,
23339 : 109) != 0
23340 : || !const_int_operand (operands[4], E_SImode)
23341 : || GET_MODE (x10) != E_CCZmode)
23342 : return -1;
23343 : switch (GET_MODE (operands[0]))
23344 : {
23345 : case E_QImode:
23346 : if (pattern1855 (x1,
23347 : E_QImode) != 0
23348 : || !
23349 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23350 : (TARGET_CMPXCHG))
23351 : return -1;
23352 : return 11076; /* atomic_compare_and_swapqi_1 */
23353 :
23354 : case E_HImode:
23355 : if (pattern1855 (x1,
23356 : E_HImode) != 0
23357 : || !
23358 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23359 : (TARGET_CMPXCHG))
23360 : return -1;
23361 : return 11077; /* atomic_compare_and_swaphi_1 */
23362 :
23363 : case E_SImode:
23364 : if (pattern1855 (x1,
23365 : E_SImode) != 0
23366 : || !
23367 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23368 : (TARGET_CMPXCHG))
23369 : return -1;
23370 : return 11078; /* atomic_compare_and_swapsi_1 */
23371 :
23372 : case E_DImode:
23373 : if (pattern1855 (x1,
23374 : E_DImode) != 0
23375 : || !(
23376 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23377 : (TARGET_CMPXCHG) &&
23378 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23379 : (TARGET_64BIT)))
23380 : return -1;
23381 : return 11079; /* atomic_compare_and_swapdi_1 */
23382 :
23383 : default:
23384 : return -1;
23385 : }
23386 :
23387 : case 112:
23388 : if (XINT (x7, 1) != 112)
23389 : return -1;
23390 : x16 = XEXP (x9, 1);
23391 : if (GET_CODE (x16) != COMPARE
23392 : || GET_MODE (x16) != E_CCmode
23393 : || !const_0_to_15_operand (operands[4], E_SImode)
23394 : || GET_MODE (x10) != E_CCmode)
23395 : return -1;
23396 : x17 = XEXP (x16, 0);
23397 : if (!rtx_equal_p (x17, operands[1]))
23398 : return -1;
23399 : x18 = XEXP (x16, 1);
23400 : if (!rtx_equal_p (x18, operands[2]))
23401 : return -1;
23402 : switch (GET_MODE (operands[0]))
23403 : {
23404 : case E_SImode:
23405 : if (pattern1855 (x1,
23406 : E_SImode) != 0
23407 : || !
23408 : #line 1119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23409 : (TARGET_CMPCCXADD && TARGET_64BIT))
23410 : return -1;
23411 : return 11149; /* cmpccxadd_si */
23412 :
23413 : case E_DImode:
23414 : if (pattern1855 (x1,
23415 : E_DImode) != 0
23416 : || !
23417 : #line 1119 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23418 : (TARGET_CMPCCXADD && TARGET_64BIT))
23419 : return -1;
23420 : return 11150; /* cmpccxadd_di */
23421 :
23422 : default:
23423 : return -1;
23424 : }
23425 :
23426 : default:
23427 : return -1;
23428 : }
23429 :
23430 : case 2:
23431 : if (XINT (x5, 1) != 110)
23432 : return -1;
23433 : x7 = XEXP (x2, 1);
23434 : if (GET_CODE (x7) != PLUS)
23435 : return -1;
23436 : x9 = XVECEXP (x1, 0, 2);
23437 : if (pattern953 (x9,
23438 : E_CCmode,
23439 : 17) != 0)
23440 : return -1;
23441 : x6 = XVECEXP (x5, 0, 0);
23442 : operands[1] = x6;
23443 : x11 = XVECEXP (x5, 0, 1);
23444 : operands[3] = x11;
23445 : if (!const_int_operand (operands[3], E_SImode))
23446 : return -1;
23447 : x19 = XEXP (x7, 1);
23448 : operands[2] = x19;
23449 : x20 = XEXP (x7, 0);
23450 : if (!rtx_equal_p (x20, operands[1]))
23451 : return -1;
23452 : x8 = XEXP (x2, 0);
23453 : if (!rtx_equal_p (x8, operands[1]))
23454 : return -1;
23455 : switch (GET_MODE (operands[0]))
23456 : {
23457 : case E_QImode:
23458 : if (pattern1581 (x1,
23459 : E_QImode) != 0
23460 : || !
23461 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23462 : (TARGET_XADD))
23463 : return -1;
23464 : return 11080; /* atomic_fetch_addqi */
23465 :
23466 : case E_HImode:
23467 : if (pattern1581 (x1,
23468 : E_HImode) != 0
23469 : || !
23470 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23471 : (TARGET_XADD))
23472 : return -1;
23473 : return 11081; /* atomic_fetch_addhi */
23474 :
23475 : case E_SImode:
23476 : if (pattern1581 (x1,
23477 : E_SImode) != 0
23478 : || !
23479 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23480 : (TARGET_XADD))
23481 : return -1;
23482 : return 11082; /* atomic_fetch_addsi */
23483 :
23484 : case E_DImode:
23485 : if (pattern1581 (x1,
23486 : E_DImode) != 0
23487 : || !(
23488 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23489 : (TARGET_XADD) &&
23490 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23491 : (TARGET_64BIT)))
23492 : return -1;
23493 : return 11083; /* atomic_fetch_adddi */
23494 :
23495 : default:
23496 : return -1;
23497 : }
23498 :
23499 : default:
23500 : return -1;
23501 : }
23502 : }
23503 :
23504 : int
23505 : recog_445 (rtx x1 ATTRIBUTE_UNUSED,
23506 : rtx_insn *insn ATTRIBUTE_UNUSED,
23507 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23508 : {
23509 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23510 : rtx x2, x3, x4, x5;
23511 : int res ATTRIBUTE_UNUSED;
23512 : x2 = XEXP (x1, 1);
23513 : switch (GET_CODE (x2))
23514 : {
23515 : case IF_THEN_ELSE:
23516 : res = recog_2 (x1, insn, pnum_clobbers);
23517 : if (res >= 0)
23518 : return res;
23519 : break;
23520 :
23521 : case COMPARE:
23522 : res = recog_6 (x1, insn, pnum_clobbers);
23523 : if (res >= 0)
23524 : return res;
23525 : break;
23526 :
23527 : case UNSPEC:
23528 : res = recog_15 (x1, insn, pnum_clobbers);
23529 : if (res >= 0)
23530 : return res;
23531 : break;
23532 :
23533 : case CONST_INT:
23534 : case CONST_WIDE_INT:
23535 : case CONST_POLY_INT:
23536 : case CONST_FIXED:
23537 : case CONST_DOUBLE:
23538 : case CONST_VECTOR:
23539 : case CONST:
23540 : case REG:
23541 : case SUBREG:
23542 : case MEM:
23543 : case LABEL_REF:
23544 : case SYMBOL_REF:
23545 : case HIGH:
23546 : res = recog_21 (x1, insn, pnum_clobbers);
23547 : if (res >= 0)
23548 : return res;
23549 : break;
23550 :
23551 : case ASHIFTRT:
23552 : case LSHIFTRT:
23553 : case SIGN_EXTRACT:
23554 : case ZERO_EXTRACT:
23555 : res = recog_26 (x1, insn, pnum_clobbers);
23556 : if (res >= 0)
23557 : return res;
23558 : break;
23559 :
23560 : case IOR:
23561 : res = recog_27 (x1, insn, pnum_clobbers);
23562 : if (res >= 0)
23563 : return res;
23564 : break;
23565 :
23566 : case XOR:
23567 : res = recog_28 (x1, insn, pnum_clobbers);
23568 : if (res >= 0)
23569 : return res;
23570 : break;
23571 :
23572 : case ZERO_EXTEND:
23573 : res = recog_30 (x1, insn, pnum_clobbers);
23574 : if (res >= 0)
23575 : return res;
23576 : break;
23577 :
23578 : case SIGN_EXTEND:
23579 : res = recog_31 (x1, insn, pnum_clobbers);
23580 : if (res >= 0)
23581 : return res;
23582 : break;
23583 :
23584 : case FLOAT_EXTEND:
23585 : res = recog_32 (x1, insn, pnum_clobbers);
23586 : if (res >= 0)
23587 : return res;
23588 : break;
23589 :
23590 : case FLOAT_TRUNCATE:
23591 : res = recog_33 (x1, insn, pnum_clobbers);
23592 : if (res >= 0)
23593 : return res;
23594 : break;
23595 :
23596 : case FIX:
23597 : res = recog_34 (x1, insn, pnum_clobbers);
23598 : if (res >= 0)
23599 : return res;
23600 : break;
23601 :
23602 : case UNSIGNED_FIX:
23603 : res = recog_35 (x1, insn, pnum_clobbers);
23604 : if (res >= 0)
23605 : return res;
23606 : break;
23607 :
23608 : case FLOAT:
23609 : res = recog_36 (x1, insn, pnum_clobbers);
23610 : if (res >= 0)
23611 : return res;
23612 : break;
23613 :
23614 : case UNSIGNED_FLOAT:
23615 : res = recog_37 (x1, insn, pnum_clobbers);
23616 : if (res >= 0)
23617 : return res;
23618 : break;
23619 :
23620 : case AND:
23621 : res = recog_42 (x1, insn, pnum_clobbers);
23622 : if (res >= 0)
23623 : return res;
23624 : break;
23625 :
23626 : case NOT:
23627 : res = recog_43 (x1, insn, pnum_clobbers);
23628 : if (res >= 0)
23629 : return res;
23630 : break;
23631 :
23632 : case NEG:
23633 : res = recog_44 (x1, insn, pnum_clobbers);
23634 : if (res >= 0)
23635 : return res;
23636 : break;
23637 :
23638 : case ABS:
23639 : res = recog_45 (x1, insn, pnum_clobbers);
23640 : if (res >= 0)
23641 : return res;
23642 : break;
23643 :
23644 : case ASHIFT:
23645 : res = recog_46 (x1, insn, pnum_clobbers);
23646 : if (res >= 0)
23647 : return res;
23648 : break;
23649 :
23650 : case ROTATE:
23651 : res = recog_47 (x1, insn, pnum_clobbers);
23652 : if (res >= 0)
23653 : return res;
23654 : break;
23655 :
23656 : case ROTATERT:
23657 : res = recog_48 (x1, insn, pnum_clobbers);
23658 : if (res >= 0)
23659 : return res;
23660 : break;
23661 :
23662 : case NE:
23663 : case EQ:
23664 : case GE:
23665 : case GT:
23666 : case LE:
23667 : case LT:
23668 : case LTGT:
23669 : case GEU:
23670 : case GTU:
23671 : case LEU:
23672 : case LTU:
23673 : case UNORDERED:
23674 : case ORDERED:
23675 : case UNEQ:
23676 : case UNGE:
23677 : case UNGT:
23678 : case UNLE:
23679 : case UNLT:
23680 : res = recog_54 (x1, insn, pnum_clobbers);
23681 : if (res >= 0)
23682 : return res;
23683 : break;
23684 :
23685 : case POPCOUNT:
23686 : res = recog_55 (x1, insn, pnum_clobbers);
23687 : if (res >= 0)
23688 : return res;
23689 : break;
23690 :
23691 : case BSWAP:
23692 : if (GET_MODE (x2) == E_HImode)
23693 : {
23694 : x3 = XEXP (x1, 0);
23695 : operands[0] = x3;
23696 : x4 = XEXP (x2, 0);
23697 : operands[1] = x4;
23698 : if (nonimmediate_operand (operands[1], E_HImode)
23699 : && nonimmediate_operand (operands[0], E_HImode)
23700 : &&
23701 : #line 22967 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23702 : (TARGET_MOVBE
23703 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
23704 : return 1678; /* *bswaphi2_movbe */
23705 : if (register_operand (operands[1], E_HImode)
23706 : && register_operand (operands[0], E_HImode)
23707 : &&
23708 : #line 22986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23709 : (!TARGET_MOVBE))
23710 : return 1679; /* *bswaphi2 */
23711 : }
23712 : break;
23713 :
23714 : case PLUS:
23715 : case MINUS:
23716 : case MULT:
23717 : case DIV:
23718 : res = recog_62 (x1, insn, pnum_clobbers);
23719 : if (res >= 0)
23720 : return res;
23721 : break;
23722 :
23723 : case SQRT:
23724 : res = recog_359 (x1, insn, pnum_clobbers);
23725 : if (res >= 0)
23726 : return res;
23727 : break;
23728 :
23729 : case SMAX:
23730 : switch (pattern7 (x1, pnum_clobbers))
23731 : {
23732 : case 0:
23733 : if (
23734 : #line 27182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23735 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
23736 : return 1849; /* smaxsf3 */
23737 : break;
23738 :
23739 : case 1:
23740 : if (
23741 : #line 27182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23742 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
23743 : return 1851; /* smaxdf3 */
23744 : break;
23745 :
23746 : case 2:
23747 : if (
23748 : #line 27196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23749 : (TARGET_AVX512FP16))
23750 : return 1853; /* smaxhf3 */
23751 : break;
23752 :
23753 : case 3:
23754 : if ((
23755 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23756 : (TARGET_CMOVE
23757 : && ix86_pre_reload_split ()) &&
23758 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23759 : (TARGET_64BIT)))
23760 : {
23761 : *pnum_clobbers = 1;
23762 : return 1869; /* *smaxti3_doubleword */
23763 : }
23764 : break;
23765 :
23766 : case 4:
23767 : if (
23768 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23769 : (TARGET_CMOVE
23770 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23771 : && ix86_pre_reload_split ()))
23772 : {
23773 : *pnum_clobbers = 1;
23774 : return 1873; /* *smaxqi3_1 */
23775 : }
23776 : break;
23777 :
23778 : case 5:
23779 : if (
23780 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23781 : (TARGET_CMOVE
23782 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23783 : && ix86_pre_reload_split ()))
23784 : {
23785 : *pnum_clobbers = 1;
23786 : return 1877; /* *smaxhi3_1 */
23787 : }
23788 : break;
23789 :
23790 : case 6:
23791 : if (
23792 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23793 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
23794 : return 2225; /* smaxv8qi3 */
23795 : break;
23796 :
23797 : case 7:
23798 : if (
23799 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23800 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
23801 : return 2227; /* smaxv2si3 */
23802 : break;
23803 :
23804 : case 8:
23805 : if (
23806 : #line 3712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23807 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
23808 : && (TARGET_SSE || TARGET_3DNOW_A)
23809 : && ix86_binary_operator_ok (SMAX, V4HImode, operands)))
23810 : return 2229; /* *mmx_smaxv4hi3 */
23811 : break;
23812 :
23813 : case 9:
23814 : if (
23815 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23816 : (TARGET_SSE4_1))
23817 : return 2231; /* smaxv4qi3 */
23818 : break;
23819 :
23820 : case 10:
23821 : if (
23822 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23823 : (TARGET_SSE4_1))
23824 : return 2233; /* smaxv2qi3 */
23825 : break;
23826 :
23827 : case 11:
23828 : if (
23829 : #line 3752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23830 : (TARGET_SSE2))
23831 : return 2235; /* smaxv2hi3 */
23832 : break;
23833 :
23834 : default:
23835 : break;
23836 : }
23837 : break;
23838 :
23839 : case SMIN:
23840 : switch (pattern7 (x1, pnum_clobbers))
23841 : {
23842 : case 0:
23843 : if (
23844 : #line 27182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23845 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
23846 : return 1850; /* sminsf3 */
23847 : break;
23848 :
23849 : case 1:
23850 : if (
23851 : #line 27182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23852 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
23853 : return 1852; /* smindf3 */
23854 : break;
23855 :
23856 : case 2:
23857 : if (
23858 : #line 27196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23859 : (TARGET_AVX512FP16))
23860 : return 1854; /* sminhf3 */
23861 : break;
23862 :
23863 : case 3:
23864 : if ((
23865 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23866 : (TARGET_CMOVE
23867 : && ix86_pre_reload_split ()) &&
23868 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23869 : (TARGET_64BIT)))
23870 : {
23871 : *pnum_clobbers = 1;
23872 : return 1870; /* *sminti3_doubleword */
23873 : }
23874 : break;
23875 :
23876 : case 4:
23877 : if (
23878 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23879 : (TARGET_CMOVE
23880 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23881 : && ix86_pre_reload_split ()))
23882 : {
23883 : *pnum_clobbers = 1;
23884 : return 1874; /* *sminqi3_1 */
23885 : }
23886 : break;
23887 :
23888 : case 5:
23889 : if (
23890 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23891 : (TARGET_CMOVE
23892 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23893 : && ix86_pre_reload_split ()))
23894 : {
23895 : *pnum_clobbers = 1;
23896 : return 1878; /* *sminhi3_1 */
23897 : }
23898 : break;
23899 :
23900 : case 6:
23901 : if (
23902 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23903 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
23904 : return 2226; /* sminv8qi3 */
23905 : break;
23906 :
23907 : case 7:
23908 : if (
23909 : #line 3687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23910 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
23911 : return 2228; /* sminv2si3 */
23912 : break;
23913 :
23914 : case 8:
23915 : if (
23916 : #line 3712 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23917 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
23918 : && (TARGET_SSE || TARGET_3DNOW_A)
23919 : && ix86_binary_operator_ok (SMIN, V4HImode, operands)))
23920 : return 2230; /* *mmx_sminv4hi3 */
23921 : break;
23922 :
23923 : case 9:
23924 : if (
23925 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23926 : (TARGET_SSE4_1))
23927 : return 2232; /* sminv4qi3 */
23928 : break;
23929 :
23930 : case 10:
23931 : if (
23932 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23933 : (TARGET_SSE4_1))
23934 : return 2234; /* sminv2qi3 */
23935 : break;
23936 :
23937 : case 11:
23938 : if (
23939 : #line 3752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23940 : (TARGET_SSE2))
23941 : return 2236; /* sminv2hi3 */
23942 : break;
23943 :
23944 : default:
23945 : break;
23946 : }
23947 : break;
23948 :
23949 : case UMAX:
23950 : res = recog_362 (x1, insn, pnum_clobbers);
23951 : if (res >= 0)
23952 : return res;
23953 : break;
23954 :
23955 : case UMIN:
23956 : res = recog_361 (x1, insn, pnum_clobbers);
23957 : if (res >= 0)
23958 : return res;
23959 : break;
23960 :
23961 : case UNSPEC_VOLATILE:
23962 : res = recog_63 (x1, insn, pnum_clobbers);
23963 : if (res >= 0)
23964 : return res;
23965 : break;
23966 :
23967 : case VEC_CONCAT:
23968 : res = recog_64 (x1, insn, pnum_clobbers);
23969 : if (res >= 0)
23970 : return res;
23971 : break;
23972 :
23973 : case VEC_MERGE:
23974 : res = recog_65 (x1, insn, pnum_clobbers);
23975 : if (res >= 0)
23976 : return res;
23977 : break;
23978 :
23979 : case VEC_SELECT:
23980 : res = recog_67 (x1, insn, pnum_clobbers);
23981 : if (res >= 0)
23982 : return res;
23983 : break;
23984 :
23985 : case VEC_DUPLICATE:
23986 : res = recog_68 (x1, insn, pnum_clobbers);
23987 : if (res >= 0)
23988 : return res;
23989 : break;
23990 :
23991 : case SS_PLUS:
23992 : res = recog_69 (x1, insn, pnum_clobbers);
23993 : if (res >= 0)
23994 : return res;
23995 : break;
23996 :
23997 : case US_PLUS:
23998 : x3 = XEXP (x1, 0);
23999 : operands[0] = x3;
24000 : switch (pattern47 (x2))
24001 : {
24002 : case 0:
24003 : if (
24004 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24005 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24006 : && ix86_binary_operator_ok (US_PLUS, V8QImode, operands)))
24007 : return 2196; /* *mmx_usaddv8qi3 */
24008 : break;
24009 :
24010 : case 1:
24011 : if (
24012 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24013 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24014 : && ix86_binary_operator_ok (US_PLUS, V4HImode, operands)))
24015 : return 2200; /* *mmx_usaddv4hi3 */
24016 : break;
24017 :
24018 : case 2:
24019 : if (
24020 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24021 : (TARGET_SSE2))
24022 : return 2204; /* usaddv4qi3 */
24023 : break;
24024 :
24025 : case 3:
24026 : if (
24027 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24028 : (TARGET_SSE2))
24029 : return 2208; /* usaddv2qi3 */
24030 : break;
24031 :
24032 : case 4:
24033 : if (
24034 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24035 : (TARGET_SSE2))
24036 : return 2212; /* usaddv2hi3 */
24037 : break;
24038 :
24039 : default:
24040 : break;
24041 : }
24042 : break;
24043 :
24044 : case SS_MINUS:
24045 : x3 = XEXP (x1, 0);
24046 : operands[0] = x3;
24047 : x4 = XEXP (x2, 0);
24048 : switch (GET_CODE (x4))
24049 : {
24050 : case REG:
24051 : case SUBREG:
24052 : case MEM:
24053 : switch (pattern47 (x2))
24054 : {
24055 : case 0:
24056 : if (
24057 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24058 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24059 : && ix86_binary_operator_ok (SS_MINUS, V8QImode, operands)))
24060 : return 2197; /* *mmx_sssubv8qi3 */
24061 : break;
24062 :
24063 : case 1:
24064 : if (
24065 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24066 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24067 : && ix86_binary_operator_ok (SS_MINUS, V4HImode, operands)))
24068 : return 2201; /* *mmx_sssubv4hi3 */
24069 : break;
24070 :
24071 : case 2:
24072 : if (
24073 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24074 : (TARGET_SSE2))
24075 : return 2205; /* sssubv4qi3 */
24076 : break;
24077 :
24078 : case 3:
24079 : if (
24080 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24081 : (TARGET_SSE2))
24082 : return 2209; /* sssubv2qi3 */
24083 : break;
24084 :
24085 : case 4:
24086 : if (
24087 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24088 : (TARGET_SSE2))
24089 : return 2213; /* sssubv2hi3 */
24090 : break;
24091 :
24092 : default:
24093 : break;
24094 : }
24095 : break;
24096 :
24097 : case VEC_SELECT:
24098 : if (pattern108 (x2) == 0
24099 : &&
24100 : #line 22970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24101 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
24102 : return 8643; /* ssse3_phsubswv4hi3 */
24103 : break;
24104 :
24105 : default:
24106 : break;
24107 : }
24108 : break;
24109 :
24110 : case US_MINUS:
24111 : x3 = XEXP (x1, 0);
24112 : operands[0] = x3;
24113 : switch (pattern47 (x2))
24114 : {
24115 : case 0:
24116 : if (
24117 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24118 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24119 : && ix86_binary_operator_ok (US_MINUS, V8QImode, operands)))
24120 : return 2198; /* *mmx_ussubv8qi3 */
24121 : break;
24122 :
24123 : case 1:
24124 : if (
24125 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24126 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
24127 : && ix86_binary_operator_ok (US_MINUS, V4HImode, operands)))
24128 : return 2202; /* *mmx_ussubv4hi3 */
24129 : break;
24130 :
24131 : case 2:
24132 : if (
24133 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24134 : (TARGET_SSE2))
24135 : return 2206; /* ussubv4qi3 */
24136 : break;
24137 :
24138 : case 3:
24139 : if (
24140 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24141 : (TARGET_SSE2))
24142 : return 2210; /* ussubv2qi3 */
24143 : break;
24144 :
24145 : case 4:
24146 : if (
24147 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24148 : (TARGET_SSE2))
24149 : return 2214; /* ussubv2hi3 */
24150 : break;
24151 :
24152 : default:
24153 : break;
24154 : }
24155 : break;
24156 :
24157 : case TRUNCATE:
24158 : res = recog_70 (x1, insn, pnum_clobbers);
24159 : if (res >= 0)
24160 : return res;
24161 : break;
24162 :
24163 : case FMA:
24164 : res = recog_71 (x1, insn, pnum_clobbers);
24165 : if (res >= 0)
24166 : return res;
24167 : break;
24168 :
24169 : case SS_TRUNCATE:
24170 : switch (pattern11 (x1))
24171 : {
24172 : case 0:
24173 : if (
24174 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24175 : (TARGET_AVX512VL))
24176 : return 7332; /* *avx512vl_ss_truncatev2div2qi2_store_1 */
24177 : break;
24178 :
24179 : case 1:
24180 : if (
24181 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24182 : (TARGET_AVX512VL))
24183 : return 7347; /* *avx512vl_ss_truncatev4siv4qi2_store_1 */
24184 : break;
24185 :
24186 : case 2:
24187 : if (
24188 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24189 : (TARGET_AVX512VL))
24190 : return 7350; /* *avx512vl_ss_truncatev4div4qi2_store_1 */
24191 : break;
24192 :
24193 : case 3:
24194 : if ((
24195 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24196 : (TARGET_AVX512VL) &&
24197 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24198 : (TARGET_AVX512BW)))
24199 : return 7377; /* *avx512vl_ss_truncatev8hiv8qi2_store_1 */
24200 : break;
24201 :
24202 : case 4:
24203 : if (
24204 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24205 : (TARGET_AVX512VL))
24206 : return 7380; /* *avx512vl_ss_truncatev8siv8qi2_store_1 */
24207 : break;
24208 :
24209 : case 5:
24210 : if (
24211 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24212 : (TARGET_AVX512F))
24213 : return 7484; /* *avx512f_ss_truncatev8div16qi2_store_1 */
24214 : break;
24215 :
24216 : case 6:
24217 : if (
24218 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24219 : (TARGET_AVX512VL))
24220 : return 7417; /* *avx512vl_ss_truncatev4siv4hi2_store_1 */
24221 : break;
24222 :
24223 : case 7:
24224 : if (
24225 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24226 : (TARGET_AVX512VL))
24227 : return 7420; /* *avx512vl_ss_truncatev4div4hi2_store_1 */
24228 : break;
24229 :
24230 : case 8:
24231 : if (
24232 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24233 : (TARGET_AVX512VL))
24234 : return 7447; /* *avx512vl_ss_truncatev2div2hi2_store_1 */
24235 : break;
24236 :
24237 : case 9:
24238 : if (
24239 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24240 : (TARGET_AVX512VL))
24241 : return 7466; /* *avx512vl_ss_truncatev2div2si2_store_1 */
24242 : break;
24243 :
24244 : default:
24245 : break;
24246 : }
24247 : break;
24248 :
24249 : case US_TRUNCATE:
24250 : switch (pattern11 (x1))
24251 : {
24252 : case 0:
24253 : if (
24254 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24255 : (TARGET_AVX512VL))
24256 : return 7334; /* *avx512vl_us_truncatev2div2qi2_store_1 */
24257 : break;
24258 :
24259 : case 1:
24260 : if (
24261 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24262 : (TARGET_AVX512VL))
24263 : return 7349; /* *avx512vl_us_truncatev4siv4qi2_store_1 */
24264 : break;
24265 :
24266 : case 2:
24267 : if (
24268 : #line 15820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24269 : (TARGET_AVX512VL))
24270 : return 7352; /* *avx512vl_us_truncatev4div4qi2_store_1 */
24271 : break;
24272 :
24273 : case 3:
24274 : if ((
24275 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24276 : (TARGET_AVX512VL) &&
24277 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24278 : (TARGET_AVX512BW)))
24279 : return 7379; /* *avx512vl_us_truncatev8hiv8qi2_store_1 */
24280 : break;
24281 :
24282 : case 4:
24283 : if (
24284 : #line 15918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24285 : (TARGET_AVX512VL))
24286 : return 7382; /* *avx512vl_us_truncatev8siv8qi2_store_1 */
24287 : break;
24288 :
24289 : case 5:
24290 : if (
24291 : #line 16434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24292 : (TARGET_AVX512F))
24293 : return 7486; /* *avx512f_us_truncatev8div16qi2_store_1 */
24294 : break;
24295 :
24296 : case 6:
24297 : if (
24298 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24299 : (TARGET_AVX512VL))
24300 : return 7419; /* *avx512vl_us_truncatev4siv4hi2_store_1 */
24301 : break;
24302 :
24303 : case 7:
24304 : if (
24305 : #line 16080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24306 : (TARGET_AVX512VL))
24307 : return 7422; /* *avx512vl_us_truncatev4div4hi2_store_1 */
24308 : break;
24309 :
24310 : case 8:
24311 : if (
24312 : #line 16171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24313 : (TARGET_AVX512VL))
24314 : return 7449; /* *avx512vl_us_truncatev2div2hi2_store_1 */
24315 : break;
24316 :
24317 : case 9:
24318 : if (
24319 : #line 16321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24320 : (TARGET_AVX512VL))
24321 : return 7468; /* *avx512vl_us_truncatev2div2si2_store_1 */
24322 : break;
24323 :
24324 : default:
24325 : break;
24326 : }
24327 : break;
24328 :
24329 : default:
24330 : break;
24331 : }
24332 : x3 = XEXP (x1, 0);
24333 : operands[0] = x3;
24334 : operands[1] = x2;
24335 : switch (GET_MODE (operands[0]))
24336 : {
24337 : case E_XImode:
24338 : if (nonimmediate_operand (operands[0], E_XImode)
24339 : && nonimmediate_or_sse_const_operand (operands[1], E_XImode)
24340 : &&
24341 : #line 2468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24342 : (TARGET_AVX512F
24343 : && (register_operand (operands[0], XImode)
24344 : || register_operand (operands[1], XImode))))
24345 : return 96; /* *movxi_internal_avx512f */
24346 : break;
24347 :
24348 : case E_OImode:
24349 : if (nonimmediate_operand (operands[0], E_OImode)
24350 : && nonimmediate_or_sse_const_operand (operands[1], E_OImode)
24351 : &&
24352 : #line 2491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24353 : (TARGET_AVX
24354 : && (register_operand (operands[0], OImode)
24355 : || register_operand (operands[1], OImode))))
24356 : return 97; /* *movoi_internal_avx */
24357 : break;
24358 :
24359 : case E_SImode:
24360 : if (register_operand (operands[0], E_SImode)
24361 : && address_no_seg_operand (operands[1], E_SImode)
24362 : &&
24363 : #line 6381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24364 : (ix86_hardreg_mov_ok (operands[0], operands[1])))
24365 : return 268; /* *leasi */
24366 : break;
24367 :
24368 : case E_DImode:
24369 : if (register_operand (operands[0], E_DImode)
24370 : && address_no_seg_operand (operands[1], E_DImode)
24371 : && (
24372 : #line 6381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24373 : (ix86_hardreg_mov_ok (operands[0], operands[1])) &&
24374 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24375 : (TARGET_64BIT)))
24376 : return 269; /* *leadi */
24377 : break;
24378 :
24379 : default:
24380 : break;
24381 : }
24382 : switch (GET_CODE (x2))
24383 : {
24384 : case PLUS:
24385 : res = recog_72 (x1, insn, pnum_clobbers);
24386 : if (res >= 0)
24387 : return res;
24388 : break;
24389 :
24390 : case ZERO_EXTEND:
24391 : res = recog_80 (x1, insn, pnum_clobbers);
24392 : if (res >= 0)
24393 : return res;
24394 : break;
24395 :
24396 : case COMPARE:
24397 : res = recog_81 (x1, insn, pnum_clobbers);
24398 : if (res >= 0)
24399 : return res;
24400 : break;
24401 :
24402 : case IOR:
24403 : res = recog_85 (x1, insn, pnum_clobbers);
24404 : if (res >= 0)
24405 : return res;
24406 : break;
24407 :
24408 : case XOR:
24409 : res = recog_86 (x1, insn, pnum_clobbers);
24410 : if (res >= 0)
24411 : return res;
24412 : break;
24413 :
24414 : case MINUS:
24415 : res = recog_88 (x1, insn, pnum_clobbers);
24416 : if (res >= 0)
24417 : return res;
24418 : break;
24419 :
24420 : case IF_THEN_ELSE:
24421 : res = recog_91 (x1, insn, pnum_clobbers);
24422 : if (res >= 0)
24423 : return res;
24424 : break;
24425 :
24426 : case MULT:
24427 : res = recog_92 (x1, insn, pnum_clobbers);
24428 : if (res >= 0)
24429 : return res;
24430 : break;
24431 :
24432 : case SMUL_HIGHPART:
24433 : switch (pattern13 (x1, pnum_clobbers))
24434 : {
24435 : case 0:
24436 : if (
24437 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24438 : (!TARGET_64BIT))
24439 : {
24440 : *pnum_clobbers = 2;
24441 : return 655; /* smulsi3_highpart */
24442 : }
24443 : break;
24444 :
24445 : case 1:
24446 : if (
24447 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24448 : (TARGET_64BIT))
24449 : {
24450 : *pnum_clobbers = 2;
24451 : return 657; /* smuldi3_highpart */
24452 : }
24453 : break;
24454 :
24455 : default:
24456 : break;
24457 : }
24458 : break;
24459 :
24460 : case UMUL_HIGHPART:
24461 : switch (pattern13 (x1, pnum_clobbers))
24462 : {
24463 : case 0:
24464 : if (
24465 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24466 : (!TARGET_64BIT))
24467 : {
24468 : *pnum_clobbers = 2;
24469 : return 656; /* umulsi3_highpart */
24470 : }
24471 : break;
24472 :
24473 : case 1:
24474 : if (
24475 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24476 : (TARGET_64BIT))
24477 : {
24478 : *pnum_clobbers = 2;
24479 : return 658; /* umuldi3_highpart */
24480 : }
24481 : break;
24482 :
24483 : default:
24484 : break;
24485 : }
24486 : break;
24487 :
24488 : case TRUNCATE:
24489 : res = recog_93 (x1, insn, pnum_clobbers);
24490 : if (res >= 0)
24491 : return res;
24492 : break;
24493 :
24494 : case AND:
24495 : res = recog_95 (x1, insn, pnum_clobbers);
24496 : if (res >= 0)
24497 : return res;
24498 : break;
24499 :
24500 : case NOT:
24501 : res = recog_96 (x1, insn, pnum_clobbers);
24502 : if (res >= 0)
24503 : return res;
24504 : break;
24505 :
24506 : case NEG:
24507 : res = recog_97 (x1, insn, pnum_clobbers);
24508 : if (res >= 0)
24509 : return res;
24510 : break;
24511 :
24512 : case ABS:
24513 : res = recog_98 (x1, insn, pnum_clobbers);
24514 : if (res >= 0)
24515 : return res;
24516 : break;
24517 :
24518 : case ASHIFT:
24519 : res = recog_100 (x1, insn, pnum_clobbers);
24520 : if (res >= 0)
24521 : return res;
24522 : break;
24523 :
24524 : case LSHIFTRT:
24525 : res = recog_102 (x1, insn, pnum_clobbers);
24526 : if (res >= 0)
24527 : return res;
24528 : break;
24529 :
24530 : case ASHIFTRT:
24531 : res = recog_104 (x1, insn, pnum_clobbers);
24532 : if (res >= 0)
24533 : return res;
24534 : break;
24535 :
24536 : case SUBREG:
24537 : res = recog_105 (x1, insn, pnum_clobbers);
24538 : if (res >= 0)
24539 : return res;
24540 : break;
24541 :
24542 : case ROTATE:
24543 : res = recog_106 (x1, insn, pnum_clobbers);
24544 : if (res >= 0)
24545 : return res;
24546 : break;
24547 :
24548 : case ROTATERT:
24549 : res = recog_107 (x1, insn, pnum_clobbers);
24550 : if (res >= 0)
24551 : return res;
24552 : break;
24553 :
24554 : case ZERO_EXTRACT:
24555 : res = recog_109 (x1, insn, pnum_clobbers);
24556 : if (res >= 0)
24557 : return res;
24558 : break;
24559 :
24560 : case NE:
24561 : case EQ:
24562 : case GE:
24563 : case GT:
24564 : case LE:
24565 : case LT:
24566 : case LTGT:
24567 : case GEU:
24568 : case GTU:
24569 : case LEU:
24570 : case LTU:
24571 : case UNORDERED:
24572 : case ORDERED:
24573 : case UNEQ:
24574 : case UNGE:
24575 : case UNGT:
24576 : case UNLE:
24577 : case UNLT:
24578 : res = recog_110 (x1, insn, pnum_clobbers);
24579 : if (res >= 0)
24580 : return res;
24581 : break;
24582 :
24583 : case UNSPEC:
24584 : res = recog_114 (x1, insn, pnum_clobbers);
24585 : if (res >= 0)
24586 : return res;
24587 : break;
24588 :
24589 : case CALL:
24590 : res = recog_115 (x1, insn, pnum_clobbers);
24591 : if (res >= 0)
24592 : return res;
24593 : break;
24594 :
24595 : case FFS:
24596 : if (pnum_clobbers != NULL
24597 : && GET_MODE (x2) == E_SImode)
24598 : {
24599 : operands[0] = x3;
24600 : if (register_operand (operands[0], E_SImode))
24601 : {
24602 : x4 = XEXP (x2, 0);
24603 : operands[1] = x4;
24604 : if (nonimmediate_operand (operands[1], E_SImode)
24605 : &&
24606 : #line 21336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24607 : (!TARGET_CMOVE))
24608 : {
24609 : *pnum_clobbers = 2;
24610 : return 1539; /* ffssi2_no_cmove */
24611 : }
24612 : }
24613 : }
24614 : break;
24615 :
24616 : case CTZ:
24617 : res = recog_116 (x1, insn, pnum_clobbers);
24618 : if (res >= 0)
24619 : return res;
24620 : break;
24621 :
24622 : case SIGN_EXTEND:
24623 : res = recog_117 (x1, insn, pnum_clobbers);
24624 : if (res >= 0)
24625 : return res;
24626 : break;
24627 :
24628 : case CLZ:
24629 : res = recog_118 (x1, insn, pnum_clobbers);
24630 : if (res >= 0)
24631 : return res;
24632 : break;
24633 :
24634 : case POPCOUNT:
24635 : res = recog_119 (x1, insn, pnum_clobbers);
24636 : if (res >= 0)
24637 : return res;
24638 : break;
24639 :
24640 : case BSWAP:
24641 : res = recog_360 (x1, insn, pnum_clobbers);
24642 : if (res >= 0)
24643 : return res;
24644 : break;
24645 :
24646 : case SIGN_EXTRACT:
24647 : res = recog_120 (x1, insn, pnum_clobbers);
24648 : if (res >= 0)
24649 : return res;
24650 : break;
24651 :
24652 : case SMAX:
24653 : switch (pattern20 (x1, pnum_clobbers))
24654 : {
24655 : case 0:
24656 : if ((
24657 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24658 : (TARGET_CMOVE
24659 : && ix86_pre_reload_split ()) &&
24660 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24661 : (!TARGET_64BIT)))
24662 : {
24663 : *pnum_clobbers = 1;
24664 : return 1865; /* *smaxdi3_doubleword */
24665 : }
24666 : if ((
24667 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24668 : (TARGET_CMOVE
24669 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24670 : && ix86_pre_reload_split ()) &&
24671 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24672 : (TARGET_64BIT)))
24673 : {
24674 : *pnum_clobbers = 1;
24675 : return 1885; /* *smaxdi3_1 */
24676 : }
24677 : break;
24678 :
24679 : case 1:
24680 : if (
24681 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24682 : (TARGET_CMOVE
24683 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24684 : && ix86_pre_reload_split ()))
24685 : {
24686 : *pnum_clobbers = 1;
24687 : return 1881; /* *smaxsi3_1 */
24688 : }
24689 : break;
24690 :
24691 : default:
24692 : break;
24693 : }
24694 : break;
24695 :
24696 : case SMIN:
24697 : switch (pattern20 (x1, pnum_clobbers))
24698 : {
24699 : case 0:
24700 : if ((
24701 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24702 : (TARGET_CMOVE
24703 : && ix86_pre_reload_split ()) &&
24704 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24705 : (!TARGET_64BIT)))
24706 : {
24707 : *pnum_clobbers = 1;
24708 : return 1866; /* *smindi3_doubleword */
24709 : }
24710 : if ((
24711 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24712 : (TARGET_CMOVE
24713 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24714 : && ix86_pre_reload_split ()) &&
24715 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24716 : (TARGET_64BIT)))
24717 : {
24718 : *pnum_clobbers = 1;
24719 : return 1886; /* *smindi3_1 */
24720 : }
24721 : break;
24722 :
24723 : case 1:
24724 : if (
24725 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24726 : (TARGET_CMOVE
24727 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24728 : && ix86_pre_reload_split ()))
24729 : {
24730 : *pnum_clobbers = 1;
24731 : return 1882; /* *sminsi3_1 */
24732 : }
24733 : break;
24734 :
24735 : default:
24736 : break;
24737 : }
24738 : break;
24739 :
24740 : case UMAX:
24741 : switch (pattern22 (x1, pnum_clobbers))
24742 : {
24743 : case 0:
24744 : if ((
24745 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24746 : (TARGET_CMOVE
24747 : && ix86_pre_reload_split ()) &&
24748 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24749 : (!TARGET_64BIT)))
24750 : {
24751 : *pnum_clobbers = 1;
24752 : return 1867; /* *umaxdi3_doubleword */
24753 : }
24754 : if ((
24755 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24756 : (TARGET_CMOVE
24757 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24758 : && ix86_pre_reload_split ()) &&
24759 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24760 : (TARGET_64BIT)))
24761 : {
24762 : *pnum_clobbers = 1;
24763 : return 1887; /* *umaxdi3_1 */
24764 : }
24765 : break;
24766 :
24767 : case 1:
24768 : if (
24769 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24770 : (TARGET_CMOVE
24771 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24772 : && ix86_pre_reload_split ()))
24773 : {
24774 : *pnum_clobbers = 1;
24775 : return 1883; /* *umaxsi3_1 */
24776 : }
24777 : break;
24778 :
24779 : case 2:
24780 : x5 = XEXP (x2, 1);
24781 : if (rtx_equal_p (x5, operands[1])
24782 : &&
24783 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24784 : (TARGET_CMOVE
24785 : && ix86_pre_reload_split ()))
24786 : {
24787 : *pnum_clobbers = 1;
24788 : return 1893; /* *plus_within_umaxsi3_1 */
24789 : }
24790 : if (rtx_equal_p (x5, operands[2])
24791 : &&
24792 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24793 : (TARGET_CMOVE
24794 : && ix86_pre_reload_split ()))
24795 : {
24796 : *pnum_clobbers = 1;
24797 : return 1894; /* *plus_within_umaxsi3_2 */
24798 : }
24799 : break;
24800 :
24801 : case 3:
24802 : x5 = XEXP (x2, 1);
24803 : if (rtx_equal_p (x5, operands[1])
24804 : && (
24805 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24806 : (TARGET_CMOVE
24807 : && ix86_pre_reload_split ()) &&
24808 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24809 : (TARGET_64BIT)))
24810 : {
24811 : *pnum_clobbers = 1;
24812 : return 1897; /* *plus_within_umaxdi3_1 */
24813 : }
24814 : if (rtx_equal_p (x5, operands[2])
24815 : && (
24816 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24817 : (TARGET_CMOVE
24818 : && ix86_pre_reload_split ()) &&
24819 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24820 : (TARGET_64BIT)))
24821 : {
24822 : *pnum_clobbers = 1;
24823 : return 1898; /* *plus_within_umaxdi3_2 */
24824 : }
24825 : break;
24826 :
24827 : case 4:
24828 : if (
24829 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24830 : (TARGET_CMOVE
24831 : && ix86_pre_reload_split ()))
24832 : {
24833 : *pnum_clobbers = 1;
24834 : return 1903; /* *minus_within_umaxsi3 */
24835 : }
24836 : break;
24837 :
24838 : case 5:
24839 : if ((
24840 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24841 : (TARGET_CMOVE
24842 : && ix86_pre_reload_split ()) &&
24843 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24844 : (TARGET_64BIT)))
24845 : {
24846 : *pnum_clobbers = 1;
24847 : return 1905; /* *minus_within_umaxdi3 */
24848 : }
24849 : break;
24850 :
24851 : default:
24852 : break;
24853 : }
24854 : break;
24855 :
24856 : case UMIN:
24857 : switch (pattern22 (x1, pnum_clobbers))
24858 : {
24859 : case 0:
24860 : if ((
24861 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24862 : (TARGET_CMOVE
24863 : && ix86_pre_reload_split ()) &&
24864 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24865 : (!TARGET_64BIT)))
24866 : {
24867 : *pnum_clobbers = 1;
24868 : return 1868; /* *umindi3_doubleword */
24869 : }
24870 : if ((
24871 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24872 : (TARGET_CMOVE
24873 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
24874 : && ix86_pre_reload_split ()) &&
24875 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24876 : (TARGET_64BIT)))
24877 : {
24878 : *pnum_clobbers = 1;
24879 : return 1888; /* *umindi3_1 */
24880 : }
24881 : break;
24882 :
24883 : case 1:
24884 : if (
24885 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24886 : (TARGET_CMOVE
24887 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
24888 : && ix86_pre_reload_split ()))
24889 : {
24890 : *pnum_clobbers = 1;
24891 : return 1884; /* *uminsi3_1 */
24892 : }
24893 : break;
24894 :
24895 : case 2:
24896 : x5 = XEXP (x2, 1);
24897 : if (rtx_equal_p (x5, operands[1])
24898 : &&
24899 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24900 : (TARGET_CMOVE
24901 : && ix86_pre_reload_split ()))
24902 : {
24903 : *pnum_clobbers = 1;
24904 : return 1895; /* *plus_within_uminsi3_1 */
24905 : }
24906 : if (rtx_equal_p (x5, operands[2])
24907 : &&
24908 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24909 : (TARGET_CMOVE
24910 : && ix86_pre_reload_split ()))
24911 : {
24912 : *pnum_clobbers = 1;
24913 : return 1896; /* *plus_within_uminsi3_2 */
24914 : }
24915 : break;
24916 :
24917 : case 3:
24918 : x5 = XEXP (x2, 1);
24919 : if (rtx_equal_p (x5, operands[1])
24920 : && (
24921 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24922 : (TARGET_CMOVE
24923 : && ix86_pre_reload_split ()) &&
24924 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24925 : (TARGET_64BIT)))
24926 : {
24927 : *pnum_clobbers = 1;
24928 : return 1899; /* *plus_within_umindi3_1 */
24929 : }
24930 : if (rtx_equal_p (x5, operands[2])
24931 : && (
24932 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24933 : (TARGET_CMOVE
24934 : && ix86_pre_reload_split ()) &&
24935 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24936 : (TARGET_64BIT)))
24937 : {
24938 : *pnum_clobbers = 1;
24939 : return 1900; /* *plus_within_umindi3_2 */
24940 : }
24941 : break;
24942 :
24943 : case 4:
24944 : if (
24945 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24946 : (TARGET_CMOVE
24947 : && ix86_pre_reload_split ()))
24948 : {
24949 : *pnum_clobbers = 1;
24950 : return 1904; /* *minus_within_uminsi3 */
24951 : }
24952 : break;
24953 :
24954 : case 5:
24955 : if ((
24956 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24957 : (TARGET_CMOVE
24958 : && ix86_pre_reload_split ()) &&
24959 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24960 : (TARGET_64BIT)))
24961 : {
24962 : *pnum_clobbers = 1;
24963 : return 1906; /* *minus_within_umindi3 */
24964 : }
24965 : break;
24966 :
24967 : default:
24968 : break;
24969 : }
24970 : break;
24971 :
24972 : case UNSPEC_VOLATILE:
24973 : res = recog_121 (x1, insn, pnum_clobbers);
24974 : if (res >= 0)
24975 : return res;
24976 : break;
24977 :
24978 : case VEC_SELECT:
24979 : res = recog_124 (x1, insn, pnum_clobbers);
24980 : if (res >= 0)
24981 : return res;
24982 : break;
24983 :
24984 : case FIX:
24985 : switch (pattern25 (x1))
24986 : {
24987 : case 0:
24988 : if (
24989 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24990 : (TARGET_AVX512FP16))
24991 : return 4744; /* avx512fp16_fix_truncsi2 */
24992 : break;
24993 :
24994 : case 1:
24995 : if (
24996 : #line 8929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24997 : (TARGET_SSE))
24998 : return 4843; /* sse_cvttss2si */
24999 : break;
25000 :
25001 : case 2:
25002 : if (
25003 : #line 9474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25004 : (TARGET_SSE2))
25005 : return 4978; /* sse2_cvttsd2si */
25006 : break;
25007 :
25008 : case 3:
25009 : if ((
25010 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25011 : (TARGET_AVX512FP16) &&
25012 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25013 : (TARGET_64BIT)))
25014 : return 4748; /* avx512fp16_fix_truncdi2 */
25015 : break;
25016 :
25017 : case 4:
25018 : if ((
25019 : #line 8929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25020 : (TARGET_SSE) &&
25021 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25022 : (TARGET_64BIT)))
25023 : return 4845; /* sse_cvttss2siq */
25024 : break;
25025 :
25026 : case 5:
25027 : if ((
25028 : #line 9474 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25029 : (TARGET_SSE2) &&
25030 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25031 : (TARGET_64BIT)))
25032 : return 4980; /* sse2_cvttsd2siq */
25033 : break;
25034 :
25035 : case 6:
25036 : if (
25037 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25038 : (TARGET_AVX512FP16))
25039 : return 4752; /* avx512fp16_fix_truncsi2_mem */
25040 : break;
25041 :
25042 : case 7:
25043 : if ((
25044 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25045 : (TARGET_AVX512FP16) &&
25046 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25047 : (TARGET_64BIT)))
25048 : return 4754; /* avx512fp16_fix_truncdi2_mem */
25049 : break;
25050 :
25051 : default:
25052 : break;
25053 : }
25054 : break;
25055 :
25056 : case UNSIGNED_FIX:
25057 : switch (pattern25 (x1))
25058 : {
25059 : case 0:
25060 : if (
25061 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25062 : (TARGET_AVX512FP16))
25063 : return 4746; /* avx512fp16_fixuns_truncsi2 */
25064 : break;
25065 :
25066 : case 1:
25067 : if (
25068 : #line 9379 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25069 : (TARGET_AVX512F))
25070 : return 4952; /* avx512f_vcvttss2usi */
25071 : break;
25072 :
25073 : case 2:
25074 : if (
25075 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25076 : (TARGET_AVX512F))
25077 : return 4964; /* avx512f_vcvttsd2usi */
25078 : break;
25079 :
25080 : case 3:
25081 : if ((
25082 : #line 8335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25083 : (TARGET_AVX512FP16) &&
25084 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25085 : (TARGET_64BIT)))
25086 : return 4750; /* avx512fp16_fixuns_truncdi2 */
25087 : break;
25088 :
25089 : case 4:
25090 : if ((
25091 : #line 9379 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25092 : (TARGET_AVX512F) &&
25093 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25094 : (TARGET_64BIT)))
25095 : return 4954; /* avx512f_vcvttss2usiq */
25096 : break;
25097 :
25098 : case 5:
25099 : if ((
25100 : #line 9415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25101 : (TARGET_AVX512F) &&
25102 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25103 : (TARGET_64BIT)))
25104 : return 4966; /* avx512f_vcvttsd2usiq */
25105 : break;
25106 :
25107 : case 6:
25108 : if (
25109 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25110 : (TARGET_AVX512FP16))
25111 : return 4753; /* avx512fp16_fixuns_truncsi2_mem */
25112 : break;
25113 :
25114 : case 7:
25115 : if ((
25116 : #line 8345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25117 : (TARGET_AVX512FP16) &&
25118 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25119 : (TARGET_64BIT)))
25120 : return 4755; /* avx512fp16_fixuns_truncdi2_mem */
25121 : break;
25122 :
25123 : default:
25124 : break;
25125 : }
25126 : break;
25127 :
25128 : default:
25129 : break;
25130 : }
25131 : operands[0] = x3;
25132 : res = recog_329 (x1, insn, pnum_clobbers);
25133 : if (res >= 0)
25134 : return res;
25135 : switch (GET_CODE (x2))
25136 : {
25137 : case VEC_MERGE:
25138 : return recog_326 (x1, insn, pnum_clobbers);
25139 :
25140 : case UNSPEC:
25141 : return recog_323 (x1, insn, pnum_clobbers);
25142 :
25143 : case VEC_CONCAT:
25144 : return recog_322 (x1, insn, pnum_clobbers);
25145 :
25146 : case PLUS:
25147 : return recog_324 (x1, insn, pnum_clobbers);
25148 :
25149 : case MINUS:
25150 : return recog_349 (x1, insn, pnum_clobbers);
25151 :
25152 : case MULT:
25153 : return recog_337 (x1, insn, pnum_clobbers);
25154 :
25155 : case DIV:
25156 : return recog_356 (x1, insn, pnum_clobbers);
25157 :
25158 : case SQRT:
25159 : return recog_342 (x1, insn, pnum_clobbers);
25160 :
25161 : case SMAX:
25162 : return recog_346 (x1, insn, pnum_clobbers);
25163 :
25164 : case SMIN:
25165 : return recog_345 (x1, insn, pnum_clobbers);
25166 :
25167 : case NE:
25168 : case EQ:
25169 : case GE:
25170 : case GT:
25171 : case LE:
25172 : case LT:
25173 : case LTGT:
25174 : case GEU:
25175 : case GTU:
25176 : case LEU:
25177 : case LTU:
25178 : case UNORDERED:
25179 : case ORDERED:
25180 : case UNEQ:
25181 : case UNGE:
25182 : case UNGT:
25183 : case UNLE:
25184 : case UNLT:
25185 : return recog_344 (x1, insn, pnum_clobbers);
25186 :
25187 : case FMA:
25188 : return recog_330 (x1, insn, pnum_clobbers);
25189 :
25190 : case FLOAT:
25191 : return recog_336 (x1, insn, pnum_clobbers);
25192 :
25193 : case UNSIGNED_FLOAT:
25194 : return recog_341 (x1, insn, pnum_clobbers);
25195 :
25196 : case FIX:
25197 : return recog_350 (x1, insn, pnum_clobbers);
25198 :
25199 : case UNSIGNED_FIX:
25200 : return recog_351 (x1, insn, pnum_clobbers);
25201 :
25202 : case FLOAT_EXTEND:
25203 : return recog_331 (x1, insn, pnum_clobbers);
25204 :
25205 : case FLOAT_TRUNCATE:
25206 : return recog_354 (x1, insn, pnum_clobbers);
25207 :
25208 : case VEC_SELECT:
25209 : return recog_325 (x1, insn, pnum_clobbers);
25210 :
25211 : case VEC_DUPLICATE:
25212 : return recog_327 (x1, insn, pnum_clobbers);
25213 :
25214 : case AND:
25215 : case IOR:
25216 : case XOR:
25217 : case NOT:
25218 : return recog_348 (x1, insn, pnum_clobbers);
25219 :
25220 : case SS_TRUNCATE:
25221 : operands[0] = x3;
25222 : switch (pattern53 (x2))
25223 : {
25224 : case 0:
25225 : if (!
25226 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25227 : (TARGET_AVX512F))
25228 : return -1;
25229 : return 7260; /* *avx512f_ss_truncatev16siv16qi2 */
25230 :
25231 : case 1:
25232 : if (!(
25233 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25234 : (TARGET_AVX512VL) &&
25235 : #line 15549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25236 : (TARGET_AVX512BW)))
25237 : return -1;
25238 : return 7302; /* *avx512vl_ss_truncatev16hiv16qi2 */
25239 :
25240 : case 2:
25241 : if (!
25242 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25243 : (TARGET_AVX512F))
25244 : return -1;
25245 : return 7263; /* *avx512f_ss_truncatev16siv16hi2 */
25246 :
25247 : case 3:
25248 : if (!
25249 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25250 : (TARGET_AVX512F))
25251 : return -1;
25252 : return 7266; /* *avx512f_ss_truncatev8div8si2 */
25253 :
25254 : case 4:
25255 : if (!
25256 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25257 : (TARGET_AVX512F))
25258 : return -1;
25259 : return 7269; /* *avx512f_ss_truncatev8div8hi2 */
25260 :
25261 : case 5:
25262 : if (!
25263 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25264 : (TARGET_AVX512VL))
25265 : return -1;
25266 : return 7299; /* *avx512vl_ss_truncatev8siv8hi2 */
25267 :
25268 : case 6:
25269 : if (!
25270 : #line 15486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25271 : (TARGET_AVX512BW))
25272 : return -1;
25273 : return 7289; /* avx512bw_ss_truncatev32hiv32qi2 */
25274 :
25275 : case 7:
25276 : if (!
25277 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25278 : (TARGET_AVX512VL))
25279 : return -1;
25280 : return 7296; /* *avx512vl_ss_truncatev4div4si2 */
25281 :
25282 : default:
25283 : return -1;
25284 : }
25285 :
25286 : case TRUNCATE:
25287 : return recog_343 (x1, insn, pnum_clobbers);
25288 :
25289 : case US_TRUNCATE:
25290 : operands[0] = x3;
25291 : switch (pattern53 (x2))
25292 : {
25293 : case 0:
25294 : if (!
25295 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25296 : (TARGET_AVX512F))
25297 : return -1;
25298 : return 7262; /* *avx512f_us_truncatev16siv16qi2 */
25299 :
25300 : case 1:
25301 : if (!(
25302 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25303 : (TARGET_AVX512VL) &&
25304 : #line 15549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25305 : (TARGET_AVX512BW)))
25306 : return -1;
25307 : return 7304; /* *avx512vl_us_truncatev16hiv16qi2 */
25308 :
25309 : case 2:
25310 : if (!
25311 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25312 : (TARGET_AVX512F))
25313 : return -1;
25314 : return 7265; /* *avx512f_us_truncatev16siv16hi2 */
25315 :
25316 : case 3:
25317 : if (!
25318 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25319 : (TARGET_AVX512F))
25320 : return -1;
25321 : return 7268; /* *avx512f_us_truncatev8div8si2 */
25322 :
25323 : case 4:
25324 : if (!
25325 : #line 15313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25326 : (TARGET_AVX512F))
25327 : return -1;
25328 : return 7271; /* *avx512f_us_truncatev8div8hi2 */
25329 :
25330 : case 5:
25331 : if (!
25332 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25333 : (TARGET_AVX512VL))
25334 : return -1;
25335 : return 7301; /* *avx512vl_us_truncatev8siv8hi2 */
25336 :
25337 : case 6:
25338 : if (!
25339 : #line 15486 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25340 : (TARGET_AVX512BW))
25341 : return -1;
25342 : return 7291; /* avx512bw_us_truncatev32hiv32qi2 */
25343 :
25344 : case 7:
25345 : if (!
25346 : #line 15575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25347 : (TARGET_AVX512VL))
25348 : return -1;
25349 : return 7298; /* *avx512vl_us_truncatev4div4si2 */
25350 :
25351 : default:
25352 : return -1;
25353 : }
25354 :
25355 : case SS_PLUS:
25356 : return recog_328 (x1, insn, pnum_clobbers);
25357 :
25358 : case US_PLUS:
25359 : operands[0] = x3;
25360 : switch (pattern54 (x2))
25361 : {
25362 : case 0:
25363 : if (!(
25364 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25365 : (TARGET_SSE2 && 1 && 1
25366 : && ix86_binary_operator_ok (US_PLUS, V64QImode, operands)) &&
25367 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25368 : (TARGET_AVX512BW)))
25369 : return -1;
25370 : return 7549; /* *avx512bw_usaddv64qi3 */
25371 :
25372 : case 1:
25373 : if (!(
25374 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25375 : (TARGET_SSE2 && 1 && 1
25376 : && ix86_binary_operator_ok (US_PLUS, V32QImode, operands)) &&
25377 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25378 : (TARGET_AVX2)))
25379 : return -1;
25380 : return 7557; /* *avx2_usaddv32qi3 */
25381 :
25382 : case 2:
25383 : if (!
25384 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25385 : (TARGET_SSE2 && 1 && 1
25386 : && ix86_binary_operator_ok (US_PLUS, V16QImode, operands)))
25387 : return -1;
25388 : return 7565; /* *sse2_usaddv16qi3 */
25389 :
25390 : case 3:
25391 : if (!(
25392 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25393 : (TARGET_SSE2 && 1 && 1
25394 : && ix86_binary_operator_ok (US_PLUS, V32HImode, operands)) &&
25395 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25396 : (TARGET_AVX512BW)))
25397 : return -1;
25398 : return 7573; /* *avx512bw_usaddv32hi3 */
25399 :
25400 : case 4:
25401 : if (!(
25402 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25403 : (TARGET_SSE2 && 1 && 1
25404 : && ix86_binary_operator_ok (US_PLUS, V16HImode, operands)) &&
25405 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25406 : (TARGET_AVX2)))
25407 : return -1;
25408 : return 7581; /* *avx2_usaddv16hi3 */
25409 :
25410 : case 5:
25411 : if (!
25412 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25413 : (TARGET_SSE2 && 1 && 1
25414 : && ix86_binary_operator_ok (US_PLUS, V8HImode, operands)))
25415 : return -1;
25416 : return 7589; /* *sse2_usaddv8hi3 */
25417 :
25418 : default:
25419 : return -1;
25420 : }
25421 :
25422 : case SS_MINUS:
25423 : operands[0] = x3;
25424 : x4 = XEXP (x2, 0);
25425 : switch (GET_CODE (x4))
25426 : {
25427 : case REG:
25428 : case SUBREG:
25429 : case MEM:
25430 : switch (pattern54 (x2))
25431 : {
25432 : case 0:
25433 : if (!(
25434 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25435 : (TARGET_SSE2 && 1 && 1
25436 : && ix86_binary_operator_ok (SS_MINUS, V64QImode, operands)) &&
25437 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25438 : (TARGET_AVX512BW)))
25439 : return -1;
25440 : return 7551; /* *avx512bw_sssubv64qi3 */
25441 :
25442 : case 1:
25443 : if (!(
25444 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25445 : (TARGET_SSE2 && 1 && 1
25446 : && ix86_binary_operator_ok (SS_MINUS, V32QImode, operands)) &&
25447 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25448 : (TARGET_AVX2)))
25449 : return -1;
25450 : return 7559; /* *avx2_sssubv32qi3 */
25451 :
25452 : case 2:
25453 : if (!
25454 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25455 : (TARGET_SSE2 && 1 && 1
25456 : && ix86_binary_operator_ok (SS_MINUS, V16QImode, operands)))
25457 : return -1;
25458 : return 7567; /* *sse2_sssubv16qi3 */
25459 :
25460 : case 3:
25461 : if (!(
25462 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25463 : (TARGET_SSE2 && 1 && 1
25464 : && ix86_binary_operator_ok (SS_MINUS, V32HImode, operands)) &&
25465 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25466 : (TARGET_AVX512BW)))
25467 : return -1;
25468 : return 7575; /* *avx512bw_sssubv32hi3 */
25469 :
25470 : case 4:
25471 : if (!(
25472 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25473 : (TARGET_SSE2 && 1 && 1
25474 : && ix86_binary_operator_ok (SS_MINUS, V16HImode, operands)) &&
25475 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25476 : (TARGET_AVX2)))
25477 : return -1;
25478 : return 7583; /* *avx2_sssubv16hi3 */
25479 :
25480 : case 5:
25481 : if (!
25482 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25483 : (TARGET_SSE2 && 1 && 1
25484 : && ix86_binary_operator_ok (SS_MINUS, V8HImode, operands)))
25485 : return -1;
25486 : return 7591; /* *sse2_sssubv8hi3 */
25487 :
25488 : default:
25489 : return -1;
25490 : }
25491 :
25492 : case VEC_SELECT:
25493 : switch (pattern205 (x2))
25494 : {
25495 : case 0:
25496 : if (!
25497 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25498 : (TARGET_AVX2))
25499 : return -1;
25500 : return 8635; /* avx2_phsubswv16hi3 */
25501 :
25502 : case 1:
25503 : if (!
25504 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25505 : (TARGET_SSSE3))
25506 : return -1;
25507 : return 8639; /* ssse3_phsubswv8hi3 */
25508 :
25509 : default:
25510 : return -1;
25511 : }
25512 :
25513 : default:
25514 : return -1;
25515 : }
25516 :
25517 : case US_MINUS:
25518 : operands[0] = x3;
25519 : switch (pattern54 (x2))
25520 : {
25521 : case 0:
25522 : if (!(
25523 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25524 : (TARGET_SSE2 && 1 && 1
25525 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)) &&
25526 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25527 : (TARGET_AVX512BW)))
25528 : return -1;
25529 : return 7553; /* *avx512bw_ussubv64qi3 */
25530 :
25531 : case 1:
25532 : if (!(
25533 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25534 : (TARGET_SSE2 && 1 && 1
25535 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) &&
25536 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25537 : (TARGET_AVX2)))
25538 : return -1;
25539 : return 7561; /* *avx2_ussubv32qi3 */
25540 :
25541 : case 2:
25542 : if (!
25543 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25544 : (TARGET_SSE2 && 1 && 1
25545 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)))
25546 : return -1;
25547 : return 7569; /* *sse2_ussubv16qi3 */
25548 :
25549 : case 3:
25550 : if (!(
25551 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25552 : (TARGET_SSE2 && 1 && 1
25553 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)) &&
25554 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25555 : (TARGET_AVX512BW)))
25556 : return -1;
25557 : return 7577; /* *avx512bw_ussubv32hi3 */
25558 :
25559 : case 4:
25560 : if (!(
25561 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25562 : (TARGET_SSE2 && 1 && 1
25563 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) &&
25564 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25565 : (TARGET_AVX2)))
25566 : return -1;
25567 : return 7585; /* *avx2_ussubv16hi3 */
25568 :
25569 : case 5:
25570 : if (!
25571 : #line 16643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25572 : (TARGET_SSE2 && 1 && 1
25573 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)))
25574 : return -1;
25575 : return 7593; /* *sse2_ussubv8hi3 */
25576 :
25577 : default:
25578 : return -1;
25579 : }
25580 :
25581 : case ASHIFTRT:
25582 : return recog_332 (x1, insn, pnum_clobbers);
25583 :
25584 : case ASHIFT:
25585 : return recog_334 (x1, insn, pnum_clobbers);
25586 :
25587 : case LSHIFTRT:
25588 : return recog_333 (x1, insn, pnum_clobbers);
25589 :
25590 : case ROTATE:
25591 : return recog_358 (x1, insn, pnum_clobbers);
25592 :
25593 : case ROTATERT:
25594 : return recog_357 (x1, insn, pnum_clobbers);
25595 :
25596 : case UMAX:
25597 : return recog_353 (x1, insn, pnum_clobbers);
25598 :
25599 : case UMIN:
25600 : return recog_352 (x1, insn, pnum_clobbers);
25601 :
25602 : case ABS:
25603 : return recog_340 (x1, insn, pnum_clobbers);
25604 :
25605 : case SIGN_EXTEND:
25606 : return recog_347 (x1, insn, pnum_clobbers);
25607 :
25608 : case ZERO_EXTEND:
25609 : return recog_338 (x1, insn, pnum_clobbers);
25610 :
25611 : case IF_THEN_ELSE:
25612 : return recog_335 (x1, insn, pnum_clobbers);
25613 :
25614 : case CLZ:
25615 : return recog_355 (x1, insn, pnum_clobbers);
25616 :
25617 : case POPCOUNT:
25618 : return recog_339 (x1, insn, pnum_clobbers);
25619 :
25620 : default:
25621 : return -1;
25622 : }
25623 : }
25624 :
25625 : rtx_insn *
25626 : split_39 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25627 : {
25628 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25629 : rtx x2, x3, x4, x5, x6, x7, x8;
25630 : rtx_insn *res ATTRIBUTE_UNUSED;
25631 : x2 = XVECEXP (x1, 0, 0);
25632 : x3 = XEXP (x2, 0);
25633 : operands[0] = x3;
25634 : x4 = XEXP (x2, 1);
25635 : x5 = XEXP (x4, 0);
25636 : switch (GET_CODE (x5))
25637 : {
25638 : case LSHIFTRT:
25639 : if (GET_MODE (x5) != E_SImode)
25640 : return NULL;
25641 : x6 = XVECEXP (x1, 0, 1);
25642 : if (pattern236 (x6,
25643 : E_CCmode,
25644 : 17) != 0
25645 : || !mask_reg_operand (operands[0], E_DImode)
25646 : || GET_MODE (x4) != E_DImode)
25647 : return NULL;
25648 : x7 = XEXP (x5, 0);
25649 : operands[1] = x7;
25650 : if (!mask_reg_operand (operands[1], E_SImode))
25651 : return NULL;
25652 : x8 = XEXP (x5, 1);
25653 : operands[2] = x8;
25654 : if (!const_0_to_31_operand (operands[2], E_VOIDmode)
25655 : || !
25656 : #line 2343 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25657 : (TARGET_AVX512BW && reload_completed))
25658 : return NULL;
25659 : return gen_split_1282 (insn, operands);
25660 :
25661 : case UNSPEC:
25662 : if (pattern354 (x1) != 0)
25663 : return NULL;
25664 : switch (pattern1052 (x1))
25665 : {
25666 : case 0:
25667 : if (!(
25668 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25669 : (TARGET_AVX512F
25670 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25671 : && (GET_MODE_NUNITS (V16SImode)
25672 : < GET_MODE_PRECISION (HImode))
25673 : && ix86_pre_reload_split ()) &&
25674 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25675 : ( 1)))
25676 : return NULL;
25677 : return gen_split_1402 (insn, operands);
25678 :
25679 : case 1:
25680 : if (!((
25681 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25682 : (TARGET_AVX512F
25683 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25684 : && (GET_MODE_NUNITS (V16HFmode)
25685 : < GET_MODE_PRECISION (HImode))
25686 : && ix86_pre_reload_split ()) &&
25687 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25688 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
25689 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25690 : ( 1)))
25691 : return NULL;
25692 : return gen_split_1423 (insn, operands);
25693 :
25694 : case 2:
25695 : if (!(
25696 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25697 : (TARGET_AVX512F
25698 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25699 : && (GET_MODE_NUNITS (V16SFmode)
25700 : < GET_MODE_PRECISION (HImode))
25701 : && ix86_pre_reload_split ()) &&
25702 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25703 : ( 1)))
25704 : return NULL;
25705 : return gen_split_1429 (insn, operands);
25706 :
25707 : case 3:
25708 : if (!((
25709 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25710 : (TARGET_AVX512BW
25711 : && (GET_MODE_NUNITS (V16QImode)
25712 : < GET_MODE_PRECISION (HImode))
25713 : && ix86_pre_reload_split ()) &&
25714 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25715 : (TARGET_AVX512VL)) &&
25716 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25717 : ( 1)))
25718 : return NULL;
25719 : return gen_split_1465 (insn, operands);
25720 :
25721 : case 4:
25722 : if (!((
25723 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25724 : (TARGET_AVX512BW
25725 : && (GET_MODE_NUNITS (V16HImode)
25726 : < GET_MODE_PRECISION (HImode))
25727 : && ix86_pre_reload_split ()) &&
25728 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25729 : (TARGET_AVX512VL)) &&
25730 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25731 : ( 1)))
25732 : return NULL;
25733 : return gen_split_1474 (insn, operands);
25734 :
25735 : case 5:
25736 : if (!((
25737 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25738 : (TARGET_AVX512F
25739 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25740 : && (GET_MODE_NUNITS (V8SImode)
25741 : < GET_MODE_PRECISION (HImode))
25742 : && ix86_pre_reload_split ()) &&
25743 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25744 : (TARGET_AVX512VL)) &&
25745 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25746 : ( 1)))
25747 : return NULL;
25748 : return gen_split_1405 (insn, operands);
25749 :
25750 : case 6:
25751 : if (!((
25752 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25753 : (TARGET_AVX512F
25754 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25755 : && (GET_MODE_NUNITS (V4SImode)
25756 : < GET_MODE_PRECISION (HImode))
25757 : && ix86_pre_reload_split ()) &&
25758 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25759 : (TARGET_AVX512VL)) &&
25760 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25761 : ( 1)))
25762 : return NULL;
25763 : return gen_split_1408 (insn, operands);
25764 :
25765 : case 7:
25766 : if (!(
25767 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25768 : (TARGET_AVX512F
25769 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25770 : && (GET_MODE_NUNITS (V8DImode)
25771 : < GET_MODE_PRECISION (HImode))
25772 : && ix86_pre_reload_split ()) &&
25773 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25774 : ( 1)))
25775 : return NULL;
25776 : return gen_split_1411 (insn, operands);
25777 :
25778 : case 8:
25779 : if (!((
25780 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25781 : (TARGET_AVX512F
25782 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25783 : && (GET_MODE_NUNITS (V4DImode)
25784 : < GET_MODE_PRECISION (HImode))
25785 : && ix86_pre_reload_split ()) &&
25786 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25787 : (TARGET_AVX512VL)) &&
25788 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25789 : ( 1)))
25790 : return NULL;
25791 : return gen_split_1414 (insn, operands);
25792 :
25793 : case 9:
25794 : if (!((
25795 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25796 : (TARGET_AVX512F
25797 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25798 : && (GET_MODE_NUNITS (V2DImode)
25799 : < GET_MODE_PRECISION (HImode))
25800 : && ix86_pre_reload_split ()) &&
25801 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25802 : (TARGET_AVX512VL)) &&
25803 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25804 : ( 1)))
25805 : return NULL;
25806 : return gen_split_1417 (insn, operands);
25807 :
25808 : case 10:
25809 : if (!((
25810 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25811 : (TARGET_AVX512F
25812 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25813 : && (GET_MODE_NUNITS (V8HFmode)
25814 : < GET_MODE_PRECISION (HImode))
25815 : && ix86_pre_reload_split ()) &&
25816 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25817 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
25818 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25819 : ( 1)))
25820 : return NULL;
25821 : return gen_split_1426 (insn, operands);
25822 :
25823 : case 11:
25824 : if (!((
25825 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25826 : (TARGET_AVX512F
25827 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25828 : && (GET_MODE_NUNITS (V8SFmode)
25829 : < GET_MODE_PRECISION (HImode))
25830 : && ix86_pre_reload_split ()) &&
25831 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25832 : (TARGET_AVX512VL)) &&
25833 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25834 : ( 1)))
25835 : return NULL;
25836 : return gen_split_1432 (insn, operands);
25837 :
25838 : case 12:
25839 : if (!((
25840 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25841 : (TARGET_AVX512F
25842 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25843 : && (GET_MODE_NUNITS (V4SFmode)
25844 : < GET_MODE_PRECISION (HImode))
25845 : && ix86_pre_reload_split ()) &&
25846 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25847 : (TARGET_AVX512VL)) &&
25848 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25849 : ( 1)))
25850 : return NULL;
25851 : return gen_split_1435 (insn, operands);
25852 :
25853 : case 13:
25854 : if (!(
25855 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25856 : (TARGET_AVX512F
25857 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25858 : && (GET_MODE_NUNITS (V8DFmode)
25859 : < GET_MODE_PRECISION (HImode))
25860 : && ix86_pre_reload_split ()) &&
25861 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25862 : ( 1)))
25863 : return NULL;
25864 : return gen_split_1438 (insn, operands);
25865 :
25866 : case 14:
25867 : if (!((
25868 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25869 : (TARGET_AVX512F
25870 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25871 : && (GET_MODE_NUNITS (V4DFmode)
25872 : < GET_MODE_PRECISION (HImode))
25873 : && ix86_pre_reload_split ()) &&
25874 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25875 : (TARGET_AVX512VL)) &&
25876 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25877 : ( 1)))
25878 : return NULL;
25879 : return gen_split_1441 (insn, operands);
25880 :
25881 : case 15:
25882 : if (!((
25883 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25884 : (TARGET_AVX512F
25885 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25886 : && (GET_MODE_NUNITS (V2DFmode)
25887 : < GET_MODE_PRECISION (HImode))
25888 : && ix86_pre_reload_split ()) &&
25889 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25890 : (TARGET_AVX512VL)) &&
25891 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25892 : ( 1)))
25893 : return NULL;
25894 : return gen_split_1444 (insn, operands);
25895 :
25896 : case 16:
25897 : if (!((
25898 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25899 : (TARGET_AVX512BW
25900 : && (GET_MODE_NUNITS (V8HImode)
25901 : < GET_MODE_PRECISION (HImode))
25902 : && ix86_pre_reload_split ()) &&
25903 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25904 : (TARGET_AVX512VL)) &&
25905 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25906 : ( 1)))
25907 : return NULL;
25908 : return gen_split_1477 (insn, operands);
25909 :
25910 : case 17:
25911 : if (!((
25912 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25913 : (TARGET_AVX512F
25914 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
25915 : && (GET_MODE_NUNITS (V32HFmode)
25916 : < GET_MODE_PRECISION (HImode))
25917 : && ix86_pre_reload_split ()) &&
25918 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25919 : (TARGET_AVX512FP16)) &&
25920 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25921 : ( 1)))
25922 : return NULL;
25923 : return gen_split_1420 (insn, operands);
25924 :
25925 : case 18:
25926 : if (!((
25927 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25928 : (TARGET_AVX512BW
25929 : && (GET_MODE_NUNITS (V32QImode)
25930 : < GET_MODE_PRECISION (HImode))
25931 : && ix86_pre_reload_split ()) &&
25932 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25933 : (TARGET_AVX512VL)) &&
25934 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25935 : ( 1)))
25936 : return NULL;
25937 : return gen_split_1468 (insn, operands);
25938 :
25939 : case 19:
25940 : if (!(
25941 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25942 : (TARGET_AVX512BW
25943 : && (GET_MODE_NUNITS (V32HImode)
25944 : < GET_MODE_PRECISION (HImode))
25945 : && ix86_pre_reload_split ()) &&
25946 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25947 : ( 1)))
25948 : return NULL;
25949 : return gen_split_1471 (insn, operands);
25950 :
25951 : case 20:
25952 : if (!(
25953 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25954 : (TARGET_AVX512BW
25955 : && (GET_MODE_NUNITS (V64QImode)
25956 : < GET_MODE_PRECISION (HImode))
25957 : && ix86_pre_reload_split ()) &&
25958 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25959 : ( 1)))
25960 : return NULL;
25961 : return gen_split_1462 (insn, operands);
25962 :
25963 : case 21:
25964 : if (!(
25965 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25966 : (TARGET_AVX512F
25967 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
25968 : && (GET_MODE_NUNITS (V16SImode)
25969 : < GET_MODE_PRECISION (SImode))
25970 : && ix86_pre_reload_split ()) &&
25971 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25972 : ( 1)))
25973 : return NULL;
25974 : return gen_split_1403 (insn, operands);
25975 :
25976 : case 22:
25977 : if (!((
25978 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25979 : (TARGET_AVX512F
25980 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
25981 : && (GET_MODE_NUNITS (V16HFmode)
25982 : < GET_MODE_PRECISION (SImode))
25983 : && ix86_pre_reload_split ()) &&
25984 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25985 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
25986 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25987 : ( 1)))
25988 : return NULL;
25989 : return gen_split_1424 (insn, operands);
25990 :
25991 : case 23:
25992 : if (!(
25993 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
25994 : (TARGET_AVX512F
25995 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
25996 : && (GET_MODE_NUNITS (V16SFmode)
25997 : < GET_MODE_PRECISION (SImode))
25998 : && ix86_pre_reload_split ()) &&
25999 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26000 : ( 1)))
26001 : return NULL;
26002 : return gen_split_1430 (insn, operands);
26003 :
26004 : case 24:
26005 : if (!((
26006 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26007 : (TARGET_AVX512BW
26008 : && (GET_MODE_NUNITS (V16QImode)
26009 : < GET_MODE_PRECISION (SImode))
26010 : && ix86_pre_reload_split ()) &&
26011 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26012 : (TARGET_AVX512VL)) &&
26013 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26014 : ( 1)))
26015 : return NULL;
26016 : return gen_split_1466 (insn, operands);
26017 :
26018 : case 25:
26019 : if (!((
26020 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26021 : (TARGET_AVX512BW
26022 : && (GET_MODE_NUNITS (V16HImode)
26023 : < GET_MODE_PRECISION (SImode))
26024 : && ix86_pre_reload_split ()) &&
26025 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26026 : (TARGET_AVX512VL)) &&
26027 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26028 : ( 1)))
26029 : return NULL;
26030 : return gen_split_1475 (insn, operands);
26031 :
26032 : case 26:
26033 : if (!((
26034 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26035 : (TARGET_AVX512F
26036 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26037 : && (GET_MODE_NUNITS (V8SImode)
26038 : < GET_MODE_PRECISION (SImode))
26039 : && ix86_pre_reload_split ()) &&
26040 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26041 : (TARGET_AVX512VL)) &&
26042 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26043 : ( 1)))
26044 : return NULL;
26045 : return gen_split_1406 (insn, operands);
26046 :
26047 : case 27:
26048 : if (!((
26049 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26050 : (TARGET_AVX512F
26051 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26052 : && (GET_MODE_NUNITS (V4SImode)
26053 : < GET_MODE_PRECISION (SImode))
26054 : && ix86_pre_reload_split ()) &&
26055 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26056 : (TARGET_AVX512VL)) &&
26057 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26058 : ( 1)))
26059 : return NULL;
26060 : return gen_split_1409 (insn, operands);
26061 :
26062 : case 28:
26063 : if (!(
26064 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26065 : (TARGET_AVX512F
26066 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26067 : && (GET_MODE_NUNITS (V8DImode)
26068 : < GET_MODE_PRECISION (SImode))
26069 : && ix86_pre_reload_split ()) &&
26070 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26071 : ( 1)))
26072 : return NULL;
26073 : return gen_split_1412 (insn, operands);
26074 :
26075 : case 29:
26076 : if (!((
26077 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26078 : (TARGET_AVX512F
26079 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26080 : && (GET_MODE_NUNITS (V4DImode)
26081 : < GET_MODE_PRECISION (SImode))
26082 : && ix86_pre_reload_split ()) &&
26083 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26084 : (TARGET_AVX512VL)) &&
26085 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26086 : ( 1)))
26087 : return NULL;
26088 : return gen_split_1415 (insn, operands);
26089 :
26090 : case 30:
26091 : if (!((
26092 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26093 : (TARGET_AVX512F
26094 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26095 : && (GET_MODE_NUNITS (V2DImode)
26096 : < GET_MODE_PRECISION (SImode))
26097 : && ix86_pre_reload_split ()) &&
26098 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26099 : (TARGET_AVX512VL)) &&
26100 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26101 : ( 1)))
26102 : return NULL;
26103 : return gen_split_1418 (insn, operands);
26104 :
26105 : case 31:
26106 : if (!((
26107 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26108 : (TARGET_AVX512F
26109 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26110 : && (GET_MODE_NUNITS (V8HFmode)
26111 : < GET_MODE_PRECISION (SImode))
26112 : && ix86_pre_reload_split ()) &&
26113 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26114 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26115 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26116 : ( 1)))
26117 : return NULL;
26118 : return gen_split_1427 (insn, operands);
26119 :
26120 : case 32:
26121 : if (!((
26122 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26123 : (TARGET_AVX512F
26124 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26125 : && (GET_MODE_NUNITS (V8SFmode)
26126 : < GET_MODE_PRECISION (SImode))
26127 : && ix86_pre_reload_split ()) &&
26128 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26129 : (TARGET_AVX512VL)) &&
26130 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26131 : ( 1)))
26132 : return NULL;
26133 : return gen_split_1433 (insn, operands);
26134 :
26135 : case 33:
26136 : if (!((
26137 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26138 : (TARGET_AVX512F
26139 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26140 : && (GET_MODE_NUNITS (V4SFmode)
26141 : < GET_MODE_PRECISION (SImode))
26142 : && ix86_pre_reload_split ()) &&
26143 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26144 : (TARGET_AVX512VL)) &&
26145 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26146 : ( 1)))
26147 : return NULL;
26148 : return gen_split_1436 (insn, operands);
26149 :
26150 : case 34:
26151 : if (!(
26152 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26153 : (TARGET_AVX512F
26154 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26155 : && (GET_MODE_NUNITS (V8DFmode)
26156 : < GET_MODE_PRECISION (SImode))
26157 : && ix86_pre_reload_split ()) &&
26158 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26159 : ( 1)))
26160 : return NULL;
26161 : return gen_split_1439 (insn, operands);
26162 :
26163 : case 35:
26164 : if (!((
26165 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26166 : (TARGET_AVX512F
26167 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26168 : && (GET_MODE_NUNITS (V4DFmode)
26169 : < GET_MODE_PRECISION (SImode))
26170 : && ix86_pre_reload_split ()) &&
26171 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26172 : (TARGET_AVX512VL)) &&
26173 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26174 : ( 1)))
26175 : return NULL;
26176 : return gen_split_1442 (insn, operands);
26177 :
26178 : case 36:
26179 : if (!((
26180 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26181 : (TARGET_AVX512F
26182 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26183 : && (GET_MODE_NUNITS (V2DFmode)
26184 : < GET_MODE_PRECISION (SImode))
26185 : && ix86_pre_reload_split ()) &&
26186 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26187 : (TARGET_AVX512VL)) &&
26188 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26189 : ( 1)))
26190 : return NULL;
26191 : return gen_split_1445 (insn, operands);
26192 :
26193 : case 37:
26194 : if (!((
26195 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26196 : (TARGET_AVX512BW
26197 : && (GET_MODE_NUNITS (V8HImode)
26198 : < GET_MODE_PRECISION (SImode))
26199 : && ix86_pre_reload_split ()) &&
26200 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26201 : (TARGET_AVX512VL)) &&
26202 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26203 : ( 1)))
26204 : return NULL;
26205 : return gen_split_1478 (insn, operands);
26206 :
26207 : case 38:
26208 : if (!((
26209 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26210 : (TARGET_AVX512F
26211 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26212 : && (GET_MODE_NUNITS (V32HFmode)
26213 : < GET_MODE_PRECISION (SImode))
26214 : && ix86_pre_reload_split ()) &&
26215 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26216 : (TARGET_AVX512FP16)) &&
26217 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26218 : ( 1)))
26219 : return NULL;
26220 : return gen_split_1421 (insn, operands);
26221 :
26222 : case 39:
26223 : if (!((
26224 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26225 : (TARGET_AVX512BW
26226 : && (GET_MODE_NUNITS (V32QImode)
26227 : < GET_MODE_PRECISION (SImode))
26228 : && ix86_pre_reload_split ()) &&
26229 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26230 : (TARGET_AVX512VL)) &&
26231 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26232 : ( 1)))
26233 : return NULL;
26234 : return gen_split_1469 (insn, operands);
26235 :
26236 : case 40:
26237 : if (!(
26238 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26239 : (TARGET_AVX512BW
26240 : && (GET_MODE_NUNITS (V32HImode)
26241 : < GET_MODE_PRECISION (SImode))
26242 : && ix86_pre_reload_split ()) &&
26243 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26244 : ( 1)))
26245 : return NULL;
26246 : return gen_split_1472 (insn, operands);
26247 :
26248 : case 41:
26249 : if (!(
26250 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26251 : (TARGET_AVX512BW
26252 : && (GET_MODE_NUNITS (V64QImode)
26253 : < GET_MODE_PRECISION (SImode))
26254 : && ix86_pre_reload_split ()) &&
26255 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26256 : ( 1)))
26257 : return NULL;
26258 : return gen_split_1463 (insn, operands);
26259 :
26260 : case 42:
26261 : if (!(
26262 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26263 : (TARGET_AVX512F
26264 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26265 : && (GET_MODE_NUNITS (V16SImode)
26266 : < GET_MODE_PRECISION (DImode))
26267 : && ix86_pre_reload_split ()) &&
26268 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26269 : ( 1)))
26270 : return NULL;
26271 : return gen_split_1404 (insn, operands);
26272 :
26273 : case 43:
26274 : if (!((
26275 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26276 : (TARGET_AVX512F
26277 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26278 : && (GET_MODE_NUNITS (V16HFmode)
26279 : < GET_MODE_PRECISION (DImode))
26280 : && ix86_pre_reload_split ()) &&
26281 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26282 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26283 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26284 : ( 1)))
26285 : return NULL;
26286 : return gen_split_1425 (insn, operands);
26287 :
26288 : case 44:
26289 : if (!(
26290 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26291 : (TARGET_AVX512F
26292 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26293 : && (GET_MODE_NUNITS (V16SFmode)
26294 : < GET_MODE_PRECISION (DImode))
26295 : && ix86_pre_reload_split ()) &&
26296 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26297 : ( 1)))
26298 : return NULL;
26299 : return gen_split_1431 (insn, operands);
26300 :
26301 : case 45:
26302 : if (!((
26303 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26304 : (TARGET_AVX512BW
26305 : && (GET_MODE_NUNITS (V16QImode)
26306 : < GET_MODE_PRECISION (DImode))
26307 : && ix86_pre_reload_split ()) &&
26308 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26309 : (TARGET_AVX512VL)) &&
26310 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26311 : ( 1)))
26312 : return NULL;
26313 : return gen_split_1467 (insn, operands);
26314 :
26315 : case 46:
26316 : if (!((
26317 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26318 : (TARGET_AVX512BW
26319 : && (GET_MODE_NUNITS (V16HImode)
26320 : < GET_MODE_PRECISION (DImode))
26321 : && ix86_pre_reload_split ()) &&
26322 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26323 : (TARGET_AVX512VL)) &&
26324 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26325 : ( 1)))
26326 : return NULL;
26327 : return gen_split_1476 (insn, operands);
26328 :
26329 : case 47:
26330 : if (!((
26331 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26332 : (TARGET_AVX512F
26333 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26334 : && (GET_MODE_NUNITS (V8SImode)
26335 : < GET_MODE_PRECISION (DImode))
26336 : && ix86_pre_reload_split ()) &&
26337 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26338 : (TARGET_AVX512VL)) &&
26339 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26340 : ( 1)))
26341 : return NULL;
26342 : return gen_split_1407 (insn, operands);
26343 :
26344 : case 48:
26345 : if (!((
26346 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26347 : (TARGET_AVX512F
26348 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26349 : && (GET_MODE_NUNITS (V4SImode)
26350 : < GET_MODE_PRECISION (DImode))
26351 : && ix86_pre_reload_split ()) &&
26352 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26353 : (TARGET_AVX512VL)) &&
26354 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26355 : ( 1)))
26356 : return NULL;
26357 : return gen_split_1410 (insn, operands);
26358 :
26359 : case 49:
26360 : if (!(
26361 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26362 : (TARGET_AVX512F
26363 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26364 : && (GET_MODE_NUNITS (V8DImode)
26365 : < GET_MODE_PRECISION (DImode))
26366 : && ix86_pre_reload_split ()) &&
26367 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26368 : ( 1)))
26369 : return NULL;
26370 : return gen_split_1413 (insn, operands);
26371 :
26372 : case 50:
26373 : if (!((
26374 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26375 : (TARGET_AVX512F
26376 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26377 : && (GET_MODE_NUNITS (V4DImode)
26378 : < GET_MODE_PRECISION (DImode))
26379 : && ix86_pre_reload_split ()) &&
26380 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26381 : (TARGET_AVX512VL)) &&
26382 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26383 : ( 1)))
26384 : return NULL;
26385 : return gen_split_1416 (insn, operands);
26386 :
26387 : case 51:
26388 : if (!((
26389 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26390 : (TARGET_AVX512F
26391 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26392 : && (GET_MODE_NUNITS (V2DImode)
26393 : < GET_MODE_PRECISION (DImode))
26394 : && ix86_pre_reload_split ()) &&
26395 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26396 : (TARGET_AVX512VL)) &&
26397 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26398 : ( 1)))
26399 : return NULL;
26400 : return gen_split_1419 (insn, operands);
26401 :
26402 : case 52:
26403 : if (!((
26404 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26405 : (TARGET_AVX512F
26406 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26407 : && (GET_MODE_NUNITS (V8HFmode)
26408 : < GET_MODE_PRECISION (DImode))
26409 : && ix86_pre_reload_split ()) &&
26410 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26411 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
26412 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26413 : ( 1)))
26414 : return NULL;
26415 : return gen_split_1428 (insn, operands);
26416 :
26417 : case 53:
26418 : if (!((
26419 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26420 : (TARGET_AVX512F
26421 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26422 : && (GET_MODE_NUNITS (V8SFmode)
26423 : < GET_MODE_PRECISION (DImode))
26424 : && ix86_pre_reload_split ()) &&
26425 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26426 : (TARGET_AVX512VL)) &&
26427 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26428 : ( 1)))
26429 : return NULL;
26430 : return gen_split_1434 (insn, operands);
26431 :
26432 : case 54:
26433 : if (!((
26434 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26435 : (TARGET_AVX512F
26436 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26437 : && (GET_MODE_NUNITS (V4SFmode)
26438 : < GET_MODE_PRECISION (DImode))
26439 : && ix86_pre_reload_split ()) &&
26440 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26441 : (TARGET_AVX512VL)) &&
26442 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26443 : ( 1)))
26444 : return NULL;
26445 : return gen_split_1437 (insn, operands);
26446 :
26447 : case 55:
26448 : if (!(
26449 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26450 : (TARGET_AVX512F
26451 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26452 : && (GET_MODE_NUNITS (V8DFmode)
26453 : < GET_MODE_PRECISION (DImode))
26454 : && ix86_pre_reload_split ()) &&
26455 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26456 : ( 1)))
26457 : return NULL;
26458 : return gen_split_1440 (insn, operands);
26459 :
26460 : case 56:
26461 : if (!((
26462 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26463 : (TARGET_AVX512F
26464 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26465 : && (GET_MODE_NUNITS (V4DFmode)
26466 : < GET_MODE_PRECISION (DImode))
26467 : && ix86_pre_reload_split ()) &&
26468 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26469 : (TARGET_AVX512VL)) &&
26470 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26471 : ( 1)))
26472 : return NULL;
26473 : return gen_split_1443 (insn, operands);
26474 :
26475 : case 57:
26476 : if (!((
26477 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26478 : (TARGET_AVX512F
26479 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26480 : && (GET_MODE_NUNITS (V2DFmode)
26481 : < GET_MODE_PRECISION (DImode))
26482 : && ix86_pre_reload_split ()) &&
26483 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26484 : (TARGET_AVX512VL)) &&
26485 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26486 : ( 1)))
26487 : return NULL;
26488 : return gen_split_1446 (insn, operands);
26489 :
26490 : case 58:
26491 : if (!((
26492 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26493 : (TARGET_AVX512BW
26494 : && (GET_MODE_NUNITS (V8HImode)
26495 : < GET_MODE_PRECISION (DImode))
26496 : && ix86_pre_reload_split ()) &&
26497 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26498 : (TARGET_AVX512VL)) &&
26499 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26500 : ( 1)))
26501 : return NULL;
26502 : return gen_split_1479 (insn, operands);
26503 :
26504 : case 59:
26505 : if (!((
26506 : #line 4662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26507 : (TARGET_AVX512F
26508 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26509 : && (GET_MODE_NUNITS (V32HFmode)
26510 : < GET_MODE_PRECISION (DImode))
26511 : && ix86_pre_reload_split ()) &&
26512 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26513 : (TARGET_AVX512FP16)) &&
26514 : #line 4668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26515 : ( 1)))
26516 : return NULL;
26517 : return gen_split_1422 (insn, operands);
26518 :
26519 : case 60:
26520 : if (!((
26521 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26522 : (TARGET_AVX512BW
26523 : && (GET_MODE_NUNITS (V32QImode)
26524 : < GET_MODE_PRECISION (DImode))
26525 : && ix86_pre_reload_split ()) &&
26526 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26527 : (TARGET_AVX512VL)) &&
26528 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26529 : ( 1)))
26530 : return NULL;
26531 : return gen_split_1470 (insn, operands);
26532 :
26533 : case 61:
26534 : if (!(
26535 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26536 : (TARGET_AVX512BW
26537 : && (GET_MODE_NUNITS (V32HImode)
26538 : < GET_MODE_PRECISION (DImode))
26539 : && ix86_pre_reload_split ()) &&
26540 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26541 : ( 1)))
26542 : return NULL;
26543 : return gen_split_1473 (insn, operands);
26544 :
26545 : case 62:
26546 : if (!(
26547 : #line 4853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26548 : (TARGET_AVX512BW
26549 : && (GET_MODE_NUNITS (V64QImode)
26550 : < GET_MODE_PRECISION (DImode))
26551 : && ix86_pre_reload_split ()) &&
26552 : #line 4858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26553 : ( 1)))
26554 : return NULL;
26555 : return gen_split_1464 (insn, operands);
26556 :
26557 : case 63:
26558 : if (!(
26559 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26560 : (TARGET_AVX512BW
26561 : && ix86_pre_reload_split ()
26562 : && (GET_MODE_NUNITS (V64QImode)
26563 : < GET_MODE_PRECISION (HImode))
26564 : && ix86_pre_reload_split ()) &&
26565 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26566 : ( 1)))
26567 : return NULL;
26568 : return gen_split_1516 (insn, operands);
26569 :
26570 : case 64:
26571 : if (!((
26572 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26573 : (TARGET_AVX512BW
26574 : && ix86_pre_reload_split ()
26575 : && (GET_MODE_NUNITS (V16QImode)
26576 : < GET_MODE_PRECISION (HImode))
26577 : && ix86_pre_reload_split ()) &&
26578 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26579 : (TARGET_AVX512VL)) &&
26580 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26581 : ( 1)))
26582 : return NULL;
26583 : return gen_split_1519 (insn, operands);
26584 :
26585 : case 65:
26586 : if (!((
26587 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26588 : (TARGET_AVX512BW
26589 : && ix86_pre_reload_split ()
26590 : && (GET_MODE_NUNITS (V16HImode)
26591 : < GET_MODE_PRECISION (HImode))
26592 : && ix86_pre_reload_split ()) &&
26593 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26594 : (TARGET_AVX512VL)) &&
26595 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26596 : ( 1)))
26597 : return NULL;
26598 : return gen_split_1528 (insn, operands);
26599 :
26600 : case 66:
26601 : if (!(
26602 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26603 : (TARGET_AVX512F
26604 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26605 : && (GET_MODE_NUNITS (V16SImode)
26606 : < GET_MODE_PRECISION (HImode))
26607 : && ix86_pre_reload_split ()) &&
26608 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26609 : ( 1)))
26610 : return NULL;
26611 : return gen_split_1534 (insn, operands);
26612 :
26613 : case 67:
26614 : if (!((
26615 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26616 : (TARGET_AVX512BW
26617 : && ix86_pre_reload_split ()
26618 : && (GET_MODE_NUNITS (V32QImode)
26619 : < GET_MODE_PRECISION (HImode))
26620 : && ix86_pre_reload_split ()) &&
26621 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26622 : (TARGET_AVX512VL)) &&
26623 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26624 : ( 1)))
26625 : return NULL;
26626 : return gen_split_1522 (insn, operands);
26627 :
26628 : case 68:
26629 : if (!(
26630 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26631 : (TARGET_AVX512BW
26632 : && ix86_pre_reload_split ()
26633 : && (GET_MODE_NUNITS (V32HImode)
26634 : < GET_MODE_PRECISION (HImode))
26635 : && ix86_pre_reload_split ()) &&
26636 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26637 : ( 1)))
26638 : return NULL;
26639 : return gen_split_1525 (insn, operands);
26640 :
26641 : case 69:
26642 : if (!((
26643 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26644 : (TARGET_AVX512BW
26645 : && ix86_pre_reload_split ()
26646 : && (GET_MODE_NUNITS (V8HImode)
26647 : < GET_MODE_PRECISION (HImode))
26648 : && ix86_pre_reload_split ()) &&
26649 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26650 : (TARGET_AVX512VL)) &&
26651 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26652 : ( 1)))
26653 : return NULL;
26654 : return gen_split_1531 (insn, operands);
26655 :
26656 : case 70:
26657 : if (!((
26658 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26659 : (TARGET_AVX512F
26660 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26661 : && (GET_MODE_NUNITS (V8SImode)
26662 : < GET_MODE_PRECISION (HImode))
26663 : && ix86_pre_reload_split ()) &&
26664 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26665 : (TARGET_AVX512VL)) &&
26666 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26667 : ( 1)))
26668 : return NULL;
26669 : return gen_split_1535 (insn, operands);
26670 :
26671 : case 71:
26672 : if (!((
26673 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26674 : (TARGET_AVX512F
26675 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26676 : && (GET_MODE_NUNITS (V4SImode)
26677 : < GET_MODE_PRECISION (HImode))
26678 : && ix86_pre_reload_split ()) &&
26679 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26680 : (TARGET_AVX512VL)) &&
26681 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26682 : ( 1)))
26683 : return NULL;
26684 : return gen_split_1536 (insn, operands);
26685 :
26686 : case 72:
26687 : if (!(
26688 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26689 : (TARGET_AVX512F
26690 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26691 : && (GET_MODE_NUNITS (V8DImode)
26692 : < GET_MODE_PRECISION (HImode))
26693 : && ix86_pre_reload_split ()) &&
26694 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26695 : ( 1)))
26696 : return NULL;
26697 : return gen_split_1537 (insn, operands);
26698 :
26699 : case 73:
26700 : if (!((
26701 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26702 : (TARGET_AVX512F
26703 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26704 : && (GET_MODE_NUNITS (V4DImode)
26705 : < GET_MODE_PRECISION (HImode))
26706 : && ix86_pre_reload_split ()) &&
26707 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26708 : (TARGET_AVX512VL)) &&
26709 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26710 : ( 1)))
26711 : return NULL;
26712 : return gen_split_1538 (insn, operands);
26713 :
26714 : case 74:
26715 : if (!((
26716 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26717 : (TARGET_AVX512F
26718 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
26719 : && (GET_MODE_NUNITS (V2DImode)
26720 : < GET_MODE_PRECISION (HImode))
26721 : && ix86_pre_reload_split ()) &&
26722 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26723 : (TARGET_AVX512VL)) &&
26724 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26725 : ( 1)))
26726 : return NULL;
26727 : return gen_split_1539 (insn, operands);
26728 :
26729 : case 75:
26730 : if (!(
26731 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26732 : (TARGET_AVX512BW
26733 : && ix86_pre_reload_split ()
26734 : && (GET_MODE_NUNITS (V64QImode)
26735 : < GET_MODE_PRECISION (SImode))
26736 : && ix86_pre_reload_split ()) &&
26737 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26738 : ( 1)))
26739 : return NULL;
26740 : return gen_split_1517 (insn, operands);
26741 :
26742 : case 76:
26743 : if (!((
26744 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26745 : (TARGET_AVX512BW
26746 : && ix86_pre_reload_split ()
26747 : && (GET_MODE_NUNITS (V16QImode)
26748 : < GET_MODE_PRECISION (SImode))
26749 : && ix86_pre_reload_split ()) &&
26750 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26751 : (TARGET_AVX512VL)) &&
26752 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26753 : ( 1)))
26754 : return NULL;
26755 : return gen_split_1520 (insn, operands);
26756 :
26757 : case 77:
26758 : if (!((
26759 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26760 : (TARGET_AVX512BW
26761 : && ix86_pre_reload_split ()
26762 : && (GET_MODE_NUNITS (V16HImode)
26763 : < GET_MODE_PRECISION (SImode))
26764 : && ix86_pre_reload_split ()) &&
26765 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26766 : (TARGET_AVX512VL)) &&
26767 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26768 : ( 1)))
26769 : return NULL;
26770 : return gen_split_1529 (insn, operands);
26771 :
26772 : case 78:
26773 : if (!(
26774 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26775 : (TARGET_AVX512F
26776 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26777 : && (GET_MODE_NUNITS (V16SImode)
26778 : < GET_MODE_PRECISION (SImode))
26779 : && ix86_pre_reload_split ()) &&
26780 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26781 : ( 1)))
26782 : return NULL;
26783 : return gen_split_1540 (insn, operands);
26784 :
26785 : case 79:
26786 : if (!((
26787 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26788 : (TARGET_AVX512BW
26789 : && ix86_pre_reload_split ()
26790 : && (GET_MODE_NUNITS (V32QImode)
26791 : < GET_MODE_PRECISION (SImode))
26792 : && ix86_pre_reload_split ()) &&
26793 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26794 : (TARGET_AVX512VL)) &&
26795 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26796 : ( 1)))
26797 : return NULL;
26798 : return gen_split_1523 (insn, operands);
26799 :
26800 : case 80:
26801 : if (!(
26802 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26803 : (TARGET_AVX512BW
26804 : && ix86_pre_reload_split ()
26805 : && (GET_MODE_NUNITS (V32HImode)
26806 : < GET_MODE_PRECISION (SImode))
26807 : && ix86_pre_reload_split ()) &&
26808 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26809 : ( 1)))
26810 : return NULL;
26811 : return gen_split_1526 (insn, operands);
26812 :
26813 : case 81:
26814 : if (!((
26815 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26816 : (TARGET_AVX512BW
26817 : && ix86_pre_reload_split ()
26818 : && (GET_MODE_NUNITS (V8HImode)
26819 : < GET_MODE_PRECISION (SImode))
26820 : && ix86_pre_reload_split ()) &&
26821 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26822 : (TARGET_AVX512VL)) &&
26823 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26824 : ( 1)))
26825 : return NULL;
26826 : return gen_split_1532 (insn, operands);
26827 :
26828 : case 82:
26829 : if (!((
26830 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26831 : (TARGET_AVX512F
26832 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26833 : && (GET_MODE_NUNITS (V8SImode)
26834 : < GET_MODE_PRECISION (SImode))
26835 : && ix86_pre_reload_split ()) &&
26836 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26837 : (TARGET_AVX512VL)) &&
26838 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26839 : ( 1)))
26840 : return NULL;
26841 : return gen_split_1541 (insn, operands);
26842 :
26843 : case 83:
26844 : if (!((
26845 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26846 : (TARGET_AVX512F
26847 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26848 : && (GET_MODE_NUNITS (V4SImode)
26849 : < GET_MODE_PRECISION (SImode))
26850 : && ix86_pre_reload_split ()) &&
26851 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26852 : (TARGET_AVX512VL)) &&
26853 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26854 : ( 1)))
26855 : return NULL;
26856 : return gen_split_1542 (insn, operands);
26857 :
26858 : case 84:
26859 : if (!(
26860 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26861 : (TARGET_AVX512F
26862 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26863 : && (GET_MODE_NUNITS (V8DImode)
26864 : < GET_MODE_PRECISION (SImode))
26865 : && ix86_pre_reload_split ()) &&
26866 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26867 : ( 1)))
26868 : return NULL;
26869 : return gen_split_1543 (insn, operands);
26870 :
26871 : case 85:
26872 : if (!((
26873 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26874 : (TARGET_AVX512F
26875 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26876 : && (GET_MODE_NUNITS (V4DImode)
26877 : < GET_MODE_PRECISION (SImode))
26878 : && ix86_pre_reload_split ()) &&
26879 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26880 : (TARGET_AVX512VL)) &&
26881 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26882 : ( 1)))
26883 : return NULL;
26884 : return gen_split_1544 (insn, operands);
26885 :
26886 : case 86:
26887 : if (!((
26888 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26889 : (TARGET_AVX512F
26890 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
26891 : && (GET_MODE_NUNITS (V2DImode)
26892 : < GET_MODE_PRECISION (SImode))
26893 : && ix86_pre_reload_split ()) &&
26894 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26895 : (TARGET_AVX512VL)) &&
26896 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26897 : ( 1)))
26898 : return NULL;
26899 : return gen_split_1545 (insn, operands);
26900 :
26901 : case 87:
26902 : if (!(
26903 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26904 : (TARGET_AVX512BW
26905 : && ix86_pre_reload_split ()
26906 : && (GET_MODE_NUNITS (V64QImode)
26907 : < GET_MODE_PRECISION (DImode))
26908 : && ix86_pre_reload_split ()) &&
26909 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26910 : ( 1)))
26911 : return NULL;
26912 : return gen_split_1518 (insn, operands);
26913 :
26914 : case 88:
26915 : if (!((
26916 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26917 : (TARGET_AVX512BW
26918 : && ix86_pre_reload_split ()
26919 : && (GET_MODE_NUNITS (V16QImode)
26920 : < GET_MODE_PRECISION (DImode))
26921 : && ix86_pre_reload_split ()) &&
26922 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26923 : (TARGET_AVX512VL)) &&
26924 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26925 : ( 1)))
26926 : return NULL;
26927 : return gen_split_1521 (insn, operands);
26928 :
26929 : case 89:
26930 : if (!((
26931 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26932 : (TARGET_AVX512BW
26933 : && ix86_pre_reload_split ()
26934 : && (GET_MODE_NUNITS (V16HImode)
26935 : < GET_MODE_PRECISION (DImode))
26936 : && ix86_pre_reload_split ()) &&
26937 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26938 : (TARGET_AVX512VL)) &&
26939 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26940 : ( 1)))
26941 : return NULL;
26942 : return gen_split_1530 (insn, operands);
26943 :
26944 : case 90:
26945 : if (!(
26946 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26947 : (TARGET_AVX512F
26948 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
26949 : && (GET_MODE_NUNITS (V16SImode)
26950 : < GET_MODE_PRECISION (DImode))
26951 : && ix86_pre_reload_split ()) &&
26952 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26953 : ( 1)))
26954 : return NULL;
26955 : return gen_split_1546 (insn, operands);
26956 :
26957 : case 91:
26958 : if (!((
26959 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26960 : (TARGET_AVX512BW
26961 : && ix86_pre_reload_split ()
26962 : && (GET_MODE_NUNITS (V32QImode)
26963 : < GET_MODE_PRECISION (DImode))
26964 : && ix86_pre_reload_split ()) &&
26965 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26966 : (TARGET_AVX512VL)) &&
26967 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26968 : ( 1)))
26969 : return NULL;
26970 : return gen_split_1524 (insn, operands);
26971 :
26972 : case 92:
26973 : if (!(
26974 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26975 : (TARGET_AVX512BW
26976 : && ix86_pre_reload_split ()
26977 : && (GET_MODE_NUNITS (V32HImode)
26978 : < GET_MODE_PRECISION (DImode))
26979 : && ix86_pre_reload_split ()) &&
26980 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26981 : ( 1)))
26982 : return NULL;
26983 : return gen_split_1527 (insn, operands);
26984 :
26985 : case 93:
26986 : if (!((
26987 : #line 4988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26988 : (TARGET_AVX512BW
26989 : && ix86_pre_reload_split ()
26990 : && (GET_MODE_NUNITS (V8HImode)
26991 : < GET_MODE_PRECISION (DImode))
26992 : && ix86_pre_reload_split ()) &&
26993 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26994 : (TARGET_AVX512VL)) &&
26995 : #line 4994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26996 : ( 1)))
26997 : return NULL;
26998 : return gen_split_1533 (insn, operands);
26999 :
27000 : case 94:
27001 : if (!((
27002 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27003 : (TARGET_AVX512F
27004 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27005 : && (GET_MODE_NUNITS (V8SImode)
27006 : < GET_MODE_PRECISION (DImode))
27007 : && ix86_pre_reload_split ()) &&
27008 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27009 : (TARGET_AVX512VL)) &&
27010 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27011 : ( 1)))
27012 : return NULL;
27013 : return gen_split_1547 (insn, operands);
27014 :
27015 : case 95:
27016 : if (!((
27017 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27018 : (TARGET_AVX512F
27019 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27020 : && (GET_MODE_NUNITS (V4SImode)
27021 : < GET_MODE_PRECISION (DImode))
27022 : && ix86_pre_reload_split ()) &&
27023 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27024 : (TARGET_AVX512VL)) &&
27025 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27026 : ( 1)))
27027 : return NULL;
27028 : return gen_split_1548 (insn, operands);
27029 :
27030 : case 96:
27031 : if (!(
27032 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27033 : (TARGET_AVX512F
27034 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27035 : && (GET_MODE_NUNITS (V8DImode)
27036 : < GET_MODE_PRECISION (DImode))
27037 : && ix86_pre_reload_split ()) &&
27038 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27039 : ( 1)))
27040 : return NULL;
27041 : return gen_split_1549 (insn, operands);
27042 :
27043 : case 97:
27044 : if (!((
27045 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27046 : (TARGET_AVX512F
27047 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27048 : && (GET_MODE_NUNITS (V4DImode)
27049 : < GET_MODE_PRECISION (DImode))
27050 : && ix86_pre_reload_split ()) &&
27051 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27052 : (TARGET_AVX512VL)) &&
27053 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27054 : ( 1)))
27055 : return NULL;
27056 : return gen_split_1550 (insn, operands);
27057 :
27058 : case 98:
27059 : if (!((
27060 : #line 5078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27061 : (TARGET_AVX512F
27062 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
27063 : && (GET_MODE_NUNITS (V2DImode)
27064 : < GET_MODE_PRECISION (DImode))
27065 : && ix86_pre_reload_split ()) &&
27066 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27067 : (TARGET_AVX512VL)) &&
27068 : #line 5084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27069 : ( 1)))
27070 : return NULL;
27071 : return gen_split_1551 (insn, operands);
27072 :
27073 : default:
27074 : return NULL;
27075 : }
27076 :
27077 : default:
27078 : return NULL;
27079 : }
27080 : }
27081 :
27082 : rtx_insn *
27083 : split_68 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27084 : {
27085 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27086 : rtx x2, x3, x4;
27087 : rtx_insn *res ATTRIBUTE_UNUSED;
27088 : x2 = XEXP (x1, 1);
27089 : x3 = XEXP (x2, 0);
27090 : x4 = XEXP (x3, 0);
27091 : switch (GET_CODE (x4))
27092 : {
27093 : case REG:
27094 : case SUBREG:
27095 : case MEM:
27096 : case NOT:
27097 : switch (pattern541 (x2))
27098 : {
27099 : case 0:
27100 : if (!((
27101 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27102 : ((64 == 64 || TARGET_AVX512VL
27103 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27104 : && ix86_pre_reload_split ()
27105 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27106 : STRIP_UNARY (operands[4]))
27107 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27108 : STRIP_UNARY (operands[4]))
27109 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27110 : STRIP_UNARY (operands[3]))
27111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27112 : STRIP_UNARY (operands[3])))) &&
27113 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27114 : (TARGET_AVX512F)) &&
27115 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27116 : ( 1)))
27117 : return NULL;
27118 : return gen_split_2083 (insn, operands);
27119 :
27120 : case 1:
27121 : if (!((
27122 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27123 : ((32 == 64 || TARGET_AVX512VL
27124 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27125 : && ix86_pre_reload_split ()
27126 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27127 : STRIP_UNARY (operands[4]))
27128 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27129 : STRIP_UNARY (operands[4]))
27130 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27131 : STRIP_UNARY (operands[3]))
27132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27133 : STRIP_UNARY (operands[3])))) &&
27134 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27135 : (TARGET_AVX)) &&
27136 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27137 : ( 1)))
27138 : return NULL;
27139 : return gen_split_2110 (insn, operands);
27140 :
27141 : case 2:
27142 : if (!(
27143 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27144 : ((16 == 64 || TARGET_AVX512VL
27145 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27146 : && ix86_pre_reload_split ()
27147 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27148 : STRIP_UNARY (operands[4]))
27149 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27150 : STRIP_UNARY (operands[4]))
27151 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27152 : STRIP_UNARY (operands[3]))
27153 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27154 : STRIP_UNARY (operands[3])))) &&
27155 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27156 : ( 1)))
27157 : return NULL;
27158 : return gen_split_2137 (insn, operands);
27159 :
27160 : case 3:
27161 : if (!((
27162 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27163 : ((64 == 64 || TARGET_AVX512VL
27164 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27165 : && ix86_pre_reload_split ()
27166 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27167 : STRIP_UNARY (operands[4]))
27168 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27169 : STRIP_UNARY (operands[4]))
27170 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27171 : STRIP_UNARY (operands[3]))
27172 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27173 : STRIP_UNARY (operands[3])))) &&
27174 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27175 : (TARGET_AVX512F)) &&
27176 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27177 : ( 1)))
27178 : return NULL;
27179 : return gen_split_2164 (insn, operands);
27180 :
27181 : case 4:
27182 : if (!((
27183 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27184 : ((32 == 64 || TARGET_AVX512VL
27185 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27186 : && ix86_pre_reload_split ()
27187 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27188 : STRIP_UNARY (operands[4]))
27189 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27190 : STRIP_UNARY (operands[4]))
27191 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27192 : STRIP_UNARY (operands[3]))
27193 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27194 : STRIP_UNARY (operands[3])))) &&
27195 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27196 : (TARGET_AVX)) &&
27197 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27198 : ( 1)))
27199 : return NULL;
27200 : return gen_split_2191 (insn, operands);
27201 :
27202 : case 5:
27203 : if (!(
27204 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27205 : ((16 == 64 || TARGET_AVX512VL
27206 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27207 : && ix86_pre_reload_split ()
27208 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27209 : STRIP_UNARY (operands[4]))
27210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27211 : STRIP_UNARY (operands[4]))
27212 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27213 : STRIP_UNARY (operands[3]))
27214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27215 : STRIP_UNARY (operands[3])))) &&
27216 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27217 : ( 1)))
27218 : return NULL;
27219 : return gen_split_2218 (insn, operands);
27220 :
27221 : case 6:
27222 : if (!((
27223 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27224 : ((64 == 64 || TARGET_AVX512VL
27225 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27226 : && ix86_pre_reload_split ()
27227 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27228 : STRIP_UNARY (operands[4]))
27229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27230 : STRIP_UNARY (operands[4]))
27231 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27232 : STRIP_UNARY (operands[3]))
27233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27234 : STRIP_UNARY (operands[3])))) &&
27235 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : (TARGET_AVX512F)) &&
27237 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27238 : ( 1)))
27239 : return NULL;
27240 : return gen_split_2245 (insn, operands);
27241 :
27242 : case 7:
27243 : if (!((
27244 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27245 : ((32 == 64 || TARGET_AVX512VL
27246 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27247 : && ix86_pre_reload_split ()
27248 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27249 : STRIP_UNARY (operands[4]))
27250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27251 : STRIP_UNARY (operands[4]))
27252 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27253 : STRIP_UNARY (operands[3]))
27254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27255 : STRIP_UNARY (operands[3])))) &&
27256 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27257 : (TARGET_AVX)) &&
27258 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27259 : ( 1)))
27260 : return NULL;
27261 : return gen_split_2272 (insn, operands);
27262 :
27263 : case 8:
27264 : if (!(
27265 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27266 : ((16 == 64 || TARGET_AVX512VL
27267 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27268 : && ix86_pre_reload_split ()
27269 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27270 : STRIP_UNARY (operands[4]))
27271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27272 : STRIP_UNARY (operands[4]))
27273 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27274 : STRIP_UNARY (operands[3]))
27275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27276 : STRIP_UNARY (operands[3])))) &&
27277 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27278 : ( 1)))
27279 : return NULL;
27280 : return gen_split_2299 (insn, operands);
27281 :
27282 : case 9:
27283 : if (!((
27284 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27285 : ((64 == 64 || TARGET_AVX512VL
27286 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27287 : && ix86_pre_reload_split ()
27288 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27289 : STRIP_UNARY (operands[4]))
27290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27291 : STRIP_UNARY (operands[4]))
27292 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27293 : STRIP_UNARY (operands[3]))
27294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27295 : STRIP_UNARY (operands[3])))) &&
27296 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27297 : (TARGET_AVX512F)) &&
27298 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27299 : ( 1)))
27300 : return NULL;
27301 : return gen_split_2326 (insn, operands);
27302 :
27303 : case 10:
27304 : if (!((
27305 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27306 : ((32 == 64 || TARGET_AVX512VL
27307 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27308 : && ix86_pre_reload_split ()
27309 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27310 : STRIP_UNARY (operands[4]))
27311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27312 : STRIP_UNARY (operands[4]))
27313 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27314 : STRIP_UNARY (operands[3]))
27315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27316 : STRIP_UNARY (operands[3])))) &&
27317 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : (TARGET_AVX)) &&
27319 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27320 : ( 1)))
27321 : return NULL;
27322 : return gen_split_2353 (insn, operands);
27323 :
27324 : case 11:
27325 : if (!((
27326 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : ((16 == 64 || TARGET_AVX512VL
27328 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27329 : && ix86_pre_reload_split ()
27330 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27331 : STRIP_UNARY (operands[4]))
27332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27333 : STRIP_UNARY (operands[4]))
27334 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27335 : STRIP_UNARY (operands[3]))
27336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27337 : STRIP_UNARY (operands[3])))) &&
27338 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27339 : (TARGET_SSE2)) &&
27340 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27341 : ( 1)))
27342 : return NULL;
27343 : return gen_split_2380 (insn, operands);
27344 :
27345 : case 12:
27346 : if (!((
27347 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27348 : ((64 == 64 || TARGET_AVX512VL
27349 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27350 : && ix86_pre_reload_split ()
27351 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27352 : STRIP_UNARY (operands[4]))
27353 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27354 : STRIP_UNARY (operands[4]))
27355 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27356 : STRIP_UNARY (operands[3]))
27357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27358 : STRIP_UNARY (operands[3])))) &&
27359 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27360 : (TARGET_AVX512F)) &&
27361 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27362 : ( 1)))
27363 : return NULL;
27364 : return gen_split_2086 (insn, operands);
27365 :
27366 : case 13:
27367 : if (!((
27368 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27369 : ((32 == 64 || TARGET_AVX512VL
27370 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27371 : && ix86_pre_reload_split ()
27372 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27373 : STRIP_UNARY (operands[4]))
27374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27375 : STRIP_UNARY (operands[4]))
27376 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27377 : STRIP_UNARY (operands[3]))
27378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27379 : STRIP_UNARY (operands[3])))) &&
27380 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27381 : (TARGET_AVX)) &&
27382 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27383 : ( 1)))
27384 : return NULL;
27385 : return gen_split_2113 (insn, operands);
27386 :
27387 : case 14:
27388 : if (!(
27389 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27390 : ((16 == 64 || TARGET_AVX512VL
27391 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27392 : && ix86_pre_reload_split ()
27393 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27394 : STRIP_UNARY (operands[4]))
27395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27396 : STRIP_UNARY (operands[4]))
27397 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27398 : STRIP_UNARY (operands[3]))
27399 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27400 : STRIP_UNARY (operands[3])))) &&
27401 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27402 : ( 1)))
27403 : return NULL;
27404 : return gen_split_2140 (insn, operands);
27405 :
27406 : case 15:
27407 : if (!((
27408 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27409 : ((64 == 64 || TARGET_AVX512VL
27410 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27411 : && ix86_pre_reload_split ()
27412 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27413 : STRIP_UNARY (operands[4]))
27414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27415 : STRIP_UNARY (operands[4]))
27416 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27417 : STRIP_UNARY (operands[3]))
27418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27419 : STRIP_UNARY (operands[3])))) &&
27420 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27421 : (TARGET_AVX512F)) &&
27422 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27423 : ( 1)))
27424 : return NULL;
27425 : return gen_split_2167 (insn, operands);
27426 :
27427 : case 16:
27428 : if (!((
27429 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27430 : ((32 == 64 || TARGET_AVX512VL
27431 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27432 : && ix86_pre_reload_split ()
27433 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27434 : STRIP_UNARY (operands[4]))
27435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27436 : STRIP_UNARY (operands[4]))
27437 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27438 : STRIP_UNARY (operands[3]))
27439 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27440 : STRIP_UNARY (operands[3])))) &&
27441 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27442 : (TARGET_AVX)) &&
27443 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27444 : ( 1)))
27445 : return NULL;
27446 : return gen_split_2194 (insn, operands);
27447 :
27448 : case 17:
27449 : if (!(
27450 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27451 : ((16 == 64 || TARGET_AVX512VL
27452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27453 : && ix86_pre_reload_split ()
27454 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27455 : STRIP_UNARY (operands[4]))
27456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27457 : STRIP_UNARY (operands[4]))
27458 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27459 : STRIP_UNARY (operands[3]))
27460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27461 : STRIP_UNARY (operands[3])))) &&
27462 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27463 : ( 1)))
27464 : return NULL;
27465 : return gen_split_2221 (insn, operands);
27466 :
27467 : case 18:
27468 : if (!((
27469 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27470 : ((64 == 64 || TARGET_AVX512VL
27471 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27472 : && ix86_pre_reload_split ()
27473 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27474 : STRIP_UNARY (operands[4]))
27475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27476 : STRIP_UNARY (operands[4]))
27477 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27478 : STRIP_UNARY (operands[3]))
27479 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27480 : STRIP_UNARY (operands[3])))) &&
27481 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27482 : (TARGET_AVX512F)) &&
27483 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27484 : ( 1)))
27485 : return NULL;
27486 : return gen_split_2248 (insn, operands);
27487 :
27488 : case 19:
27489 : if (!((
27490 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27491 : ((32 == 64 || TARGET_AVX512VL
27492 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27493 : && ix86_pre_reload_split ()
27494 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27495 : STRIP_UNARY (operands[4]))
27496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27497 : STRIP_UNARY (operands[4]))
27498 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27499 : STRIP_UNARY (operands[3]))
27500 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27501 : STRIP_UNARY (operands[3])))) &&
27502 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27503 : (TARGET_AVX)) &&
27504 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27505 : ( 1)))
27506 : return NULL;
27507 : return gen_split_2275 (insn, operands);
27508 :
27509 : case 20:
27510 : if (!(
27511 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27512 : ((16 == 64 || TARGET_AVX512VL
27513 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27514 : && ix86_pre_reload_split ()
27515 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27516 : STRIP_UNARY (operands[4]))
27517 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27518 : STRIP_UNARY (operands[4]))
27519 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27520 : STRIP_UNARY (operands[3]))
27521 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27522 : STRIP_UNARY (operands[3])))) &&
27523 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27524 : ( 1)))
27525 : return NULL;
27526 : return gen_split_2302 (insn, operands);
27527 :
27528 : case 21:
27529 : if (!((
27530 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27531 : ((64 == 64 || TARGET_AVX512VL
27532 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27533 : && ix86_pre_reload_split ()
27534 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27535 : STRIP_UNARY (operands[4]))
27536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27537 : STRIP_UNARY (operands[4]))
27538 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27539 : STRIP_UNARY (operands[3]))
27540 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27541 : STRIP_UNARY (operands[3])))) &&
27542 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27543 : (TARGET_AVX512F)) &&
27544 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27545 : ( 1)))
27546 : return NULL;
27547 : return gen_split_2329 (insn, operands);
27548 :
27549 : case 22:
27550 : if (!((
27551 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27552 : ((32 == 64 || TARGET_AVX512VL
27553 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27554 : && ix86_pre_reload_split ()
27555 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27556 : STRIP_UNARY (operands[4]))
27557 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27558 : STRIP_UNARY (operands[4]))
27559 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27560 : STRIP_UNARY (operands[3]))
27561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27562 : STRIP_UNARY (operands[3])))) &&
27563 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27564 : (TARGET_AVX)) &&
27565 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27566 : ( 1)))
27567 : return NULL;
27568 : return gen_split_2356 (insn, operands);
27569 :
27570 : case 23:
27571 : if (!((
27572 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27573 : ((16 == 64 || TARGET_AVX512VL
27574 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27575 : && ix86_pre_reload_split ()
27576 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27577 : STRIP_UNARY (operands[4]))
27578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27579 : STRIP_UNARY (operands[4]))
27580 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27581 : STRIP_UNARY (operands[3]))
27582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27583 : STRIP_UNARY (operands[3])))) &&
27584 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27585 : (TARGET_SSE2)) &&
27586 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27587 : ( 1)))
27588 : return NULL;
27589 : return gen_split_2383 (insn, operands);
27590 :
27591 : case 24:
27592 : if (!((
27593 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27594 : ((64 == 64 || TARGET_AVX512VL
27595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27596 : && ix86_pre_reload_split ()
27597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27598 : STRIP_UNARY (operands[4]))
27599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27600 : STRIP_UNARY (operands[4]))
27601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27602 : STRIP_UNARY (operands[3]))
27603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27604 : STRIP_UNARY (operands[3])))) &&
27605 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27606 : (TARGET_AVX512F)) &&
27607 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27608 : ( 1)))
27609 : return NULL;
27610 : return gen_split_2089 (insn, operands);
27611 :
27612 : case 25:
27613 : if (!((
27614 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27615 : ((32 == 64 || TARGET_AVX512VL
27616 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27617 : && ix86_pre_reload_split ()
27618 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27619 : STRIP_UNARY (operands[4]))
27620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27621 : STRIP_UNARY (operands[4]))
27622 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27623 : STRIP_UNARY (operands[3]))
27624 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27625 : STRIP_UNARY (operands[3])))) &&
27626 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27627 : (TARGET_AVX)) &&
27628 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27629 : ( 1)))
27630 : return NULL;
27631 : return gen_split_2116 (insn, operands);
27632 :
27633 : case 26:
27634 : if (!(
27635 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27636 : ((16 == 64 || TARGET_AVX512VL
27637 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27638 : && ix86_pre_reload_split ()
27639 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27640 : STRIP_UNARY (operands[4]))
27641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27642 : STRIP_UNARY (operands[4]))
27643 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27644 : STRIP_UNARY (operands[3]))
27645 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27646 : STRIP_UNARY (operands[3])))) &&
27647 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27648 : ( 1)))
27649 : return NULL;
27650 : return gen_split_2143 (insn, operands);
27651 :
27652 : case 27:
27653 : if (!((
27654 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27655 : ((64 == 64 || TARGET_AVX512VL
27656 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27657 : && ix86_pre_reload_split ()
27658 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27659 : STRIP_UNARY (operands[4]))
27660 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27661 : STRIP_UNARY (operands[4]))
27662 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27663 : STRIP_UNARY (operands[3]))
27664 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27665 : STRIP_UNARY (operands[3])))) &&
27666 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27667 : (TARGET_AVX512F)) &&
27668 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27669 : ( 1)))
27670 : return NULL;
27671 : return gen_split_2170 (insn, operands);
27672 :
27673 : case 28:
27674 : if (!((
27675 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27676 : ((32 == 64 || TARGET_AVX512VL
27677 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27678 : && ix86_pre_reload_split ()
27679 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27680 : STRIP_UNARY (operands[4]))
27681 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27682 : STRIP_UNARY (operands[4]))
27683 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27684 : STRIP_UNARY (operands[3]))
27685 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27686 : STRIP_UNARY (operands[3])))) &&
27687 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27688 : (TARGET_AVX)) &&
27689 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27690 : ( 1)))
27691 : return NULL;
27692 : return gen_split_2197 (insn, operands);
27693 :
27694 : case 29:
27695 : if (!(
27696 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27697 : ((16 == 64 || TARGET_AVX512VL
27698 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27699 : && ix86_pre_reload_split ()
27700 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27701 : STRIP_UNARY (operands[4]))
27702 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27703 : STRIP_UNARY (operands[4]))
27704 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27705 : STRIP_UNARY (operands[3]))
27706 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27707 : STRIP_UNARY (operands[3])))) &&
27708 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27709 : ( 1)))
27710 : return NULL;
27711 : return gen_split_2224 (insn, operands);
27712 :
27713 : case 30:
27714 : if (!((
27715 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27716 : ((64 == 64 || TARGET_AVX512VL
27717 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27718 : && ix86_pre_reload_split ()
27719 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27720 : STRIP_UNARY (operands[4]))
27721 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27722 : STRIP_UNARY (operands[4]))
27723 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27724 : STRIP_UNARY (operands[3]))
27725 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27726 : STRIP_UNARY (operands[3])))) &&
27727 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27728 : (TARGET_AVX512F)) &&
27729 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27730 : ( 1)))
27731 : return NULL;
27732 : return gen_split_2251 (insn, operands);
27733 :
27734 : case 31:
27735 : if (!((
27736 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27737 : ((32 == 64 || TARGET_AVX512VL
27738 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27739 : && ix86_pre_reload_split ()
27740 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27741 : STRIP_UNARY (operands[4]))
27742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27743 : STRIP_UNARY (operands[4]))
27744 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27745 : STRIP_UNARY (operands[3]))
27746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27747 : STRIP_UNARY (operands[3])))) &&
27748 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27749 : (TARGET_AVX)) &&
27750 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27751 : ( 1)))
27752 : return NULL;
27753 : return gen_split_2278 (insn, operands);
27754 :
27755 : case 32:
27756 : if (!(
27757 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27758 : ((16 == 64 || TARGET_AVX512VL
27759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27760 : && ix86_pre_reload_split ()
27761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27762 : STRIP_UNARY (operands[4]))
27763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27764 : STRIP_UNARY (operands[4]))
27765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27766 : STRIP_UNARY (operands[3]))
27767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27768 : STRIP_UNARY (operands[3])))) &&
27769 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27770 : ( 1)))
27771 : return NULL;
27772 : return gen_split_2305 (insn, operands);
27773 :
27774 : case 33:
27775 : if (!((
27776 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27777 : ((64 == 64 || TARGET_AVX512VL
27778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27779 : && ix86_pre_reload_split ()
27780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27781 : STRIP_UNARY (operands[4]))
27782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27783 : STRIP_UNARY (operands[4]))
27784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27785 : STRIP_UNARY (operands[3]))
27786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27787 : STRIP_UNARY (operands[3])))) &&
27788 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27789 : (TARGET_AVX512F)) &&
27790 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27791 : ( 1)))
27792 : return NULL;
27793 : return gen_split_2332 (insn, operands);
27794 :
27795 : case 34:
27796 : if (!((
27797 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27798 : ((32 == 64 || TARGET_AVX512VL
27799 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27800 : && ix86_pre_reload_split ()
27801 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27802 : STRIP_UNARY (operands[4]))
27803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27804 : STRIP_UNARY (operands[4]))
27805 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27806 : STRIP_UNARY (operands[3]))
27807 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27808 : STRIP_UNARY (operands[3])))) &&
27809 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27810 : (TARGET_AVX)) &&
27811 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27812 : ( 1)))
27813 : return NULL;
27814 : return gen_split_2359 (insn, operands);
27815 :
27816 : case 35:
27817 : if (!((
27818 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27819 : ((16 == 64 || TARGET_AVX512VL
27820 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27821 : && ix86_pre_reload_split ()
27822 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27823 : STRIP_UNARY (operands[4]))
27824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27825 : STRIP_UNARY (operands[4]))
27826 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27827 : STRIP_UNARY (operands[3]))
27828 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27829 : STRIP_UNARY (operands[3])))) &&
27830 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27831 : (TARGET_SSE2)) &&
27832 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27833 : ( 1)))
27834 : return NULL;
27835 : return gen_split_2386 (insn, operands);
27836 :
27837 : case 36:
27838 : if (!((
27839 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27840 : ((64 == 64 || TARGET_AVX512VL
27841 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27842 : && ix86_pre_reload_split ()) &&
27843 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27844 : (TARGET_AVX512F)) &&
27845 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27846 : ( 1)))
27847 : return NULL;
27848 : return gen_split_3151 (insn, operands);
27849 :
27850 : case 37:
27851 : if (!((
27852 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27853 : ((32 == 64 || TARGET_AVX512VL
27854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27855 : && ix86_pre_reload_split ()) &&
27856 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27857 : (TARGET_AVX)) &&
27858 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27859 : ( 1)))
27860 : return NULL;
27861 : return gen_split_3160 (insn, operands);
27862 :
27863 : case 38:
27864 : if (!(
27865 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27866 : ((16 == 64 || TARGET_AVX512VL
27867 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27868 : && ix86_pre_reload_split ()) &&
27869 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27870 : ( 1)))
27871 : return NULL;
27872 : return gen_split_3169 (insn, operands);
27873 :
27874 : case 39:
27875 : if (!((
27876 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27877 : ((64 == 64 || TARGET_AVX512VL
27878 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27879 : && ix86_pre_reload_split ()) &&
27880 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27881 : (TARGET_AVX512F)) &&
27882 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27883 : ( 1)))
27884 : return NULL;
27885 : return gen_split_3178 (insn, operands);
27886 :
27887 : case 40:
27888 : if (!((
27889 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27890 : ((32 == 64 || TARGET_AVX512VL
27891 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27892 : && ix86_pre_reload_split ()) &&
27893 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27894 : (TARGET_AVX)) &&
27895 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27896 : ( 1)))
27897 : return NULL;
27898 : return gen_split_3187 (insn, operands);
27899 :
27900 : case 41:
27901 : if (!(
27902 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27903 : ((16 == 64 || TARGET_AVX512VL
27904 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27905 : && ix86_pre_reload_split ()) &&
27906 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27907 : ( 1)))
27908 : return NULL;
27909 : return gen_split_3196 (insn, operands);
27910 :
27911 : case 42:
27912 : if (!((
27913 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27914 : ((64 == 64 || TARGET_AVX512VL
27915 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27916 : && ix86_pre_reload_split ()) &&
27917 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27918 : (TARGET_AVX512F)) &&
27919 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27920 : ( 1)))
27921 : return NULL;
27922 : return gen_split_3205 (insn, operands);
27923 :
27924 : case 43:
27925 : if (!((
27926 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27927 : ((32 == 64 || TARGET_AVX512VL
27928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27929 : && ix86_pre_reload_split ()) &&
27930 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27931 : (TARGET_AVX)) &&
27932 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27933 : ( 1)))
27934 : return NULL;
27935 : return gen_split_3214 (insn, operands);
27936 :
27937 : case 44:
27938 : if (!(
27939 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27940 : ((16 == 64 || TARGET_AVX512VL
27941 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27942 : && ix86_pre_reload_split ()) &&
27943 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27944 : ( 1)))
27945 : return NULL;
27946 : return gen_split_3223 (insn, operands);
27947 :
27948 : case 45:
27949 : if (!((
27950 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27951 : ((64 == 64 || TARGET_AVX512VL
27952 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27953 : && ix86_pre_reload_split ()) &&
27954 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27955 : (TARGET_AVX512F)) &&
27956 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27957 : ( 1)))
27958 : return NULL;
27959 : return gen_split_3232 (insn, operands);
27960 :
27961 : case 46:
27962 : if (!((
27963 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27964 : ((32 == 64 || TARGET_AVX512VL
27965 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27966 : && ix86_pre_reload_split ()) &&
27967 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27968 : (TARGET_AVX)) &&
27969 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27970 : ( 1)))
27971 : return NULL;
27972 : return gen_split_3241 (insn, operands);
27973 :
27974 : case 47:
27975 : if (!((
27976 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27977 : ((16 == 64 || TARGET_AVX512VL
27978 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27979 : && ix86_pre_reload_split ()) &&
27980 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27981 : (TARGET_SSE2)) &&
27982 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27983 : ( 1)))
27984 : return NULL;
27985 : return gen_split_3250 (insn, operands);
27986 :
27987 : default:
27988 : return NULL;
27989 : }
27990 :
27991 : case AND:
27992 : switch (pattern542 (x2))
27993 : {
27994 : case 0:
27995 : if (!((
27996 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27997 : ((64 == 64 || TARGET_AVX512VL
27998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27999 : && ix86_pre_reload_split ()
28000 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28001 : STRIP_UNARY (operands[4]))
28002 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28003 : STRIP_UNARY (operands[4]))
28004 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28005 : STRIP_UNARY (operands[3]))
28006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28007 : STRIP_UNARY (operands[3])))) &&
28008 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28009 : (TARGET_AVX512F)) &&
28010 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28011 : ( 1)))
28012 : return NULL;
28013 : return gen_split_2731 (insn, operands);
28014 :
28015 : case 1:
28016 : if (!((
28017 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28018 : ((32 == 64 || TARGET_AVX512VL
28019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28020 : && ix86_pre_reload_split ()
28021 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28022 : STRIP_UNARY (operands[4]))
28023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28024 : STRIP_UNARY (operands[4]))
28025 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28026 : STRIP_UNARY (operands[3]))
28027 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28028 : STRIP_UNARY (operands[3])))) &&
28029 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28030 : (TARGET_AVX)) &&
28031 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28032 : ( 1)))
28033 : return NULL;
28034 : return gen_split_2758 (insn, operands);
28035 :
28036 : case 2:
28037 : if (!(
28038 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28039 : ((16 == 64 || TARGET_AVX512VL
28040 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28041 : && ix86_pre_reload_split ()
28042 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28043 : STRIP_UNARY (operands[4]))
28044 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28045 : STRIP_UNARY (operands[4]))
28046 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28047 : STRIP_UNARY (operands[3]))
28048 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28049 : STRIP_UNARY (operands[3])))) &&
28050 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28051 : ( 1)))
28052 : return NULL;
28053 : return gen_split_2785 (insn, operands);
28054 :
28055 : case 3:
28056 : if (!((
28057 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28058 : ((64 == 64 || TARGET_AVX512VL
28059 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28060 : && ix86_pre_reload_split ()
28061 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28062 : STRIP_UNARY (operands[4]))
28063 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28064 : STRIP_UNARY (operands[4]))
28065 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28066 : STRIP_UNARY (operands[3]))
28067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28068 : STRIP_UNARY (operands[3])))) &&
28069 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28070 : (TARGET_AVX512F)) &&
28071 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28072 : ( 1)))
28073 : return NULL;
28074 : return gen_split_2812 (insn, operands);
28075 :
28076 : case 4:
28077 : if (!((
28078 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28079 : ((32 == 64 || TARGET_AVX512VL
28080 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28081 : && ix86_pre_reload_split ()
28082 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28083 : STRIP_UNARY (operands[4]))
28084 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28085 : STRIP_UNARY (operands[4]))
28086 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28087 : STRIP_UNARY (operands[3]))
28088 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28089 : STRIP_UNARY (operands[3])))) &&
28090 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28091 : (TARGET_AVX)) &&
28092 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28093 : ( 1)))
28094 : return NULL;
28095 : return gen_split_2839 (insn, operands);
28096 :
28097 : case 5:
28098 : if (!(
28099 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28100 : ((16 == 64 || TARGET_AVX512VL
28101 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28102 : && ix86_pre_reload_split ()
28103 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28104 : STRIP_UNARY (operands[4]))
28105 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28106 : STRIP_UNARY (operands[4]))
28107 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28108 : STRIP_UNARY (operands[3]))
28109 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28110 : STRIP_UNARY (operands[3])))) &&
28111 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28112 : ( 1)))
28113 : return NULL;
28114 : return gen_split_2866 (insn, operands);
28115 :
28116 : case 6:
28117 : if (!((
28118 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28119 : ((64 == 64 || TARGET_AVX512VL
28120 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28121 : && ix86_pre_reload_split ()
28122 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28123 : STRIP_UNARY (operands[4]))
28124 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28125 : STRIP_UNARY (operands[4]))
28126 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28127 : STRIP_UNARY (operands[3]))
28128 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28129 : STRIP_UNARY (operands[3])))) &&
28130 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28131 : (TARGET_AVX512F)) &&
28132 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28133 : ( 1)))
28134 : return NULL;
28135 : return gen_split_2893 (insn, operands);
28136 :
28137 : case 7:
28138 : if (!((
28139 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28140 : ((32 == 64 || TARGET_AVX512VL
28141 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28142 : && ix86_pre_reload_split ()
28143 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28144 : STRIP_UNARY (operands[4]))
28145 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28146 : STRIP_UNARY (operands[4]))
28147 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28148 : STRIP_UNARY (operands[3]))
28149 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28150 : STRIP_UNARY (operands[3])))) &&
28151 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : (TARGET_AVX)) &&
28153 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : ( 1)))
28155 : return NULL;
28156 : return gen_split_2920 (insn, operands);
28157 :
28158 : case 8:
28159 : if (!(
28160 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28161 : ((16 == 64 || TARGET_AVX512VL
28162 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28163 : && ix86_pre_reload_split ()
28164 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28165 : STRIP_UNARY (operands[4]))
28166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28167 : STRIP_UNARY (operands[4]))
28168 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28169 : STRIP_UNARY (operands[3]))
28170 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28171 : STRIP_UNARY (operands[3])))) &&
28172 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ( 1)))
28174 : return NULL;
28175 : return gen_split_2947 (insn, operands);
28176 :
28177 : case 9:
28178 : if (!((
28179 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28180 : ((64 == 64 || TARGET_AVX512VL
28181 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28182 : && ix86_pre_reload_split ()
28183 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28184 : STRIP_UNARY (operands[4]))
28185 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28186 : STRIP_UNARY (operands[4]))
28187 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28188 : STRIP_UNARY (operands[3]))
28189 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28190 : STRIP_UNARY (operands[3])))) &&
28191 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28192 : (TARGET_AVX512F)) &&
28193 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28194 : ( 1)))
28195 : return NULL;
28196 : return gen_split_2974 (insn, operands);
28197 :
28198 : case 10:
28199 : if (!((
28200 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28201 : ((32 == 64 || TARGET_AVX512VL
28202 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28203 : && ix86_pre_reload_split ()
28204 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28205 : STRIP_UNARY (operands[4]))
28206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28207 : STRIP_UNARY (operands[4]))
28208 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28209 : STRIP_UNARY (operands[3]))
28210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28211 : STRIP_UNARY (operands[3])))) &&
28212 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28213 : (TARGET_AVX)) &&
28214 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : ( 1)))
28216 : return NULL;
28217 : return gen_split_3001 (insn, operands);
28218 :
28219 : case 11:
28220 : if (!((
28221 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28222 : ((16 == 64 || TARGET_AVX512VL
28223 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28224 : && ix86_pre_reload_split ()
28225 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28226 : STRIP_UNARY (operands[4]))
28227 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28228 : STRIP_UNARY (operands[4]))
28229 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28230 : STRIP_UNARY (operands[3]))
28231 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28232 : STRIP_UNARY (operands[3])))) &&
28233 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28234 : (TARGET_SSE2)) &&
28235 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28236 : ( 1)))
28237 : return NULL;
28238 : return gen_split_3028 (insn, operands);
28239 :
28240 : default:
28241 : return NULL;
28242 : }
28243 :
28244 : case IOR:
28245 : switch (pattern542 (x2))
28246 : {
28247 : case 0:
28248 : if (!((
28249 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28250 : ((64 == 64 || TARGET_AVX512VL
28251 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28252 : && ix86_pre_reload_split ()
28253 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28254 : STRIP_UNARY (operands[4]))
28255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28256 : STRIP_UNARY (operands[4]))
28257 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28258 : STRIP_UNARY (operands[3]))
28259 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28260 : STRIP_UNARY (operands[3])))) &&
28261 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28262 : (TARGET_AVX512F)) &&
28263 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28264 : ( 1)))
28265 : return NULL;
28266 : return gen_split_2734 (insn, operands);
28267 :
28268 : case 1:
28269 : if (!((
28270 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28271 : ((32 == 64 || TARGET_AVX512VL
28272 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28273 : && ix86_pre_reload_split ()
28274 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28275 : STRIP_UNARY (operands[4]))
28276 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28277 : STRIP_UNARY (operands[4]))
28278 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28279 : STRIP_UNARY (operands[3]))
28280 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28281 : STRIP_UNARY (operands[3])))) &&
28282 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28283 : (TARGET_AVX)) &&
28284 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28285 : ( 1)))
28286 : return NULL;
28287 : return gen_split_2761 (insn, operands);
28288 :
28289 : case 2:
28290 : if (!(
28291 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28292 : ((16 == 64 || TARGET_AVX512VL
28293 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28294 : && ix86_pre_reload_split ()
28295 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28296 : STRIP_UNARY (operands[4]))
28297 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28298 : STRIP_UNARY (operands[4]))
28299 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28300 : STRIP_UNARY (operands[3]))
28301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28302 : STRIP_UNARY (operands[3])))) &&
28303 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28304 : ( 1)))
28305 : return NULL;
28306 : return gen_split_2788 (insn, operands);
28307 :
28308 : case 3:
28309 : if (!((
28310 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28311 : ((64 == 64 || TARGET_AVX512VL
28312 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28313 : && ix86_pre_reload_split ()
28314 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28315 : STRIP_UNARY (operands[4]))
28316 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28317 : STRIP_UNARY (operands[4]))
28318 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28319 : STRIP_UNARY (operands[3]))
28320 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28321 : STRIP_UNARY (operands[3])))) &&
28322 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28323 : (TARGET_AVX512F)) &&
28324 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28325 : ( 1)))
28326 : return NULL;
28327 : return gen_split_2815 (insn, operands);
28328 :
28329 : case 4:
28330 : if (!((
28331 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28332 : ((32 == 64 || TARGET_AVX512VL
28333 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28334 : && ix86_pre_reload_split ()
28335 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28336 : STRIP_UNARY (operands[4]))
28337 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28338 : STRIP_UNARY (operands[4]))
28339 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28340 : STRIP_UNARY (operands[3]))
28341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28342 : STRIP_UNARY (operands[3])))) &&
28343 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28344 : (TARGET_AVX)) &&
28345 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28346 : ( 1)))
28347 : return NULL;
28348 : return gen_split_2842 (insn, operands);
28349 :
28350 : case 5:
28351 : if (!(
28352 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28353 : ((16 == 64 || TARGET_AVX512VL
28354 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28355 : && ix86_pre_reload_split ()
28356 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28357 : STRIP_UNARY (operands[4]))
28358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28359 : STRIP_UNARY (operands[4]))
28360 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28361 : STRIP_UNARY (operands[3]))
28362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28363 : STRIP_UNARY (operands[3])))) &&
28364 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28365 : ( 1)))
28366 : return NULL;
28367 : return gen_split_2869 (insn, operands);
28368 :
28369 : case 6:
28370 : if (!((
28371 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28372 : ((64 == 64 || TARGET_AVX512VL
28373 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28374 : && ix86_pre_reload_split ()
28375 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28376 : STRIP_UNARY (operands[4]))
28377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28378 : STRIP_UNARY (operands[4]))
28379 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28380 : STRIP_UNARY (operands[3]))
28381 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28382 : STRIP_UNARY (operands[3])))) &&
28383 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28384 : (TARGET_AVX512F)) &&
28385 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28386 : ( 1)))
28387 : return NULL;
28388 : return gen_split_2896 (insn, operands);
28389 :
28390 : case 7:
28391 : if (!((
28392 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28393 : ((32 == 64 || TARGET_AVX512VL
28394 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28395 : && ix86_pre_reload_split ()
28396 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28397 : STRIP_UNARY (operands[4]))
28398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28399 : STRIP_UNARY (operands[4]))
28400 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28401 : STRIP_UNARY (operands[3]))
28402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28403 : STRIP_UNARY (operands[3])))) &&
28404 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28405 : (TARGET_AVX)) &&
28406 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28407 : ( 1)))
28408 : return NULL;
28409 : return gen_split_2923 (insn, operands);
28410 :
28411 : case 8:
28412 : if (!(
28413 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28414 : ((16 == 64 || TARGET_AVX512VL
28415 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28416 : && ix86_pre_reload_split ()
28417 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28418 : STRIP_UNARY (operands[4]))
28419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28420 : STRIP_UNARY (operands[4]))
28421 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28422 : STRIP_UNARY (operands[3]))
28423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28424 : STRIP_UNARY (operands[3])))) &&
28425 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28426 : ( 1)))
28427 : return NULL;
28428 : return gen_split_2950 (insn, operands);
28429 :
28430 : case 9:
28431 : if (!((
28432 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28433 : ((64 == 64 || TARGET_AVX512VL
28434 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28435 : && ix86_pre_reload_split ()
28436 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28437 : STRIP_UNARY (operands[4]))
28438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28439 : STRIP_UNARY (operands[4]))
28440 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28441 : STRIP_UNARY (operands[3]))
28442 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28443 : STRIP_UNARY (operands[3])))) &&
28444 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28445 : (TARGET_AVX512F)) &&
28446 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28447 : ( 1)))
28448 : return NULL;
28449 : return gen_split_2977 (insn, operands);
28450 :
28451 : case 10:
28452 : if (!((
28453 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28454 : ((32 == 64 || TARGET_AVX512VL
28455 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28456 : && ix86_pre_reload_split ()
28457 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28458 : STRIP_UNARY (operands[4]))
28459 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28460 : STRIP_UNARY (operands[4]))
28461 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28462 : STRIP_UNARY (operands[3]))
28463 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28464 : STRIP_UNARY (operands[3])))) &&
28465 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28466 : (TARGET_AVX)) &&
28467 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28468 : ( 1)))
28469 : return NULL;
28470 : return gen_split_3004 (insn, operands);
28471 :
28472 : case 11:
28473 : if (!((
28474 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28475 : ((16 == 64 || TARGET_AVX512VL
28476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28477 : && ix86_pre_reload_split ()
28478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28479 : STRIP_UNARY (operands[4]))
28480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28481 : STRIP_UNARY (operands[4]))
28482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28483 : STRIP_UNARY (operands[3]))
28484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28485 : STRIP_UNARY (operands[3])))) &&
28486 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28487 : (TARGET_SSE2)) &&
28488 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28489 : ( 1)))
28490 : return NULL;
28491 : return gen_split_3031 (insn, operands);
28492 :
28493 : default:
28494 : return NULL;
28495 : }
28496 :
28497 : case XOR:
28498 : switch (pattern542 (x2))
28499 : {
28500 : case 0:
28501 : if (!((
28502 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28503 : ((64 == 64 || TARGET_AVX512VL
28504 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28505 : && ix86_pre_reload_split ()
28506 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28507 : STRIP_UNARY (operands[4]))
28508 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28509 : STRIP_UNARY (operands[4]))
28510 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28511 : STRIP_UNARY (operands[3]))
28512 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28513 : STRIP_UNARY (operands[3])))) &&
28514 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28515 : (TARGET_AVX512F)) &&
28516 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28517 : ( 1)))
28518 : return NULL;
28519 : return gen_split_2737 (insn, operands);
28520 :
28521 : case 1:
28522 : if (!((
28523 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28524 : ((32 == 64 || TARGET_AVX512VL
28525 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28526 : && ix86_pre_reload_split ()
28527 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28528 : STRIP_UNARY (operands[4]))
28529 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28530 : STRIP_UNARY (operands[4]))
28531 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28532 : STRIP_UNARY (operands[3]))
28533 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28534 : STRIP_UNARY (operands[3])))) &&
28535 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28536 : (TARGET_AVX)) &&
28537 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28538 : ( 1)))
28539 : return NULL;
28540 : return gen_split_2764 (insn, operands);
28541 :
28542 : case 2:
28543 : if (!(
28544 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28545 : ((16 == 64 || TARGET_AVX512VL
28546 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28547 : && ix86_pre_reload_split ()
28548 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28549 : STRIP_UNARY (operands[4]))
28550 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28551 : STRIP_UNARY (operands[4]))
28552 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28553 : STRIP_UNARY (operands[3]))
28554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28555 : STRIP_UNARY (operands[3])))) &&
28556 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28557 : ( 1)))
28558 : return NULL;
28559 : return gen_split_2791 (insn, operands);
28560 :
28561 : case 3:
28562 : if (!((
28563 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28564 : ((64 == 64 || TARGET_AVX512VL
28565 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28566 : && ix86_pre_reload_split ()
28567 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28568 : STRIP_UNARY (operands[4]))
28569 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28570 : STRIP_UNARY (operands[4]))
28571 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28572 : STRIP_UNARY (operands[3]))
28573 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28574 : STRIP_UNARY (operands[3])))) &&
28575 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28576 : (TARGET_AVX512F)) &&
28577 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28578 : ( 1)))
28579 : return NULL;
28580 : return gen_split_2818 (insn, operands);
28581 :
28582 : case 4:
28583 : if (!((
28584 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28585 : ((32 == 64 || TARGET_AVX512VL
28586 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28587 : && ix86_pre_reload_split ()
28588 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28589 : STRIP_UNARY (operands[4]))
28590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28591 : STRIP_UNARY (operands[4]))
28592 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28593 : STRIP_UNARY (operands[3]))
28594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28595 : STRIP_UNARY (operands[3])))) &&
28596 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28597 : (TARGET_AVX)) &&
28598 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28599 : ( 1)))
28600 : return NULL;
28601 : return gen_split_2845 (insn, operands);
28602 :
28603 : case 5:
28604 : if (!(
28605 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28606 : ((16 == 64 || TARGET_AVX512VL
28607 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28608 : && ix86_pre_reload_split ()
28609 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28610 : STRIP_UNARY (operands[4]))
28611 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28612 : STRIP_UNARY (operands[4]))
28613 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28614 : STRIP_UNARY (operands[3]))
28615 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28616 : STRIP_UNARY (operands[3])))) &&
28617 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28618 : ( 1)))
28619 : return NULL;
28620 : return gen_split_2872 (insn, operands);
28621 :
28622 : case 6:
28623 : if (!((
28624 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28625 : ((64 == 64 || TARGET_AVX512VL
28626 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28627 : && ix86_pre_reload_split ()
28628 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28629 : STRIP_UNARY (operands[4]))
28630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28631 : STRIP_UNARY (operands[4]))
28632 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28633 : STRIP_UNARY (operands[3]))
28634 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28635 : STRIP_UNARY (operands[3])))) &&
28636 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28637 : (TARGET_AVX512F)) &&
28638 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28639 : ( 1)))
28640 : return NULL;
28641 : return gen_split_2899 (insn, operands);
28642 :
28643 : case 7:
28644 : if (!((
28645 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28646 : ((32 == 64 || TARGET_AVX512VL
28647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28648 : && ix86_pre_reload_split ()
28649 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28650 : STRIP_UNARY (operands[4]))
28651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28652 : STRIP_UNARY (operands[4]))
28653 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28654 : STRIP_UNARY (operands[3]))
28655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28656 : STRIP_UNARY (operands[3])))) &&
28657 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28658 : (TARGET_AVX)) &&
28659 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28660 : ( 1)))
28661 : return NULL;
28662 : return gen_split_2926 (insn, operands);
28663 :
28664 : case 8:
28665 : if (!(
28666 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28667 : ((16 == 64 || TARGET_AVX512VL
28668 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28669 : && ix86_pre_reload_split ()
28670 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28671 : STRIP_UNARY (operands[4]))
28672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28673 : STRIP_UNARY (operands[4]))
28674 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28675 : STRIP_UNARY (operands[3]))
28676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28677 : STRIP_UNARY (operands[3])))) &&
28678 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28679 : ( 1)))
28680 : return NULL;
28681 : return gen_split_2953 (insn, operands);
28682 :
28683 : case 9:
28684 : if (!((
28685 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28686 : ((64 == 64 || TARGET_AVX512VL
28687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28688 : && ix86_pre_reload_split ()
28689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28690 : STRIP_UNARY (operands[4]))
28691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28692 : STRIP_UNARY (operands[4]))
28693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28694 : STRIP_UNARY (operands[3]))
28695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28696 : STRIP_UNARY (operands[3])))) &&
28697 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28698 : (TARGET_AVX512F)) &&
28699 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28700 : ( 1)))
28701 : return NULL;
28702 : return gen_split_2980 (insn, operands);
28703 :
28704 : case 10:
28705 : if (!((
28706 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28707 : ((32 == 64 || TARGET_AVX512VL
28708 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28709 : && ix86_pre_reload_split ()
28710 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28711 : STRIP_UNARY (operands[4]))
28712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28713 : STRIP_UNARY (operands[4]))
28714 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28715 : STRIP_UNARY (operands[3]))
28716 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28717 : STRIP_UNARY (operands[3])))) &&
28718 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28719 : (TARGET_AVX)) &&
28720 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28721 : ( 1)))
28722 : return NULL;
28723 : return gen_split_3007 (insn, operands);
28724 :
28725 : case 11:
28726 : if (!((
28727 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28728 : ((16 == 64 || TARGET_AVX512VL
28729 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28730 : && ix86_pre_reload_split ()
28731 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28732 : STRIP_UNARY (operands[4]))
28733 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28734 : STRIP_UNARY (operands[4]))
28735 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28736 : STRIP_UNARY (operands[3]))
28737 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28738 : STRIP_UNARY (operands[3])))) &&
28739 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28740 : (TARGET_SSE2)) &&
28741 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28742 : ( 1)))
28743 : return NULL;
28744 : return gen_split_3034 (insn, operands);
28745 :
28746 : default:
28747 : return NULL;
28748 : }
28749 :
28750 : default:
28751 : return NULL;
28752 : }
28753 : }
28754 :
28755 : rtx_insn *
28756 : split_76 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28757 : {
28758 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28759 : rtx x2, x3, x4, x5;
28760 : rtx_insn *res ATTRIBUTE_UNUSED;
28761 : x2 = XEXP (x1, 1);
28762 : x3 = XEXP (x2, 1);
28763 : x4 = XVECEXP (x3, 0, 0);
28764 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
28765 : return NULL;
28766 : x5 = XVECEXP (x3, 0, 1);
28767 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
28768 : return NULL;
28769 : switch (GET_MODE (operands[0]))
28770 : {
28771 : case E_V2DFmode:
28772 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
28773 : || GET_MODE (x2) != E_V2DFmode)
28774 : return NULL;
28775 : switch (GET_MODE (operands[1]))
28776 : {
28777 : case E_V8DFmode:
28778 : if (!register_operand (operands[1], E_V8DFmode)
28779 : || !
28780 : #line 12798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28781 : (TARGET_AVX512DQ
28782 : && reload_completed
28783 : && (TARGET_AVX512VL
28784 : || REG_P (operands[0])
28785 : || !EXT_REX_SSE_REG_P (operands[1]))))
28786 : return NULL;
28787 : return gen_split_1641 (insn, operands);
28788 :
28789 : case E_V4DFmode:
28790 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
28791 : || !
28792 : #line 13214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28793 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28794 : && reload_completed))
28795 : return NULL;
28796 : return gen_split_1650 (insn, operands);
28797 :
28798 : default:
28799 : return NULL;
28800 : }
28801 :
28802 : case E_V2DImode:
28803 : if (!nonimmediate_operand (operands[0], E_V2DImode)
28804 : || GET_MODE (x2) != E_V2DImode)
28805 : return NULL;
28806 : switch (GET_MODE (operands[1]))
28807 : {
28808 : case E_V8DImode:
28809 : if (!register_operand (operands[1], E_V8DImode)
28810 : || !
28811 : #line 12798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28812 : (TARGET_AVX512DQ
28813 : && reload_completed
28814 : && (TARGET_AVX512VL
28815 : || REG_P (operands[0])
28816 : || !EXT_REX_SSE_REG_P (operands[1]))))
28817 : return NULL;
28818 : return gen_split_1642 (insn, operands);
28819 :
28820 : case E_V4DImode:
28821 : if (!nonimmediate_operand (operands[1], E_V4DImode)
28822 : || !
28823 : #line 13214 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28824 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28825 : && reload_completed))
28826 : return NULL;
28827 : return gen_split_1649 (insn, operands);
28828 :
28829 : default:
28830 : return NULL;
28831 : }
28832 :
28833 : default:
28834 : return NULL;
28835 : }
28836 : }
28837 :
28838 : rtx_insn *
28839 : split_78 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28840 : {
28841 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28842 : rtx x2, x3, x4, x5, x6, x7;
28843 : rtx_insn *res ATTRIBUTE_UNUSED;
28844 : x2 = XEXP (x1, 1);
28845 : x3 = XEXP (x2, 1);
28846 : if (pattern845 (x3) != 0)
28847 : return NULL;
28848 : x4 = XVECEXP (x3, 0, 4);
28849 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
28850 : return NULL;
28851 : x5 = XVECEXP (x3, 0, 5);
28852 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
28853 : return NULL;
28854 : x6 = XVECEXP (x3, 0, 6);
28855 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
28856 : return NULL;
28857 : x7 = XVECEXP (x3, 0, 7);
28858 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
28859 : return NULL;
28860 : switch (pattern1545 (x2))
28861 : {
28862 : case 0:
28863 : if (!
28864 : #line 13166 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28865 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28866 : && reload_completed
28867 : && (TARGET_AVX512VL
28868 : || REG_P (operands[0])
28869 : || !EXT_REX_SSE_REG_P (operands[1]))))
28870 : return NULL;
28871 : return gen_split_1647 (insn, operands);
28872 :
28873 : case 1:
28874 : if (!
28875 : #line 13166 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28876 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28877 : && reload_completed
28878 : && (TARGET_AVX512VL
28879 : || REG_P (operands[0])
28880 : || !EXT_REX_SSE_REG_P (operands[1]))))
28881 : return NULL;
28882 : return gen_split_1648 (insn, operands);
28883 :
28884 : case 2:
28885 : if (!(
28886 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28887 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28888 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28889 : ( reload_completed)))
28890 : return NULL;
28891 : return gen_split_1656 (insn, operands);
28892 :
28893 : case 3:
28894 : if (!(
28895 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28896 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28897 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28898 : ( reload_completed)))
28899 : return NULL;
28900 : return gen_split_1657 (insn, operands);
28901 :
28902 : case 4:
28903 : if (!(
28904 : #line 13406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28905 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28906 : #line 13408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28907 : ( reload_completed)))
28908 : return NULL;
28909 : return gen_split_1658 (insn, operands);
28910 :
28911 : default:
28912 : return NULL;
28913 : }
28914 : }
28915 :
28916 : rtx_insn *
28917 : split_80 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28918 : {
28919 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28920 : rtx x2, x3, x4, x5, x6, x7;
28921 : rtx_insn *res ATTRIBUTE_UNUSED;
28922 : x2 = XEXP (x1, 1);
28923 : x3 = XEXP (x2, 1);
28924 : switch (GET_CODE (x3))
28925 : {
28926 : case VEC_SELECT:
28927 : if (GET_MODE (x3) != E_DFmode)
28928 : return NULL;
28929 : x4 = XEXP (x3, 1);
28930 : if (GET_CODE (x4) != PARALLEL
28931 : || XVECLEN (x4, 0) != 1)
28932 : return NULL;
28933 : x5 = XVECEXP (x4, 0, 0);
28934 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
28935 : || !memory_operand (operands[0], E_V2DFmode)
28936 : || GET_MODE (x2) != E_V2DFmode
28937 : || !register_operand (operands[1], E_DFmode))
28938 : return NULL;
28939 : x6 = XEXP (x3, 0);
28940 : if (!rtx_equal_p (x6, operands[0])
28941 : || !
28942 : #line 15161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28943 : (TARGET_SSE2 && reload_completed))
28944 : return NULL;
28945 : return gen_split_3258 (insn, operands);
28946 :
28947 : case UNSPEC:
28948 : if (XVECLEN (x3, 0) != 1
28949 : || XINT (x3, 1) != 148)
28950 : return NULL;
28951 : x7 = XVECEXP (x3, 0, 0);
28952 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
28953 : return NULL;
28954 : switch (GET_MODE (operands[0]))
28955 : {
28956 : case E_V8SImode:
28957 : if (pattern1041 (x2,
28958 : E_V4SImode,
28959 : E_V8SImode) != 0
28960 : || !(
28961 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28962 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28963 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28964 : ( reload_completed)))
28965 : return NULL;
28966 : return gen_split_3875 (insn, operands);
28967 :
28968 : case E_V8SFmode:
28969 : if (pattern1041 (x2,
28970 : E_V4SFmode,
28971 : E_V8SFmode) != 0
28972 : || !(
28973 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28974 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28975 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28976 : ( reload_completed)))
28977 : return NULL;
28978 : return gen_split_3876 (insn, operands);
28979 :
28980 : case E_V4DFmode:
28981 : if (pattern1041 (x2,
28982 : E_V2DFmode,
28983 : E_V4DFmode) != 0
28984 : || !(
28985 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28986 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28987 : #line 29516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28988 : ( reload_completed)))
28989 : return NULL;
28990 : return gen_split_3877 (insn, operands);
28991 :
28992 : case E_V16SImode:
28993 : if (pattern1041 (x2,
28994 : E_V8SImode,
28995 : E_V16SImode) != 0
28996 : || !(
28997 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28998 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
28999 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29000 : ( reload_completed)))
29001 : return NULL;
29002 : return gen_split_3923 (insn, operands);
29003 :
29004 : case E_V16SFmode:
29005 : if (pattern1041 (x2,
29006 : E_V8SFmode,
29007 : E_V16SFmode) != 0
29008 : || !(
29009 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29010 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29011 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29012 : ( reload_completed)))
29013 : return NULL;
29014 : return gen_split_3924 (insn, operands);
29015 :
29016 : case E_V8DFmode:
29017 : if (pattern1041 (x2,
29018 : E_V4DFmode,
29019 : E_V8DFmode) != 0
29020 : || !(
29021 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29022 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29023 : #line 30858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29024 : ( reload_completed)))
29025 : return NULL;
29026 : return gen_split_3925 (insn, operands);
29027 :
29028 : default:
29029 : return NULL;
29030 : }
29031 :
29032 : default:
29033 : return NULL;
29034 : }
29035 : }
29036 :
29037 : rtx_insn *
29038 : split_84 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29039 : {
29040 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29041 : rtx_insn *res ATTRIBUTE_UNUSED;
29042 : switch (GET_MODE (operands[0]))
29043 : {
29044 : case E_V64QImode:
29045 : if (!register_operand (operands[0], E_V64QImode))
29046 : return NULL;
29047 : if (int_float_vector_all_ones_operand (operands[1], E_V64QImode)
29048 : && (
29049 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29050 : (TARGET_AVX512F && reload_completed
29051 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29052 : && optimize_insn_for_speed_p ()) &&
29053 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29054 : (TARGET_AVX512F)))
29055 : return gen_split_1173 (insn, operands);
29056 : if (!ternlog_operand (operands[1], E_V64QImode)
29057 : || !((
29058 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29059 : ((64 == 64 || TARGET_AVX512VL
29060 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29061 : && ix86_pre_reload_split ()) &&
29062 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29063 : (TARGET_AVX512F)) &&
29064 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29065 : ( 1)))
29066 : return NULL;
29067 : return gen_split_1717 (insn, operands);
29068 :
29069 : case E_V32QImode:
29070 : if (!register_operand (operands[0], E_V32QImode))
29071 : return NULL;
29072 : if (int_float_vector_all_ones_operand (operands[1], E_V32QImode)
29073 : && (
29074 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29075 : (TARGET_AVX512F && reload_completed
29076 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29077 : && optimize_insn_for_speed_p ()) &&
29078 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29079 : (TARGET_AVX)))
29080 : return gen_split_1174 (insn, operands);
29081 : if (!ternlog_operand (operands[1], E_V32QImode)
29082 : || !((
29083 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29084 : ((32 == 64 || TARGET_AVX512VL
29085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29086 : && ix86_pre_reload_split ()) &&
29087 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29088 : (TARGET_AVX)) &&
29089 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29090 : ( 1)))
29091 : return NULL;
29092 : return gen_split_1718 (insn, operands);
29093 :
29094 : case E_V16QImode:
29095 : if (!register_operand (operands[0], E_V16QImode))
29096 : return NULL;
29097 : if (int_float_vector_all_ones_operand (operands[1], E_V16QImode)
29098 : &&
29099 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29100 : (TARGET_AVX512F && reload_completed
29101 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29102 : && optimize_insn_for_speed_p ()))
29103 : return gen_split_1175 (insn, operands);
29104 : if (!ternlog_operand (operands[1], E_V16QImode)
29105 : || !(
29106 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29107 : ((16 == 64 || TARGET_AVX512VL
29108 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29109 : && ix86_pre_reload_split ()) &&
29110 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29111 : ( 1)))
29112 : return NULL;
29113 : return gen_split_1719 (insn, operands);
29114 :
29115 : case E_V32HImode:
29116 : if (!register_operand (operands[0], E_V32HImode))
29117 : return NULL;
29118 : if (int_float_vector_all_ones_operand (operands[1], E_V32HImode)
29119 : && (
29120 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29121 : (TARGET_AVX512F && reload_completed
29122 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29123 : && optimize_insn_for_speed_p ()) &&
29124 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29125 : (TARGET_AVX512F)))
29126 : return gen_split_1176 (insn, operands);
29127 : if (!ternlog_operand (operands[1], E_V32HImode)
29128 : || !((
29129 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29130 : ((64 == 64 || TARGET_AVX512VL
29131 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29132 : && ix86_pre_reload_split ()) &&
29133 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29134 : (TARGET_AVX512F)) &&
29135 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29136 : ( 1)))
29137 : return NULL;
29138 : return gen_split_1720 (insn, operands);
29139 :
29140 : case E_V16HImode:
29141 : if (!register_operand (operands[0], E_V16HImode))
29142 : return NULL;
29143 : if (int_float_vector_all_ones_operand (operands[1], E_V16HImode)
29144 : && (
29145 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29146 : (TARGET_AVX512F && reload_completed
29147 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29148 : && optimize_insn_for_speed_p ()) &&
29149 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29150 : (TARGET_AVX)))
29151 : return gen_split_1177 (insn, operands);
29152 : if (!ternlog_operand (operands[1], E_V16HImode)
29153 : || !((
29154 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29155 : ((32 == 64 || TARGET_AVX512VL
29156 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29157 : && ix86_pre_reload_split ()) &&
29158 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29159 : (TARGET_AVX)) &&
29160 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29161 : ( 1)))
29162 : return NULL;
29163 : return gen_split_1721 (insn, operands);
29164 :
29165 : case E_V8HImode:
29166 : if (!register_operand (operands[0], E_V8HImode))
29167 : return NULL;
29168 : if (int_float_vector_all_ones_operand (operands[1], E_V8HImode)
29169 : &&
29170 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29171 : (TARGET_AVX512F && reload_completed
29172 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29173 : && optimize_insn_for_speed_p ()))
29174 : return gen_split_1178 (insn, operands);
29175 : if (!ternlog_operand (operands[1], E_V8HImode)
29176 : || !(
29177 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29178 : ((16 == 64 || TARGET_AVX512VL
29179 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29180 : && ix86_pre_reload_split ()) &&
29181 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29182 : ( 1)))
29183 : return NULL;
29184 : return gen_split_1722 (insn, operands);
29185 :
29186 : case E_V16SImode:
29187 : if (!register_operand (operands[0], E_V16SImode))
29188 : return NULL;
29189 : if (int_float_vector_all_ones_operand (operands[1], E_V16SImode)
29190 : && (
29191 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29192 : (TARGET_AVX512F && reload_completed
29193 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29194 : && optimize_insn_for_speed_p ()) &&
29195 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29196 : (TARGET_AVX512F)))
29197 : return gen_split_1179 (insn, operands);
29198 : if (!ternlog_operand (operands[1], E_V16SImode)
29199 : || !((
29200 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29201 : ((64 == 64 || TARGET_AVX512VL
29202 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29203 : && ix86_pre_reload_split ()) &&
29204 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29205 : (TARGET_AVX512F)) &&
29206 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29207 : ( 1)))
29208 : return NULL;
29209 : return gen_split_1723 (insn, operands);
29210 :
29211 : case E_V8SImode:
29212 : if (!register_operand (operands[0], E_V8SImode))
29213 : return NULL;
29214 : if (int_float_vector_all_ones_operand (operands[1], E_V8SImode)
29215 : && (
29216 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29217 : (TARGET_AVX512F && reload_completed
29218 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29219 : && optimize_insn_for_speed_p ()) &&
29220 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29221 : (TARGET_AVX)))
29222 : return gen_split_1180 (insn, operands);
29223 : if (!ternlog_operand (operands[1], E_V8SImode)
29224 : || !((
29225 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29226 : ((32 == 64 || TARGET_AVX512VL
29227 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29228 : && ix86_pre_reload_split ()) &&
29229 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29230 : (TARGET_AVX)) &&
29231 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29232 : ( 1)))
29233 : return NULL;
29234 : return gen_split_1724 (insn, operands);
29235 :
29236 : case E_V4SImode:
29237 : if (!register_operand (operands[0], E_V4SImode))
29238 : return NULL;
29239 : if (int_float_vector_all_ones_operand (operands[1], E_V4SImode)
29240 : &&
29241 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29242 : (TARGET_AVX512F && reload_completed
29243 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29244 : && optimize_insn_for_speed_p ()))
29245 : return gen_split_1181 (insn, operands);
29246 : if (!ternlog_operand (operands[1], E_V4SImode)
29247 : || !(
29248 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29249 : ((16 == 64 || TARGET_AVX512VL
29250 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29251 : && ix86_pre_reload_split ()) &&
29252 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29253 : ( 1)))
29254 : return NULL;
29255 : return gen_split_1725 (insn, operands);
29256 :
29257 : case E_V8DImode:
29258 : if (!register_operand (operands[0], E_V8DImode))
29259 : return NULL;
29260 : if (int_float_vector_all_ones_operand (operands[1], E_V8DImode)
29261 : && (
29262 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29263 : (TARGET_AVX512F && reload_completed
29264 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29265 : && optimize_insn_for_speed_p ()) &&
29266 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29267 : (TARGET_AVX512F)))
29268 : return gen_split_1182 (insn, operands);
29269 : if (!ternlog_operand (operands[1], E_V8DImode)
29270 : || !((
29271 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29272 : ((64 == 64 || TARGET_AVX512VL
29273 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29274 : && ix86_pre_reload_split ()) &&
29275 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29276 : (TARGET_AVX512F)) &&
29277 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29278 : ( 1)))
29279 : return NULL;
29280 : return gen_split_1726 (insn, operands);
29281 :
29282 : case E_V4DImode:
29283 : if (!register_operand (operands[0], E_V4DImode))
29284 : return NULL;
29285 : if (int_float_vector_all_ones_operand (operands[1], E_V4DImode)
29286 : && (
29287 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29288 : (TARGET_AVX512F && reload_completed
29289 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29290 : && optimize_insn_for_speed_p ()) &&
29291 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29292 : (TARGET_AVX)))
29293 : return gen_split_1183 (insn, operands);
29294 : if (!ternlog_operand (operands[1], E_V4DImode)
29295 : || !((
29296 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29297 : ((32 == 64 || TARGET_AVX512VL
29298 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29299 : && ix86_pre_reload_split ()) &&
29300 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29301 : (TARGET_AVX)) &&
29302 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29303 : ( 1)))
29304 : return NULL;
29305 : return gen_split_1727 (insn, operands);
29306 :
29307 : case E_V2DImode:
29308 : if (!register_operand (operands[0], E_V2DImode))
29309 : return NULL;
29310 : if (int_float_vector_all_ones_operand (operands[1], E_V2DImode)
29311 : &&
29312 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29313 : (TARGET_AVX512F && reload_completed
29314 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29315 : && optimize_insn_for_speed_p ()))
29316 : return gen_split_1184 (insn, operands);
29317 : if (!ternlog_operand (operands[1], E_V2DImode)
29318 : || !(
29319 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29320 : ((16 == 64 || TARGET_AVX512VL
29321 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29322 : && ix86_pre_reload_split ()) &&
29323 : #line 14076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29324 : ( 1)))
29325 : return NULL;
29326 : return gen_split_1728 (insn, operands);
29327 :
29328 : case E_V4TImode:
29329 : if (!register_operand (operands[0], E_V4TImode)
29330 : || !int_float_vector_all_ones_operand (operands[1], E_V4TImode)
29331 : || !(
29332 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29333 : (TARGET_AVX512F && reload_completed
29334 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29335 : && optimize_insn_for_speed_p ()) &&
29336 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29337 : (TARGET_AVX512F)))
29338 : return NULL;
29339 : return gen_split_1185 (insn, operands);
29340 :
29341 : case E_V2TImode:
29342 : if (!register_operand (operands[0], E_V2TImode)
29343 : || !int_float_vector_all_ones_operand (operands[1], E_V2TImode)
29344 : || !(
29345 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29346 : (TARGET_AVX512F && reload_completed
29347 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29348 : && optimize_insn_for_speed_p ()) &&
29349 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29350 : (TARGET_AVX)))
29351 : return NULL;
29352 : return gen_split_1186 (insn, operands);
29353 :
29354 : case E_V1TImode:
29355 : if (!register_operand (operands[0], E_V1TImode)
29356 : || !int_float_vector_all_ones_operand (operands[1], E_V1TImode)
29357 : || !
29358 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29359 : (TARGET_AVX512F && reload_completed
29360 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29361 : && optimize_insn_for_speed_p ()))
29362 : return NULL;
29363 : return gen_split_1187 (insn, operands);
29364 :
29365 : case E_V32HFmode:
29366 : if (!register_operand (operands[0], E_V32HFmode)
29367 : || !int_float_vector_all_ones_operand (operands[1], E_V32HFmode)
29368 : || !(
29369 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29370 : (TARGET_AVX512F && reload_completed
29371 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29372 : && optimize_insn_for_speed_p ()) &&
29373 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29374 : (TARGET_AVX512F)))
29375 : return NULL;
29376 : return gen_split_1188 (insn, operands);
29377 :
29378 : case E_V16HFmode:
29379 : if (!register_operand (operands[0], E_V16HFmode)
29380 : || !int_float_vector_all_ones_operand (operands[1], E_V16HFmode)
29381 : || !(
29382 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29383 : (TARGET_AVX512F && reload_completed
29384 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29385 : && optimize_insn_for_speed_p ()) &&
29386 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29387 : (TARGET_AVX)))
29388 : return NULL;
29389 : return gen_split_1189 (insn, operands);
29390 :
29391 : case E_V8HFmode:
29392 : if (!register_operand (operands[0], E_V8HFmode)
29393 : || !int_float_vector_all_ones_operand (operands[1], E_V8HFmode)
29394 : || !
29395 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29396 : (TARGET_AVX512F && reload_completed
29397 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29398 : && optimize_insn_for_speed_p ()))
29399 : return NULL;
29400 : return gen_split_1190 (insn, operands);
29401 :
29402 : case E_V32BFmode:
29403 : if (!register_operand (operands[0], E_V32BFmode)
29404 : || !int_float_vector_all_ones_operand (operands[1], E_V32BFmode)
29405 : || !(
29406 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29407 : (TARGET_AVX512F && reload_completed
29408 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29409 : && optimize_insn_for_speed_p ()) &&
29410 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29411 : (TARGET_AVX512F)))
29412 : return NULL;
29413 : return gen_split_1191 (insn, operands);
29414 :
29415 : case E_V16BFmode:
29416 : if (!register_operand (operands[0], E_V16BFmode)
29417 : || !int_float_vector_all_ones_operand (operands[1], E_V16BFmode)
29418 : || !(
29419 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29420 : (TARGET_AVX512F && reload_completed
29421 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29422 : && optimize_insn_for_speed_p ()) &&
29423 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29424 : (TARGET_AVX)))
29425 : return NULL;
29426 : return gen_split_1192 (insn, operands);
29427 :
29428 : case E_V8BFmode:
29429 : if (!register_operand (operands[0], E_V8BFmode)
29430 : || !int_float_vector_all_ones_operand (operands[1], E_V8BFmode)
29431 : || !
29432 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29433 : (TARGET_AVX512F && reload_completed
29434 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29435 : && optimize_insn_for_speed_p ()))
29436 : return NULL;
29437 : return gen_split_1193 (insn, operands);
29438 :
29439 : case E_V16SFmode:
29440 : if (!register_operand (operands[0], E_V16SFmode)
29441 : || !int_float_vector_all_ones_operand (operands[1], E_V16SFmode)
29442 : || !(
29443 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29444 : (TARGET_AVX512F && reload_completed
29445 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29446 : && optimize_insn_for_speed_p ()) &&
29447 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29448 : (TARGET_AVX512F)))
29449 : return NULL;
29450 : return gen_split_1194 (insn, operands);
29451 :
29452 : case E_V8SFmode:
29453 : if (!register_operand (operands[0], E_V8SFmode)
29454 : || !int_float_vector_all_ones_operand (operands[1], E_V8SFmode)
29455 : || !(
29456 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29457 : (TARGET_AVX512F && reload_completed
29458 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29459 : && optimize_insn_for_speed_p ()) &&
29460 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29461 : (TARGET_AVX)))
29462 : return NULL;
29463 : return gen_split_1195 (insn, operands);
29464 :
29465 : case E_V4SFmode:
29466 : if (!register_operand (operands[0], E_V4SFmode))
29467 : return NULL;
29468 : if (int_float_vector_all_ones_operand (operands[1], E_V4SFmode)
29469 : &&
29470 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29471 : (TARGET_AVX512F && reload_completed
29472 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29473 : && optimize_insn_for_speed_p ()))
29474 : return gen_split_1196 (insn, operands);
29475 : if (!zero_extended_scalar_load_operand (operands[1], E_V4SFmode)
29476 : || !
29477 : #line 1938 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29478 : (TARGET_SSE && reload_completed))
29479 : return NULL;
29480 : return gen_split_1231 (insn, operands);
29481 :
29482 : case E_V8DFmode:
29483 : if (!register_operand (operands[0], E_V8DFmode)
29484 : || !int_float_vector_all_ones_operand (operands[1], E_V8DFmode)
29485 : || !(
29486 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29487 : (TARGET_AVX512F && reload_completed
29488 : && (64 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29489 : && optimize_insn_for_speed_p ()) &&
29490 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29491 : (TARGET_AVX512F)))
29492 : return NULL;
29493 : return gen_split_1197 (insn, operands);
29494 :
29495 : case E_V4DFmode:
29496 : if (!register_operand (operands[0], E_V4DFmode)
29497 : || !int_float_vector_all_ones_operand (operands[1], E_V4DFmode)
29498 : || !(
29499 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29500 : (TARGET_AVX512F && reload_completed
29501 : && (32 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29502 : && optimize_insn_for_speed_p ()) &&
29503 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29504 : (TARGET_AVX)))
29505 : return NULL;
29506 : return gen_split_1198 (insn, operands);
29507 :
29508 : case E_V2DFmode:
29509 : if (!register_operand (operands[0], E_V2DFmode))
29510 : return NULL;
29511 : if (int_float_vector_all_ones_operand (operands[1], E_V2DFmode)
29512 : &&
29513 : #line 1542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29514 : (TARGET_AVX512F && reload_completed
29515 : && (16 == 64 || EXT_REX_SSE_REG_P (operands[0]))
29516 : && optimize_insn_for_speed_p ()))
29517 : return gen_split_1199 (insn, operands);
29518 : if (!zero_extended_scalar_load_operand (operands[1], E_V2DFmode)
29519 : || !
29520 : #line 1952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29521 : (TARGET_SSE2 && reload_completed))
29522 : return NULL;
29523 : return gen_split_1232 (insn, operands);
29524 :
29525 : default:
29526 : return NULL;
29527 : }
29528 : }
29529 :
29530 : rtx_insn *
29531 : split_88 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29532 : {
29533 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29534 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
29535 : rtx x10, x11, x12, x13, x14, x15, x16;
29536 : rtx_insn *res ATTRIBUTE_UNUSED;
29537 : switch (XVECLEN (x1, 0))
29538 : {
29539 : case 2:
29540 : x2 = XVECEXP (x1, 0, 0);
29541 : if (GET_CODE (x2) != SET)
29542 : return NULL;
29543 : x3 = XEXP (x2, 1);
29544 : switch (GET_CODE (x3))
29545 : {
29546 : case UNSPEC:
29547 : x4 = XVECEXP (x1, 0, 1);
29548 : if (GET_CODE (x4) != CLOBBER)
29549 : return NULL;
29550 : x5 = XEXP (x2, 0);
29551 : operands[0] = x5;
29552 : switch (XVECLEN (x3, 0))
29553 : {
29554 : case 1:
29555 : x6 = XVECEXP (x3, 0, 0);
29556 : operands[1] = x6;
29557 : switch (XINT (x3, 1))
29558 : {
29559 : case 75:
29560 : if (pattern1070 (x1) != 0
29561 : || !(
29562 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29563 : (TARGET_USE_FANCY_MATH_387
29564 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
29565 : && ix86_pre_reload_split ()) &&
29566 : #line 25601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29567 : ( 1)))
29568 : return NULL;
29569 : return gen_split_937 (insn, operands);
29570 :
29571 : case 76:
29572 : if (pattern1070 (x1) != 0
29573 : || !(
29574 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29575 : (TARGET_USE_FANCY_MATH_387
29576 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
29577 : && ix86_pre_reload_split ()) &&
29578 : #line 25601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29579 : ( 1)))
29580 : return NULL;
29581 : return gen_split_938 (insn, operands);
29582 :
29583 : case 77:
29584 : if (pattern1070 (x1) != 0
29585 : || !(
29586 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29587 : (TARGET_USE_FANCY_MATH_387
29588 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
29589 : && ix86_pre_reload_split ()) &&
29590 : #line 25601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29591 : ( 1)))
29592 : return NULL;
29593 : return gen_split_939 (insn, operands);
29594 :
29595 : case 78:
29596 : if (pattern1070 (x1) != 0
29597 : || !(
29598 : #line 25597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29599 : (TARGET_USE_FANCY_MATH_387
29600 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
29601 : && ix86_pre_reload_split ()) &&
29602 : #line 25601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29603 : ( 1)))
29604 : return NULL;
29605 : return gen_split_940 (insn, operands);
29606 :
29607 : case 79:
29608 : switch (pattern1071 (x1))
29609 : {
29610 : case 0:
29611 : if (!(
29612 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29613 : (TARGET_USE_FANCY_MATH_387
29614 : && flag_unsafe_math_optimizations
29615 : && ix86_pre_reload_split ()) &&
29616 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29617 : ( 1)))
29618 : return NULL;
29619 : return gen_split_941 (insn, operands);
29620 :
29621 : case 1:
29622 : if (!(
29623 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29624 : (TARGET_USE_FANCY_MATH_387
29625 : && flag_unsafe_math_optimizations
29626 : && ix86_pre_reload_split ()) &&
29627 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29628 : ( 1)))
29629 : return NULL;
29630 : return gen_split_943 (insn, operands);
29631 :
29632 : case 2:
29633 : if (!(
29634 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29635 : (TARGET_USE_FANCY_MATH_387
29636 : && flag_unsafe_math_optimizations
29637 : && ix86_pre_reload_split ()) &&
29638 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29639 : ( 1)))
29640 : return NULL;
29641 : return gen_split_945 (insn, operands);
29642 :
29643 : default:
29644 : return NULL;
29645 : }
29646 :
29647 : case 80:
29648 : switch (pattern1071 (x1))
29649 : {
29650 : case 0:
29651 : if (!(
29652 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29653 : (TARGET_USE_FANCY_MATH_387
29654 : && flag_unsafe_math_optimizations
29655 : && ix86_pre_reload_split ()) &&
29656 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29657 : ( 1)))
29658 : return NULL;
29659 : return gen_split_942 (insn, operands);
29660 :
29661 : case 1:
29662 : if (!(
29663 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29664 : (TARGET_USE_FANCY_MATH_387
29665 : && flag_unsafe_math_optimizations
29666 : && ix86_pre_reload_split ()) &&
29667 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29668 : ( 1)))
29669 : return NULL;
29670 : return gen_split_944 (insn, operands);
29671 :
29672 : case 2:
29673 : if (!(
29674 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29675 : (TARGET_USE_FANCY_MATH_387
29676 : && flag_unsafe_math_optimizations
29677 : && ix86_pre_reload_split ()) &&
29678 : #line 25718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29679 : ( 1)))
29680 : return NULL;
29681 : return gen_split_946 (insn, operands);
29682 :
29683 : default:
29684 : return NULL;
29685 : }
29686 :
29687 : case 119:
29688 : if (GET_MODE (x3) != E_V4SImode
29689 : || !register_operand (operands[0], E_V4SImode)
29690 : || !nonimmediate_operand (operands[1], E_DImode))
29691 : return NULL;
29692 : x7 = XEXP (x4, 0);
29693 : operands[2] = x7;
29694 : if (!scratch_operand (operands[2], E_V4SImode)
29695 : || !(
29696 : #line 1903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29697 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC) &&
29698 : #line 1905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29699 : ( reload_completed)))
29700 : return NULL;
29701 : return gen_split_1230 (insn, operands);
29702 :
29703 : default:
29704 : return NULL;
29705 : }
29706 :
29707 : case 3:
29708 : if (XINT (x3, 1) != 53
29709 : || GET_MODE (x3) != E_V8QImode
29710 : || pattern938 (x1) != 0
29711 : || !
29712 : #line 23510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29713 : (TARGET_SSSE3 && reload_completed
29714 : && SSE_REGNO_P (REGNO (operands[0]))))
29715 : return NULL;
29716 : return gen_split_3562 (insn, operands);
29717 :
29718 : default:
29719 : return NULL;
29720 : }
29721 :
29722 : case SMAX:
29723 : switch (pattern410 (x1))
29724 : {
29725 : case 0:
29726 : if (((
29727 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29728 : (TARGET_CMOVE
29729 : && ix86_pre_reload_split ()) &&
29730 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29731 : (!TARGET_64BIT)) &&
29732 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29733 : ( 1)))
29734 : return gen_split_969 (insn, operands);
29735 : if (!((
29736 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29737 : (TARGET_CMOVE
29738 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
29739 : && ix86_pre_reload_split ()) &&
29740 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29741 : (TARGET_64BIT)) &&
29742 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29743 : ( 1)))
29744 : return NULL;
29745 : return gen_split_989 (insn, operands);
29746 :
29747 : case 1:
29748 : if (!((
29749 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29750 : (TARGET_CMOVE
29751 : && ix86_pre_reload_split ()) &&
29752 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29753 : (TARGET_64BIT)) &&
29754 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29755 : ( 1)))
29756 : return NULL;
29757 : return gen_split_973 (insn, operands);
29758 :
29759 : case 2:
29760 : if (!(
29761 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29762 : (TARGET_CMOVE
29763 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
29764 : && ix86_pre_reload_split ()) &&
29765 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29766 : ( 1)))
29767 : return NULL;
29768 : return gen_split_977 (insn, operands);
29769 :
29770 : case 3:
29771 : if (!(
29772 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29773 : (TARGET_CMOVE
29774 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
29775 : && ix86_pre_reload_split ()) &&
29776 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29777 : ( 1)))
29778 : return NULL;
29779 : return gen_split_981 (insn, operands);
29780 :
29781 : case 4:
29782 : if (!(
29783 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29784 : (TARGET_CMOVE
29785 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
29786 : && ix86_pre_reload_split ()) &&
29787 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29788 : ( 1)))
29789 : return NULL;
29790 : return gen_split_985 (insn, operands);
29791 :
29792 : default:
29793 : return NULL;
29794 : }
29795 :
29796 : case SMIN:
29797 : switch (pattern410 (x1))
29798 : {
29799 : case 0:
29800 : if (((
29801 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29802 : (TARGET_CMOVE
29803 : && ix86_pre_reload_split ()) &&
29804 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29805 : (!TARGET_64BIT)) &&
29806 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29807 : ( 1)))
29808 : return gen_split_970 (insn, operands);
29809 : if (!((
29810 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29811 : (TARGET_CMOVE
29812 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
29813 : && ix86_pre_reload_split ()) &&
29814 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29815 : (TARGET_64BIT)) &&
29816 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29817 : ( 1)))
29818 : return NULL;
29819 : return gen_split_990 (insn, operands);
29820 :
29821 : case 1:
29822 : if (!((
29823 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29824 : (TARGET_CMOVE
29825 : && ix86_pre_reload_split ()) &&
29826 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29827 : (TARGET_64BIT)) &&
29828 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29829 : ( 1)))
29830 : return NULL;
29831 : return gen_split_974 (insn, operands);
29832 :
29833 : case 2:
29834 : if (!(
29835 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29836 : (TARGET_CMOVE
29837 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
29838 : && ix86_pre_reload_split ()) &&
29839 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29840 : ( 1)))
29841 : return NULL;
29842 : return gen_split_978 (insn, operands);
29843 :
29844 : case 3:
29845 : if (!(
29846 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29847 : (TARGET_CMOVE
29848 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
29849 : && ix86_pre_reload_split ()) &&
29850 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29851 : ( 1)))
29852 : return NULL;
29853 : return gen_split_982 (insn, operands);
29854 :
29855 : case 4:
29856 : if (!(
29857 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29858 : (TARGET_CMOVE
29859 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
29860 : && ix86_pre_reload_split ()) &&
29861 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29862 : ( 1)))
29863 : return NULL;
29864 : return gen_split_986 (insn, operands);
29865 :
29866 : default:
29867 : return NULL;
29868 : }
29869 :
29870 : case UMAX:
29871 : switch (pattern220 (x1))
29872 : {
29873 : case 0:
29874 : if (((
29875 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29876 : (TARGET_CMOVE
29877 : && ix86_pre_reload_split ()) &&
29878 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29879 : (!TARGET_64BIT)) &&
29880 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29881 : ( 1)))
29882 : return gen_split_971 (insn, operands);
29883 : if (!((
29884 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29885 : (TARGET_CMOVE
29886 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
29887 : && ix86_pre_reload_split ()) &&
29888 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29889 : (TARGET_64BIT)) &&
29890 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29891 : ( 1)))
29892 : return NULL;
29893 : return gen_split_991 (insn, operands);
29894 :
29895 : case 1:
29896 : if (!((
29897 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29898 : (TARGET_CMOVE
29899 : && ix86_pre_reload_split ()) &&
29900 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29901 : (TARGET_64BIT)) &&
29902 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29903 : ( 1)))
29904 : return NULL;
29905 : return gen_split_975 (insn, operands);
29906 :
29907 : case 2:
29908 : if (!(
29909 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29910 : (TARGET_CMOVE
29911 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
29912 : && ix86_pre_reload_split ()) &&
29913 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29914 : ( 1)))
29915 : return NULL;
29916 : return gen_split_979 (insn, operands);
29917 :
29918 : case 3:
29919 : if (!(
29920 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29921 : (TARGET_CMOVE
29922 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
29923 : && ix86_pre_reload_split ()) &&
29924 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29925 : ( 1)))
29926 : return NULL;
29927 : return gen_split_983 (insn, operands);
29928 :
29929 : case 4:
29930 : if (!(
29931 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29932 : (TARGET_CMOVE
29933 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
29934 : && ix86_pre_reload_split ()) &&
29935 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29936 : ( 1)))
29937 : return NULL;
29938 : return gen_split_987 (insn, operands);
29939 :
29940 : case 5:
29941 : x8 = XEXP (x3, 1);
29942 : if (rtx_equal_p (x8, operands[1])
29943 : && (
29944 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29945 : (TARGET_CMOVE
29946 : && ix86_pre_reload_split ()) &&
29947 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29948 : ( 1)))
29949 : return gen_split_993 (insn, operands);
29950 : if (!rtx_equal_p (x8, operands[2])
29951 : || !(
29952 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29953 : (TARGET_CMOVE
29954 : && ix86_pre_reload_split ()) &&
29955 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29956 : ( 1)))
29957 : return NULL;
29958 : return gen_split_994 (insn, operands);
29959 :
29960 : case 6:
29961 : x8 = XEXP (x3, 1);
29962 : if (rtx_equal_p (x8, operands[1])
29963 : && (
29964 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29965 : (TARGET_CMOVE
29966 : && ix86_pre_reload_split ()) &&
29967 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29968 : ( 1)))
29969 : return gen_split_997 (insn, operands);
29970 : if (!rtx_equal_p (x8, operands[2])
29971 : || !(
29972 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29973 : (TARGET_CMOVE
29974 : && ix86_pre_reload_split ()) &&
29975 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29976 : ( 1)))
29977 : return NULL;
29978 : return gen_split_998 (insn, operands);
29979 :
29980 : case 7:
29981 : x8 = XEXP (x3, 1);
29982 : if (rtx_equal_p (x8, operands[1])
29983 : && ((
29984 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29985 : (TARGET_CMOVE
29986 : && ix86_pre_reload_split ()) &&
29987 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29988 : (TARGET_64BIT)) &&
29989 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29990 : ( 1)))
29991 : return gen_split_1001 (insn, operands);
29992 : if (!rtx_equal_p (x8, operands[2])
29993 : || !((
29994 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29995 : (TARGET_CMOVE
29996 : && ix86_pre_reload_split ()) &&
29997 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
29998 : (TARGET_64BIT)) &&
29999 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30000 : ( 1)))
30001 : return NULL;
30002 : return gen_split_1002 (insn, operands);
30003 :
30004 : case 8:
30005 : if (!(
30006 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30007 : (TARGET_CMOVE
30008 : && ix86_pre_reload_split ()) &&
30009 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30010 : ( 1)))
30011 : return NULL;
30012 : return gen_split_1005 (insn, operands);
30013 :
30014 : case 9:
30015 : if (!(
30016 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30017 : (TARGET_CMOVE
30018 : && ix86_pre_reload_split ()) &&
30019 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30020 : ( 1)))
30021 : return NULL;
30022 : return gen_split_1007 (insn, operands);
30023 :
30024 : case 10:
30025 : if (!((
30026 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30027 : (TARGET_CMOVE
30028 : && ix86_pre_reload_split ()) &&
30029 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30030 : (TARGET_64BIT)) &&
30031 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30032 : ( 1)))
30033 : return NULL;
30034 : return gen_split_1009 (insn, operands);
30035 :
30036 : default:
30037 : return NULL;
30038 : }
30039 :
30040 : case UMIN:
30041 : switch (pattern220 (x1))
30042 : {
30043 : case 0:
30044 : if (((
30045 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30046 : (TARGET_CMOVE
30047 : && ix86_pre_reload_split ()) &&
30048 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30049 : (!TARGET_64BIT)) &&
30050 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30051 : ( 1)))
30052 : return gen_split_972 (insn, operands);
30053 : if (!((
30054 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30055 : (TARGET_CMOVE
30056 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
30057 : && ix86_pre_reload_split ()) &&
30058 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30059 : (TARGET_64BIT)) &&
30060 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30061 : ( 1)))
30062 : return NULL;
30063 : return gen_split_992 (insn, operands);
30064 :
30065 : case 1:
30066 : if (!((
30067 : #line 27359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30068 : (TARGET_CMOVE
30069 : && ix86_pre_reload_split ()) &&
30070 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30071 : (TARGET_64BIT)) &&
30072 : #line 27362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30073 : ( 1)))
30074 : return NULL;
30075 : return gen_split_976 (insn, operands);
30076 :
30077 : case 2:
30078 : if (!(
30079 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30080 : (TARGET_CMOVE
30081 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
30082 : && ix86_pre_reload_split ()) &&
30083 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30084 : ( 1)))
30085 : return NULL;
30086 : return gen_split_980 (insn, operands);
30087 :
30088 : case 3:
30089 : if (!(
30090 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30091 : (TARGET_CMOVE
30092 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
30093 : && ix86_pre_reload_split ()) &&
30094 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30095 : ( 1)))
30096 : return NULL;
30097 : return gen_split_984 (insn, operands);
30098 :
30099 : case 4:
30100 : if (!(
30101 : #line 27417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30102 : (TARGET_CMOVE
30103 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
30104 : && ix86_pre_reload_split ()) &&
30105 : #line 27421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30106 : ( 1)))
30107 : return NULL;
30108 : return gen_split_988 (insn, operands);
30109 :
30110 : case 5:
30111 : x8 = XEXP (x3, 1);
30112 : if (rtx_equal_p (x8, operands[1])
30113 : && (
30114 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30115 : (TARGET_CMOVE
30116 : && ix86_pre_reload_split ()) &&
30117 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30118 : ( 1)))
30119 : return gen_split_995 (insn, operands);
30120 : if (!rtx_equal_p (x8, operands[2])
30121 : || !(
30122 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30123 : (TARGET_CMOVE
30124 : && ix86_pre_reload_split ()) &&
30125 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30126 : ( 1)))
30127 : return NULL;
30128 : return gen_split_996 (insn, operands);
30129 :
30130 : case 6:
30131 : x8 = XEXP (x3, 1);
30132 : if (rtx_equal_p (x8, operands[1])
30133 : && (
30134 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30135 : (TARGET_CMOVE
30136 : && ix86_pre_reload_split ()) &&
30137 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30138 : ( 1)))
30139 : return gen_split_999 (insn, operands);
30140 : if (!rtx_equal_p (x8, operands[2])
30141 : || !(
30142 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30143 : (TARGET_CMOVE
30144 : && ix86_pre_reload_split ()) &&
30145 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30146 : ( 1)))
30147 : return NULL;
30148 : return gen_split_1000 (insn, operands);
30149 :
30150 : case 7:
30151 : x8 = XEXP (x3, 1);
30152 : if (rtx_equal_p (x8, operands[1])
30153 : && ((
30154 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30155 : (TARGET_CMOVE
30156 : && ix86_pre_reload_split ()) &&
30157 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30158 : (TARGET_64BIT)) &&
30159 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30160 : ( 1)))
30161 : return gen_split_1003 (insn, operands);
30162 : if (!rtx_equal_p (x8, operands[2])
30163 : || !((
30164 : #line 27598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30165 : (TARGET_CMOVE
30166 : && ix86_pre_reload_split ()) &&
30167 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30168 : (TARGET_64BIT)) &&
30169 : #line 27601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30170 : ( 1)))
30171 : return NULL;
30172 : return gen_split_1004 (insn, operands);
30173 :
30174 : case 8:
30175 : if (!(
30176 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30177 : (TARGET_CMOVE
30178 : && ix86_pre_reload_split ()) &&
30179 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30180 : ( 1)))
30181 : return NULL;
30182 : return gen_split_1006 (insn, operands);
30183 :
30184 : case 9:
30185 : if (!(
30186 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30187 : (TARGET_CMOVE
30188 : && ix86_pre_reload_split ()) &&
30189 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30190 : ( 1)))
30191 : return NULL;
30192 : return gen_split_1008 (insn, operands);
30193 :
30194 : case 10:
30195 : if (!((
30196 : #line 27631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30197 : (TARGET_CMOVE
30198 : && ix86_pre_reload_split ()) &&
30199 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30200 : (TARGET_64BIT)) &&
30201 : #line 27634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30202 : ( 1)))
30203 : return NULL;
30204 : return gen_split_1010 (insn, operands);
30205 :
30206 : default:
30207 : return NULL;
30208 : }
30209 :
30210 : case PLUS:
30211 : case MINUS:
30212 : case MULT:
30213 : case AND:
30214 : case IOR:
30215 : case XOR:
30216 : case ASHIFT:
30217 : return split_38 (x1, insn);
30218 :
30219 : case COMPARE:
30220 : operands[2] = x3;
30221 : if (!compare_operator (operands[2], E_VOIDmode))
30222 : return NULL;
30223 : x9 = XEXP (x3, 0);
30224 : if (GET_CODE (x9) != AND)
30225 : return NULL;
30226 : x8 = XEXP (x3, 1);
30227 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30228 : return NULL;
30229 : x4 = XVECEXP (x1, 0, 1);
30230 : if (GET_CODE (x4) != SET)
30231 : return NULL;
30232 : x10 = XEXP (x4, 1);
30233 : if (GET_CODE (x10) != AND)
30234 : return NULL;
30235 : x5 = XEXP (x2, 0);
30236 : operands[0] = x5;
30237 : if (!flags_reg_operand (operands[0], E_VOIDmode))
30238 : return NULL;
30239 : x11 = XEXP (x9, 0);
30240 : operands[3] = x11;
30241 : if (!aligned_operand (operands[3], E_VOIDmode))
30242 : return NULL;
30243 : x12 = XEXP (x9, 1);
30244 : operands[4] = x12;
30245 : if (!const_int_operand (operands[4], E_VOIDmode))
30246 : return NULL;
30247 : x7 = XEXP (x4, 0);
30248 : operands[1] = x7;
30249 : if (!register_operand (operands[1], E_VOIDmode))
30250 : return NULL;
30251 : x13 = XEXP (x10, 0);
30252 : if (!rtx_equal_p (x13, operands[3]))
30253 : return NULL;
30254 : x14 = XEXP (x10, 1);
30255 : if (!rtx_equal_p (x14, operands[4])
30256 : || !
30257 : #line 28247 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30258 : (! TARGET_PARTIAL_REG_STALL && reload_completed
30259 : && optimize_insn_for_speed_p ()
30260 : && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX)
30261 : || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))
30262 : /* Ensure that the operand will remain sign-extended immediate. */
30263 : && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode)))
30264 : return NULL;
30265 : return gen_split_1012 (insn, operands);
30266 :
30267 : case NEG:
30268 : return split_40 (x1, insn);
30269 :
30270 : case ABS:
30271 : x4 = XVECEXP (x1, 0, 1);
30272 : if (GET_CODE (x4) != USE)
30273 : return NULL;
30274 : x5 = XEXP (x2, 0);
30275 : operands[0] = x5;
30276 : x9 = XEXP (x3, 0);
30277 : operands[1] = x9;
30278 : switch (pattern844 (x1))
30279 : {
30280 : case 0:
30281 : if (!(
30282 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30283 : (TARGET_MMX_WITH_SSE) &&
30284 : #line 708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30285 : ( reload_completed)))
30286 : return NULL;
30287 : return gen_split_1069 (insn, operands);
30288 :
30289 : case 1:
30290 : if (!(
30291 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30292 : (TARGET_SSE) &&
30293 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30294 : ( reload_completed)))
30295 : return NULL;
30296 : return gen_split_1078 (insn, operands);
30297 :
30298 : case 2:
30299 : if (!((
30300 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30301 : (TARGET_SSE) &&
30302 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30303 : (TARGET_MMX_WITH_SSE)) &&
30304 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30305 : ( reload_completed)))
30306 : return NULL;
30307 : return gen_split_1080 (insn, operands);
30308 :
30309 : case 3:
30310 : if (!(
30311 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30312 : (TARGET_SSE) &&
30313 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30314 : ( reload_completed)))
30315 : return NULL;
30316 : return gen_split_1082 (insn, operands);
30317 :
30318 : case 4:
30319 : if (!((
30320 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30321 : (TARGET_SSE) &&
30322 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30323 : (TARGET_MMX_WITH_SSE)) &&
30324 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30325 : ( reload_completed)))
30326 : return NULL;
30327 : return gen_split_1084 (insn, operands);
30328 :
30329 : case 5:
30330 : if (!((
30331 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30332 : (TARGET_SSE) &&
30333 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30334 : (TARGET_AVX512F)) &&
30335 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30336 : ( reload_completed)))
30337 : return NULL;
30338 : return gen_split_1307 (insn, operands);
30339 :
30340 : case 6:
30341 : if (!((
30342 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30343 : (TARGET_SSE) &&
30344 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30345 : (TARGET_AVX)) &&
30346 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30347 : ( reload_completed)))
30348 : return NULL;
30349 : return gen_split_1309 (insn, operands);
30350 :
30351 : case 7:
30352 : if (!((
30353 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30354 : (TARGET_SSE) &&
30355 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30356 : (TARGET_SSE2)) &&
30357 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30358 : ( reload_completed)))
30359 : return NULL;
30360 : return gen_split_1311 (insn, operands);
30361 :
30362 : case 8:
30363 : if (!((
30364 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30365 : (TARGET_SSE) &&
30366 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30367 : (TARGET_AVX512F)) &&
30368 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30369 : ( reload_completed)))
30370 : return NULL;
30371 : return gen_split_1313 (insn, operands);
30372 :
30373 : case 9:
30374 : if (!((
30375 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30376 : (TARGET_SSE) &&
30377 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30378 : (TARGET_AVX)) &&
30379 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30380 : ( reload_completed)))
30381 : return NULL;
30382 : return gen_split_1315 (insn, operands);
30383 :
30384 : case 10:
30385 : if (!((
30386 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30387 : (TARGET_SSE) &&
30388 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30389 : (TARGET_SSE2)) &&
30390 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30391 : ( reload_completed)))
30392 : return NULL;
30393 : return gen_split_1317 (insn, operands);
30394 :
30395 : case 11:
30396 : if (!((
30397 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30398 : (TARGET_SSE) &&
30399 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30400 : (TARGET_AVX512F)) &&
30401 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30402 : ( reload_completed)))
30403 : return NULL;
30404 : return gen_split_1319 (insn, operands);
30405 :
30406 : case 12:
30407 : if (!((
30408 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30409 : (TARGET_SSE) &&
30410 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30411 : (TARGET_AVX)) &&
30412 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30413 : ( reload_completed)))
30414 : return NULL;
30415 : return gen_split_1321 (insn, operands);
30416 :
30417 : case 13:
30418 : if (!(
30419 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30420 : (TARGET_SSE) &&
30421 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30422 : ( reload_completed)))
30423 : return NULL;
30424 : return gen_split_1323 (insn, operands);
30425 :
30426 : case 14:
30427 : if (!((
30428 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30429 : (TARGET_SSE) &&
30430 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30431 : (TARGET_AVX512F)) &&
30432 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30433 : ( reload_completed)))
30434 : return NULL;
30435 : return gen_split_1325 (insn, operands);
30436 :
30437 : case 15:
30438 : if (!((
30439 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30440 : (TARGET_SSE) &&
30441 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30442 : (TARGET_AVX)) &&
30443 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30444 : ( reload_completed)))
30445 : return NULL;
30446 : return gen_split_1327 (insn, operands);
30447 :
30448 : case 16:
30449 : if (!((
30450 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30451 : (TARGET_SSE) &&
30452 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30453 : (TARGET_SSE2)) &&
30454 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30455 : ( reload_completed)))
30456 : return NULL;
30457 : return gen_split_1329 (insn, operands);
30458 :
30459 : default:
30460 : return NULL;
30461 : }
30462 :
30463 : case LSHIFTRT:
30464 : x4 = XVECEXP (x1, 0, 1);
30465 : if (GET_CODE (x4) != CLOBBER)
30466 : return NULL;
30467 : x7 = XEXP (x4, 0);
30468 : if (GET_CODE (x7) != REG
30469 : || REGNO (x7) != 17
30470 : || GET_MODE (x7) != E_CCmode)
30471 : return NULL;
30472 : x5 = XEXP (x2, 0);
30473 : operands[0] = x5;
30474 : x9 = XEXP (x3, 0);
30475 : operands[1] = x9;
30476 : x8 = XEXP (x3, 1);
30477 : operands[2] = x8;
30478 : switch (GET_MODE (operands[0]))
30479 : {
30480 : case E_V2QImode:
30481 : if (pattern1343 (x3,
30482 : E_V2QImode) != 0
30483 : || !
30484 : #line 4037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30485 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
30486 : && reload_completed))
30487 : return NULL;
30488 : return gen_split_1104 (insn, operands);
30489 :
30490 : case E_QImode:
30491 : if (pattern1349 (x3,
30492 : E_QImode) != 0
30493 : || !
30494 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30495 : (TARGET_AVX512F && reload_completed))
30496 : return NULL;
30497 : return gen_split_1275 (insn, operands);
30498 :
30499 : case E_HImode:
30500 : if (pattern1349 (x3,
30501 : E_HImode) != 0
30502 : || !
30503 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30504 : (TARGET_AVX512F && reload_completed))
30505 : return NULL;
30506 : return gen_split_1277 (insn, operands);
30507 :
30508 : case E_SImode:
30509 : if (pattern1349 (x3,
30510 : E_SImode) != 0
30511 : || !(
30512 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30513 : (TARGET_AVX512F && reload_completed) &&
30514 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30515 : (TARGET_AVX512BW)))
30516 : return NULL;
30517 : return gen_split_1279 (insn, operands);
30518 :
30519 : case E_DImode:
30520 : if (pattern1349 (x3,
30521 : E_DImode) != 0
30522 : || !(
30523 : #line 2316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30524 : (TARGET_AVX512F && reload_completed) &&
30525 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30526 : (TARGET_AVX512BW)))
30527 : return NULL;
30528 : return gen_split_1281 (insn, operands);
30529 :
30530 : default:
30531 : return NULL;
30532 : }
30533 :
30534 : case ASHIFTRT:
30535 : if (GET_MODE (x3) != E_V2QImode)
30536 : return NULL;
30537 : x4 = XVECEXP (x1, 0, 1);
30538 : if (pattern355 (x4) != 0)
30539 : return NULL;
30540 : x5 = XEXP (x2, 0);
30541 : operands[0] = x5;
30542 : if (!register_operand (operands[0], E_V2QImode))
30543 : return NULL;
30544 : x9 = XEXP (x3, 0);
30545 : operands[1] = x9;
30546 : if (!register_operand (operands[1], E_V2QImode))
30547 : return NULL;
30548 : x8 = XEXP (x3, 1);
30549 : operands[2] = x8;
30550 : if (!nonmemory_operand (operands[2], E_QImode)
30551 : || !
30552 : #line 4037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30553 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
30554 : && reload_completed))
30555 : return NULL;
30556 : return gen_split_1105 (insn, operands);
30557 :
30558 : case ZERO_EXTEND:
30559 : return split_39 (x1, insn);
30560 :
30561 : case NE:
30562 : case EQ:
30563 : operands[1] = x3;
30564 : switch (pattern562 (x1))
30565 : {
30566 : case 0:
30567 : if (!((
30568 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30569 : (TARGET_AVX512BW) &&
30570 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30571 : (TARGET_AVX512DQ)) &&
30572 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30573 : ( reload_completed)))
30574 : return NULL;
30575 : return gen_split_1283 (insn, operands);
30576 :
30577 : case 1:
30578 : if (!(
30579 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30580 : (TARGET_AVX512BW) &&
30581 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30582 : ( reload_completed)))
30583 : return NULL;
30584 : return gen_split_1284 (insn, operands);
30585 :
30586 : case 2:
30587 : if (!(
30588 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30589 : (TARGET_AVX512BW) &&
30590 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30591 : ( reload_completed)))
30592 : return NULL;
30593 : return gen_split_1285 (insn, operands);
30594 :
30595 : case 3:
30596 : if (!((
30597 : #line 2407 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30598 : (TARGET_AVX512BW) &&
30599 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30600 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30601 : #line 2409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30602 : ( reload_completed)))
30603 : return NULL;
30604 : return gen_split_1286 (insn, operands);
30605 :
30606 : default:
30607 : return NULL;
30608 : }
30609 :
30610 : case IF_THEN_ELSE:
30611 : x9 = XEXP (x3, 0);
30612 : if (!bt_comparison_operator (x9, E_VOIDmode))
30613 : return NULL;
30614 : x12 = XEXP (x9, 1);
30615 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
30616 : return NULL;
30617 : x4 = XVECEXP (x1, 0, 1);
30618 : if (pattern236 (x4,
30619 : E_CCmode,
30620 : 17) != 0)
30621 : return NULL;
30622 : switch (pattern1193 (x2))
30623 : {
30624 : case 0:
30625 : if (!((
30626 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30627 : (TARGET_AVX512BW) &&
30628 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30629 : (TARGET_AVX512DQ)) &&
30630 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30631 : ( reload_completed)))
30632 : return NULL;
30633 : return gen_split_1287 (insn, operands);
30634 :
30635 : case 1:
30636 : if (!(
30637 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30638 : (TARGET_AVX512BW) &&
30639 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30640 : ( reload_completed)))
30641 : return NULL;
30642 : return gen_split_1288 (insn, operands);
30643 :
30644 : case 2:
30645 : if (!(
30646 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30647 : (TARGET_AVX512BW) &&
30648 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30649 : ( reload_completed)))
30650 : return NULL;
30651 : return gen_split_1289 (insn, operands);
30652 :
30653 : case 3:
30654 : if (!((
30655 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30656 : (TARGET_AVX512BW) &&
30657 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30658 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30659 : #line 2444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30660 : ( reload_completed)))
30661 : return NULL;
30662 : return gen_split_1290 (insn, operands);
30663 :
30664 : case 4:
30665 : if (!((
30666 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30667 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
30668 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30669 : (TARGET_AVX512DQ)) &&
30670 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30671 : ( reload_completed)))
30672 : return NULL;
30673 : return gen_split_1291 (insn, operands);
30674 :
30675 : case 5:
30676 : if (!(
30677 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30678 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
30679 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30680 : ( reload_completed)))
30681 : return NULL;
30682 : return gen_split_1292 (insn, operands);
30683 :
30684 : case 6:
30685 : if (!((
30686 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30687 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
30688 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30689 : (TARGET_AVX512BW)) &&
30690 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30691 : ( reload_completed)))
30692 : return NULL;
30693 : return gen_split_1293 (insn, operands);
30694 :
30695 : case 7:
30696 : if (!((
30697 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30698 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
30699 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30700 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30701 : #line 2480 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30702 : ( reload_completed)))
30703 : return NULL;
30704 : return gen_split_1294 (insn, operands);
30705 :
30706 : case 8:
30707 : if (!((
30708 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30709 : (TARGET_AVX512BW && TARGET_CMOVE
30710 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30711 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30712 : (TARGET_AVX512DQ)) &&
30713 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30714 : ( reload_completed)))
30715 : return NULL;
30716 : return gen_split_1295 (insn, operands);
30717 :
30718 : case 9:
30719 : if (!(
30720 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30721 : (TARGET_AVX512BW && TARGET_CMOVE
30722 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30723 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30724 : ( reload_completed)))
30725 : return NULL;
30726 : return gen_split_1298 (insn, operands);
30727 :
30728 : case 10:
30729 : if (!((
30730 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30731 : (TARGET_AVX512BW && TARGET_CMOVE
30732 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30733 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30734 : (TARGET_AVX512BW)) &&
30735 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30736 : ( reload_completed)))
30737 : return NULL;
30738 : return gen_split_1301 (insn, operands);
30739 :
30740 : case 11:
30741 : if (!((
30742 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30743 : (TARGET_AVX512BW && TARGET_CMOVE
30744 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30745 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30746 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30747 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30748 : ( reload_completed)))
30749 : return NULL;
30750 : return gen_split_1304 (insn, operands);
30751 :
30752 : case 12:
30753 : if (!((
30754 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30755 : (TARGET_AVX512BW && TARGET_CMOVE
30756 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30757 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30758 : (TARGET_AVX512DQ)) &&
30759 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30760 : ( reload_completed)))
30761 : return NULL;
30762 : return gen_split_1296 (insn, operands);
30763 :
30764 : case 13:
30765 : if (!(
30766 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30767 : (TARGET_AVX512BW && TARGET_CMOVE
30768 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30769 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30770 : ( reload_completed)))
30771 : return NULL;
30772 : return gen_split_1299 (insn, operands);
30773 :
30774 : case 14:
30775 : if (!((
30776 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30777 : (TARGET_AVX512BW && TARGET_CMOVE
30778 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30779 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30780 : (TARGET_AVX512BW)) &&
30781 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30782 : ( reload_completed)))
30783 : return NULL;
30784 : return gen_split_1302 (insn, operands);
30785 :
30786 : case 15:
30787 : if (!((
30788 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30789 : (TARGET_AVX512BW && TARGET_CMOVE
30790 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30791 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30792 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30793 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30794 : ( reload_completed)))
30795 : return NULL;
30796 : return gen_split_1305 (insn, operands);
30797 :
30798 : case 16:
30799 : if (!((
30800 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30801 : (TARGET_AVX512BW && TARGET_CMOVE
30802 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
30803 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30804 : (TARGET_64BIT) &&
30805 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30806 : (TARGET_AVX512DQ)) &&
30807 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30808 : (TARGET_64BIT)) &&
30809 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30810 : (TARGET_64BIT)) &&
30811 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30812 : (TARGET_64BIT))) &&
30813 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30814 : ( reload_completed)))
30815 : return NULL;
30816 : return gen_split_1297 (insn, operands);
30817 :
30818 : case 17:
30819 : if (!((
30820 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30821 : (TARGET_AVX512BW && TARGET_CMOVE
30822 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
30823 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30824 : (TARGET_64BIT)) &&
30825 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30826 : ( reload_completed)))
30827 : return NULL;
30828 : return gen_split_1300 (insn, operands);
30829 :
30830 : case 18:
30831 : if (!((
30832 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30833 : (TARGET_AVX512BW && TARGET_CMOVE
30834 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
30835 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30836 : (TARGET_64BIT) &&
30837 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30838 : (TARGET_AVX512BW)) &&
30839 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30840 : (TARGET_64BIT)) &&
30841 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30842 : (TARGET_64BIT)) &&
30843 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30844 : (TARGET_64BIT))) &&
30845 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30846 : ( reload_completed)))
30847 : return NULL;
30848 : return gen_split_1303 (insn, operands);
30849 :
30850 : case 19:
30851 : if (!((
30852 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30853 : (TARGET_AVX512BW && TARGET_CMOVE
30854 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) && ((((
30855 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30856 : (TARGET_64BIT) &&
30857 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30858 : (TARGET_AVX512BW && TARGET_64BIT)) &&
30859 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30860 : (TARGET_64BIT)) &&
30861 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30862 : (TARGET_64BIT)) &&
30863 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30864 : (TARGET_64BIT))) &&
30865 : #line 2524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30866 : ( reload_completed)))
30867 : return NULL;
30868 : return gen_split_1306 (insn, operands);
30869 :
30870 : default:
30871 : return NULL;
30872 : }
30873 :
30874 : case VEC_MERGE:
30875 : if (pattern221 (x1) != 0
30876 : || !
30877 : #line 8701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30878 : (TARGET_SSE2 && reload_completed
30879 : && SSE_REG_P (operands[2])))
30880 : return NULL;
30881 : return gen_split_1600 (insn, operands);
30882 :
30883 : default:
30884 : return NULL;
30885 : }
30886 :
30887 : case 3:
30888 : x2 = XVECEXP (x1, 0, 0);
30889 : if (GET_CODE (x2) != SET)
30890 : return NULL;
30891 : x3 = XEXP (x2, 1);
30892 : if (GET_CODE (x3) != UNSPEC)
30893 : return NULL;
30894 : x5 = XEXP (x2, 0);
30895 : operands[0] = x5;
30896 : switch (XVECLEN (x3, 0))
30897 : {
30898 : case 5:
30899 : if (pattern730 (x1,
30900 : 132,
30901 : 5) != 0
30902 : || pattern1748 (x1) != 0
30903 : || !(
30904 : #line 26459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30905 : (TARGET_SSE4_2
30906 : && ix86_pre_reload_split ()) &&
30907 : #line 26462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30908 : ( 1)))
30909 : return NULL;
30910 : return gen_split_3791 (insn, operands);
30911 :
30912 : case 3:
30913 : if (pattern730 (x1,
30914 : 133,
30915 : 3) != 0
30916 : || pattern1749 (x1) != 0
30917 : || !(
30918 : #line 26596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30919 : (TARGET_SSE4_2
30920 : && ix86_pre_reload_split ()) &&
30921 : #line 26599 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30922 : ( 1)))
30923 : return NULL;
30924 : return gen_split_3792 (insn, operands);
30925 :
30926 : case 1:
30927 : x4 = XVECEXP (x1, 0, 1);
30928 : if (GET_CODE (x4) != CLOBBER)
30929 : return NULL;
30930 : x15 = XVECEXP (x1, 0, 2);
30931 : if (GET_CODE (x15) != CLOBBER
30932 : || GET_MODE (x3) != E_DImode)
30933 : return NULL;
30934 : x6 = XVECEXP (x3, 0, 0);
30935 : operands[1] = x6;
30936 : x7 = XEXP (x4, 0);
30937 : operands[2] = x7;
30938 : if (!memory_operand (operands[2], E_DImode))
30939 : return NULL;
30940 : x16 = XEXP (x15, 0);
30941 : operands[3] = x16;
30942 : if (!scratch_operand (operands[3], E_DFmode))
30943 : return NULL;
30944 : switch (XINT (x3, 1))
30945 : {
30946 : case 291:
30947 : if (!nonimmediate_operand (operands[0], E_DImode)
30948 : || !memory_operand (operands[1], E_DImode)
30949 : || !(
30950 : #line 196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
30951 : (!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) &&
30952 : #line 198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
30953 : ( reload_completed)))
30954 : return NULL;
30955 : return gen_split_3928 (insn, operands);
30956 :
30957 : case 292:
30958 : if (!memory_operand (operands[0], E_DImode)
30959 : || !nonimmediate_operand (operands[1], E_DImode)
30960 : || !(
30961 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
30962 : (!TARGET_64BIT && (TARGET_80387 || TARGET_SSE)) &&
30963 : #line 297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
30964 : ( reload_completed)))
30965 : return NULL;
30966 : return gen_split_3929 (insn, operands);
30967 :
30968 : default:
30969 : return NULL;
30970 : }
30971 :
30972 : default:
30973 : return NULL;
30974 : }
30975 :
30976 : default:
30977 : return NULL;
30978 : }
30979 : }
30980 :
30981 : rtx_insn *
30982 : peephole2_19 (rtx x1 ATTRIBUTE_UNUSED,
30983 : rtx_insn *insn ATTRIBUTE_UNUSED,
30984 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30985 : {
30986 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30987 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30988 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
30989 : rtx x18, x19, x20;
30990 : rtx_insn *res ATTRIBUTE_UNUSED;
30991 : x2 = PATTERN (peep2_next_insn (1));
30992 : if (GET_CODE (x2) != SET)
30993 : return NULL;
30994 : x3 = XEXP (x2, 1);
30995 : if (!ix86_comparison_operator (x3, E_QImode))
30996 : return NULL;
30997 : x4 = XEXP (x3, 0);
30998 : if (GET_CODE (x4) != REG
30999 : || REGNO (x4) != 17)
31000 : return NULL;
31001 : x5 = XEXP (x3, 1);
31002 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31003 : return NULL;
31004 : x6 = XEXP (x2, 0);
31005 : switch (GET_CODE (x6))
31006 : {
31007 : case REG:
31008 : case SUBREG:
31009 : operands[1] = x6;
31010 : if (!register_operand (operands[1], E_QImode))
31011 : return NULL;
31012 : operands[2] = x3;
31013 : x7 = PATTERN (peep2_next_insn (2));
31014 : switch (GET_CODE (x7))
31015 : {
31016 : case SET:
31017 : x8 = XEXP (x7, 1);
31018 : if (GET_CODE (x8) != ZERO_EXTEND)
31019 : return NULL;
31020 : x9 = XEXP (x7, 0);
31021 : operands[3] = x9;
31022 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31023 : return NULL;
31024 : x10 = XEXP (x8, 0);
31025 : if (!rtx_equal_p (x10, operands[1])
31026 : || !
31027 : #line 20297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31028 : ((peep2_reg_dead_p (3, operands[1])
31029 : || operands_match_p (operands[1], operands[3]))
31030 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31031 : && peep2_regno_dead_p (0, FLAGS_REG)))
31032 : return NULL;
31033 : *pmatch_len_ = 2;
31034 : return gen_peephole2_189 (insn, operands);
31035 :
31036 : case PARALLEL:
31037 : if (XVECLEN (x7, 0) != 2)
31038 : return NULL;
31039 : x11 = XVECEXP (x7, 0, 0);
31040 : if (GET_CODE (x11) != SET)
31041 : return NULL;
31042 : x12 = XEXP (x11, 1);
31043 : if (GET_CODE (x12) != AND
31044 : || GET_MODE (x12) != E_SImode)
31045 : return NULL;
31046 : x13 = XEXP (x12, 1);
31047 : if (GET_CODE (x13) != CONST_INT
31048 : || XWINT (x13, 0) != 255L
31049 : || pattern1751 (x7,
31050 : E_SImode) != 0)
31051 : return NULL;
31052 : x14 = XEXP (x12, 0);
31053 : if (!rtx_equal_p (x14, operands[3])
31054 : || !
31055 : #line 20369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31056 : (REGNO (operands[1]) == REGNO (operands[3])
31057 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31058 : && peep2_regno_dead_p (0, FLAGS_REG)))
31059 : return NULL;
31060 : *pmatch_len_ = 2;
31061 : return gen_peephole2_192 (insn, operands);
31062 :
31063 : default:
31064 : return NULL;
31065 : }
31066 :
31067 : case STRICT_LOW_PART:
31068 : if (peep2_current_count < 4)
31069 : return NULL;
31070 : x15 = XEXP (x6, 0);
31071 : operands[5] = x15;
31072 : if (!register_operand (operands[5], E_QImode))
31073 : return NULL;
31074 : operands[6] = x3;
31075 : x7 = PATTERN (peep2_next_insn (2));
31076 : if (GET_CODE (x7) != SET)
31077 : return NULL;
31078 : x8 = XEXP (x7, 1);
31079 : if (!ix86_comparison_operator (x8, E_QImode))
31080 : return NULL;
31081 : operands[2] = x8;
31082 : x10 = XEXP (x8, 0);
31083 : if (GET_CODE (x10) != REG
31084 : || REGNO (x10) != 17)
31085 : return NULL;
31086 : x16 = XEXP (x8, 1);
31087 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31088 : return NULL;
31089 : x9 = XEXP (x7, 0);
31090 : operands[1] = x9;
31091 : if (!register_operand (operands[1], E_QImode))
31092 : return NULL;
31093 : x17 = PATTERN (peep2_next_insn (3));
31094 : if (GET_CODE (x17) != SET)
31095 : return NULL;
31096 : x18 = XEXP (x17, 1);
31097 : if (GET_CODE (x18) != ZERO_EXTEND)
31098 : return NULL;
31099 : x19 = XEXP (x17, 0);
31100 : operands[3] = x19;
31101 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31102 : return NULL;
31103 : x20 = XEXP (x18, 0);
31104 : if (!rtx_equal_p (x20, operands[1])
31105 : || !
31106 : #line 20442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31107 : ((peep2_reg_dead_p (4, operands[1])
31108 : || operands_match_p (operands[1], operands[3]))
31109 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31110 : && ! reg_overlap_mentioned_p (operands[3], operands[5])
31111 : && ! reg_overlap_mentioned_p (operands[1], operands[5])
31112 : && peep2_regno_dead_p (0, FLAGS_REG)))
31113 : return NULL;
31114 : *pmatch_len_ = 3;
31115 : return gen_peephole2_195 (insn, operands);
31116 :
31117 : default:
31118 : return NULL;
31119 : }
31120 : }
31121 :
31122 : rtx_insn *
31123 : peephole2_25 (rtx x1 ATTRIBUTE_UNUSED,
31124 : rtx_insn *insn ATTRIBUTE_UNUSED,
31125 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31126 : {
31127 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31128 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31129 : rtx x10;
31130 : rtx_insn *res ATTRIBUTE_UNUSED;
31131 : x2 = PATTERN (peep2_next_insn (1));
31132 : if (pattern1361 (x2,
31133 : E_SImode) != 0)
31134 : return NULL;
31135 : x3 = XVECEXP (x2, 0, 0);
31136 : x4 = XEXP (x3, 1);
31137 : x5 = XEXP (x4, 0);
31138 : if (!rtx_equal_p (x5, operands[0]))
31139 : return NULL;
31140 : x6 = XEXP (x3, 0);
31141 : if (!rtx_equal_p (x6, operands[0]))
31142 : return NULL;
31143 : x7 = PATTERN (peep2_next_insn (2));
31144 : x8 = XEXP (x7, 1);
31145 : if (!rtx_equal_p (x8, operands[0]))
31146 : return NULL;
31147 : x9 = PATTERN (peep2_next_insn (3));
31148 : if (GET_CODE (x9) != SET)
31149 : return NULL;
31150 : x10 = XEXP (x7, 0);
31151 : if (rtx_equal_p (x10, operands[1])
31152 : && pattern1850 (x9) == 0
31153 : &&
31154 : #line 28634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31155 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31156 : && peep2_reg_dead_p (4, operands[0])
31157 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31158 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31159 : && (SImode != QImode
31160 : || immediate_operand (operands[2], QImode)
31161 : || any_QIreg_operand (operands[2], QImode))
31162 : && ix86_match_ccmode (peep2_next_insn (3),
31163 : (GET_CODE (operands[3]) == PLUS
31164 : || GET_CODE (operands[3]) == MINUS)
31165 : ? CCGOCmode : CCNOmode)))
31166 : {
31167 : *pmatch_len_ = 3;
31168 : res = gen_peephole2_317 (insn, operands);
31169 : if (res != NULL_RTX)
31170 : return res;
31171 : }
31172 : if (peep2_current_count < 5
31173 : || pattern1851 (x10,
31174 : E_SImode) != 0
31175 : || !
31176 : #line 28915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31177 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31178 : && peep2_reg_dead_p (3, operands[0])
31179 : && peep2_reg_dead_p (5, operands[4])
31180 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31181 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31182 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31183 : && (SImode != QImode
31184 : || immediate_operand (operands[2], QImode)
31185 : || any_QIreg_operand (operands[2], QImode))
31186 : && ix86_match_ccmode (peep2_next_insn (4),
31187 : (GET_CODE (operands[3]) == PLUS
31188 : || GET_CODE (operands[3]) == MINUS)
31189 : ? CCGOCmode : CCNOmode)))
31190 : return NULL;
31191 : *pmatch_len_ = 4;
31192 : return gen_peephole2_347 (insn, operands);
31193 : }
31194 :
31195 : rtx_insn *
31196 : peephole2_28 (rtx x1 ATTRIBUTE_UNUSED,
31197 : rtx_insn *insn ATTRIBUTE_UNUSED,
31198 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31199 : {
31200 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31201 : rtx x2, x3, x4, x5, x6, x7, x8;
31202 : rtx_insn *res ATTRIBUTE_UNUSED;
31203 : x2 = XEXP (x1, 1);
31204 : if (GET_MODE (x2) != E_SImode)
31205 : return NULL;
31206 : x3 = XEXP (x2, 0);
31207 : if (GET_CODE (x3) != AND
31208 : || pattern119 (x2) != 0)
31209 : return NULL;
31210 : x4 = XEXP (x1, 0);
31211 : operands[0] = x4;
31212 : if (!general_reg_operand (operands[0], E_SImode))
31213 : return NULL;
31214 : x5 = XEXP (x3, 0);
31215 : if (!rtx_equal_p (x5, operands[0]))
31216 : return NULL;
31217 : x6 = XEXP (x2, 1);
31218 : x7 = XEXP (x6, 0);
31219 : x8 = XEXP (x7, 0);
31220 : if (!rtx_equal_p (x8, operands[0])
31221 : || !
31222 : #line 23025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31223 : (!(TARGET_USE_XCHGB ||
31224 : TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31225 : && peep2_regno_dead_p (0, FLAGS_REG)))
31226 : return NULL;
31227 : *pmatch_len_ = 0;
31228 : return gen_peephole2_211 (insn, operands);
31229 : }
31230 :
31231 : rtx_insn *
31232 : peephole2_29 (rtx x1 ATTRIBUTE_UNUSED,
31233 : rtx_insn *insn ATTRIBUTE_UNUSED,
31234 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31235 : {
31236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31237 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31238 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31239 : rtx x18, x19, x20, x21;
31240 : rtx_insn *res ATTRIBUTE_UNUSED;
31241 : if (peep2_current_count < 2)
31242 : return NULL;
31243 : x2 = XEXP (x1, 0);
31244 : operands[0] = x2;
31245 : x3 = XEXP (x1, 1);
31246 : x4 = XEXP (x3, 0);
31247 : operands[1] = x4;
31248 : if (!general_reg_operand (operands[1], E_QImode))
31249 : return NULL;
31250 : x5 = PATTERN (peep2_next_insn (1));
31251 : if (GET_CODE (x5) != PARALLEL
31252 : || XVECLEN (x5, 0) != 2)
31253 : return NULL;
31254 : x6 = XVECEXP (x5, 0, 0);
31255 : if (GET_CODE (x6) != SET)
31256 : return NULL;
31257 : x7 = XVECEXP (x5, 0, 1);
31258 : if (GET_CODE (x7) != CLOBBER)
31259 : return NULL;
31260 : switch (GET_MODE (operands[0]))
31261 : {
31262 : case E_HImode:
31263 : if (!register_operand (operands[0], E_HImode)
31264 : || GET_MODE (x3) != E_HImode)
31265 : return NULL;
31266 : x8 = XEXP (x6, 1);
31267 : if (GET_CODE (x8) != UNSPEC
31268 : || XVECLEN (x8, 0) != 1
31269 : || XINT (x8, 1) != 28
31270 : || GET_MODE (x8) != E_CCmode)
31271 : return NULL;
31272 : x9 = XEXP (x6, 0);
31273 : if (GET_CODE (x9) != REG
31274 : || REGNO (x9) != 17
31275 : || GET_MODE (x9) != E_CCmode)
31276 : return NULL;
31277 : x10 = XVECEXP (x8, 0, 0);
31278 : if (!rtx_equal_p (x10, operands[0]))
31279 : return NULL;
31280 : x11 = XEXP (x7, 0);
31281 : if (!rtx_equal_p (x11, operands[0]))
31282 : return NULL;
31283 : *pmatch_len_ = 1;
31284 : return gen_peephole2_213 (insn, operands);
31285 :
31286 : case E_SImode:
31287 : if (peep2_current_count < 3
31288 : || peep2_current_count < 4
31289 : || !register_operand (operands[0], E_SImode)
31290 : || GET_MODE (x3) != E_SImode)
31291 : return NULL;
31292 : x8 = XEXP (x6, 1);
31293 : if (GET_CODE (x8) != POPCOUNT
31294 : || GET_MODE (x8) != E_SImode)
31295 : return NULL;
31296 : x11 = XEXP (x7, 0);
31297 : if (GET_CODE (x11) != REG
31298 : || REGNO (x11) != 17
31299 : || GET_MODE (x11) != E_CCmode)
31300 : return NULL;
31301 : x9 = XEXP (x6, 0);
31302 : operands[2] = x9;
31303 : if (!register_operand (operands[2], E_SImode))
31304 : return NULL;
31305 : x12 = XEXP (x8, 0);
31306 : if (!rtx_equal_p (x12, operands[0]))
31307 : return NULL;
31308 : x13 = PATTERN (peep2_next_insn (2));
31309 : if (GET_CODE (x13) != SET
31310 : || pattern1777 (x13) != 0)
31311 : return NULL;
31312 : x14 = XEXP (x13, 1);
31313 : x15 = XEXP (x14, 0);
31314 : x16 = XEXP (x15, 0);
31315 : operands[3] = x16;
31316 : if (!register_operand (operands[3], E_QImode))
31317 : return NULL;
31318 : x17 = PATTERN (peep2_next_insn (3));
31319 : if (GET_CODE (x17) != SET)
31320 : return NULL;
31321 : x18 = XEXP (x17, 1);
31322 : if (GET_CODE (x18) != IF_THEN_ELSE)
31323 : return NULL;
31324 : x19 = XEXP (x18, 0);
31325 : if (!bt_comparison_operator (x19, E_VOIDmode))
31326 : return NULL;
31327 : operands[4] = x19;
31328 : if (pattern1898 (x17) != 0)
31329 : return NULL;
31330 : x20 = XEXP (x18, 1);
31331 : x21 = XEXP (x20, 0);
31332 : operands[5] = x21;
31333 : if (!
31334 : #line 23205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31335 : (REGNO (operands[2]) == REGNO (operands[3])
31336 : && peep2_reg_dead_p (3, operands[0])
31337 : && peep2_reg_dead_p (3, operands[2])
31338 : && peep2_regno_dead_p (4, FLAGS_REG)))
31339 : return NULL;
31340 : *pmatch_len_ = 3;
31341 : return gen_peephole2_214 (insn, operands);
31342 :
31343 : default:
31344 : return NULL;
31345 : }
31346 : }
31347 :
31348 : rtx_insn *
31349 : peephole2_33 (rtx x1 ATTRIBUTE_UNUSED,
31350 : rtx_insn *insn ATTRIBUTE_UNUSED,
31351 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31352 : {
31353 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31354 : rtx x2, x3, x4, x5, x6;
31355 : rtx_insn *res ATTRIBUTE_UNUSED;
31356 : x2 = XEXP (x1, 0);
31357 : if (REGNO (x2) != 17)
31358 : return NULL;
31359 : x3 = XEXP (x1, 1);
31360 : operands[0] = x3;
31361 : x4 = PATTERN (peep2_next_insn (1));
31362 : if (GET_CODE (x4) != SET)
31363 : return NULL;
31364 : x5 = XEXP (x4, 1);
31365 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31366 : return NULL;
31367 : x6 = XEXP (x4, 0);
31368 : operands[1] = x6;
31369 : switch (GET_MODE (operands[1]))
31370 : {
31371 : case E_QImode:
31372 : if (!general_reg_operand (operands[1], E_QImode)
31373 : || !
31374 : #line 27471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31375 : (peep2_regno_dead_p (0, FLAGS_REG)
31376 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31377 : return NULL;
31378 : *pmatch_len_ = 1;
31379 : return gen_peephole2_233 (insn, operands);
31380 :
31381 : case E_HImode:
31382 : if (!general_reg_operand (operands[1], E_HImode)
31383 : || !
31384 : #line 27471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31385 : (peep2_regno_dead_p (0, FLAGS_REG)
31386 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31387 : return NULL;
31388 : *pmatch_len_ = 1;
31389 : return gen_peephole2_234 (insn, operands);
31390 :
31391 : case E_SImode:
31392 : if (!general_reg_operand (operands[1], E_SImode)
31393 : || !
31394 : #line 27471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31395 : (peep2_regno_dead_p (0, FLAGS_REG)
31396 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31397 : return NULL;
31398 : *pmatch_len_ = 1;
31399 : return gen_peephole2_235 (insn, operands);
31400 :
31401 : case E_DImode:
31402 : if (!general_reg_operand (operands[1], E_DImode)
31403 : || !(
31404 : #line 27471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31405 : (peep2_regno_dead_p (0, FLAGS_REG)
31406 : && !reg_overlap_mentioned_p (operands[1], operands[0])) &&
31407 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31408 : (TARGET_64BIT)))
31409 : return NULL;
31410 : *pmatch_len_ = 1;
31411 : return gen_peephole2_236 (insn, operands);
31412 :
31413 : default:
31414 : return NULL;
31415 : }
31416 : }
31417 :
31418 : rtx_insn *
31419 : peephole2_35 (rtx x1 ATTRIBUTE_UNUSED,
31420 : rtx_insn *insn ATTRIBUTE_UNUSED,
31421 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31422 : {
31423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31424 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31425 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31426 : rtx x18;
31427 : rtx_insn *res ATTRIBUTE_UNUSED;
31428 : x2 = XEXP (x1, 1);
31429 : operands[1] = x2;
31430 : if (!general_operand (operands[1], E_QImode))
31431 : return NULL;
31432 : x3 = PATTERN (peep2_next_insn (1));
31433 : x4 = XVECEXP (x3, 0, 1);
31434 : if (GET_CODE (x4) != SET)
31435 : return NULL;
31436 : x5 = XEXP (x4, 1);
31437 : if (GET_CODE (x5) != UNSPEC_VOLATILE
31438 : || XVECLEN (x5, 0) != 1
31439 : || XINT (x5, 1) != 109
31440 : || GET_MODE (x5) != E_QImode)
31441 : return NULL;
31442 : x6 = XVECEXP (x5, 0, 0);
31443 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31444 : return NULL;
31445 : x7 = XVECEXP (x3, 0, 2);
31446 : if (GET_CODE (x7) != SET)
31447 : return NULL;
31448 : x8 = XEXP (x7, 1);
31449 : if (GET_CODE (x8) != UNSPEC_VOLATILE
31450 : || XVECLEN (x8, 0) != 1
31451 : || XINT (x8, 1) != 109
31452 : || GET_MODE (x8) != E_CCZmode)
31453 : return NULL;
31454 : x9 = XVECEXP (x8, 0, 0);
31455 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31456 : return NULL;
31457 : x10 = XEXP (x7, 0);
31458 : if (GET_CODE (x10) != REG
31459 : || REGNO (x10) != 17
31460 : || GET_MODE (x10) != E_CCZmode)
31461 : return NULL;
31462 : x11 = XVECEXP (x3, 0, 0);
31463 : x12 = XEXP (x11, 1);
31464 : x13 = XVECEXP (x12, 0, 0);
31465 : operands[2] = x13;
31466 : if (!memory_operand (operands[2], E_QImode))
31467 : return NULL;
31468 : x14 = XVECEXP (x12, 0, 2);
31469 : operands[3] = x14;
31470 : if (!register_operand (operands[3], E_QImode)
31471 : || pattern1713 (x3) != 0)
31472 : return NULL;
31473 : x15 = PATTERN (peep2_next_insn (2));
31474 : if (pattern1546 (x15) != 0)
31475 : return NULL;
31476 : x16 = XEXP (x15, 1);
31477 : x17 = XEXP (x16, 0);
31478 : operands[5] = x17;
31479 : if (!register_operand (operands[5], E_QImode))
31480 : return NULL;
31481 : x18 = XEXP (x16, 1);
31482 : operands[6] = x18;
31483 : if (!general_operand (operands[6], E_QImode)
31484 : || !
31485 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31486 : ((rtx_equal_p (operands[0], operands[5])
31487 : && rtx_equal_p (operands[1], operands[6]))
31488 : || (rtx_equal_p (operands[0], operands[6])
31489 : && rtx_equal_p (operands[1], operands[5]))))
31490 : return NULL;
31491 : *pmatch_len_ = 2;
31492 : return gen_peephole2_435 (insn, operands);
31493 : }
31494 :
31495 : rtx_insn *
31496 : peephole2_43 (rtx x1 ATTRIBUTE_UNUSED,
31497 : rtx_insn *insn ATTRIBUTE_UNUSED,
31498 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31499 : {
31500 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31501 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31502 : rtx x10, x11, x12, x13, x14;
31503 : rtx_insn *res ATTRIBUTE_UNUSED;
31504 : x2 = XVECEXP (x1, 0, 1);
31505 : x3 = XEXP (x2, 1);
31506 : if (GET_CODE (x3) != PLUS)
31507 : return NULL;
31508 : x4 = XVECEXP (x1, 0, 0);
31509 : x5 = XEXP (x4, 0);
31510 : if (GET_MODE (x5) != E_CCCmode)
31511 : return NULL;
31512 : x6 = XEXP (x4, 1);
31513 : if (GET_MODE (x6) != E_CCCmode)
31514 : return NULL;
31515 : x7 = XEXP (x6, 1);
31516 : if (!rtx_equal_p (x7, operands[0]))
31517 : return NULL;
31518 : x8 = XEXP (x3, 0);
31519 : if (!rtx_equal_p (x8, operands[0]))
31520 : return NULL;
31521 : x9 = XEXP (x3, 1);
31522 : if (!rtx_equal_p (x9, operands[1]))
31523 : return NULL;
31524 : x10 = XEXP (x2, 0);
31525 : if (!rtx_equal_p (x10, operands[0]))
31526 : return NULL;
31527 : x11 = PATTERN (peep2_next_insn (1));
31528 : x12 = XEXP (x11, 1);
31529 : if (!rtx_equal_p (x12, operands[0]))
31530 : return NULL;
31531 : x13 = XEXP (x11, 0);
31532 : if (!rtx_equal_p (x13, operands[1]))
31533 : return NULL;
31534 : x14 = XEXP (x6, 0);
31535 : switch (GET_MODE (x14))
31536 : {
31537 : case E_QImode:
31538 : if (!general_reg_operand (operands[0], E_QImode)
31539 : || !memory_operand (operands[1], E_QImode)
31540 : || GET_MODE (x3) != E_QImode
31541 : || !
31542 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31543 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31544 : && peep2_reg_dead_p (2, operands[0])
31545 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31546 : return NULL;
31547 : *pmatch_len_ = 1;
31548 : return gen_peephole2_120 (insn, operands);
31549 :
31550 : case E_HImode:
31551 : if (!general_reg_operand (operands[0], E_HImode)
31552 : || !memory_operand (operands[1], E_HImode)
31553 : || GET_MODE (x3) != E_HImode
31554 : || !
31555 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31556 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31557 : && peep2_reg_dead_p (2, operands[0])
31558 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31559 : return NULL;
31560 : *pmatch_len_ = 1;
31561 : return gen_peephole2_121 (insn, operands);
31562 :
31563 : case E_SImode:
31564 : if (!general_reg_operand (operands[0], E_SImode)
31565 : || !memory_operand (operands[1], E_SImode)
31566 : || GET_MODE (x3) != E_SImode
31567 : || !
31568 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31569 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31570 : && peep2_reg_dead_p (2, operands[0])
31571 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31572 : return NULL;
31573 : *pmatch_len_ = 1;
31574 : return gen_peephole2_122 (insn, operands);
31575 :
31576 : case E_DImode:
31577 : if (!general_reg_operand (operands[0], E_DImode)
31578 : || !memory_operand (operands[1], E_DImode)
31579 : || GET_MODE (x3) != E_DImode
31580 : || !(
31581 : #line 10311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31582 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31583 : && peep2_reg_dead_p (2, operands[0])
31584 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
31585 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31586 : (TARGET_64BIT)))
31587 : return NULL;
31588 : *pmatch_len_ = 1;
31589 : return gen_peephole2_123 (insn, operands);
31590 :
31591 : default:
31592 : return NULL;
31593 : }
31594 : }
31595 :
31596 : rtx_insn *
31597 : peephole2_46 (rtx x1 ATTRIBUTE_UNUSED,
31598 : rtx_insn *insn ATTRIBUTE_UNUSED,
31599 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31600 : {
31601 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31602 : rtx x2, x3, x4, x5, x6;
31603 : rtx_insn *res ATTRIBUTE_UNUSED;
31604 : if (peep2_current_count < 2
31605 : || pattern248 (x1) != 0)
31606 : return NULL;
31607 : x2 = PATTERN (peep2_next_insn (1));
31608 : if (GET_CODE (x2) != SET)
31609 : return NULL;
31610 : x3 = XEXP (x2, 1);
31611 : if (GET_CODE (x3) != COMPARE
31612 : || GET_MODE (x3) != E_CCZmode
31613 : || pattern1458 (x2,
31614 : 0) != 0)
31615 : return NULL;
31616 : x4 = XEXP (x3, 0);
31617 : if (!rtx_equal_p (x4, operands[1]))
31618 : return NULL;
31619 : switch (GET_MODE (operands[0]))
31620 : {
31621 : case E_QImode:
31622 : if (!general_reg_operand (operands[0], E_QImode))
31623 : return NULL;
31624 : x5 = XVECEXP (x1, 0, 0);
31625 : x6 = XEXP (x5, 1);
31626 : if (GET_MODE (x6) != E_QImode
31627 : || !general_reg_operand (operands[1], E_QImode)
31628 : || !
31629 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31630 : (TARGET_APX_NDD))
31631 : return NULL;
31632 : *pmatch_len_ = 1;
31633 : return gen_peephole2_175 (insn, operands);
31634 :
31635 : case E_HImode:
31636 : if (!general_reg_operand (operands[0], E_HImode))
31637 : return NULL;
31638 : x5 = XVECEXP (x1, 0, 0);
31639 : x6 = XEXP (x5, 1);
31640 : if (GET_MODE (x6) != E_HImode
31641 : || !general_reg_operand (operands[1], E_HImode)
31642 : || !
31643 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31644 : (TARGET_APX_NDD))
31645 : return NULL;
31646 : *pmatch_len_ = 1;
31647 : return gen_peephole2_176 (insn, operands);
31648 :
31649 : case E_SImode:
31650 : if (!general_reg_operand (operands[0], E_SImode))
31651 : return NULL;
31652 : x5 = XVECEXP (x1, 0, 0);
31653 : x6 = XEXP (x5, 1);
31654 : if (GET_MODE (x6) != E_SImode
31655 : || !general_reg_operand (operands[1], E_SImode)
31656 : || !
31657 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31658 : (TARGET_APX_NDD))
31659 : return NULL;
31660 : *pmatch_len_ = 1;
31661 : return gen_peephole2_177 (insn, operands);
31662 :
31663 : case E_DImode:
31664 : if (!general_reg_operand (operands[0], E_DImode))
31665 : return NULL;
31666 : x5 = XVECEXP (x1, 0, 0);
31667 : x6 = XEXP (x5, 1);
31668 : if (GET_MODE (x6) != E_DImode
31669 : || !general_reg_operand (operands[1], E_DImode)
31670 : || !(
31671 : #line 14902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31672 : (TARGET_APX_NDD) &&
31673 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31674 : (TARGET_64BIT)))
31675 : return NULL;
31676 : *pmatch_len_ = 1;
31677 : return gen_peephole2_178 (insn, operands);
31678 :
31679 : default:
31680 : return NULL;
31681 : }
31682 : }
31683 :
31684 : rtx_insn *
31685 : peephole2_48 (rtx x1 ATTRIBUTE_UNUSED,
31686 : rtx_insn *insn ATTRIBUTE_UNUSED,
31687 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31688 : {
31689 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31690 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31691 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31692 : rtx_insn *res ATTRIBUTE_UNUSED;
31693 : if (peep2_current_count < 3)
31694 : return NULL;
31695 : x2 = XVECEXP (x1, 0, 0);
31696 : x3 = XEXP (x2, 0);
31697 : operands[5] = x3;
31698 : if (!flags_reg_operand (operands[5], E_VOIDmode))
31699 : return NULL;
31700 : x4 = XEXP (x2, 1);
31701 : operands[0] = x4;
31702 : x5 = XVECEXP (x1, 0, 1);
31703 : operands[4] = x5;
31704 : x6 = PATTERN (peep2_next_insn (1));
31705 : if (GET_CODE (x6) != SET)
31706 : return NULL;
31707 : x7 = XEXP (x6, 1);
31708 : if (!ix86_comparison_operator (x7, E_QImode))
31709 : return NULL;
31710 : operands[2] = x7;
31711 : x8 = XEXP (x7, 0);
31712 : if (GET_CODE (x8) != REG
31713 : || REGNO (x8) != 17)
31714 : return NULL;
31715 : x9 = XEXP (x7, 1);
31716 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31717 : return NULL;
31718 : x10 = XEXP (x6, 0);
31719 : operands[1] = x10;
31720 : if (!register_operand (operands[1], E_QImode))
31721 : return NULL;
31722 : x11 = PATTERN (peep2_next_insn (2));
31723 : switch (GET_CODE (x11))
31724 : {
31725 : case SET:
31726 : x12 = XEXP (x11, 1);
31727 : if (GET_CODE (x12) != ZERO_EXTEND)
31728 : return NULL;
31729 : x13 = XEXP (x11, 0);
31730 : operands[3] = x13;
31731 : if (!any_QIreg_operand (operands[3], E_VOIDmode))
31732 : return NULL;
31733 : x14 = XEXP (x12, 0);
31734 : if (!rtx_equal_p (x14, operands[1])
31735 : || !
31736 : #line 20317 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31737 : ((peep2_reg_dead_p (3, operands[1])
31738 : || operands_match_p (operands[1], operands[3]))
31739 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31740 : && ! reg_overlap_mentioned_p (operands[3], operands[4])
31741 : && ! reg_set_p (operands[3], operands[4])
31742 : && peep2_regno_dead_p (0, FLAGS_REG)))
31743 : return NULL;
31744 : *pmatch_len_ = 2;
31745 : return gen_peephole2_190 (insn, operands);
31746 :
31747 : case PARALLEL:
31748 : if (XVECLEN (x11, 0) != 2)
31749 : return NULL;
31750 : x15 = XVECEXP (x11, 0, 0);
31751 : if (GET_CODE (x15) != SET)
31752 : return NULL;
31753 : x16 = XEXP (x15, 1);
31754 : if (GET_CODE (x16) != ZERO_EXTEND
31755 : || pattern1751 (x11,
31756 : E_VOIDmode) != 0)
31757 : return NULL;
31758 : x17 = XEXP (x16, 0);
31759 : if (!rtx_equal_p (x17, operands[1])
31760 : || !
31761 : #line 20389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31762 : ((peep2_reg_dead_p (3, operands[1])
31763 : || operands_match_p (operands[1], operands[3]))
31764 : && ! reg_overlap_mentioned_p (operands[3], operands[0])
31765 : && ! reg_overlap_mentioned_p (operands[3], operands[4])
31766 : && ! reg_set_p (operands[3], operands[4])
31767 : && peep2_regno_dead_p (0, FLAGS_REG)))
31768 : return NULL;
31769 : *pmatch_len_ = 2;
31770 : return gen_peephole2_193 (insn, operands);
31771 :
31772 : default:
31773 : return NULL;
31774 : }
31775 : }
31776 :
31777 : rtx_insn *
31778 : peephole2_52 (rtx x1 ATTRIBUTE_UNUSED,
31779 : rtx_insn *insn ATTRIBUTE_UNUSED,
31780 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31781 : {
31782 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31783 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31784 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31785 : rtx x18, x19;
31786 : rtx_insn *res ATTRIBUTE_UNUSED;
31787 : x2 = XVECEXP (x1, 0, 0);
31788 : if (GET_CODE (x2) != SET)
31789 : return NULL;
31790 : x3 = XEXP (x2, 1);
31791 : switch (GET_CODE (x3))
31792 : {
31793 : case REG:
31794 : res = peephole2_39 (x1, insn, pmatch_len_);
31795 : if (res != NULL_RTX)
31796 : return res;
31797 : break;
31798 :
31799 : case CONST_INT:
31800 : res = peephole2_41 (x1, insn, pmatch_len_);
31801 : if (res != NULL_RTX)
31802 : return res;
31803 : break;
31804 :
31805 : case PLUS:
31806 : res = peephole2_42 (x1, insn, pmatch_len_);
31807 : if (res != NULL_RTX)
31808 : return res;
31809 : break;
31810 :
31811 : case COMPARE:
31812 : res = peephole2_44 (x1, insn, pmatch_len_);
31813 : if (res != NULL_RTX)
31814 : return res;
31815 : break;
31816 :
31817 : case MULT:
31818 : res = peephole2_45 (x1, insn, pmatch_len_);
31819 : if (res != NULL_RTX)
31820 : return res;
31821 : break;
31822 :
31823 : case NEG:
31824 : res = peephole2_46 (x1, insn, pmatch_len_);
31825 : if (res != NULL_RTX)
31826 : return res;
31827 : break;
31828 :
31829 : case ASHIFT:
31830 : if (pattern248 (x1) == 0)
31831 : {
31832 : x4 = XEXP (x3, 1);
31833 : operands[2] = x4;
31834 : if (nonmemory_operand (operands[2], E_QImode))
31835 : {
31836 : switch (GET_MODE (operands[0]))
31837 : {
31838 : case E_DImode:
31839 : if (register_operand (operands[0], E_DImode)
31840 : && GET_MODE (x3) == E_DImode
31841 : && nonmemory_operand (operands[1], E_DImode)
31842 : && (
31843 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31844 : (TARGET_CMOVE) &&
31845 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31846 : (!TARGET_64BIT)))
31847 : {
31848 : *pmatch_len_ = 0;
31849 : res = gen_peephole2_179 (insn, operands);
31850 : if (res != NULL_RTX)
31851 : return res;
31852 : }
31853 : break;
31854 :
31855 : case E_TImode:
31856 : if (register_operand (operands[0], E_TImode)
31857 : && GET_MODE (x3) == E_TImode
31858 : && nonmemory_operand (operands[1], E_TImode)
31859 : && (
31860 : #line 15685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31861 : (TARGET_CMOVE) &&
31862 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31863 : (TARGET_64BIT)))
31864 : {
31865 : *pmatch_len_ = 0;
31866 : res = gen_peephole2_180 (insn, operands);
31867 : if (res != NULL_RTX)
31868 : return res;
31869 : }
31870 : break;
31871 :
31872 : default:
31873 : break;
31874 : }
31875 : }
31876 : }
31877 : break;
31878 :
31879 : case LSHIFTRT:
31880 : switch (pattern250 (x1))
31881 : {
31882 : case 0:
31883 : if ((
31884 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31885 : (TARGET_CMOVE) &&
31886 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31887 : (!TARGET_64BIT)))
31888 : {
31889 : *pmatch_len_ = 0;
31890 : res = gen_peephole2_181 (insn, operands);
31891 : if (res != NULL_RTX)
31892 : return res;
31893 : }
31894 : break;
31895 :
31896 : case 1:
31897 : if ((
31898 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31899 : (TARGET_CMOVE) &&
31900 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31901 : (TARGET_64BIT)))
31902 : {
31903 : *pmatch_len_ = 0;
31904 : res = gen_peephole2_183 (insn, operands);
31905 : if (res != NULL_RTX)
31906 : return res;
31907 : }
31908 : break;
31909 :
31910 : default:
31911 : break;
31912 : }
31913 : break;
31914 :
31915 : case ASHIFTRT:
31916 : switch (pattern250 (x1))
31917 : {
31918 : case 0:
31919 : if ((
31920 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31921 : (TARGET_CMOVE) &&
31922 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31923 : (!TARGET_64BIT)))
31924 : {
31925 : *pmatch_len_ = 0;
31926 : res = gen_peephole2_182 (insn, operands);
31927 : if (res != NULL_RTX)
31928 : return res;
31929 : }
31930 : break;
31931 :
31932 : case 1:
31933 : if ((
31934 : #line 17055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31935 : (TARGET_CMOVE) &&
31936 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31937 : (TARGET_64BIT)))
31938 : {
31939 : *pmatch_len_ = 0;
31940 : res = gen_peephole2_184 (insn, operands);
31941 : if (res != NULL_RTX)
31942 : return res;
31943 : }
31944 : break;
31945 :
31946 : default:
31947 : break;
31948 : }
31949 : break;
31950 :
31951 : case NOT:
31952 : if (GET_MODE (x3) == E_DImode)
31953 : {
31954 : x5 = XEXP (x3, 0);
31955 : if (GET_CODE (x5) == ZERO_EXTRACT
31956 : && pattern376 (x1) == 0)
31957 : {
31958 : x6 = XEXP (x5, 0);
31959 : if (rtx_equal_p (x6, operands[0]))
31960 : {
31961 : x7 = XEXP (x5, 2);
31962 : if (rtx_equal_p (x7, operands[1])
31963 : &&
31964 : #line 19466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31965 : (TARGET_64BIT && !TARGET_USE_BT))
31966 : {
31967 : *pmatch_len_ = 0;
31968 : res = gen_peephole2_187 (insn, operands);
31969 : if (res != NULL_RTX)
31970 : return res;
31971 : }
31972 : }
31973 : }
31974 : }
31975 : break;
31976 :
31977 : case POPCOUNT:
31978 : res = peephole2_47 (x1, insn, pmatch_len_);
31979 : if (res != NULL_RTX)
31980 : return res;
31981 : break;
31982 :
31983 : default:
31984 : break;
31985 : }
31986 : if (peep2_current_count >= 2)
31987 : {
31988 : res = peephole2_48 (x1, insn, pmatch_len_);
31989 : if (res != NULL_RTX)
31990 : return res;
31991 : }
31992 : x8 = XVECEXP (x1, 0, 1);
31993 : if (GET_CODE (x8) != CLOBBER)
31994 : return NULL;
31995 : switch (GET_CODE (x3))
31996 : {
31997 : case COMPARE:
31998 : case PLUS:
31999 : case MINUS:
32000 : case MULT:
32001 : case DIV:
32002 : case MOD:
32003 : case UDIV:
32004 : case UMOD:
32005 : case AND:
32006 : case IOR:
32007 : case XOR:
32008 : case ASHIFT:
32009 : case ROTATE:
32010 : case ASHIFTRT:
32011 : case LSHIFTRT:
32012 : case ROTATERT:
32013 : case SMIN:
32014 : case SMAX:
32015 : case UMIN:
32016 : case UMAX:
32017 : x9 = XEXP (x2, 0);
32018 : operands[0] = x9;
32019 : res = peephole2_50 (x1, insn, pmatch_len_);
32020 : if (res != NULL_RTX)
32021 : return res;
32022 : x10 = XEXP (x8, 0);
32023 : if (GET_CODE (x10) != REG
32024 : || REGNO (x10) != 17
32025 : || GET_MODE (x10) != E_CCmode)
32026 : return NULL;
32027 : switch (GET_CODE (x3))
32028 : {
32029 : case PLUS:
32030 : case MINUS:
32031 : case AND:
32032 : case IOR:
32033 : case XOR:
32034 : if (peep2_current_count >= 2)
32035 : {
32036 : res = peephole2_51 (x1, insn, pmatch_len_);
32037 : if (res != NULL_RTX)
32038 : return res;
32039 : }
32040 : if (GET_CODE (x3) != PLUS
32041 : || pattern422 (x2) != 0)
32042 : return NULL;
32043 : switch (pattern1459 (x2))
32044 : {
32045 : case 0:
32046 : if ((
32047 : #line 29332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32048 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32049 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32050 : && !ix86_red_zone_used) && (((((((
32051 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32052 : (word_mode == SImode) &&
32053 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32054 : (Pmode == SImode)) &&
32055 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32056 : (Pmode == SImode)) &&
32057 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32058 : (Pmode == SImode)) &&
32059 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32060 : (Pmode == SImode)) &&
32061 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32062 : (word_mode == SImode)) &&
32063 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32064 : (Pmode == SImode)) &&
32065 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32066 : (Pmode == SImode))))
32067 : {
32068 : *pmatch_len_ = 0;
32069 : res = gen_peephole2_387 (insn, operands);
32070 : if (res != NULL_RTX)
32071 : return res;
32072 : }
32073 : if ((
32074 : #line 29332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32075 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32076 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32077 : && !ix86_red_zone_used) && (((((((
32078 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32079 : (word_mode == DImode) &&
32080 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32081 : (Pmode == SImode)) &&
32082 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32083 : (Pmode == SImode)) &&
32084 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32085 : (Pmode == SImode)) &&
32086 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32087 : (Pmode == SImode)) &&
32088 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32089 : (word_mode == DImode)) &&
32090 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32091 : (Pmode == SImode)) &&
32092 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32093 : (Pmode == SImode))))
32094 : {
32095 : *pmatch_len_ = 0;
32096 : res = gen_peephole2_388 (insn, operands);
32097 : if (res != NULL_RTX)
32098 : return res;
32099 : }
32100 : if ((
32101 : #line 29344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32102 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32103 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32104 : && !ix86_red_zone_used) && ((((((((((
32105 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32106 : (word_mode == SImode) &&
32107 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32108 : (Pmode == SImode)) &&
32109 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32110 : (Pmode == SImode)) &&
32111 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32112 : (Pmode == SImode)) &&
32113 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32114 : (Pmode == SImode)) &&
32115 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32116 : (word_mode == SImode)) &&
32117 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32118 : (Pmode == SImode)) &&
32119 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32120 : (Pmode == SImode)) &&
32121 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32122 : (word_mode == SImode)) &&
32123 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32124 : (Pmode == SImode)) &&
32125 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32126 : (Pmode == SImode))))
32127 : {
32128 : *pmatch_len_ = 0;
32129 : res = gen_peephole2_391 (insn, operands);
32130 : if (res != NULL_RTX)
32131 : return res;
32132 : }
32133 : if ((
32134 : #line 29344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32135 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32136 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32137 : && !ix86_red_zone_used) && ((((((((((
32138 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32139 : (word_mode == DImode) &&
32140 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32141 : (Pmode == SImode)) &&
32142 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32143 : (Pmode == SImode)) &&
32144 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32145 : (Pmode == SImode)) &&
32146 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32147 : (Pmode == SImode)) &&
32148 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32149 : (word_mode == DImode)) &&
32150 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32151 : (Pmode == SImode)) &&
32152 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32153 : (Pmode == SImode)) &&
32154 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32155 : (word_mode == DImode)) &&
32156 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32157 : (Pmode == SImode)) &&
32158 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32159 : (Pmode == SImode))))
32160 : {
32161 : *pmatch_len_ = 0;
32162 : res = gen_peephole2_392 (insn, operands);
32163 : if (res != NULL_RTX)
32164 : return res;
32165 : }
32166 : if ((
32167 : #line 29400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32168 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32169 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32170 : (word_mode == SImode) &&
32171 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32172 : (Pmode == SImode)) &&
32173 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32174 : (Pmode == SImode)) &&
32175 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32176 : (Pmode == SImode)) &&
32177 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32178 : (Pmode == SImode)) &&
32179 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32180 : (word_mode == SImode)) &&
32181 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32182 : (Pmode == SImode)) &&
32183 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32184 : (Pmode == SImode))))
32185 : {
32186 : *pmatch_len_ = 0;
32187 : res = gen_peephole2_407 (insn, operands);
32188 : if (res != NULL_RTX)
32189 : return res;
32190 : }
32191 : if ((
32192 : #line 29400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32193 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32194 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32195 : (word_mode == DImode) &&
32196 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32197 : (Pmode == SImode)) &&
32198 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32199 : (Pmode == SImode)) &&
32200 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32201 : (Pmode == SImode)) &&
32202 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32203 : (Pmode == SImode)) &&
32204 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32205 : (word_mode == DImode)) &&
32206 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32207 : (Pmode == SImode)) &&
32208 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32209 : (Pmode == SImode))))
32210 : {
32211 : *pmatch_len_ = 0;
32212 : res = gen_peephole2_408 (insn, operands);
32213 : if (res != NULL_RTX)
32214 : return res;
32215 : }
32216 : if ((
32217 : #line 29412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32218 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32219 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32220 : (word_mode == SImode) &&
32221 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32222 : (Pmode == SImode)) &&
32223 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32224 : (Pmode == SImode)) &&
32225 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32226 : (Pmode == SImode)) &&
32227 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32228 : (Pmode == SImode)) &&
32229 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32230 : (word_mode == SImode)) &&
32231 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32232 : (Pmode == SImode)) &&
32233 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32234 : (Pmode == SImode)) &&
32235 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32236 : (word_mode == SImode)) &&
32237 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32238 : (Pmode == SImode)) &&
32239 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32240 : (Pmode == SImode))))
32241 : {
32242 : *pmatch_len_ = 0;
32243 : res = gen_peephole2_411 (insn, operands);
32244 : if (res != NULL_RTX)
32245 : return res;
32246 : }
32247 : if ((
32248 : #line 29412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32249 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32250 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32251 : (word_mode == DImode) &&
32252 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32253 : (Pmode == SImode)) &&
32254 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32255 : (Pmode == SImode)) &&
32256 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32257 : (Pmode == SImode)) &&
32258 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32259 : (Pmode == SImode)) &&
32260 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32261 : (word_mode == DImode)) &&
32262 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32263 : (Pmode == SImode)) &&
32264 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32265 : (Pmode == SImode)) &&
32266 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32267 : (word_mode == DImode)) &&
32268 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32269 : (Pmode == SImode)) &&
32270 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32271 : (Pmode == SImode))))
32272 : {
32273 : *pmatch_len_ = 0;
32274 : res = gen_peephole2_412 (insn, operands);
32275 : if (res != NULL_RTX)
32276 : return res;
32277 : }
32278 : if ((
32279 : #line 29422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32280 : (optimize_insn_for_size_p ()
32281 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32282 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32283 : (word_mode == SImode) &&
32284 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32285 : (Pmode == SImode)) &&
32286 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32287 : (Pmode == SImode)) &&
32288 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32289 : (Pmode == SImode)) &&
32290 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32291 : (Pmode == SImode)) &&
32292 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32293 : (word_mode == SImode)) &&
32294 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32295 : (Pmode == SImode)) &&
32296 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32297 : (Pmode == SImode)) &&
32298 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32299 : (word_mode == SImode)) &&
32300 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32301 : (Pmode == SImode)) &&
32302 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32303 : (Pmode == SImode))))
32304 : {
32305 : *pmatch_len_ = 0;
32306 : res = gen_peephole2_415 (insn, operands);
32307 : if (res != NULL_RTX)
32308 : return res;
32309 : }
32310 : if (!(
32311 : #line 29422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32312 : (optimize_insn_for_size_p ()
32313 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32314 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32315 : (word_mode == DImode) &&
32316 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32317 : (Pmode == SImode)) &&
32318 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32319 : (Pmode == SImode)) &&
32320 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32321 : (Pmode == SImode)) &&
32322 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32323 : (Pmode == SImode)) &&
32324 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32325 : (word_mode == DImode)) &&
32326 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32327 : (Pmode == SImode)) &&
32328 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32329 : (Pmode == SImode)) &&
32330 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32331 : (word_mode == DImode)) &&
32332 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32333 : (Pmode == SImode)) &&
32334 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32335 : (Pmode == SImode))))
32336 : return NULL;
32337 : *pmatch_len_ = 0;
32338 : return gen_peephole2_416 (insn, operands);
32339 :
32340 : case 1:
32341 : if ((
32342 : #line 29332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32343 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32344 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32345 : && !ix86_red_zone_used) && (((((((
32346 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32347 : (word_mode == SImode) &&
32348 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32349 : (Pmode == DImode)) &&
32350 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32351 : (Pmode == DImode)) &&
32352 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32353 : (Pmode == DImode)) &&
32354 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32355 : (Pmode == DImode)) &&
32356 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32357 : (word_mode == SImode)) &&
32358 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32359 : (Pmode == DImode)) &&
32360 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32361 : (Pmode == DImode))))
32362 : {
32363 : *pmatch_len_ = 0;
32364 : res = gen_peephole2_389 (insn, operands);
32365 : if (res != NULL_RTX)
32366 : return res;
32367 : }
32368 : if ((
32369 : #line 29332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32370 : ((TARGET_SINGLE_PUSH || optimize_insn_for_size_p ())
32371 : && INTVAL (operands[0]) == -GET_MODE_SIZE (word_mode)
32372 : && !ix86_red_zone_used) && (((((((
32373 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32374 : (word_mode == DImode) &&
32375 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32376 : (Pmode == DImode)) &&
32377 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32378 : (Pmode == DImode)) &&
32379 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32380 : (Pmode == DImode)) &&
32381 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32382 : (Pmode == DImode)) &&
32383 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32384 : (word_mode == DImode)) &&
32385 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32386 : (Pmode == DImode)) &&
32387 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32388 : (Pmode == DImode))))
32389 : {
32390 : *pmatch_len_ = 0;
32391 : res = gen_peephole2_390 (insn, operands);
32392 : if (res != NULL_RTX)
32393 : return res;
32394 : }
32395 : if ((
32396 : #line 29344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32397 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32398 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32399 : && !ix86_red_zone_used) && ((((((((((
32400 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32401 : (word_mode == SImode) &&
32402 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32403 : (Pmode == DImode)) &&
32404 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32405 : (Pmode == DImode)) &&
32406 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32407 : (Pmode == DImode)) &&
32408 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32409 : (Pmode == DImode)) &&
32410 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32411 : (word_mode == SImode)) &&
32412 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32413 : (Pmode == DImode)) &&
32414 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32415 : (Pmode == DImode)) &&
32416 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32417 : (word_mode == SImode)) &&
32418 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32419 : (Pmode == DImode)) &&
32420 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32421 : (Pmode == DImode))))
32422 : {
32423 : *pmatch_len_ = 0;
32424 : res = gen_peephole2_393 (insn, operands);
32425 : if (res != NULL_RTX)
32426 : return res;
32427 : }
32428 : if ((
32429 : #line 29344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32430 : ((TARGET_DOUBLE_PUSH || optimize_insn_for_size_p ())
32431 : && INTVAL (operands[0]) == -2*GET_MODE_SIZE (word_mode)
32432 : && !ix86_red_zone_used) && ((((((((((
32433 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32434 : (word_mode == DImode) &&
32435 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32436 : (Pmode == DImode)) &&
32437 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32438 : (Pmode == DImode)) &&
32439 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32440 : (Pmode == DImode)) &&
32441 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32442 : (Pmode == DImode)) &&
32443 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32444 : (word_mode == DImode)) &&
32445 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32446 : (Pmode == DImode)) &&
32447 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32448 : (Pmode == DImode)) &&
32449 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32450 : (word_mode == DImode)) &&
32451 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32452 : (Pmode == DImode)) &&
32453 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32454 : (Pmode == DImode))))
32455 : {
32456 : *pmatch_len_ = 0;
32457 : res = gen_peephole2_394 (insn, operands);
32458 : if (res != NULL_RTX)
32459 : return res;
32460 : }
32461 : if ((
32462 : #line 29400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32463 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32464 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32465 : (word_mode == SImode) &&
32466 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32467 : (Pmode == DImode)) &&
32468 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32469 : (Pmode == DImode)) &&
32470 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32471 : (Pmode == DImode)) &&
32472 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32473 : (Pmode == DImode)) &&
32474 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32475 : (word_mode == SImode)) &&
32476 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32477 : (Pmode == DImode)) &&
32478 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32479 : (Pmode == DImode))))
32480 : {
32481 : *pmatch_len_ = 0;
32482 : res = gen_peephole2_409 (insn, operands);
32483 : if (res != NULL_RTX)
32484 : return res;
32485 : }
32486 : if ((
32487 : #line 29400 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32488 : (INTVAL (operands[0]) == GET_MODE_SIZE (word_mode)) && (((((((
32489 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32490 : (word_mode == DImode) &&
32491 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32492 : (Pmode == DImode)) &&
32493 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32494 : (Pmode == DImode)) &&
32495 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32496 : (Pmode == DImode)) &&
32497 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32498 : (Pmode == DImode)) &&
32499 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32500 : (word_mode == DImode)) &&
32501 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32502 : (Pmode == DImode)) &&
32503 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32504 : (Pmode == DImode))))
32505 : {
32506 : *pmatch_len_ = 0;
32507 : res = gen_peephole2_410 (insn, operands);
32508 : if (res != NULL_RTX)
32509 : return res;
32510 : }
32511 : if ((
32512 : #line 29412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32513 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32514 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32515 : (word_mode == SImode) &&
32516 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32517 : (Pmode == DImode)) &&
32518 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32519 : (Pmode == DImode)) &&
32520 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32521 : (Pmode == DImode)) &&
32522 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32523 : (Pmode == DImode)) &&
32524 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32525 : (word_mode == SImode)) &&
32526 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32527 : (Pmode == DImode)) &&
32528 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32529 : (Pmode == DImode)) &&
32530 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32531 : (word_mode == SImode)) &&
32532 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32533 : (Pmode == DImode)) &&
32534 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32535 : (Pmode == DImode))))
32536 : {
32537 : *pmatch_len_ = 0;
32538 : res = gen_peephole2_413 (insn, operands);
32539 : if (res != NULL_RTX)
32540 : return res;
32541 : }
32542 : if ((
32543 : #line 29412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32544 : (INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32545 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32546 : (word_mode == DImode) &&
32547 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32548 : (Pmode == DImode)) &&
32549 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32550 : (Pmode == DImode)) &&
32551 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32552 : (Pmode == DImode)) &&
32553 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32554 : (Pmode == DImode)) &&
32555 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32556 : (word_mode == DImode)) &&
32557 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32558 : (Pmode == DImode)) &&
32559 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32560 : (Pmode == DImode)) &&
32561 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32562 : (word_mode == DImode)) &&
32563 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32564 : (Pmode == DImode)) &&
32565 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32566 : (Pmode == DImode))))
32567 : {
32568 : *pmatch_len_ = 0;
32569 : res = gen_peephole2_414 (insn, operands);
32570 : if (res != NULL_RTX)
32571 : return res;
32572 : }
32573 : if ((
32574 : #line 29422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32575 : (optimize_insn_for_size_p ()
32576 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32577 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32578 : (word_mode == SImode) &&
32579 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32580 : (Pmode == DImode)) &&
32581 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32582 : (Pmode == DImode)) &&
32583 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32584 : (Pmode == DImode)) &&
32585 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32586 : (Pmode == DImode)) &&
32587 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32588 : (word_mode == SImode)) &&
32589 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32590 : (Pmode == DImode)) &&
32591 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32592 : (Pmode == DImode)) &&
32593 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32594 : (word_mode == SImode)) &&
32595 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32596 : (Pmode == DImode)) &&
32597 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32598 : (Pmode == DImode))))
32599 : {
32600 : *pmatch_len_ = 0;
32601 : res = gen_peephole2_417 (insn, operands);
32602 : if (res != NULL_RTX)
32603 : return res;
32604 : }
32605 : if (!(
32606 : #line 29422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32607 : (optimize_insn_for_size_p ()
32608 : && INTVAL (operands[0]) == 2*GET_MODE_SIZE (word_mode)) && ((((((((((
32609 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32610 : (word_mode == DImode) &&
32611 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32612 : (Pmode == DImode)) &&
32613 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32614 : (Pmode == DImode)) &&
32615 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32616 : (Pmode == DImode)) &&
32617 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32618 : (Pmode == DImode)) &&
32619 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32620 : (word_mode == DImode)) &&
32621 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32622 : (Pmode == DImode)) &&
32623 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32624 : (Pmode == DImode)) &&
32625 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32626 : (word_mode == DImode)) &&
32627 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32628 : (Pmode == DImode)) &&
32629 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32630 : (Pmode == DImode))))
32631 : return NULL;
32632 : *pmatch_len_ = 0;
32633 : return gen_peephole2_418 (insn, operands);
32634 :
32635 : default:
32636 : return NULL;
32637 : }
32638 :
32639 : case MULT:
32640 : operands[0] = x9;
32641 : x5 = XEXP (x3, 0);
32642 : operands[1] = x5;
32643 : x4 = XEXP (x3, 1);
32644 : operands[2] = x4;
32645 : switch (GET_MODE (operands[0]))
32646 : {
32647 : case E_SImode:
32648 : if (!register_operand (operands[0], E_SImode)
32649 : || GET_MODE (x3) != E_SImode)
32650 : return NULL;
32651 : if (const359_operand (operands[2], E_SImode))
32652 : {
32653 : if (register_operand (operands[1], E_SImode))
32654 : {
32655 : *pmatch_len_ = 0;
32656 : res = gen_peephole2_420 (insn, operands);
32657 : if (res != NULL_RTX)
32658 : return res;
32659 : }
32660 : if (nonimmediate_operand (operands[1], E_SImode)
32661 : &&
32662 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32663 : (optimize_insn_for_speed_p ()
32664 : && (!TARGET_PARTIAL_REG_STALL || SImode == SImode)))
32665 : {
32666 : *pmatch_len_ = 0;
32667 : res = gen_peephole2_422 (insn, operands);
32668 : if (res != NULL_RTX)
32669 : return res;
32670 : }
32671 : }
32672 : if (memory_operand (operands[1], E_SImode)
32673 : && immediate_operand (operands[2], E_SImode)
32674 : &&
32675 : #line 29481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32676 : (TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
32677 : && !satisfies_constraint_K (operands[2])))
32678 : {
32679 : *pmatch_len_ = 0;
32680 : res = gen_peephole2_424 (insn, operands);
32681 : if (res != NULL_RTX)
32682 : return res;
32683 : }
32684 : if (!nonimmediate_operand (operands[1], E_SImode)
32685 : || !const_int_operand (operands[2], E_SImode)
32686 : || !
32687 : #line 29513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32688 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
32689 : && satisfies_constraint_K (operands[2])))
32690 : return NULL;
32691 : *pmatch_len_ = 0;
32692 : return gen_peephole2_428 (insn, operands);
32693 :
32694 : case E_DImode:
32695 : if (!register_operand (operands[0], E_DImode)
32696 : || GET_MODE (x3) != E_DImode)
32697 : return NULL;
32698 : if (const359_operand (operands[2], E_DImode))
32699 : {
32700 : if (register_operand (operands[1], E_DImode)
32701 : && (
32702 : #line 29451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32703 : (!TARGET_PARTIAL_REG_STALL
32704 : || DImode == SImode
32705 : || optimize_function_for_size_p (cfun)) &&
32706 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32707 : (TARGET_64BIT)))
32708 : {
32709 : *pmatch_len_ = 0;
32710 : res = gen_peephole2_421 (insn, operands);
32711 : if (res != NULL_RTX)
32712 : return res;
32713 : }
32714 : if (nonimmediate_operand (operands[1], E_DImode)
32715 : && (
32716 : #line 29465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32717 : (optimize_insn_for_speed_p ()
32718 : && (!TARGET_PARTIAL_REG_STALL || DImode == SImode)) &&
32719 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32720 : (TARGET_64BIT)))
32721 : {
32722 : *pmatch_len_ = 0;
32723 : res = gen_peephole2_423 (insn, operands);
32724 : if (res != NULL_RTX)
32725 : return res;
32726 : }
32727 : }
32728 : if (memory_operand (operands[1], E_DImode)
32729 : && immediate_operand (operands[2], E_DImode)
32730 : && (
32731 : #line 29481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32732 : (TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
32733 : && !satisfies_constraint_K (operands[2])) &&
32734 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32735 : (TARGET_64BIT)))
32736 : {
32737 : *pmatch_len_ = 0;
32738 : res = gen_peephole2_425 (insn, operands);
32739 : if (res != NULL_RTX)
32740 : return res;
32741 : }
32742 : if (!nonimmediate_operand (operands[1], E_DImode)
32743 : || !const_int_operand (operands[2], E_DImode)
32744 : || !(
32745 : #line 29513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32746 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
32747 : && satisfies_constraint_K (operands[2])) &&
32748 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32749 : (TARGET_64BIT)))
32750 : return NULL;
32751 : *pmatch_len_ = 0;
32752 : return gen_peephole2_429 (insn, operands);
32753 :
32754 : case E_HImode:
32755 : if (pattern1365 (x3,
32756 : E_HImode) != 0
32757 : || !
32758 : #line 29513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32759 : (TARGET_SLOW_IMUL_IMM8 && optimize_insn_for_speed_p ()
32760 : && satisfies_constraint_K (operands[2])))
32761 : return NULL;
32762 : *pmatch_len_ = 0;
32763 : return gen_peephole2_427 (insn, operands);
32764 :
32765 : default:
32766 : return NULL;
32767 : }
32768 :
32769 : case ASHIFT:
32770 : if (peep2_current_count < 2)
32771 : return NULL;
32772 : operands[0] = x9;
32773 : if (!register_operand (operands[0], E_VOIDmode))
32774 : return NULL;
32775 : x5 = XEXP (x3, 0);
32776 : operands[1] = x5;
32777 : if (!register_operand (operands[1], E_VOIDmode))
32778 : return NULL;
32779 : x4 = XEXP (x3, 1);
32780 : operands[2] = x4;
32781 : if (!const_int_operand (operands[2], E_VOIDmode))
32782 : return NULL;
32783 : x11 = PATTERN (peep2_next_insn (1));
32784 : if (pattern421 (x11,
32785 : PLUS,
32786 : 2) != 0)
32787 : return NULL;
32788 : x12 = XVECEXP (x11, 0, 1);
32789 : if (GET_CODE (x12) != CLOBBER)
32790 : return NULL;
32791 : x13 = XEXP (x12, 0);
32792 : if (GET_CODE (x13) != REG
32793 : || REGNO (x13) != 17
32794 : || GET_MODE (x13) != E_CCmode)
32795 : return NULL;
32796 : x14 = XVECEXP (x11, 0, 0);
32797 : x15 = XEXP (x14, 0);
32798 : operands[3] = x15;
32799 : if (!register_operand (operands[3], E_VOIDmode))
32800 : return NULL;
32801 : x16 = XEXP (x14, 1);
32802 : x17 = XEXP (x16, 1);
32803 : operands[4] = x17;
32804 : if (!x86_64_general_operand (operands[4], E_VOIDmode))
32805 : return NULL;
32806 : x18 = XEXP (x16, 0);
32807 : if (!rtx_equal_p (x18, operands[0]))
32808 : return NULL;
32809 : if ((
32810 : #line 29545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32811 : (IN_RANGE (INTVAL (operands[2]), 1, 3)
32812 : /* Validate MODE for lea. */
32813 : && ((!TARGET_PARTIAL_REG_STALL
32814 : && (GET_MODE (operands[0]) == QImode
32815 : || GET_MODE (operands[0]) == HImode))
32816 : || GET_MODE (operands[0]) == SImode
32817 : || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
32818 : && (rtx_equal_p (operands[0], operands[3])
32819 : || peep2_reg_dead_p (2, operands[0]))
32820 : /* We reorder load and the shift. */
32821 : && !reg_overlap_mentioned_p (operands[0], operands[4])) &&
32822 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32823 : (word_mode == SImode)))
32824 : {
32825 : *pmatch_len_ = 1;
32826 : res = gen_peephole2_430 (insn, operands);
32827 : if (res != NULL_RTX)
32828 : return res;
32829 : }
32830 : if (!(
32831 : #line 29545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32832 : (IN_RANGE (INTVAL (operands[2]), 1, 3)
32833 : /* Validate MODE for lea. */
32834 : && ((!TARGET_PARTIAL_REG_STALL
32835 : && (GET_MODE (operands[0]) == QImode
32836 : || GET_MODE (operands[0]) == HImode))
32837 : || GET_MODE (operands[0]) == SImode
32838 : || (TARGET_64BIT && GET_MODE (operands[0]) == DImode))
32839 : && (rtx_equal_p (operands[0], operands[3])
32840 : || peep2_reg_dead_p (2, operands[0]))
32841 : /* We reorder load and the shift. */
32842 : && !reg_overlap_mentioned_p (operands[0], operands[4])) &&
32843 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32844 : (word_mode == DImode)))
32845 : return NULL;
32846 : *pmatch_len_ = 1;
32847 : return gen_peephole2_431 (insn, operands);
32848 :
32849 : default:
32850 : return NULL;
32851 : }
32852 :
32853 : case ZERO_EXTEND:
32854 : if (GET_MODE (x3) != E_DImode)
32855 : return NULL;
32856 : x5 = XEXP (x3, 0);
32857 : if (GET_CODE (x5) != MULT
32858 : || GET_MODE (x5) != E_SImode
32859 : || pattern823 (x1,
32860 : E_DImode) != 0)
32861 : return NULL;
32862 : x6 = XEXP (x5, 0);
32863 : operands[1] = x6;
32864 : if (!memory_operand (operands[1], E_SImode))
32865 : return NULL;
32866 : x19 = XEXP (x5, 1);
32867 : operands[2] = x19;
32868 : if (!immediate_operand (operands[2], E_SImode)
32869 : || !
32870 : #line 29494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32871 : (TARGET_64BIT
32872 : && TARGET_SLOW_IMUL_IMM32_MEM && optimize_insn_for_speed_p ()
32873 : && !satisfies_constraint_K (operands[2])))
32874 : return NULL;
32875 : *pmatch_len_ = 0;
32876 : return gen_peephole2_426 (insn, operands);
32877 :
32878 : default:
32879 : return NULL;
32880 : }
32881 : }
|