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 364100 : pattern7 (rtx x1, int *pnum_clobbers)
57 : {
58 364100 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 364100 : rtx x2, x3, x4, x5;
60 364100 : int res ATTRIBUTE_UNUSED;
61 364100 : x2 = XEXP (x1, 0);
62 364100 : operands[0] = x2;
63 364100 : x3 = XEXP (x1, 1);
64 364100 : x4 = XEXP (x3, 0);
65 364100 : operands[1] = x4;
66 364100 : x5 = XEXP (x3, 1);
67 364100 : operands[2] = x5;
68 364100 : switch (GET_MODE (operands[0]))
69 : {
70 7318 : case E_SFmode:
71 7318 : return pattern3 (x3,
72 7318 : E_SFmode); /* [-1, 0] */
73 :
74 2306 : case E_DFmode:
75 2306 : if (pattern3 (x3,
76 : E_DFmode) != 0)
77 : return -1;
78 : return 1;
79 :
80 72 : case E_HFmode:
81 72 : if (pattern3 (x3,
82 : E_HFmode) != 0)
83 : return -1;
84 : return 2;
85 :
86 310 : case E_TImode:
87 310 : if (pnum_clobbers == NULL
88 310 : || pattern4 (x3,
89 : E_TImode) != 0)
90 180 : return -1;
91 : return 3;
92 :
93 537 : case E_QImode:
94 537 : if (pnum_clobbers == NULL
95 537 : || pattern4 (x3,
96 : E_QImode) != 0)
97 307 : return -1;
98 : return 4;
99 :
100 670 : case E_HImode:
101 670 : if (pnum_clobbers == NULL
102 670 : || pattern4 (x3,
103 : E_HImode) != 0)
104 424 : return -1;
105 : return 5;
106 :
107 496 : case E_V8QImode:
108 496 : if (pattern5 (x3,
109 : E_V8QImode) != 0)
110 : return -1;
111 : return 6;
112 :
113 216 : case E_V2SImode:
114 216 : if (pattern5 (x3,
115 : E_V2SImode) != 0)
116 : return -1;
117 : return 7;
118 :
119 810 : case E_V4HImode:
120 810 : if (pattern6 (x3,
121 : E_V4HImode) != 0)
122 : return -1;
123 : return 8;
124 :
125 160 : case E_V4QImode:
126 160 : if (pattern5 (x3,
127 : E_V4QImode) != 0)
128 : return -1;
129 : return 9;
130 :
131 44 : case E_V2QImode:
132 44 : if (pattern5 (x3,
133 : E_V2QImode) != 0)
134 : return -1;
135 : return 10;
136 :
137 349 : case E_V2HImode:
138 349 : if (pattern5 (x3,
139 : E_V2HImode) != 0)
140 : return -1;
141 : return 11;
142 :
143 : default:
144 : return -1;
145 : }
146 : }
147 :
148 : int
149 98 : pattern28 (rtx x1)
150 : {
151 98 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
152 98 : int res ATTRIBUTE_UNUSED;
153 98 : switch (GET_MODE (operands[0]))
154 : {
155 64 : case E_V4SImode:
156 64 : if (!register_operand (operands[0], E_V4SImode)
157 64 : || GET_MODE (x1) != E_V4SImode)
158 : return -1;
159 : return 0;
160 :
161 34 : case E_V4DImode:
162 34 : if (!register_operand (operands[0], E_V4DImode)
163 34 : || GET_MODE (x1) != E_V4DImode)
164 : return -1;
165 : return 1;
166 :
167 : default:
168 : return -1;
169 : }
170 : }
171 :
172 : int
173 834020 : pattern35 (rtx x1)
174 : {
175 834020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
176 834020 : rtx x2, x3, x4, x5;
177 834020 : int res ATTRIBUTE_UNUSED;
178 834020 : x2 = XEXP (x1, 0);
179 834020 : operands[0] = x2;
180 834020 : x3 = XEXP (x1, 1);
181 834020 : x4 = XEXP (x3, 0);
182 834020 : switch (GET_CODE (x4))
183 : {
184 233740 : case REG:
185 233740 : case SUBREG:
186 233740 : case MEM:
187 233740 : operands[1] = x4;
188 233740 : switch (GET_MODE (operands[0]))
189 : {
190 5499 : case E_V16HImode:
191 5499 : if (!register_operand (operands[0], E_V16HImode)
192 5468 : || GET_MODE (x3) != E_V16HImode
193 10967 : || !nonimmediate_operand (operands[1], E_V16QImode))
194 487 : return -1;
195 : return 0;
196 :
197 1842 : case E_V32HImode:
198 1842 : if (!register_operand (operands[0], E_V32HImode)
199 1828 : || GET_MODE (x3) != E_V32HImode
200 3670 : || !nonimmediate_operand (operands[1], E_V32QImode))
201 14 : return -1;
202 : return 1;
203 :
204 1340 : case E_V8HImode:
205 1340 : if (!register_operand (operands[0], E_V8HImode)
206 1338 : || GET_MODE (x3) != E_V8HImode
207 2678 : || !memory_operand (operands[1], E_V8QImode))
208 355 : return -1;
209 : return 2;
210 :
211 1462 : case E_V16SImode:
212 1462 : if (!register_operand (operands[0], E_V16SImode)
213 1462 : || GET_MODE (x3) != E_V16SImode)
214 : return -1;
215 1388 : switch (GET_MODE (operands[1]))
216 : {
217 157 : case E_V16QImode:
218 157 : if (!nonimmediate_operand (operands[1], E_V16QImode))
219 : return -1;
220 : return 3;
221 :
222 1231 : case E_V16HImode:
223 1231 : if (!nonimmediate_operand (operands[1], E_V16HImode))
224 : return -1;
225 : return 4;
226 :
227 : default:
228 : return -1;
229 : }
230 :
231 4568 : case E_V8SImode:
232 4568 : if (!register_operand (operands[0], E_V8SImode)
233 4568 : || GET_MODE (x3) != E_V8SImode)
234 : return -1;
235 4544 : switch (GET_MODE (operands[1]))
236 : {
237 23 : case E_V8QImode:
238 23 : if (!memory_operand (operands[1], E_V8QImode))
239 : return -1;
240 : return 5;
241 :
242 4521 : case E_V8HImode:
243 4521 : if (!nonimmediate_operand (operands[1], E_V8HImode))
244 : return -1;
245 : return 6;
246 :
247 : default:
248 : return -1;
249 : }
250 :
251 216 : case E_V4SImode:
252 216 : if (!register_operand (operands[0], E_V4SImode)
253 216 : || GET_MODE (x3) != E_V4SImode)
254 : return -1;
255 212 : switch (GET_MODE (operands[1]))
256 : {
257 73 : case E_V4QImode:
258 73 : if (!memory_operand (operands[1], E_V4QImode))
259 : return -1;
260 : return 7;
261 :
262 133 : case E_V4HImode:
263 133 : if (!memory_operand (operands[1], E_V4HImode))
264 : return -1;
265 : return 8;
266 :
267 : default:
268 : return -1;
269 : }
270 :
271 1629 : case E_V8DImode:
272 1629 : if (!register_operand (operands[0], E_V8DImode)
273 1629 : || GET_MODE (x3) != E_V8DImode)
274 : return -1;
275 1318 : switch (GET_MODE (operands[1]))
276 : {
277 14 : case E_V8QImode:
278 14 : if (!memory_operand (operands[1], E_V8QImode))
279 : return -1;
280 : return 9;
281 :
282 146 : case E_V8HImode:
283 146 : if (!nonimmediate_operand (operands[1], E_V8HImode))
284 : return -1;
285 : return 10;
286 :
287 1158 : case E_V8SImode:
288 1158 : if (!nonimmediate_operand (operands[1], E_V8SImode))
289 : return -1;
290 : return 11;
291 :
292 : default:
293 : return -1;
294 : }
295 :
296 4271 : case E_V4DImode:
297 4271 : if (!register_operand (operands[0], E_V4DImode)
298 4271 : || GET_MODE (x3) != E_V4DImode)
299 : return -1;
300 3690 : switch (GET_MODE (operands[1]))
301 : {
302 18 : case E_V4QImode:
303 18 : if (!memory_operand (operands[1], E_V4QImode))
304 : return -1;
305 : return 12;
306 :
307 38 : case E_V4HImode:
308 38 : if (!memory_operand (operands[1], E_V4HImode))
309 : return -1;
310 : return 13;
311 :
312 3634 : case E_V4SImode:
313 3634 : if (!nonimmediate_operand (operands[1], E_V4SImode))
314 : return -1;
315 : return 14;
316 :
317 : default:
318 : return -1;
319 : }
320 :
321 64 : case E_V2DImode:
322 64 : if (!register_operand (operands[0], E_V2DImode)
323 64 : || GET_MODE (x3) != E_V2DImode)
324 : return -1;
325 58 : switch (GET_MODE (operands[1]))
326 : {
327 17 : case E_V2QImode:
328 17 : if (!memory_operand (operands[1], E_V2QImode))
329 : return -1;
330 : return 15;
331 :
332 14 : case E_V2HImode:
333 14 : if (!memory_operand (operands[1], E_V2HImode))
334 : return -1;
335 : return 16;
336 :
337 27 : case E_V2SImode:
338 27 : if (!memory_operand (operands[1], E_V2SImode))
339 : return -1;
340 : return 17;
341 :
342 : default:
343 : return -1;
344 : }
345 :
346 : default:
347 : return -1;
348 : }
349 :
350 79666 : case VEC_SELECT:
351 79666 : x5 = XEXP (x4, 1);
352 79666 : if (GET_CODE (x5) != PARALLEL)
353 : return -1;
354 : return 18;
355 :
356 : default:
357 : return -1;
358 : }
359 : }
360 :
361 : int
362 1480 : pattern81 (rtx x1, int *pnum_clobbers, machine_mode i1)
363 : {
364 1480 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
365 1480 : int res ATTRIBUTE_UNUSED;
366 1480 : if (pnum_clobbers == NULL
367 1480 : || !nonimmediate_operand (operands[0], i1)
368 1480 : || GET_MODE (x1) != i1
369 1480 : || !nonimmediate_operand (operands[1], i1)
370 2956 : || !nonimmediate_or_x86_64_const_vector_operand (operands[2], i1))
371 41 : return -1;
372 : return 0;
373 : }
374 :
375 : int
376 26329802 : pattern88 (rtx x1, int *pnum_clobbers)
377 : {
378 26329802 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
379 26329802 : rtx x2, x3, x4;
380 26329802 : int res ATTRIBUTE_UNUSED;
381 26329802 : x2 = XEXP (x1, 1);
382 26329802 : x3 = XEXP (x2, 1);
383 26329802 : operands[2] = x3;
384 26329802 : x4 = XEXP (x1, 0);
385 26329802 : switch (GET_CODE (x4))
386 : {
387 26329035 : case REG:
388 26329035 : case SUBREG:
389 26329035 : case MEM:
390 26329035 : operands[0] = x4;
391 26329035 : return 0;
392 :
393 638 : case STRICT_LOW_PART:
394 638 : res = pattern78 (x1, pnum_clobbers);
395 638 : if (res >= 0)
396 406 : return res + 1; /* [1, 2] */
397 : return -1;
398 :
399 : default:
400 : return -1;
401 : }
402 : }
403 :
404 : int
405 49 : pattern95 (rtx x1, machine_mode i1)
406 : {
407 49 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
408 49 : rtx x2;
409 49 : int res ATTRIBUTE_UNUSED;
410 49 : if (!nonimmediate_operand (operands[0], i1)
411 49 : || GET_MODE (x1) != i1)
412 : return -1;
413 49 : x2 = XEXP (x1, 0);
414 49 : if (GET_MODE (x2) != i1
415 49 : || !general_operand (operands[1], i1))
416 0 : return -1;
417 : return 0;
418 : }
419 :
420 : int
421 21763 : pattern98 (rtx x1)
422 : {
423 21763 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
424 21763 : rtx x2, x3, x4, x5, x6, x7, x8;
425 21763 : int res ATTRIBUTE_UNUSED;
426 21763 : x2 = XEXP (x1, 1);
427 21763 : x3 = XEXP (x2, 0);
428 21763 : x4 = XEXP (x3, 1);
429 21763 : if (GET_CODE (x4) != PARALLEL)
430 : return -1;
431 21763 : x5 = XEXP (x2, 1);
432 21763 : if (GET_CODE (x5) != VEC_SELECT)
433 : return -1;
434 3949 : x6 = XEXP (x5, 1);
435 3949 : if (GET_CODE (x6) != PARALLEL)
436 : return -1;
437 3949 : x7 = XEXP (x1, 0);
438 3949 : operands[0] = x7;
439 3949 : x8 = XEXP (x3, 0);
440 3949 : switch (GET_CODE (x8))
441 : {
442 : case REG:
443 : case SUBREG:
444 : return 0;
445 :
446 1051 : case VEC_CONCAT:
447 1051 : return 1;
448 :
449 : default:
450 : return -1;
451 : }
452 : }
453 :
454 : int
455 691 : pattern106 ()
456 : {
457 691 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
458 691 : int res ATTRIBUTE_UNUSED;
459 691 : switch (GET_MODE (operands[1]))
460 : {
461 240 : case E_V8HImode:
462 240 : if (!register_operand (operands[1], E_V8HImode))
463 : return -1;
464 : return 0;
465 :
466 229 : case E_V8SImode:
467 229 : if (!register_operand (operands[1], E_V8SImode))
468 : return -1;
469 : return 1;
470 :
471 222 : case E_V8DImode:
472 222 : if (!register_operand (operands[1], E_V8DImode))
473 : return -1;
474 : return 2;
475 :
476 : default:
477 : return -1;
478 : }
479 : }
480 :
481 : int
482 1961 : pattern113 (rtx x1, int *pnum_clobbers)
483 : {
484 1961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
485 1961 : rtx x2, x3, x4;
486 1961 : int res ATTRIBUTE_UNUSED;
487 1961 : if (pnum_clobbers == NULL)
488 : return -1;
489 1961 : x2 = XEXP (x1, 0);
490 1961 : if (GET_MODE (x2) != E_SImode
491 1854 : || !register_operand (operands[0], E_DImode)
492 3815 : || GET_MODE (x1) != E_DImode)
493 107 : return -1;
494 1854 : x3 = XEXP (x2, 0);
495 1854 : operands[1] = x3;
496 1854 : if (!register_operand (operands[1], E_SImode))
497 : return -1;
498 1776 : x4 = XEXP (x2, 1);
499 1776 : operands[2] = x4;
500 1776 : if (!nonimmediate_operand (operands[2], E_SImode))
501 : return -1;
502 : return 0;
503 : }
504 :
505 : int
506 444013 : pattern120 (rtx x1, rtx_code i1)
507 : {
508 444013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
509 444013 : rtx x2, x3, x4, x5;
510 444013 : int res ATTRIBUTE_UNUSED;
511 444013 : x2 = XEXP (x1, 0);
512 444013 : if (GET_MODE (x2) != E_DImode)
513 : return -1;
514 189976 : x3 = XEXP (x1, 1);
515 189976 : if (GET_CODE (x3) != i1
516 27735 : || GET_MODE (x3) != E_DImode
517 27735 : || !register_operand (operands[0], E_DImode)
518 217598 : || GET_MODE (x1) != E_DImode)
519 162354 : return -1;
520 27622 : x4 = XEXP (x2, 0);
521 27622 : operands[1] = x4;
522 27622 : if (!register_operand (operands[1], E_SImode))
523 : return -1;
524 17778 : x5 = XEXP (x3, 0);
525 17778 : operands[2] = x5;
526 17778 : if (!nonimmediate_operand (operands[2], E_SImode))
527 : return -1;
528 : return 0;
529 : }
530 :
531 : int
532 766 : pattern128 (rtx x1, machine_mode i1)
533 : {
534 766 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
535 766 : int res ATTRIBUTE_UNUSED;
536 766 : if (!register_operand (operands[0], i1)
537 766 : || GET_MODE (x1) != i1)
538 : return -1;
539 718 : switch (GET_MODE (operands[1]))
540 : {
541 44 : case E_V8HFmode:
542 44 : if (!register_operand (operands[1], E_V8HFmode))
543 : return -1;
544 : return 0;
545 :
546 379 : case E_V4SFmode:
547 379 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
548 : return -1;
549 : return 1;
550 :
551 295 : case E_V2DFmode:
552 295 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
553 : return -1;
554 : return 2;
555 :
556 : default:
557 : return -1;
558 : }
559 : }
560 :
561 : int
562 6610 : pattern136 (rtx x1, machine_mode i1, machine_mode i2)
563 : {
564 6610 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
565 6610 : rtx x2;
566 6610 : int res ATTRIBUTE_UNUSED;
567 6610 : if (!register_operand (operands[0], i1)
568 6610 : || GET_MODE (x1) != i1)
569 : return -1;
570 6342 : x2 = XEXP (x1, 0);
571 6342 : if (GET_MODE (x2) != i1
572 6342 : || !register_operand (operands[1], i1)
573 6178 : || !nonimmediate_operand (operands[2], i1)
574 6178 : || !nonimm_or_0_operand (operands[3], i1)
575 12402 : || !register_operand (operands[4], i2))
576 442 : return -1;
577 : return 0;
578 : }
579 :
580 : int
581 5520 : pattern147 (rtx x1)
582 : {
583 5520 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
584 5520 : rtx x2, x3, x4, x5, x6;
585 5520 : int res ATTRIBUTE_UNUSED;
586 5520 : x2 = XEXP (x1, 0);
587 5520 : x3 = XEXP (x2, 0);
588 5520 : operands[1] = x3;
589 5520 : x4 = XEXP (x2, 1);
590 5520 : operands[2] = x4;
591 5520 : x5 = XEXP (x1, 1);
592 5520 : operands[3] = x5;
593 5520 : x6 = XEXP (x1, 2);
594 5520 : operands[4] = x6;
595 5520 : switch (GET_MODE (operands[0]))
596 : {
597 1072 : case E_V64QImode:
598 1072 : return pattern133 (x1,
599 : E_V64QImode,
600 1072 : E_DImode); /* [-1, 0] */
601 :
602 976 : case E_V32QImode:
603 976 : if (pattern133 (x1,
604 : E_V32QImode,
605 : E_SImode) != 0)
606 : return -1;
607 : return 1;
608 :
609 716 : case E_V16QImode:
610 716 : if (pattern133 (x1,
611 : E_V16QImode,
612 : E_HImode) != 0)
613 : return -1;
614 : return 2;
615 :
616 1069 : case E_V32HImode:
617 1069 : if (pattern133 (x1,
618 : E_V32HImode,
619 : E_SImode) != 0)
620 : return -1;
621 : return 3;
622 :
623 974 : case E_V16HImode:
624 974 : if (pattern133 (x1,
625 : E_V16HImode,
626 : E_HImode) != 0)
627 : return -1;
628 : return 4;
629 :
630 713 : case E_V8HImode:
631 713 : if (pattern133 (x1,
632 : E_V8HImode,
633 : E_QImode) != 0)
634 : return -1;
635 : return 5;
636 :
637 : default:
638 : return -1;
639 : }
640 : }
641 :
642 : int
643 3710 : pattern155 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
644 : {
645 3710 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
646 3710 : rtx x2;
647 3710 : int res ATTRIBUTE_UNUSED;
648 3710 : if (!register_operand (operands[0], i1)
649 3710 : || GET_MODE (x1) != i1)
650 : return -1;
651 3595 : x2 = XEXP (x1, 0);
652 3595 : if (GET_MODE (x2) != i1
653 3595 : || !nonimmediate_operand (operands[1], i2)
654 3593 : || !nonimm_or_0_operand (operands[2], i1)
655 7140 : || !register_operand (operands[3], i3))
656 167 : return -1;
657 : return 0;
658 : }
659 :
660 : int
661 95192 : pattern158 (rtx x1, machine_mode i1)
662 : {
663 95192 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
664 95192 : int res ATTRIBUTE_UNUSED;
665 95192 : if (!register_operand (operands[0], i1)
666 93518 : || GET_MODE (x1) != i1
667 93518 : || !register_operand (operands[1], i1)
668 165834 : || !vector_operand (operands[2], i1))
669 27690 : return -1;
670 : return 0;
671 : }
672 :
673 : int
674 618 : pattern161 (rtx x1)
675 : {
676 618 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
677 618 : rtx x2, x3, x4, x5;
678 618 : int res ATTRIBUTE_UNUSED;
679 618 : x2 = XEXP (x1, 0);
680 618 : operands[0] = x2;
681 618 : x3 = XEXP (x1, 1);
682 618 : x4 = XVECEXP (x3, 0, 0);
683 618 : operands[1] = x4;
684 618 : x5 = XVECEXP (x3, 0, 1);
685 618 : operands[2] = x5;
686 618 : switch (GET_MODE (operands[0]))
687 : {
688 152 : case E_V32HFmode:
689 152 : return pattern160 (x3,
690 152 : E_V32HFmode); /* [-1, 0] */
691 :
692 222 : case E_V16HFmode:
693 222 : if (pattern160 (x3,
694 : E_V16HFmode) != 0)
695 : return -1;
696 : return 1;
697 :
698 244 : case E_V8HFmode:
699 244 : if (pattern160 (x3,
700 : E_V8HFmode) != 0)
701 : return -1;
702 : return 2;
703 :
704 : default:
705 : return -1;
706 : }
707 : }
708 :
709 : int
710 536 : pattern167 (rtx x1)
711 : {
712 536 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
713 536 : rtx x2, x3, x4, x5;
714 536 : int res ATTRIBUTE_UNUSED;
715 536 : x2 = XEXP (x1, 0);
716 536 : operands[0] = x2;
717 536 : x3 = XEXP (x1, 1);
718 536 : x4 = XVECEXP (x3, 0, 0);
719 536 : operands[1] = x4;
720 536 : x5 = XVECEXP (x3, 0, 1);
721 536 : operands[2] = x5;
722 536 : switch (GET_MODE (operands[0]))
723 : {
724 170 : case E_V16SImode:
725 170 : return pattern158 (x3,
726 170 : E_V16SImode); /* [-1, 0] */
727 :
728 184 : case E_V8SImode:
729 184 : if (pattern158 (x3,
730 : E_V8SImode) != 0)
731 : return -1;
732 : return 1;
733 :
734 182 : case E_V4SImode:
735 182 : if (pattern158 (x3,
736 : E_V4SImode) != 0)
737 : return -1;
738 : return 2;
739 :
740 : default:
741 : return -1;
742 : }
743 : }
744 :
745 : int
746 18 : pattern175 (rtx x1)
747 : {
748 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
749 18 : rtx x2, x3, x4, x5, x6;
750 18 : int res ATTRIBUTE_UNUSED;
751 18 : x2 = XEXP (x1, 0);
752 18 : operands[0] = x2;
753 18 : x3 = XEXP (x1, 1);
754 18 : x4 = XVECEXP (x3, 0, 0);
755 18 : operands[1] = x4;
756 18 : x5 = XVECEXP (x3, 0, 1);
757 18 : operands[2] = x5;
758 18 : x6 = XVECEXP (x3, 0, 2);
759 18 : operands[3] = x6;
760 18 : switch (GET_MODE (operands[0]))
761 : {
762 6 : case E_V16SFmode:
763 6 : return pattern174 (x3,
764 6 : E_V16SFmode); /* [-1, 0] */
765 :
766 6 : case E_V8SFmode:
767 6 : if (pattern174 (x3,
768 : E_V8SFmode) != 0)
769 : return -1;
770 : return 1;
771 :
772 6 : case E_V4SFmode:
773 6 : if (pattern174 (x3,
774 : E_V4SFmode) != 0)
775 : return -1;
776 : return 2;
777 :
778 : default:
779 : return -1;
780 : }
781 : }
782 :
783 : int
784 280 : pattern185 (rtx x1)
785 : {
786 280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
787 280 : rtx x2, x3, x4, x5, x6;
788 280 : int res ATTRIBUTE_UNUSED;
789 280 : x2 = XEXP (x1, 0);
790 280 : operands[0] = x2;
791 280 : x3 = XEXP (x1, 1);
792 280 : x4 = XVECEXP (x3, 0, 0);
793 280 : operands[1] = x4;
794 280 : x5 = XVECEXP (x3, 0, 1);
795 280 : operands[2] = x5;
796 280 : x6 = XVECEXP (x3, 0, 2);
797 280 : operands[3] = x6;
798 280 : switch (GET_MODE (operands[0]))
799 : {
800 140 : case E_V32HImode:
801 140 : return pattern178 (x3,
802 140 : E_V32HImode); /* [-1, 0] */
803 :
804 140 : case E_V16HImode:
805 140 : if (pattern178 (x3,
806 : E_V16HImode) != 0)
807 : return -1;
808 : return 1;
809 :
810 : default:
811 : return -1;
812 : }
813 : }
814 :
815 : int
816 7077388 : pattern191 (rtx x1)
817 : {
818 7077388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
819 7077388 : rtx x2, x3;
820 7077388 : int res ATTRIBUTE_UNUSED;
821 7077388 : x2 = XEXP (x1, 0);
822 7077388 : operands[1] = x2;
823 7077388 : x3 = XEXP (x1, 1);
824 7077388 : operands[2] = x3;
825 7077388 : switch (GET_CODE (operands[2]))
826 : {
827 2809833 : case REG:
828 2809833 : case SUBREG:
829 2809833 : case MEM:
830 2809833 : case VEC_DUPLICATE:
831 2809833 : switch (GET_MODE (operands[0]))
832 : {
833 797 : case E_V32HFmode:
834 797 : return pattern189 (x1,
835 797 : E_V32HFmode); /* [-1, 0] */
836 :
837 886 : case E_V16HFmode:
838 886 : if (pattern189 (x1,
839 : E_V16HFmode) != 0)
840 : return -1;
841 : return 1;
842 :
843 1860 : case E_V8HFmode:
844 1860 : if (pattern189 (x1,
845 : E_V8HFmode) != 0)
846 : return -1;
847 : return 2;
848 :
849 664 : case E_V16SFmode:
850 664 : if (pattern189 (x1,
851 : E_V16SFmode) != 0)
852 : return -1;
853 : return 3;
854 :
855 37078 : case E_V8SFmode:
856 37078 : if (pattern189 (x1,
857 : E_V8SFmode) != 0)
858 : return -1;
859 : return 4;
860 :
861 290286 : case E_V4SFmode:
862 290286 : if (pattern189 (x1,
863 : E_V4SFmode) != 0)
864 : return -1;
865 : return 5;
866 :
867 1364 : case E_V8DFmode:
868 1364 : if (pattern189 (x1,
869 : E_V8DFmode) != 0)
870 : return -1;
871 : return 6;
872 :
873 56880 : case E_V4DFmode:
874 56880 : if (pattern189 (x1,
875 : E_V4DFmode) != 0)
876 : return -1;
877 : return 7;
878 :
879 216569 : case E_V2DFmode:
880 216569 : if (pattern189 (x1,
881 : E_V2DFmode) != 0)
882 : return -1;
883 : return 8;
884 :
885 893 : case E_V64QImode:
886 893 : if (pattern189 (x1,
887 : E_V64QImode) != 0)
888 : return -1;
889 : return 9;
890 :
891 3000 : case E_V32QImode:
892 3000 : if (pattern189 (x1,
893 : E_V32QImode) != 0)
894 : return -1;
895 : return 10;
896 :
897 59158 : case E_V16QImode:
898 59158 : if (pattern189 (x1,
899 : E_V16QImode) != 0)
900 : return -1;
901 : return 11;
902 :
903 1040 : case E_V32HImode:
904 1040 : if (pattern189 (x1,
905 : E_V32HImode) != 0)
906 : return -1;
907 : return 12;
908 :
909 9256 : case E_V16HImode:
910 9256 : if (pattern189 (x1,
911 : E_V16HImode) != 0)
912 : return -1;
913 : return 13;
914 :
915 113659 : case E_V8HImode:
916 113659 : if (pattern189 (x1,
917 : E_V8HImode) != 0)
918 : return -1;
919 : return 14;
920 :
921 11917 : case E_V16SImode:
922 11917 : if (pattern189 (x1,
923 : E_V16SImode) != 0)
924 : return -1;
925 : return 15;
926 :
927 26804 : case E_V8SImode:
928 26804 : if (pattern189 (x1,
929 : E_V8SImode) != 0)
930 : return -1;
931 : return 16;
932 :
933 767690 : case E_V4SImode:
934 767690 : if (pattern189 (x1,
935 : E_V4SImode) != 0)
936 : return -1;
937 : return 17;
938 :
939 5614 : case E_V8DImode:
940 5614 : if (pattern189 (x1,
941 : E_V8DImode) != 0)
942 : return -1;
943 : return 18;
944 :
945 11570 : case E_V4DImode:
946 11570 : if (pattern189 (x1,
947 : E_V4DImode) != 0)
948 : return -1;
949 : return 19;
950 :
951 221820 : case E_V2DImode:
952 221820 : if (pattern189 (x1,
953 : E_V2DImode) != 0)
954 : return -1;
955 : return 20;
956 :
957 206 : case E_V32BFmode:
958 206 : if (pattern12 (x1,
959 : E_V32BFmode) != 0)
960 : return -1;
961 : return 21;
962 :
963 206 : case E_V16BFmode:
964 206 : if (pattern12 (x1,
965 : E_V16BFmode) != 0)
966 : return -1;
967 : return 22;
968 :
969 230 : case E_V8BFmode:
970 230 : if (pattern12 (x1,
971 : E_V8BFmode) != 0)
972 : return -1;
973 : return 23;
974 :
975 : default:
976 : return -1;
977 : }
978 :
979 3625274 : case CONST_INT:
980 3625274 : case CONST_DOUBLE:
981 3625274 : case CONST_VECTOR:
982 3625274 : switch (GET_MODE (operands[0]))
983 : {
984 25 : case E_V64QImode:
985 25 : if (pattern190 (x1,
986 : E_V64QImode) != 0)
987 : return -1;
988 : return 24;
989 :
990 195 : case E_V32QImode:
991 195 : if (pattern190 (x1,
992 : E_V32QImode) != 0)
993 : return -1;
994 : return 25;
995 :
996 5121 : case E_V16QImode:
997 5121 : if (pattern190 (x1,
998 : E_V16QImode) != 0)
999 : return -1;
1000 : return 26;
1001 :
1002 28 : case E_V32HImode:
1003 28 : if (pattern190 (x1,
1004 : E_V32HImode) != 0)
1005 : return -1;
1006 : return 27;
1007 :
1008 295 : case E_V16HImode:
1009 295 : if (pattern190 (x1,
1010 : E_V16HImode) != 0)
1011 : return -1;
1012 : return 28;
1013 :
1014 2271 : case E_V8HImode:
1015 2271 : if (pattern190 (x1,
1016 : E_V8HImode) != 0)
1017 : return -1;
1018 : return 29;
1019 :
1020 738 : case E_V16SImode:
1021 738 : if (pattern190 (x1,
1022 : E_V16SImode) != 0)
1023 : return -1;
1024 : return 30;
1025 :
1026 1338 : case E_V8SImode:
1027 1338 : if (pattern190 (x1,
1028 : E_V8SImode) != 0)
1029 : return -1;
1030 : return 31;
1031 :
1032 45942 : case E_V4SImode:
1033 45942 : if (pattern190 (x1,
1034 : E_V4SImode) != 0)
1035 : return -1;
1036 : return 32;
1037 :
1038 48 : case E_V8DImode:
1039 48 : if (pattern190 (x1,
1040 : E_V8DImode) != 0)
1041 : return -1;
1042 : return 33;
1043 :
1044 352 : case E_V4DImode:
1045 352 : if (pattern190 (x1,
1046 : E_V4DImode) != 0)
1047 : return -1;
1048 : return 34;
1049 :
1050 8791 : case E_V2DImode:
1051 8791 : if (pattern190 (x1,
1052 : E_V2DImode) != 0)
1053 : return -1;
1054 : return 35;
1055 :
1056 : default:
1057 : return -1;
1058 : }
1059 :
1060 : default:
1061 : return -1;
1062 : }
1063 : }
1064 :
1065 : int
1066 944687 : pattern225 (rtx x1)
1067 : {
1068 944687 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1069 944687 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1070 944687 : rtx x10, x11;
1071 944687 : int res ATTRIBUTE_UNUSED;
1072 944687 : x2 = XVECEXP (x1, 0, 1);
1073 944687 : if (GET_CODE (x2) != SET)
1074 : return -1;
1075 944308 : x3 = XEXP (x2, 1);
1076 944308 : if (GET_CODE (x3) != MOD)
1077 : return -1;
1078 920519 : x4 = XVECEXP (x1, 0, 0);
1079 920519 : x5 = XEXP (x4, 0);
1080 920519 : operands[0] = x5;
1081 920519 : x6 = XEXP (x4, 1);
1082 920519 : x7 = XEXP (x6, 0);
1083 920519 : operands[2] = x7;
1084 920519 : x8 = XEXP (x6, 1);
1085 920519 : operands[3] = x8;
1086 920519 : x9 = XEXP (x2, 0);
1087 920519 : operands[1] = x9;
1088 920519 : x10 = XEXP (x3, 0);
1089 920519 : if (!rtx_equal_p (x10, operands[2]))
1090 : return -1;
1091 888201 : x11 = XEXP (x3, 1);
1092 888201 : if (!rtx_equal_p (x11, operands[3]))
1093 : return -1;
1094 860413 : switch (GET_CODE (operands[2]))
1095 : {
1096 : case REG:
1097 : case SUBREG:
1098 : return 0;
1099 :
1100 32875 : case CONST_INT:
1101 32875 : return 1;
1102 :
1103 : default:
1104 : return -1;
1105 : }
1106 : }
1107 :
1108 : int
1109 1221 : pattern235 (rtx x1)
1110 : {
1111 1221 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1112 1221 : rtx x2, x3, x4, x5, x6, x7, x8;
1113 1221 : int res ATTRIBUTE_UNUSED;
1114 1221 : x2 = XVECEXP (x1, 0, 1);
1115 1221 : if (GET_CODE (x2) != UNSPEC
1116 739 : || XVECLEN (x2, 0) != 1
1117 739 : || XINT (x2, 1) != 39)
1118 : return -1;
1119 739 : x3 = XVECEXP (x1, 0, 2);
1120 739 : if (GET_CODE (x3) != CLOBBER)
1121 : return -1;
1122 739 : x4 = XEXP (x3, 0);
1123 739 : if (GET_CODE (x4) != REG
1124 739 : || REGNO (x4) != 17
1125 1478 : || GET_MODE (x4) != E_CCmode)
1126 : return -1;
1127 739 : x5 = XVECEXP (x1, 0, 0);
1128 739 : x6 = XEXP (x5, 0);
1129 739 : operands[0] = x6;
1130 739 : x7 = XEXP (x5, 1);
1131 739 : x8 = XEXP (x7, 0);
1132 739 : operands[1] = x8;
1133 739 : return pattern234 (x1); /* [-1, 1] */
1134 : }
1135 :
1136 : int
1137 3004515 : pattern248 (rtx x1)
1138 : {
1139 3004515 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1140 3004515 : rtx x2, x3;
1141 3004515 : int res ATTRIBUTE_UNUSED;
1142 3004515 : if (GET_CODE (x1) != VEC_SELECT)
1143 : return -1;
1144 32056 : x2 = XEXP (x1, 0);
1145 32056 : if (GET_CODE (x2) != SUBREG
1146 32056 : || maybe_ne (SUBREG_BYTE (x2), 0))
1147 : return -1;
1148 5142 : x3 = XEXP (x1, 1);
1149 5142 : if (GET_CODE (x3) != PARALLEL)
1150 0 : return -1;
1151 : return 0;
1152 : }
1153 :
1154 : int
1155 347068 : pattern252 (rtx x1)
1156 : {
1157 347068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1158 347068 : rtx x2, x3, x4, x5, x6, x7, x8;
1159 347068 : int res ATTRIBUTE_UNUSED;
1160 347068 : x2 = XVECEXP (x1, 0, 1);
1161 347068 : if (GET_CODE (x2) != CLOBBER)
1162 : return -1;
1163 345940 : x3 = XEXP (x2, 0);
1164 345940 : if (GET_CODE (x3) != REG
1165 345940 : || REGNO (x3) != 17
1166 691880 : || GET_MODE (x3) != E_CCmode)
1167 : return -1;
1168 345940 : x4 = XVECEXP (x1, 0, 0);
1169 345940 : x5 = XEXP (x4, 0);
1170 345940 : operands[0] = x5;
1171 345940 : x6 = XEXP (x4, 1);
1172 345940 : x7 = XEXP (x6, 0);
1173 345940 : operands[1] = x7;
1174 345940 : x8 = XEXP (x6, 1);
1175 345940 : operands[2] = x8;
1176 345940 : if (!nonmemory_operand (operands[2], E_QImode))
1177 : return -1;
1178 345940 : return pattern251 (x6); /* [-1, 1] */
1179 : }
1180 :
1181 : int
1182 10730 : pattern263 (rtx x1, int *pnum_clobbers, machine_mode i1, machine_mode i2)
1183 : {
1184 10730 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1185 10730 : int res ATTRIBUTE_UNUSED;
1186 10730 : if (pnum_clobbers == NULL
1187 10730 : || !nonimmediate_operand (operands[0], i2)
1188 10730 : || GET_MODE (x1) != i2
1189 21460 : || !register_operand (operands[1], i1))
1190 5161 : return -1;
1191 : return 0;
1192 : }
1193 :
1194 : int
1195 743 : pattern269 (rtx x1)
1196 : {
1197 743 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1198 743 : rtx x2, x3, x4;
1199 743 : int res ATTRIBUTE_UNUSED;
1200 743 : x2 = XEXP (x1, 1);
1201 743 : x3 = XEXP (x2, 0);
1202 743 : x4 = XEXP (x3, 1);
1203 743 : operands[3] = x4;
1204 743 : if (!const_int_operand (operands[3], E_VOIDmode))
1205 : return -1;
1206 742 : return pattern0 (x1); /* [-1, 1] */
1207 : }
1208 :
1209 : int
1210 0 : pattern278 (rtx x1, machine_mode i1, machine_mode i2, int i3)
1211 : {
1212 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1213 0 : rtx x2, x3, x4, x5, x6;
1214 0 : int res ATTRIBUTE_UNUSED;
1215 0 : x2 = XEXP (x1, 1);
1216 0 : x3 = XVECEXP (x2, 0, 0);
1217 0 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1218 : return -1;
1219 0 : x4 = XVECEXP (x2, 0, 1);
1220 0 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3]
1221 0 : || !register_operand (operands[0], i2)
1222 0 : || GET_MODE (x1) != i2)
1223 0 : return -1;
1224 0 : x5 = XEXP (x1, 0);
1225 0 : x6 = XEXP (x5, 0);
1226 0 : operands[1] = x6;
1227 0 : if (!nonimmediate_operand (operands[1], i1))
1228 : return -1;
1229 : return 0;
1230 : }
1231 :
1232 : int
1233 1077 : pattern286 (rtx x1, machine_mode i1)
1234 : {
1235 1077 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1236 1077 : rtx x2;
1237 1077 : int res ATTRIBUTE_UNUSED;
1238 1077 : if (!register_operand (operands[0], i1)
1239 1077 : || GET_MODE (x1) != i1)
1240 : return -1;
1241 1030 : x2 = XEXP (x1, 0);
1242 1030 : if (GET_MODE (x2) != i1
1243 1030 : || !register_operand (operands[3], i1))
1244 109 : return -1;
1245 : return 0;
1246 : }
1247 :
1248 : int
1249 582 : pattern290 (rtx x1, machine_mode i1, machine_mode i2)
1250 : {
1251 582 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1252 582 : rtx x2, x3, x4, x5, x6;
1253 582 : int res ATTRIBUTE_UNUSED;
1254 582 : if (GET_MODE (x1) != i1)
1255 : return -1;
1256 582 : x2 = XEXP (x1, 0);
1257 582 : if (GET_MODE (x2) != i1)
1258 : return -1;
1259 582 : x3 = XEXP (x1, 1);
1260 582 : if (GET_MODE (x3) != i1)
1261 : return -1;
1262 582 : x4 = XEXP (x3, 0);
1263 582 : if (GET_MODE (x4) != i2)
1264 : return -1;
1265 582 : x5 = XEXP (x4, 0);
1266 582 : if (GET_MODE (x5) != i2)
1267 : return -1;
1268 582 : x6 = XEXP (x5, 0);
1269 582 : if (!register_operand (x6, i1))
1270 : return -1;
1271 : return 0;
1272 : }
1273 :
1274 : int
1275 17 : pattern299 (rtx x1)
1276 : {
1277 17 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1278 17 : rtx x2;
1279 17 : int res ATTRIBUTE_UNUSED;
1280 17 : if (!memory_operand (operands[0], E_DImode)
1281 17 : || GET_MODE (x1) != E_DImode)
1282 : return -1;
1283 9 : x2 = XEXP (x1, 0);
1284 9 : switch (GET_MODE (x2))
1285 : {
1286 6 : case E_V8QImode:
1287 6 : return pattern106 (); /* [-1, 2] */
1288 :
1289 3 : case E_V4HImode:
1290 3 : switch (GET_MODE (operands[1]))
1291 : {
1292 0 : case E_V4SImode:
1293 0 : if (!register_operand (operands[1], E_V4SImode))
1294 : return -1;
1295 : return 3;
1296 :
1297 3 : case E_V4DImode:
1298 3 : if (!register_operand (operands[1], E_V4DImode))
1299 : return -1;
1300 : return 4;
1301 :
1302 : default:
1303 : return -1;
1304 : }
1305 :
1306 0 : case E_V2SImode:
1307 0 : if (!register_operand (operands[1], E_V2DImode))
1308 : return -1;
1309 : return 5;
1310 :
1311 : default:
1312 : return -1;
1313 : }
1314 : }
1315 :
1316 : int
1317 21045 : pattern312 (rtx x1, int i1, machine_mode i2, machine_mode i3)
1318 : {
1319 21045 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1320 21045 : rtx x2, x3, x4, x5;
1321 21045 : int res ATTRIBUTE_UNUSED;
1322 21045 : if (GET_MODE (x1) != i3)
1323 : return -1;
1324 270 : x2 = XEXP (x1, 0);
1325 270 : if (GET_CODE (x2) != VEC_SELECT
1326 235 : || GET_MODE (x2) != i2)
1327 : return -1;
1328 235 : x3 = XEXP (x2, 1);
1329 235 : if (GET_CODE (x3) != PARALLEL
1330 235 : || XVECLEN (x3, 0) != 2)
1331 : return -1;
1332 235 : x4 = XVECEXP (x3, 0, 0);
1333 235 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1334 : return -1;
1335 235 : x5 = XVECEXP (x3, 0, 1);
1336 235 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
1337 8 : return -1;
1338 : return 0;
1339 : }
1340 :
1341 : int
1342 1510 : pattern319 (rtx x1, rtx_code i1)
1343 : {
1344 1510 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1345 1510 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1346 1510 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1347 1510 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
1348 1510 : rtx x26, x27, x28;
1349 1510 : int res ATTRIBUTE_UNUSED;
1350 1510 : x2 = XEXP (x1, 0);
1351 1510 : x3 = XEXP (x2, 0);
1352 1510 : x4 = XEXP (x3, 0);
1353 1510 : if (GET_CODE (x4) != VEC_SELECT)
1354 : return -1;
1355 1510 : x5 = XEXP (x4, 1);
1356 1510 : if (GET_CODE (x5) != PARALLEL)
1357 : return -1;
1358 1510 : x6 = XEXP (x2, 1);
1359 1510 : if (GET_CODE (x6) != i1)
1360 : return -1;
1361 1422 : x7 = XEXP (x6, 0);
1362 1422 : if (GET_CODE (x7) != VEC_SELECT)
1363 : return -1;
1364 1422 : x8 = XEXP (x7, 1);
1365 1422 : if (GET_CODE (x8) != PARALLEL)
1366 : return -1;
1367 1422 : x9 = XEXP (x4, 0);
1368 1422 : operands[1] = x9;
1369 1422 : x10 = XEXP (x7, 0);
1370 1422 : operands[2] = x10;
1371 1422 : x11 = XEXP (x1, 1);
1372 1422 : operands[3] = x11;
1373 1422 : x12 = XEXP (x1, 2);
1374 1422 : operands[4] = x12;
1375 1422 : if (!register_operand (operands[4], E_QImode))
1376 : return -1;
1377 1318 : switch (XVECLEN (x5, 0))
1378 : {
1379 492 : case 8:
1380 492 : x13 = XVECEXP (x5, 0, 0);
1381 492 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1382 : return -1;
1383 492 : x14 = XVECEXP (x5, 0, 1);
1384 492 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1385 : return -1;
1386 492 : x15 = XVECEXP (x5, 0, 2);
1387 492 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1388 : return -1;
1389 492 : x16 = XVECEXP (x5, 0, 3);
1390 492 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1391 : return -1;
1392 492 : x17 = XVECEXP (x5, 0, 4);
1393 492 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1394 : return -1;
1395 492 : x18 = XVECEXP (x5, 0, 5);
1396 492 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
1397 : return -1;
1398 492 : x19 = XVECEXP (x5, 0, 6);
1399 492 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
1400 : return -1;
1401 492 : x20 = XVECEXP (x5, 0, 7);
1402 492 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
1403 492 : || XVECLEN (x8, 0) != 8)
1404 : return -1;
1405 492 : x21 = XVECEXP (x8, 0, 0);
1406 492 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1407 : return -1;
1408 492 : x22 = XVECEXP (x8, 0, 1);
1409 492 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1410 : return -1;
1411 492 : x23 = XVECEXP (x8, 0, 2);
1412 492 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1413 : return -1;
1414 492 : x24 = XVECEXP (x8, 0, 3);
1415 492 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
1416 : return -1;
1417 492 : x25 = XVECEXP (x8, 0, 4);
1418 492 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1419 : return -1;
1420 492 : x26 = XVECEXP (x8, 0, 5);
1421 492 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
1422 : return -1;
1423 492 : x27 = XVECEXP (x8, 0, 6);
1424 492 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
1425 : return -1;
1426 492 : x28 = XVECEXP (x8, 0, 7);
1427 492 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
1428 492 : || pattern318 (x1,
1429 : E_V8DImode,
1430 : E_V16SImode,
1431 : E_V8SImode) != 0)
1432 68 : return -1;
1433 : return 0;
1434 :
1435 450 : case 4:
1436 450 : x13 = XVECEXP (x5, 0, 0);
1437 450 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1438 : return -1;
1439 450 : x14 = XVECEXP (x5, 0, 1);
1440 450 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1441 : return -1;
1442 450 : x15 = XVECEXP (x5, 0, 2);
1443 450 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1444 : return -1;
1445 450 : x16 = XVECEXP (x5, 0, 3);
1446 450 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
1447 450 : || XVECLEN (x8, 0) != 4)
1448 : return -1;
1449 450 : x21 = XVECEXP (x8, 0, 0);
1450 450 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1451 : return -1;
1452 450 : x22 = XVECEXP (x8, 0, 1);
1453 450 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1454 : return -1;
1455 450 : x23 = XVECEXP (x8, 0, 2);
1456 450 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
1457 : return -1;
1458 450 : x24 = XVECEXP (x8, 0, 3);
1459 450 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
1460 450 : || pattern318 (x1,
1461 : E_V4DImode,
1462 : E_V8SImode,
1463 : E_V4SImode) != 0)
1464 68 : return -1;
1465 : return 1;
1466 :
1467 376 : case 2:
1468 376 : x13 = XVECEXP (x5, 0, 0);
1469 376 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1470 : return -1;
1471 376 : x14 = XVECEXP (x5, 0, 1);
1472 376 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
1473 376 : || XVECLEN (x8, 0) != 2)
1474 : return -1;
1475 376 : x21 = XVECEXP (x8, 0, 0);
1476 376 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1477 : return -1;
1478 376 : x22 = XVECEXP (x8, 0, 1);
1479 376 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
1480 376 : || !register_operand (operands[0], E_V2DImode)
1481 364 : || GET_MODE (x1) != E_V2DImode
1482 364 : || GET_MODE (x2) != E_V2DImode
1483 364 : || GET_MODE (x3) != E_V2DImode
1484 364 : || GET_MODE (x4) != E_V2SImode
1485 364 : || !vector_operand (operands[1], E_V4SImode)
1486 364 : || GET_MODE (x6) != E_V2DImode
1487 364 : || GET_MODE (x7) != E_V2SImode
1488 364 : || !vector_operand (operands[2], E_V4SImode)
1489 740 : || !nonimm_or_0_operand (operands[3], E_V2DImode))
1490 14 : return -1;
1491 : return 2;
1492 :
1493 : default:
1494 : return -1;
1495 : }
1496 : }
1497 :
1498 : int
1499 6350 : pattern355 (rtx x1)
1500 : {
1501 6350 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1502 6350 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1503 6350 : int res ATTRIBUTE_UNUSED;
1504 6350 : x2 = XVECEXP (x1, 0, 1);
1505 6350 : if (GET_CODE (x2) != CLOBBER)
1506 : return -1;
1507 5746 : x3 = XEXP (x2, 0);
1508 5746 : if (GET_CODE (x3) != REG
1509 5746 : || REGNO (x3) != 17
1510 11492 : || GET_MODE (x3) != E_CCmode)
1511 : return -1;
1512 5746 : x4 = XVECEXP (x1, 0, 0);
1513 5746 : x5 = XEXP (x4, 0);
1514 5746 : operands[0] = x5;
1515 5746 : x6 = XEXP (x4, 1);
1516 5746 : x7 = XEXP (x6, 0);
1517 5746 : x8 = XEXP (x7, 0);
1518 5746 : operands[1] = x8;
1519 5746 : x9 = XEXP (x7, 1);
1520 5746 : operands[2] = x9;
1521 5746 : return pattern354 (x6); /* [-1, 5] */
1522 : }
1523 :
1524 : int
1525 8894 : pattern362 (rtx x1)
1526 : {
1527 8894 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1528 8894 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1529 8894 : rtx x10;
1530 8894 : int res ATTRIBUTE_UNUSED;
1531 8894 : x2 = XVECEXP (x1, 0, 0);
1532 8894 : x3 = XEXP (x2, 1);
1533 8894 : x4 = XEXP (x3, 0);
1534 8894 : operands[2] = x4;
1535 8894 : x5 = XEXP (x4, 0);
1536 8894 : if (GET_CODE (x5) != REG
1537 8894 : || REGNO (x5) != 17)
1538 : return -1;
1539 3944 : x6 = XEXP (x4, 1);
1540 3944 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1541 : return -1;
1542 3944 : x7 = XVECEXP (x1, 0, 1);
1543 3944 : if (GET_CODE (x7) != CLOBBER)
1544 : return -1;
1545 3808 : x8 = XEXP (x7, 0);
1546 3808 : if (GET_CODE (x8) != REG
1547 3808 : || REGNO (x8) != 17
1548 7616 : || GET_MODE (x8) != E_CCmode)
1549 : return -1;
1550 3808 : x9 = XEXP (x2, 0);
1551 3808 : operands[0] = x9;
1552 3808 : x10 = XEXP (x3, 1);
1553 3808 : operands[1] = x10;
1554 3808 : switch (GET_MODE (operands[0]))
1555 : {
1556 : case E_QImode:
1557 : return 0;
1558 :
1559 : case E_HImode:
1560 : return 1;
1561 :
1562 : case E_SImode:
1563 : return 2;
1564 :
1565 : case E_DImode:
1566 : return 3;
1567 :
1568 : default:
1569 : return -1;
1570 : }
1571 : }
1572 :
1573 : int
1574 4384 : pattern369 (rtx x1, rtx_code i1)
1575 : {
1576 4384 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1577 4384 : rtx x2, x3, x4, x5, x6, x7, x8;
1578 4384 : int res ATTRIBUTE_UNUSED;
1579 4384 : x2 = XVECEXP (x1, 0, 0);
1580 4384 : x3 = XEXP (x2, 1);
1581 4384 : x4 = XEXP (x3, 0);
1582 4384 : x5 = XEXP (x4, 0);
1583 4384 : if (XVECLEN (x5, 0) != 2
1584 4384 : || XINT (x5, 1) != 110)
1585 : return -1;
1586 4384 : x6 = XEXP (x2, 0);
1587 4384 : if (GET_CODE (x6) != REG
1588 4384 : || REGNO (x6) != 17
1589 8768 : || GET_MODE (x6) != E_CCNOmode)
1590 : return -1;
1591 3968 : x7 = XVECEXP (x1, 0, 1);
1592 3968 : if (GET_CODE (x7) != SET)
1593 : return -1;
1594 3968 : x8 = XEXP (x7, 1);
1595 3968 : if (GET_CODE (x8) != i1)
1596 : return -1;
1597 3968 : return pattern368 (x1,
1598 3968 : E_CCNOmode); /* [-1, 3] */
1599 : }
1600 :
1601 : int
1602 1090 : pattern375 (rtx x1)
1603 : {
1604 1090 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1605 1090 : rtx x2, x3, x4, x5, x6;
1606 1090 : int res ATTRIBUTE_UNUSED;
1607 1090 : x2 = XEXP (x1, 0);
1608 1090 : x3 = XEXP (x2, 1);
1609 1090 : switch (GET_CODE (x3))
1610 : {
1611 : case REG:
1612 : case SUBREG:
1613 : return 0;
1614 :
1615 3 : case AND:
1616 3 : if (GET_MODE (x3) != E_QImode)
1617 : return -1;
1618 3 : x4 = XEXP (x3, 0);
1619 3 : operands[1] = x4;
1620 3 : if (!register_operand (operands[1], E_QImode))
1621 : return -1;
1622 3 : x5 = XEXP (x3, 1);
1623 3 : operands[2] = x5;
1624 3 : if (!const_int_operand (operands[2], E_QImode))
1625 : return -1;
1626 3 : x6 = XEXP (x1, 1);
1627 3 : operands[3] = x6;
1628 3 : switch (GET_MODE (operands[0]))
1629 : {
1630 3 : case E_SImode:
1631 3 : if (pattern374 (x1,
1632 : E_SImode) != 0)
1633 : return -1;
1634 : return 1;
1635 :
1636 0 : case E_DImode:
1637 0 : if (pattern374 (x1,
1638 : E_DImode) != 0)
1639 : return -1;
1640 : return 2;
1641 :
1642 : default:
1643 : return -1;
1644 : }
1645 :
1646 : default:
1647 : return -1;
1648 : }
1649 : }
1650 :
1651 : int
1652 90 : pattern388 (rtx x1)
1653 : {
1654 90 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1655 90 : rtx x2, x3, x4, x5, x6;
1656 90 : int res ATTRIBUTE_UNUSED;
1657 90 : x2 = XVECEXP (x1, 0, 1);
1658 90 : if (GET_CODE (x2) != SET)
1659 : return -1;
1660 90 : x3 = XEXP (x2, 1);
1661 90 : if (GET_CODE (x3) != PLUS
1662 90 : || GET_MODE (x3) != E_SImode)
1663 : return -1;
1664 90 : x4 = XEXP (x3, 0);
1665 90 : if (GET_CODE (x4) != REG
1666 90 : || REGNO (x4) != 7
1667 180 : || GET_MODE (x4) != E_SImode)
1668 : return -1;
1669 90 : x5 = XEXP (x2, 0);
1670 90 : if (GET_CODE (x5) != REG
1671 90 : || REGNO (x5) != 7
1672 180 : || GET_MODE (x5) != E_SImode)
1673 : return -1;
1674 90 : x6 = XVECEXP (x1, 0, 2);
1675 90 : return pattern387 (x6,
1676 90 : 38); /* [-1, 0] */
1677 : }
1678 :
1679 : int
1680 48 : pattern398 (rtx x1)
1681 : {
1682 48 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1683 48 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1684 48 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1685 48 : int res ATTRIBUTE_UNUSED;
1686 48 : x2 = XVECEXP (x1, 0, 0);
1687 48 : x3 = XEXP (x2, 1);
1688 48 : if (GET_MODE (x3) != E_SImode)
1689 : return -1;
1690 48 : x4 = XEXP (x3, 0);
1691 48 : if (GET_CODE (x4) != UNSPEC
1692 48 : || XVECLEN (x4, 0) != 3
1693 48 : || XINT (x4, 1) != 22
1694 48 : || GET_MODE (x4) != E_SImode)
1695 : return -1;
1696 48 : x5 = XVECEXP (x4, 0, 2);
1697 48 : if (GET_CODE (x5) != REG
1698 48 : || REGNO (x5) != 7
1699 96 : || GET_MODE (x5) != E_SImode)
1700 : return -1;
1701 48 : x6 = XEXP (x3, 1);
1702 48 : if (GET_CODE (x6) != CONST
1703 48 : || GET_MODE (x6) != E_SImode)
1704 : return -1;
1705 48 : x7 = XEXP (x6, 0);
1706 48 : if (GET_CODE (x7) != UNSPEC
1707 48 : || XVECLEN (x7, 0) != 1
1708 48 : || XINT (x7, 1) != 6
1709 48 : || GET_MODE (x7) != E_SImode)
1710 : return -1;
1711 48 : x8 = XVECEXP (x1, 0, 1);
1712 48 : if (GET_CODE (x8) != CLOBBER)
1713 : return -1;
1714 48 : x9 = XVECEXP (x1, 0, 2);
1715 48 : if (GET_CODE (x9) != CLOBBER)
1716 : return -1;
1717 48 : x10 = XVECEXP (x1, 0, 3);
1718 48 : x11 = XEXP (x10, 0);
1719 48 : if (GET_CODE (x11) != REG
1720 48 : || REGNO (x11) != 17
1721 96 : || GET_MODE (x11) != E_CCmode)
1722 : return -1;
1723 48 : x12 = XEXP (x2, 0);
1724 48 : operands[0] = x12;
1725 48 : if (!register_operand (operands[0], E_SImode))
1726 : return -1;
1727 48 : x13 = XVECEXP (x4, 0, 0);
1728 48 : operands[1] = x13;
1729 48 : if (!register_operand (operands[1], E_SImode))
1730 : return -1;
1731 48 : x14 = XVECEXP (x4, 0, 1);
1732 48 : operands[2] = x14;
1733 48 : if (!constant_call_address_operand (operands[2], E_VOIDmode))
1734 : return -1;
1735 48 : x15 = XVECEXP (x7, 0, 0);
1736 48 : operands[3] = x15;
1737 48 : if (!tls_symbolic_operand (operands[3], E_VOIDmode))
1738 : return -1;
1739 48 : x16 = XEXP (x8, 0);
1740 48 : operands[4] = x16;
1741 48 : if (!scratch_operand (operands[4], E_SImode))
1742 : return -1;
1743 48 : x17 = XEXP (x9, 0);
1744 48 : operands[5] = x17;
1745 48 : if (!scratch_operand (operands[5], E_SImode))
1746 : return -1;
1747 : return 0;
1748 : }
1749 :
1750 : int
1751 23068645 : pattern420 (rtx x1, machine_mode i1)
1752 : {
1753 23068645 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1754 23068645 : rtx x2, x3, x4, x5, x6, x7;
1755 23068645 : int res ATTRIBUTE_UNUSED;
1756 23068645 : if (!memory_operand (operands[3], i1))
1757 : return -1;
1758 4754937 : operands[0] = x1;
1759 4754937 : if (!general_reg_operand (operands[0], i1))
1760 : return -1;
1761 3210617 : x2 = PATTERN (peep2_next_insn (1));
1762 3210617 : if (GET_CODE (x2) != SET)
1763 : return -1;
1764 2899668 : x3 = XEXP (x2, 1);
1765 2899668 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1766 : return -1;
1767 129307 : x4 = XEXP (x2, 0);
1768 129307 : operands[1] = x4;
1769 129307 : if (!memory_operand (operands[1], i1))
1770 : return -1;
1771 56451 : x5 = PATTERN (peep2_next_insn (2));
1772 56451 : if (GET_CODE (x5) != SET)
1773 : return -1;
1774 53902 : x6 = XEXP (x5, 1);
1775 53902 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1776 : return -1;
1777 19807 : x7 = XEXP (x5, 0);
1778 19807 : operands[2] = x7;
1779 19807 : if (!memory_operand (operands[2], i1))
1780 : return -1;
1781 : return 0;
1782 : }
1783 :
1784 : int
1785 909316 : pattern431 (rtx x1, machine_mode i1)
1786 : {
1787 909316 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1788 909316 : int res ATTRIBUTE_UNUSED;
1789 909316 : if (!register_operand (operands[0], i1)
1790 909316 : || GET_MODE (x1) != i1)
1791 : return -1;
1792 874955 : switch (GET_MODE (operands[1]))
1793 : {
1794 10947 : case E_HImode:
1795 10947 : if (!nonimmediate_operand (operands[1], E_HImode))
1796 : return -1;
1797 : return 0;
1798 :
1799 526016 : case E_SImode:
1800 526016 : if (!nonimmediate_operand (operands[1], E_SImode))
1801 : return -1;
1802 : return 1;
1803 :
1804 332981 : case E_DImode:
1805 332981 : if (!nonimmediate_operand (operands[1], E_DImode))
1806 : return -1;
1807 : return 2;
1808 :
1809 : default:
1810 : return -1;
1811 : }
1812 : }
1813 :
1814 : int
1815 13113341 : pattern441 (rtx x1)
1816 : {
1817 13113341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1818 13113341 : int res ATTRIBUTE_UNUSED;
1819 13113341 : switch (GET_MODE (operands[0]))
1820 : {
1821 5528334 : case E_DImode:
1822 5528334 : if (!nonimmediate_operand (operands[0], E_DImode)
1823 5432017 : || GET_MODE (x1) != E_DImode
1824 10960351 : || !nonimmediate_operand (operands[1], E_DImode))
1825 439049 : return -1;
1826 : return 0;
1827 :
1828 3366441 : case E_SImode:
1829 3366441 : if (!nonimmediate_operand (operands[0], E_SImode)
1830 2062353 : || GET_MODE (x1) != E_SImode
1831 2062353 : || !nonimmediate_operand (operands[1], E_SImode)
1832 4975930 : || !x86_64_general_operand (operands[2], E_SImode))
1833 1835612 : return -1;
1834 : return 1;
1835 :
1836 : default:
1837 : return -1;
1838 : }
1839 : }
1840 :
1841 : int
1842 9479 : pattern452 (rtx x1, int *pnum_clobbers)
1843 : {
1844 9479 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1845 9479 : rtx x2, x3, x4;
1846 9479 : int res ATTRIBUTE_UNUSED;
1847 9479 : if (pnum_clobbers == NULL)
1848 : return -1;
1849 9479 : x2 = XEXP (x1, 1);
1850 9479 : x3 = XEXP (x2, 1);
1851 9479 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1852 : return -1;
1853 7834 : x4 = XEXP (x2, 0);
1854 7834 : operands[2] = x4;
1855 7834 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1856 : return -1;
1857 3968 : switch (GET_MODE (operands[0]))
1858 : {
1859 210 : case E_SImode:
1860 210 : return pattern451 (x1,
1861 210 : E_SImode); /* [-1, 0] */
1862 :
1863 3613 : case E_DImode:
1864 3613 : if (pattern451 (x1,
1865 : E_DImode) != 0)
1866 : return -1;
1867 : return 1;
1868 :
1869 : default:
1870 : return -1;
1871 : }
1872 : }
1873 :
1874 : int
1875 4989 : pattern461 (rtx x1, machine_mode i1)
1876 : {
1877 4989 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1878 4989 : rtx x2;
1879 4989 : int res ATTRIBUTE_UNUSED;
1880 4989 : if (!register_operand (operands[0], i1)
1881 4989 : || GET_MODE (x1) != i1)
1882 : return -1;
1883 4494 : x2 = XEXP (x1, 0);
1884 4494 : if (GET_MODE (x2) != i1
1885 4494 : || !register_operand (operands[1], i1)
1886 8812 : || !nonimmediate_operand (operands[2], i1))
1887 527 : return -1;
1888 : return 0;
1889 : }
1890 :
1891 : int
1892 1523 : pattern465 (rtx x1)
1893 : {
1894 1523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1895 1523 : rtx x2, x3, x4, x5, x6, x7;
1896 1523 : int res ATTRIBUTE_UNUSED;
1897 1523 : x2 = XEXP (x1, 0);
1898 1523 : x3 = XVECEXP (x2, 0, 0);
1899 1523 : operands[1] = x3;
1900 1523 : x4 = XVECEXP (x2, 0, 1);
1901 1523 : operands[2] = x4;
1902 1523 : x5 = XEXP (x1, 2);
1903 1523 : switch (GET_CODE (x5))
1904 : {
1905 1436 : case UNSPEC:
1906 1436 : if (XVECLEN (x5, 0) != 1
1907 1436 : || XINT (x5, 1) != 224)
1908 : return -1;
1909 1436 : x6 = XEXP (x1, 1);
1910 1436 : operands[3] = x6;
1911 1436 : x7 = XVECEXP (x5, 0, 0);
1912 1436 : operands[4] = x7;
1913 1436 : switch (GET_MODE (operands[0]))
1914 : {
1915 296 : case E_V32HFmode:
1916 296 : if (!register_operand (operands[0], E_V32HFmode)
1917 250 : || GET_MODE (x1) != E_V32HFmode
1918 250 : || GET_MODE (x2) != E_V32HFmode
1919 250 : || !vector_operand (operands[1], E_V32HFmode)
1920 250 : || !vector_operand (operands[2], E_V32HFmode)
1921 250 : || !nonimm_or_0_operand (operands[3], E_V32HFmode)
1922 246 : || GET_MODE (x5) != E_SImode
1923 542 : || !register_operand (operands[4], E_HImode))
1924 114 : return -1;
1925 : return 0;
1926 :
1927 573 : case E_V16HFmode:
1928 573 : if (pattern464 (x1,
1929 : E_HImode,
1930 : E_V16HFmode) != 0)
1931 : return -1;
1932 : return 1;
1933 :
1934 567 : case E_V8HFmode:
1935 567 : if (pattern464 (x1,
1936 : E_QImode,
1937 : E_V8HFmode) != 0)
1938 : return -1;
1939 : return 2;
1940 :
1941 : default:
1942 : return -1;
1943 : }
1944 :
1945 87 : case CONST_INT:
1946 87 : if (XWINT (x5, 0) != 3L
1947 87 : || !register_operand (operands[0], E_V8HFmode)
1948 67 : || GET_MODE (x1) != E_V8HFmode
1949 67 : || GET_MODE (x2) != E_V8HFmode
1950 67 : || !nonimmediate_operand (operands[1], E_V8HFmode)
1951 154 : || !vector_operand (operands[2], E_V8HFmode))
1952 20 : return -1;
1953 67 : x6 = XEXP (x1, 1);
1954 67 : if (!rtx_equal_p (x6, operands[1]))
1955 : return -1;
1956 : return 3;
1957 :
1958 : default:
1959 : return -1;
1960 : }
1961 : }
1962 :
1963 : int
1964 3880 : pattern489 (rtx x1, machine_mode i1, machine_mode i2)
1965 : {
1966 3880 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1967 3880 : rtx x2;
1968 3880 : int res ATTRIBUTE_UNUSED;
1969 3880 : if (!register_operand (operands[0], i1)
1970 3880 : || GET_MODE (x1) != i1)
1971 : return -1;
1972 3664 : x2 = XEXP (x1, 0);
1973 3664 : if (GET_MODE (x2) != i1
1974 3664 : || !register_operand (operands[1], i1)
1975 3604 : || !register_operand (operands[2], i1)
1976 3604 : || !nonimmediate_operand (operands[3], i1)
1977 3604 : || !const0_operand (operands[5], i1)
1978 7268 : || !register_operand (operands[4], i2))
1979 276 : return -1;
1980 : return 0;
1981 : }
1982 :
1983 : int
1984 0 : pattern495 (rtx x1)
1985 : {
1986 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1987 0 : rtx x2, x3, x4, x5;
1988 0 : int res ATTRIBUTE_UNUSED;
1989 0 : x2 = XVECEXP (x1, 0, 0);
1990 0 : x3 = XEXP (x2, 0);
1991 0 : operands[1] = x3;
1992 0 : x4 = XEXP (x2, 1);
1993 0 : operands[2] = x4;
1994 0 : x5 = XVECEXP (x1, 0, 1);
1995 0 : operands[3] = x5;
1996 0 : if (!const48_operand (operands[3], E_SImode))
1997 : return -1;
1998 0 : switch (GET_MODE (operands[0]))
1999 : {
2000 0 : case E_V32HFmode:
2001 0 : return pattern493 (x1,
2002 0 : E_V32HFmode); /* [-1, 0] */
2003 :
2004 0 : case E_V16SFmode:
2005 0 : if (pattern493 (x1,
2006 : E_V16SFmode) != 0)
2007 : return -1;
2008 : return 1;
2009 :
2010 0 : case E_V8DFmode:
2011 0 : if (pattern493 (x1,
2012 : E_V8DFmode) != 0)
2013 : return -1;
2014 : return 2;
2015 :
2016 : default:
2017 : return -1;
2018 : }
2019 : }
2020 :
2021 : int
2022 850 : pattern500 ()
2023 : {
2024 850 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2025 850 : int res ATTRIBUTE_UNUSED;
2026 850 : if (!const0_operand (operands[4], E_V4HFmode))
2027 : return -1;
2028 850 : switch (GET_MODE (operands[1]))
2029 : {
2030 410 : case E_V4SImode:
2031 410 : if (!vector_operand (operands[1], E_V4SImode))
2032 : return -1;
2033 : return 0;
2034 :
2035 440 : case E_V4DImode:
2036 440 : if (!vector_operand (operands[1], E_V4DImode))
2037 : return -1;
2038 : return 1;
2039 :
2040 : default:
2041 : return -1;
2042 : }
2043 : }
2044 :
2045 : int
2046 183 : pattern504 (rtx x1, machine_mode i1)
2047 : {
2048 183 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2049 183 : rtx x2, x3;
2050 183 : int res ATTRIBUTE_UNUSED;
2051 183 : if (!register_operand (operands[0], E_V4SFmode)
2052 183 : || GET_MODE (x1) != E_V4SFmode)
2053 : return -1;
2054 177 : x2 = XEXP (x1, 0);
2055 177 : if (GET_MODE (x2) != E_V2SFmode)
2056 : return -1;
2057 177 : x3 = XEXP (x2, 0);
2058 177 : if (GET_MODE (x3) != E_V2SFmode
2059 177 : || !nonimmediate_operand (operands[1], i1)
2060 176 : || !const0_operand (operands[3], E_V2SFmode)
2061 353 : || !const0_operand (operands[4], E_V2SFmode))
2062 1 : return -1;
2063 : return 0;
2064 : }
2065 :
2066 : int
2067 1228 : pattern508 (rtx x1, machine_mode i1, machine_mode i2)
2068 : {
2069 1228 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2070 1228 : rtx x2, x3, x4;
2071 1228 : int res ATTRIBUTE_UNUSED;
2072 1228 : if (!register_operand (operands[0], i1)
2073 1228 : || GET_MODE (x1) != i1)
2074 : return -1;
2075 1222 : x2 = XEXP (x1, 0);
2076 1222 : if (GET_MODE (x2) != i2)
2077 : return -1;
2078 1222 : x3 = XEXP (x2, 0);
2079 1222 : if (GET_MODE (x3) != i2)
2080 : return -1;
2081 1222 : x4 = XEXP (x2, 1);
2082 1222 : if (GET_MODE (x4) != i2
2083 1222 : || !nonimm_or_0_operand (operands[2], i1))
2084 31 : return -1;
2085 : return 0;
2086 : }
2087 :
2088 : int
2089 540 : pattern511 (rtx x1, machine_mode i1, machine_mode i2)
2090 : {
2091 540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2092 540 : rtx x2, x3, x4;
2093 540 : int res ATTRIBUTE_UNUSED;
2094 540 : if (!register_operand (operands[0], i2)
2095 540 : || GET_MODE (x1) != i2)
2096 : return -1;
2097 540 : x2 = XEXP (x1, 0);
2098 540 : if (GET_MODE (x2) != i1)
2099 : return -1;
2100 540 : x3 = XEXP (x2, 0);
2101 540 : if (GET_MODE (x3) != i1)
2102 : return -1;
2103 540 : x4 = XEXP (x2, 1);
2104 540 : if (GET_MODE (x4) != i1)
2105 0 : return -1;
2106 : return 0;
2107 : }
2108 :
2109 : int
2110 137 : pattern517 (rtx x1)
2111 : {
2112 137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2113 137 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2114 137 : rtx x10, x11;
2115 137 : int res ATTRIBUTE_UNUSED;
2116 137 : x2 = XEXP (x1, 1);
2117 137 : if (GET_CODE (x2) != CONST_VECTOR
2118 137 : || XVECLEN (x2, 0) != 8
2119 137 : || GET_MODE (x2) != E_V8QImode)
2120 : return -1;
2121 137 : x3 = XVECEXP (x2, 0, 0);
2122 137 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2123 : return -1;
2124 137 : x4 = XVECEXP (x2, 0, 1);
2125 137 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2126 : return -1;
2127 137 : x5 = XVECEXP (x2, 0, 2);
2128 137 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2129 : return -1;
2130 137 : x6 = XVECEXP (x2, 0, 3);
2131 137 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2132 : return -1;
2133 137 : x7 = XVECEXP (x2, 0, 4);
2134 137 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2135 : return -1;
2136 137 : x8 = XVECEXP (x2, 0, 5);
2137 137 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2138 : return -1;
2139 137 : x9 = XVECEXP (x2, 0, 6);
2140 137 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2141 : return -1;
2142 137 : x10 = XVECEXP (x2, 0, 7);
2143 137 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2144 137 : || !register_operand (operands[0], E_V16QImode)
2145 266 : || GET_MODE (x1) != E_V16QImode)
2146 8 : return -1;
2147 129 : x11 = XEXP (x1, 0);
2148 129 : if (GET_MODE (x11) != E_V8QImode)
2149 : return -1;
2150 : return 0;
2151 : }
2152 :
2153 : int
2154 1205 : pattern530 (rtx x1, machine_mode i1)
2155 : {
2156 1205 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2157 1205 : int res ATTRIBUTE_UNUSED;
2158 1205 : if (!register_operand (operands[0], i1)
2159 1061 : || GET_MODE (x1) != i1
2160 1061 : || !ieee_maxmin_comparison_operator (operands[1], i1)
2161 1061 : || !nonimmediate_operand (operands[2], i1)
2162 1029 : || !const0_operand (operands[3], i1)
2163 1401 : || !nonimmediate_operand (operands[4], i1))
2164 1009 : return -1;
2165 : return 0;
2166 : }
2167 :
2168 : int
2169 74836 : pattern535 (rtx x1)
2170 : {
2171 74836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2172 74836 : rtx x2, x3, x4;
2173 74836 : int res ATTRIBUTE_UNUSED;
2174 74836 : x2 = XEXP (x1, 1);
2175 74836 : x3 = XEXP (x2, 0);
2176 74836 : operands[3] = x3;
2177 74836 : x4 = XEXP (x2, 1);
2178 74836 : operands[4] = x4;
2179 74836 : switch (GET_MODE (operands[0]))
2180 : {
2181 0 : case E_V64QImode:
2182 0 : return pattern534 (x1,
2183 0 : E_V64QImode); /* [-1, 0] */
2184 :
2185 0 : case E_V32QImode:
2186 0 : if (pattern534 (x1,
2187 : E_V32QImode) != 0)
2188 : return -1;
2189 : return 1;
2190 :
2191 832 : case E_V16QImode:
2192 832 : if (pattern534 (x1,
2193 : E_V16QImode) != 0)
2194 : return -1;
2195 : return 2;
2196 :
2197 0 : case E_V32HImode:
2198 0 : if (pattern534 (x1,
2199 : E_V32HImode) != 0)
2200 : return -1;
2201 : return 3;
2202 :
2203 0 : case E_V16HImode:
2204 0 : if (pattern534 (x1,
2205 : E_V16HImode) != 0)
2206 : return -1;
2207 : return 4;
2208 :
2209 642 : case E_V8HImode:
2210 642 : if (pattern534 (x1,
2211 : E_V8HImode) != 0)
2212 : return -1;
2213 : return 5;
2214 :
2215 0 : case E_V16SImode:
2216 0 : if (pattern534 (x1,
2217 : E_V16SImode) != 0)
2218 : return -1;
2219 : return 6;
2220 :
2221 4 : case E_V8SImode:
2222 4 : if (pattern534 (x1,
2223 : E_V8SImode) != 0)
2224 : return -1;
2225 : return 7;
2226 :
2227 4090 : case E_V4SImode:
2228 4090 : if (pattern534 (x1,
2229 : E_V4SImode) != 0)
2230 : return -1;
2231 : return 8;
2232 :
2233 0 : case E_V8DImode:
2234 0 : if (pattern534 (x1,
2235 : E_V8DImode) != 0)
2236 : return -1;
2237 : return 9;
2238 :
2239 0 : case E_V4DImode:
2240 0 : if (pattern534 (x1,
2241 : E_V4DImode) != 0)
2242 : return -1;
2243 : return 10;
2244 :
2245 404 : case E_V2DImode:
2246 404 : if (pattern534 (x1,
2247 : E_V2DImode) != 0)
2248 : return -1;
2249 : return 11;
2250 :
2251 : default:
2252 : return -1;
2253 : }
2254 : }
2255 :
2256 : int
2257 18610 : pattern545 (rtx x1)
2258 : {
2259 18610 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2260 18610 : int res ATTRIBUTE_UNUSED;
2261 18610 : switch (GET_MODE (operands[0]))
2262 : {
2263 18207 : case E_V8HImode:
2264 18207 : if (!register_operand (operands[0], E_V8HImode)
2265 18207 : || GET_MODE (x1) != E_V8HImode)
2266 : return -1;
2267 : return 0;
2268 :
2269 239 : case E_V8SImode:
2270 239 : if (!register_operand (operands[0], E_V8SImode)
2271 239 : || GET_MODE (x1) != E_V8SImode)
2272 : return -1;
2273 : return 1;
2274 :
2275 164 : case E_V8DImode:
2276 164 : if (!register_operand (operands[0], E_V8DImode)
2277 164 : || GET_MODE (x1) != E_V8DImode)
2278 : return -1;
2279 : return 2;
2280 :
2281 : default:
2282 : return -1;
2283 : }
2284 : }
2285 :
2286 : int
2287 15 : pattern548 (rtx x1)
2288 : {
2289 15 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2290 15 : rtx x2, x3, x4, x5, x6;
2291 15 : int res ATTRIBUTE_UNUSED;
2292 15 : x2 = XVECEXP (x1, 0, 0);
2293 15 : x3 = XEXP (x2, 1);
2294 15 : if (GET_MODE (x3) != E_DImode)
2295 : return -1;
2296 15 : x4 = XVECEXP (x1, 0, 1);
2297 15 : if (GET_CODE (x4) != SET)
2298 : return -1;
2299 15 : x5 = XEXP (x4, 1);
2300 15 : if (GET_CODE (x5) != UNSPEC
2301 15 : || XVECLEN (x5, 0) != 1
2302 15 : || XINT (x5, 1) != 108
2303 15 : || GET_MODE (x5) != E_DImode)
2304 : return -1;
2305 15 : x6 = XVECEXP (x5, 0, 0);
2306 15 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2307 0 : return -1;
2308 : return 0;
2309 : }
2310 :
2311 : int
2312 540 : pattern555 (rtx x1)
2313 : {
2314 540 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2315 540 : rtx x2, x3, x4, x5, x6, x7;
2316 540 : int res ATTRIBUTE_UNUSED;
2317 540 : x2 = XVECEXP (x1, 0, 1);
2318 540 : if (GET_CODE (x2) != CLOBBER)
2319 : return -1;
2320 540 : x3 = XEXP (x2, 0);
2321 540 : if (GET_CODE (x3) != REG
2322 540 : || REGNO (x3) != 17
2323 1080 : || GET_MODE (x3) != E_CCmode)
2324 : return -1;
2325 540 : x4 = XVECEXP (x1, 0, 0);
2326 540 : x5 = XEXP (x4, 0);
2327 540 : operands[0] = x5;
2328 540 : x6 = XEXP (x4, 1);
2329 540 : x7 = XVECEXP (x6, 0, 0);
2330 540 : operands[1] = x7;
2331 540 : if (!register_operand (operands[1], E_XFmode))
2332 : return -1;
2333 372 : return pattern554 (x6); /* [-1, 2] */
2334 : }
2335 :
2336 : int
2337 785 : pattern558 (rtx x1, int i1, int i2)
2338 : {
2339 785 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2340 785 : rtx x2, x3, x4, x5, x6;
2341 785 : int res ATTRIBUTE_UNUSED;
2342 785 : x2 = XVECEXP (x1, 0, 1);
2343 785 : if (GET_CODE (x2) != SET)
2344 : return -1;
2345 701 : x3 = XEXP (x2, 1);
2346 701 : if (GET_CODE (x3) != UNSPEC
2347 627 : || XVECLEN (x3, 0) != i2
2348 627 : || XINT (x3, 1) != i1
2349 607 : || GET_MODE (x3) != E_CCmode)
2350 : return -1;
2351 607 : x4 = XEXP (x2, 0);
2352 607 : if (GET_CODE (x4) != REG
2353 607 : || REGNO (x4) != 17
2354 1214 : || GET_MODE (x4) != E_CCmode)
2355 : return -1;
2356 607 : x5 = XVECEXP (x1, 0, 0);
2357 607 : x6 = XEXP (x5, 0);
2358 607 : operands[0] = x6;
2359 607 : return 0;
2360 : }
2361 :
2362 : int
2363 425289 : pattern564 (rtx x1)
2364 : {
2365 425289 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2366 425289 : rtx x2, x3, x4, x5, x6, x7, x8;
2367 425289 : int res ATTRIBUTE_UNUSED;
2368 425289 : if (!bt_comparison_operator (operands[1], E_QImode))
2369 : return -1;
2370 133122 : x2 = XVECEXP (x1, 0, 0);
2371 133122 : x3 = XEXP (x2, 1);
2372 133122 : x4 = XEXP (x3, 1);
2373 133122 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
2374 : return -1;
2375 5019 : x5 = XVECEXP (x1, 0, 1);
2376 5019 : if (GET_CODE (x5) != CLOBBER)
2377 : return -1;
2378 559 : x6 = XEXP (x5, 0);
2379 559 : if (GET_CODE (x6) != REG
2380 559 : || REGNO (x6) != 17
2381 1076 : || GET_MODE (x6) != E_CCmode)
2382 : return -1;
2383 151 : x7 = XEXP (x2, 0);
2384 151 : operands[0] = x7;
2385 151 : if (!nonimmediate_operand (operands[0], E_QImode))
2386 : return -1;
2387 151 : x8 = XEXP (x3, 0);
2388 151 : operands[2] = x8;
2389 151 : switch (GET_MODE (operands[2]))
2390 : {
2391 32 : case E_QImode:
2392 32 : if (!register_operand (operands[2], E_QImode))
2393 : return -1;
2394 : return 0;
2395 :
2396 43 : case E_HImode:
2397 43 : if (!register_operand (operands[2], E_HImode))
2398 : return -1;
2399 : return 1;
2400 :
2401 32 : case E_SImode:
2402 32 : if (!register_operand (operands[2], E_SImode))
2403 : return -1;
2404 : return 2;
2405 :
2406 44 : case E_DImode:
2407 44 : if (!register_operand (operands[2], E_DImode))
2408 : return -1;
2409 : return 3;
2410 :
2411 : default:
2412 : return -1;
2413 : }
2414 : }
2415 :
2416 : int
2417 214 : pattern581 ()
2418 : {
2419 214 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2420 214 : int res ATTRIBUTE_UNUSED;
2421 214 : if (!register_operand (operands[1], E_SImode)
2422 214 : || !register_operand (operands[2], E_SImode))
2423 30 : return -1;
2424 184 : switch (GET_MODE (operands[0]))
2425 : {
2426 0 : case E_SImode:
2427 0 : if (!register_operand (operands[0], E_SImode))
2428 : return -1;
2429 : return 0;
2430 :
2431 184 : case E_DImode:
2432 184 : if (!register_operand (operands[0], E_DImode))
2433 : return -1;
2434 : return 1;
2435 :
2436 : default:
2437 : return -1;
2438 : }
2439 : }
2440 :
2441 : int
2442 928 : pattern589 (rtx x1, machine_mode i1)
2443 : {
2444 928 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2445 928 : rtx x2, x3, x4, x5, x6;
2446 928 : int res ATTRIBUTE_UNUSED;
2447 928 : if (!extract_high_operator (operands[3], i1))
2448 : return -1;
2449 928 : x2 = XEXP (x1, 0);
2450 928 : if (GET_MODE (x2) != i1)
2451 : return -1;
2452 928 : x3 = XEXP (x1, 1);
2453 928 : if (GET_MODE (x3) != i1)
2454 : return -1;
2455 928 : x4 = XEXP (x3, 0);
2456 928 : x5 = XEXP (x4, 0);
2457 928 : x6 = XEXP (x5, 0);
2458 928 : if (GET_MODE (x6) != i1)
2459 0 : return -1;
2460 : return 0;
2461 : }
2462 :
2463 : int
2464 187892 : pattern593 (rtx x1, rtx_code i1)
2465 : {
2466 187892 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2467 187892 : rtx x2, x3, x4, x5;
2468 187892 : int res ATTRIBUTE_UNUSED;
2469 187892 : x2 = XVECEXP (x1, 0, 1);
2470 187892 : if (GET_CODE (x2) != SET)
2471 : return -1;
2472 187892 : x3 = XEXP (x2, 1);
2473 187892 : if (GET_CODE (x3) != i1)
2474 : return -1;
2475 187892 : x4 = XVECEXP (x1, 0, 2);
2476 187892 : x5 = XEXP (x4, 0);
2477 187892 : if (GET_CODE (x5) != REG
2478 187892 : || REGNO (x5) != 17
2479 375784 : || GET_MODE (x5) != E_CCmode)
2480 0 : return -1;
2481 : return 0;
2482 : }
2483 :
2484 : int
2485 159908 : pattern597 (rtx x1, rtx_code i1)
2486 : {
2487 159908 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2488 159908 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2489 159908 : int res ATTRIBUTE_UNUSED;
2490 159908 : x2 = XVECEXP (x1, 0, 1);
2491 159908 : if (GET_CODE (x2) != SET)
2492 : return -1;
2493 159908 : x3 = XEXP (x2, 1);
2494 159908 : if (GET_CODE (x3) != i1)
2495 : return -1;
2496 159908 : x4 = XVECEXP (x1, 0, 2);
2497 159908 : if (GET_CODE (x4) != UNSPEC
2498 42 : || XVECLEN (x4, 0) != 1
2499 42 : || XINT (x4, 1) != 33)
2500 : return -1;
2501 42 : x5 = XVECEXP (x4, 0, 0);
2502 42 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2503 : return -1;
2504 42 : x6 = XVECEXP (x1, 0, 3);
2505 42 : x7 = XEXP (x6, 0);
2506 42 : if (GET_CODE (x7) != REG
2507 42 : || REGNO (x7) != 17
2508 84 : || GET_MODE (x7) != E_CCmode)
2509 : return -1;
2510 42 : x8 = XVECEXP (x1, 0, 0);
2511 42 : x9 = XEXP (x8, 0);
2512 42 : operands[0] = x9;
2513 42 : return pattern596 (x1); /* [-1, 1] */
2514 : }
2515 :
2516 : int
2517 70 : pattern607 (rtx x1)
2518 : {
2519 70 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2520 70 : rtx x2, x3, x4, x5;
2521 70 : int res ATTRIBUTE_UNUSED;
2522 70 : x2 = XEXP (x1, 0);
2523 70 : x3 = XEXP (x2, 0);
2524 70 : if (GET_CODE (x3) != NOT)
2525 : return -1;
2526 8 : x4 = XEXP (x3, 0);
2527 8 : operands[1] = x4;
2528 8 : x5 = XEXP (x1, 1);
2529 8 : operands[2] = x5;
2530 8 : switch (GET_MODE (operands[0]))
2531 : {
2532 2 : case E_V16SImode:
2533 2 : return pattern606 (x1,
2534 : E_V16SImode,
2535 2 : E_SImode); /* [-1, 0] */
2536 :
2537 2 : case E_V8DImode:
2538 2 : if (pattern606 (x1,
2539 : E_V8DImode,
2540 : E_DImode) != 0)
2541 : return -1;
2542 : return 1;
2543 :
2544 2 : case E_V64QImode:
2545 2 : if (pattern606 (x1,
2546 : E_V64QImode,
2547 : E_QImode) != 0)
2548 : return -1;
2549 : return 2;
2550 :
2551 0 : case E_V32QImode:
2552 0 : if (pattern606 (x1,
2553 : E_V32QImode,
2554 : E_QImode) != 0)
2555 : return -1;
2556 : return 3;
2557 :
2558 0 : case E_V16QImode:
2559 0 : if (pattern606 (x1,
2560 : E_V16QImode,
2561 : E_QImode) != 0)
2562 : return -1;
2563 : return 4;
2564 :
2565 2 : case E_V32HImode:
2566 2 : if (pattern606 (x1,
2567 : E_V32HImode,
2568 : E_HImode) != 0)
2569 : return -1;
2570 : return 5;
2571 :
2572 0 : case E_V16HImode:
2573 0 : if (pattern606 (x1,
2574 : E_V16HImode,
2575 : E_HImode) != 0)
2576 : return -1;
2577 : return 6;
2578 :
2579 0 : case E_V8HImode:
2580 0 : if (pattern606 (x1,
2581 : E_V8HImode,
2582 : E_HImode) != 0)
2583 : return -1;
2584 : return 7;
2585 :
2586 0 : case E_V8SImode:
2587 0 : if (pattern606 (x1,
2588 : E_V8SImode,
2589 : E_SImode) != 0)
2590 : return -1;
2591 : return 8;
2592 :
2593 0 : case E_V4SImode:
2594 0 : if (pattern606 (x1,
2595 : E_V4SImode,
2596 : E_SImode) != 0)
2597 : return -1;
2598 : return 9;
2599 :
2600 0 : case E_V4DImode:
2601 0 : if (pattern606 (x1,
2602 : E_V4DImode,
2603 : E_DImode) != 0)
2604 : return -1;
2605 : return 10;
2606 :
2607 0 : case E_V2DImode:
2608 0 : if (pattern606 (x1,
2609 : E_V2DImode,
2610 : E_DImode) != 0)
2611 : return -1;
2612 : return 11;
2613 :
2614 : default:
2615 : return -1;
2616 : }
2617 : }
2618 :
2619 : int
2620 30948 : pattern623 (rtx x1, machine_mode i1)
2621 : {
2622 30948 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2623 30948 : rtx x2;
2624 30948 : int res ATTRIBUTE_UNUSED;
2625 30948 : if (!register_operand (operands[0], i1)
2626 30948 : || GET_MODE (x1) != i1)
2627 : return -1;
2628 30752 : x2 = XEXP (x1, 0);
2629 30752 : if (GET_MODE (x2) != i1
2630 30752 : || !register_operand (operands[1], i1)
2631 55037 : || !register_operand (operands[2], i1))
2632 19274 : return -1;
2633 : return 0;
2634 : }
2635 :
2636 : int
2637 23443 : pattern628 (rtx x1)
2638 : {
2639 23443 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2640 23443 : rtx x2;
2641 23443 : int res ATTRIBUTE_UNUSED;
2642 23443 : x2 = XEXP (x1, 1);
2643 23443 : operands[2] = x2;
2644 23443 : if (!const_1_to_63_operand (operands[2], E_QImode)
2645 23414 : || !register_operand (operands[0], E_TImode)
2646 27 : || GET_MODE (x1) != E_TImode
2647 23470 : || !register_operand (operands[1], E_TImode))
2648 23435 : return -1;
2649 : return 0;
2650 : }
2651 :
2652 : int
2653 795 : pattern634 (rtx x1)
2654 : {
2655 795 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2656 795 : rtx x2, x3, x4, x5;
2657 795 : int res ATTRIBUTE_UNUSED;
2658 795 : x2 = XEXP (x1, 0);
2659 795 : x3 = XEXP (x2, 0);
2660 795 : x4 = XEXP (x3, 1);
2661 795 : operands[2] = x4;
2662 795 : if (!register_operand (operands[2], E_QImode))
2663 : return -1;
2664 700 : x5 = XEXP (x1, 1);
2665 700 : operands[1] = x5;
2666 700 : switch (GET_MODE (operands[0]))
2667 : {
2668 363 : case E_SImode:
2669 363 : return pattern633 (x1,
2670 363 : E_SImode); /* [-1, 0] */
2671 :
2672 313 : case E_DImode:
2673 313 : if (pattern633 (x1,
2674 : E_DImode) != 0)
2675 : return -1;
2676 : return 1;
2677 :
2678 : default:
2679 : return -1;
2680 : }
2681 : }
2682 :
2683 : int
2684 2032 : pattern645 (rtx x1)
2685 : {
2686 2032 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2687 2032 : rtx x2, x3, x4;
2688 2032 : int res ATTRIBUTE_UNUSED;
2689 2032 : x2 = XEXP (x1, 0);
2690 2032 : x3 = XVECEXP (x2, 0, 0);
2691 2032 : operands[1] = x3;
2692 2032 : x4 = XEXP (x1, 2);
2693 2032 : operands[3] = x4;
2694 2032 : switch (GET_MODE (operands[0]))
2695 : {
2696 968 : case E_V16QImode:
2697 968 : return pattern644 (x1,
2698 : E_V16QImode,
2699 : E_HImode,
2700 968 : E_V16HFmode); /* [-1, 0] */
2701 :
2702 1004 : case E_V32QImode:
2703 1004 : if (pattern644 (x1,
2704 : E_V32QImode,
2705 : E_SImode,
2706 : E_V32HFmode) != 0)
2707 : return -1;
2708 : return 1;
2709 :
2710 : default:
2711 : return -1;
2712 : }
2713 : }
2714 :
2715 : int
2716 15028 : pattern651 (rtx x1)
2717 : {
2718 15028 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2719 15028 : rtx x2, x3;
2720 15028 : int res ATTRIBUTE_UNUSED;
2721 15028 : x2 = XEXP (x1, 1);
2722 15028 : switch (GET_CODE (x2))
2723 : {
2724 4559 : case CONST_INT:
2725 4559 : case CONST_DOUBLE:
2726 4559 : case CONST_VECTOR:
2727 4559 : operands[4] = x2;
2728 4559 : x3 = XEXP (x1, 2);
2729 4559 : switch (GET_CODE (x3))
2730 : {
2731 3697 : case REG:
2732 3697 : case SUBREG:
2733 3697 : operands[5] = x3;
2734 3697 : switch (GET_MODE (operands[0]))
2735 : {
2736 : case E_V32HFmode:
2737 : return 0;
2738 :
2739 438 : case E_V16HFmode:
2740 438 : return 1;
2741 :
2742 318 : case E_V8HFmode:
2743 318 : return 2;
2744 :
2745 289 : case E_V16SFmode:
2746 289 : return 3;
2747 :
2748 424 : case E_V8SFmode:
2749 424 : return 4;
2750 :
2751 346 : case E_V4SFmode:
2752 346 : return 5;
2753 :
2754 165 : case E_V8DFmode:
2755 165 : return 6;
2756 :
2757 444 : case E_V4DFmode:
2758 444 : return 7;
2759 :
2760 343 : case E_V2DFmode:
2761 343 : return 8;
2762 :
2763 279 : case E_V32BFmode:
2764 279 : return 9;
2765 :
2766 279 : case E_V16BFmode:
2767 279 : return 10;
2768 :
2769 279 : case E_V8BFmode:
2770 279 : return 11;
2771 :
2772 : default:
2773 : return -1;
2774 : }
2775 :
2776 670 : case CONST_INT:
2777 670 : if (XWINT (x3, 0) != 1L)
2778 : return -1;
2779 526 : switch (GET_MODE (operands[0]))
2780 : {
2781 : case E_V4SFmode:
2782 : return 12;
2783 :
2784 263 : case E_V2DFmode:
2785 263 : return 13;
2786 :
2787 : default:
2788 : return -1;
2789 : }
2790 :
2791 : default:
2792 : return -1;
2793 : }
2794 :
2795 10344 : case REG:
2796 10344 : case SUBREG:
2797 10344 : case MEM:
2798 10344 : res = pattern650 (x1);
2799 10344 : if (res >= 0)
2800 9471 : return res + 14; /* [14, 28] */
2801 : return -1;
2802 :
2803 : default:
2804 : return -1;
2805 : }
2806 : }
2807 :
2808 : int
2809 323 : pattern668 (rtx x1, machine_mode i1, machine_mode i2)
2810 : {
2811 323 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2812 323 : rtx x2;
2813 323 : int res ATTRIBUTE_UNUSED;
2814 323 : if (!register_operand (operands[0], i2)
2815 303 : || GET_MODE (x1) != i2
2816 303 : || !register_operand (operands[1], i2)
2817 596 : || !vector_operand (operands[2], i2))
2818 58 : return -1;
2819 265 : x2 = XVECEXP (x1, 0, 2);
2820 265 : if (GET_MODE (x2) != i2
2821 265 : || !register_operand (operands[3], i1)
2822 521 : || !const0_operand (operands[4], i1))
2823 9 : return -1;
2824 : return 0;
2825 : }
2826 :
2827 : int
2828 291 : pattern674 (rtx x1, machine_mode i1)
2829 : {
2830 291 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2831 291 : rtx x2;
2832 291 : int res ATTRIBUTE_UNUSED;
2833 291 : if (!register_operand (operands[0], i1)
2834 271 : || GET_MODE (x1) != i1
2835 271 : || !vector_operand (operands[1], i1)
2836 562 : || !register_operand (operands[2], i1))
2837 90 : return -1;
2838 201 : x2 = XVECEXP (x1, 0, 2);
2839 201 : if (GET_MODE (x2) != i1
2840 201 : || !register_operand (operands[3], i1)
2841 402 : || !vector_all_ones_operand (operands[4], i1))
2842 201 : return -1;
2843 : return 0;
2844 : }
2845 :
2846 : int
2847 997 : pattern678 (rtx x1, machine_mode i1)
2848 : {
2849 997 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2850 997 : int res ATTRIBUTE_UNUSED;
2851 997 : if (!register_operand (operands[0], i1)
2852 898 : || GET_MODE (x1) != i1
2853 898 : || !vector_operand (operands[1], i1)
2854 866 : || !vector_operand (operands[2], i1)
2855 1832 : || !vector_operand (operands[3], i1))
2856 177 : return -1;
2857 : return 0;
2858 : }
2859 :
2860 : int
2861 131 : pattern681 (rtx x1)
2862 : {
2863 131 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2864 131 : rtx x2, x3, x4, x5;
2865 131 : int res ATTRIBUTE_UNUSED;
2866 131 : x2 = XEXP (x1, 0);
2867 131 : if (GET_MODE (x2) != E_V2SImode)
2868 : return -1;
2869 131 : x3 = XEXP (x1, 1);
2870 131 : if (GET_CODE (x3) != CONST_VECTOR
2871 131 : || XVECLEN (x3, 0) != 2
2872 131 : || GET_MODE (x3) != E_V2SImode)
2873 : return -1;
2874 131 : x4 = XVECEXP (x3, 0, 0);
2875 131 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2876 : return -1;
2877 131 : x5 = XVECEXP (x3, 0, 1);
2878 131 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2879 131 : || !register_operand (operands[0], E_V4SImode)
2880 131 : || GET_MODE (x1) != E_V4SImode
2881 262 : || !nonimmediate_operand (operands[1], E_V2DFmode))
2882 22 : return -1;
2883 : return 0;
2884 : }
2885 :
2886 : int
2887 25 : pattern689 (rtx x1, machine_mode i1, machine_mode i2)
2888 : {
2889 25 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2890 25 : rtx x2, x3, x4, x5, x6, x7, x8;
2891 25 : int res ATTRIBUTE_UNUSED;
2892 25 : x2 = XEXP (x1, 0);
2893 25 : x3 = XEXP (x2, 1);
2894 25 : x4 = XVECEXP (x3, 0, 0);
2895 25 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2896 : return -1;
2897 25 : x5 = XVECEXP (x3, 0, 1);
2898 25 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2899 : return -1;
2900 25 : x6 = XVECEXP (x3, 0, 2);
2901 25 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2902 : return -1;
2903 25 : x7 = XVECEXP (x3, 0, 3);
2904 25 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
2905 25 : || GET_MODE (x2) != i2)
2906 : return -1;
2907 25 : x8 = XEXP (x2, 0);
2908 25 : if (GET_MODE (x8) != i1)
2909 : return -1;
2910 25 : return pattern28 (x1); /* [-1, 1] */
2911 : }
2912 :
2913 : int
2914 315397 : pattern697 (rtx x1, rtx_code i1)
2915 : {
2916 315397 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2917 315397 : rtx x2, x3, x4, x5, x6, x7;
2918 315397 : int res ATTRIBUTE_UNUSED;
2919 315397 : x2 = XVECEXP (x1, 0, 0);
2920 315397 : x3 = XEXP (x2, 0);
2921 315397 : if (GET_CODE (x3) != REG
2922 315397 : || REGNO (x3) != 17
2923 630754 : || GET_MODE (x3) != E_CCOmode)
2924 : return -1;
2925 315357 : x4 = XVECEXP (x1, 0, 1);
2926 315357 : if (GET_CODE (x4) != SET)
2927 : return -1;
2928 315357 : x5 = XEXP (x4, 1);
2929 315357 : if (GET_CODE (x5) != i1)
2930 : return -1;
2931 302367 : x6 = XEXP (x2, 1);
2932 302367 : if (GET_MODE (x6) != E_CCOmode)
2933 : return -1;
2934 302367 : x7 = XEXP (x4, 0);
2935 302367 : operands[0] = x7;
2936 302367 : return 0;
2937 : }
2938 :
2939 : int
2940 10523 : pattern704 (rtx x1)
2941 : {
2942 10523 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2943 10523 : rtx x2, x3, x4, x5, x6, x7;
2944 10523 : int res ATTRIBUTE_UNUSED;
2945 10523 : x2 = XVECEXP (x1, 0, 0);
2946 10523 : x3 = XEXP (x2, 1);
2947 10523 : x4 = XEXP (x3, 1);
2948 10523 : x5 = XEXP (x4, 1);
2949 10523 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2950 : return -1;
2951 10409 : x6 = XVECEXP (x1, 0, 1);
2952 10409 : if (GET_CODE (x6) != CLOBBER)
2953 : return -1;
2954 10082 : x7 = XEXP (x6, 0);
2955 10082 : if (GET_CODE (x7) != REG
2956 10082 : || REGNO (x7) != 17
2957 20164 : || GET_MODE (x7) != E_CCmode)
2958 : return -1;
2959 10082 : return pattern703 (x2); /* [-1, 3] */
2960 : }
2961 :
2962 : int
2963 753 : pattern709 (rtx x1)
2964 : {
2965 753 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2966 753 : int res ATTRIBUTE_UNUSED;
2967 753 : if (!register_operand (operands[0], E_V2SFmode)
2968 725 : || GET_MODE (x1) != E_V2SFmode
2969 725 : || !register_operand (operands[1], E_V2SFmode)
2970 1314 : || !nonimmediate_operand (operands[2], E_V2SFmode))
2971 285 : return -1;
2972 : return 0;
2973 : }
2974 :
2975 : int
2976 280 : pattern717 (rtx x1, int i1)
2977 : {
2978 280 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2979 280 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2980 280 : rtx x10;
2981 280 : int res ATTRIBUTE_UNUSED;
2982 280 : x2 = XVECEXP (x1, 0, 0);
2983 280 : x3 = XEXP (x2, 1);
2984 280 : if (GET_MODE (x3) != E_V2DImode)
2985 : return -1;
2986 280 : x4 = XVECEXP (x1, 0, 1);
2987 280 : if (GET_CODE (x4) != SET)
2988 : return -1;
2989 280 : x5 = XEXP (x4, 1);
2990 280 : if (GET_CODE (x5) != UNSPEC_VOLATILE
2991 280 : || XVECLEN (x5, 0) != 2
2992 280 : || XINT (x5, 1) != i1
2993 280 : || GET_MODE (x5) != E_CCZmode)
2994 : return -1;
2995 280 : x6 = XEXP (x4, 0);
2996 280 : if (GET_CODE (x6) != REG
2997 280 : || REGNO (x6) != 17
2998 280 : || GET_MODE (x6) != E_CCZmode
2999 560 : || !register_operand (operands[0], E_V2DImode))
3000 0 : return -1;
3001 280 : x7 = XVECEXP (x3, 0, 0);
3002 280 : operands[1] = x7;
3003 280 : if (!register_operand (operands[1], E_V2DImode))
3004 : return -1;
3005 264 : x8 = XVECEXP (x3, 0, 1);
3006 264 : operands[2] = x8;
3007 264 : if (!memory_operand (operands[2], E_BLKmode))
3008 : return -1;
3009 264 : x9 = XVECEXP (x5, 0, 0);
3010 264 : if (!rtx_equal_p (x9, operands[1]))
3011 : return -1;
3012 264 : x10 = XVECEXP (x5, 0, 1);
3013 264 : if (!rtx_equal_p (x10, operands[2]))
3014 : return -1;
3015 : return 0;
3016 : }
3017 :
3018 : int
3019 32483 : pattern728 (rtx x1, machine_mode i1, machine_mode i2)
3020 : {
3021 32483 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3022 32483 : rtx x2, x3, x4, x5, x6;
3023 32483 : int res ATTRIBUTE_UNUSED;
3024 32483 : x2 = XVECEXP (x1, 0, 0);
3025 32483 : x3 = XEXP (x2, 1);
3026 32483 : x4 = XEXP (x3, 0);
3027 32483 : x5 = XEXP (x4, 0);
3028 32483 : if (GET_MODE (x5) != i2
3029 32483 : || !nonimmediate_operand (operands[1], i1))
3030 2858 : return -1;
3031 29625 : x6 = XEXP (x4, 1);
3032 29625 : if (GET_MODE (x6) != i2
3033 29625 : || !nonimmediate_operand (operands[2], i1)
3034 58214 : || pattern727 (x1,
3035 : i1,
3036 : i2) != 0)
3037 1036 : return -1;
3038 : return 0;
3039 : }
3040 :
3041 : int
3042 212196 : pattern737 (rtx x1, machine_mode i1)
3043 : {
3044 212196 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3045 212196 : rtx x2, x3, x4, x5, x6, x7, x8;
3046 212196 : int res ATTRIBUTE_UNUSED;
3047 212196 : if (GET_CODE (x1) != SET)
3048 : return -1;
3049 167223 : x2 = XEXP (x1, 1);
3050 167223 : operands[5] = x2;
3051 167223 : if (!register_operand (operands[5], i1))
3052 : return -1;
3053 56273 : x3 = XEXP (x1, 0);
3054 56273 : if (!rtx_equal_p (x3, operands[1]))
3055 : return -1;
3056 16280 : x4 = PATTERN (peep2_next_insn (3));
3057 16280 : if (GET_CODE (x4) != SET)
3058 : return -1;
3059 15766 : x5 = XEXP (x4, 1);
3060 15766 : if (GET_CODE (x5) != COMPARE)
3061 : return -1;
3062 2330 : x6 = XEXP (x5, 1);
3063 2330 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3064 : return -1;
3065 653 : x7 = XEXP (x4, 0);
3066 653 : if (GET_CODE (x7) != REG
3067 653 : || REGNO (x7) != 17)
3068 : return -1;
3069 653 : x8 = XEXP (x5, 0);
3070 653 : if (!rtx_equal_p (x8, operands[5]))
3071 : return -1;
3072 : return 0;
3073 : }
3074 :
3075 : int
3076 59245 : pattern747 (rtx x1, machine_mode i1)
3077 : {
3078 59245 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3079 59245 : rtx x2;
3080 59245 : int res ATTRIBUTE_UNUSED;
3081 59245 : if (!register_operand (operands[0], i1)
3082 59245 : || GET_MODE (x1) != i1)
3083 : return -1;
3084 57186 : x2 = XEXP (x1, 0);
3085 57186 : if (GET_MODE (x2) != i1
3086 57186 : || !register_operand (operands[1], i1)
3087 113417 : || !nonimmediate_operand (operands[2], i1))
3088 6829 : return -1;
3089 : return 0;
3090 : }
3091 :
3092 : int
3093 12331 : pattern752 (machine_mode i1)
3094 : {
3095 12331 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3096 12331 : int res ATTRIBUTE_UNUSED;
3097 12331 : if (!register_operand (operands[0], i1)
3098 12331 : || !sse_comparison_operator (operands[3], i1)
3099 11673 : || !register_operand (operands[1], i1)
3100 22720 : || !nonimmediate_operand (operands[2], i1))
3101 2805 : return -1;
3102 : return 0;
3103 : }
3104 :
3105 : int
3106 156340 : pattern755 (rtx x1, machine_mode i1)
3107 : {
3108 156340 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3109 156340 : int res ATTRIBUTE_UNUSED;
3110 156340 : if (!register_operand (operands[0], i1)
3111 155789 : || !binary_fp_operator (operands[3], i1)
3112 155789 : || GET_MODE (x1) != i1
3113 312129 : || !register_operand (operands[2], i1))
3114 17042 : return -1;
3115 139298 : switch (GET_MODE (operands[1]))
3116 : {
3117 88 : case E_HImode:
3118 88 : if (!nonimmediate_operand (operands[1], E_HImode))
3119 : return -1;
3120 : return 0;
3121 :
3122 81940 : case E_SImode:
3123 81940 : if (!nonimmediate_operand (operands[1], E_SImode))
3124 : return -1;
3125 : return 1;
3126 :
3127 : default:
3128 : return -1;
3129 : }
3130 : }
3131 :
3132 : int
3133 24292 : pattern767 (rtx x1, machine_mode i1, machine_mode i2)
3134 : {
3135 24292 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3136 24292 : rtx x2, x3;
3137 24292 : int res ATTRIBUTE_UNUSED;
3138 24292 : if (!nonimmediate_operand (operands[0], i2)
3139 24234 : || GET_MODE (x1) != i2
3140 48526 : || !nonimmediate_operand (operands[1], i2))
3141 1311 : return -1;
3142 22981 : x2 = XEXP (x1, 1);
3143 22981 : x3 = XEXP (x2, 0);
3144 22981 : operands[2] = x3;
3145 22981 : if (!nonimmediate_operand (operands[2], i1))
3146 : return -1;
3147 : return 0;
3148 : }
3149 :
3150 : int
3151 1352 : pattern774 (rtx x1, machine_mode i1)
3152 : {
3153 1352 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3154 1352 : int res ATTRIBUTE_UNUSED;
3155 1352 : if (!register_operand (operands[0], i1)
3156 1352 : || GET_MODE (x1) != i1)
3157 : return -1;
3158 1339 : switch (GET_MODE (operands[1]))
3159 : {
3160 0 : case E_HFmode:
3161 0 : if (!nonimmediate_operand (operands[1], E_HFmode))
3162 : return -1;
3163 : return 0;
3164 :
3165 156 : case E_SFmode:
3166 156 : if (!nonimmediate_operand (operands[1], E_SFmode))
3167 : return -1;
3168 : return 1;
3169 :
3170 1183 : case E_DFmode:
3171 1183 : if (!nonimmediate_operand (operands[1], E_DFmode))
3172 : return -1;
3173 : return 2;
3174 :
3175 : default:
3176 : return -1;
3177 : }
3178 : }
3179 :
3180 : int
3181 3922 : pattern783 (rtx x1, machine_mode i1)
3182 : {
3183 3922 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3184 3922 : rtx x2, x3, x4;
3185 3922 : int res ATTRIBUTE_UNUSED;
3186 3922 : if (!register_operand (operands[0], i1)
3187 3922 : || GET_MODE (x1) != i1)
3188 : return -1;
3189 3860 : x2 = XVECEXP (x1, 0, 0);
3190 3860 : if (GET_MODE (x2) != i1)
3191 : return -1;
3192 3860 : x3 = XEXP (x2, 0);
3193 3860 : if (GET_MODE (x3) != i1)
3194 : return -1;
3195 3860 : x4 = XEXP (x3, 0);
3196 3860 : if (GET_MODE (x4) != i1
3197 3860 : || !register_operand (operands[1], i1)
3198 3838 : || !nonimmediate_operand (operands[2], i1)
3199 7666 : || !nonimm_or_0_operand (operands[3], i1))
3200 102 : return -1;
3201 : return 0;
3202 : }
3203 :
3204 : int
3205 21707 : pattern789 (rtx x1, machine_mode i1)
3206 : {
3207 21707 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3208 21707 : int res ATTRIBUTE_UNUSED;
3209 21707 : if (!register_operand (operands[0], i1)
3210 21657 : || GET_MODE (x1) != i1
3211 21657 : || !nonimmediate_operand (operands[1], i1)
3212 42438 : || !register_operand (operands[2], i1))
3213 3187 : return -1;
3214 : return 0;
3215 : }
3216 :
3217 : int
3218 4209 : pattern796 (rtx x1)
3219 : {
3220 4209 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3221 4209 : rtx x2;
3222 4209 : int res ATTRIBUTE_UNUSED;
3223 4209 : x2 = XVECEXP (x1, 0, 1);
3224 4209 : if (!rtx_equal_p (x2, operands[0]))
3225 : return -1;
3226 3120 : switch (GET_MODE (operands[0]))
3227 : {
3228 146 : case E_V64QImode:
3229 146 : return pattern795 (x1,
3230 : E_V64QImode,
3231 146 : E_DImode); /* [-1, 0] */
3232 :
3233 62 : case E_V32QImode:
3234 62 : if (pattern795 (x1,
3235 : E_V32QImode,
3236 : E_SImode) != 0)
3237 : return -1;
3238 : return 1;
3239 :
3240 102 : case E_V16QImode:
3241 102 : if (pattern795 (x1,
3242 : E_V16QImode,
3243 : E_HImode) != 0)
3244 : return -1;
3245 : return 2;
3246 :
3247 225 : case E_V32HImode:
3248 225 : if (pattern795 (x1,
3249 : E_V32HImode,
3250 : E_SImode) != 0)
3251 : return -1;
3252 : return 3;
3253 :
3254 98 : case E_V16HImode:
3255 98 : if (pattern795 (x1,
3256 : E_V16HImode,
3257 : E_HImode) != 0)
3258 : return -1;
3259 : return 4;
3260 :
3261 98 : case E_V8HImode:
3262 98 : if (pattern795 (x1,
3263 : E_V8HImode,
3264 : E_QImode) != 0)
3265 : return -1;
3266 : return 5;
3267 :
3268 183 : case E_V16SImode:
3269 183 : if (pattern795 (x1,
3270 : E_V16SImode,
3271 : E_HImode) != 0)
3272 : return -1;
3273 : return 6;
3274 :
3275 144 : case E_V8SImode:
3276 144 : if (pattern795 (x1,
3277 : E_V8SImode,
3278 : E_QImode) != 0)
3279 : return -1;
3280 : return 7;
3281 :
3282 139 : case E_V4SImode:
3283 139 : if (pattern795 (x1,
3284 : E_V4SImode,
3285 : E_QImode) != 0)
3286 : return -1;
3287 : return 8;
3288 :
3289 547 : case E_V8DImode:
3290 547 : if (pattern795 (x1,
3291 : E_V8DImode,
3292 : E_QImode) != 0)
3293 : return -1;
3294 : return 9;
3295 :
3296 125 : case E_V4DImode:
3297 125 : if (pattern795 (x1,
3298 : E_V4DImode,
3299 : E_QImode) != 0)
3300 : return -1;
3301 : return 10;
3302 :
3303 140 : case E_V2DImode:
3304 140 : if (pattern795 (x1,
3305 : E_V2DImode,
3306 : E_QImode) != 0)
3307 : return -1;
3308 : return 11;
3309 :
3310 81 : case E_V32HFmode:
3311 81 : if (pattern795 (x1,
3312 : E_V32HFmode,
3313 : E_SImode) != 0)
3314 : return -1;
3315 : return 12;
3316 :
3317 129 : case E_V16HFmode:
3318 129 : if (pattern795 (x1,
3319 : E_V16HFmode,
3320 : E_HImode) != 0)
3321 : return -1;
3322 : return 13;
3323 :
3324 81 : case E_V8HFmode:
3325 81 : if (pattern795 (x1,
3326 : E_V8HFmode,
3327 : E_QImode) != 0)
3328 : return -1;
3329 : return 14;
3330 :
3331 0 : case E_V32BFmode:
3332 0 : if (pattern795 (x1,
3333 : E_V32BFmode,
3334 : E_SImode) != 0)
3335 : return -1;
3336 : return 15;
3337 :
3338 0 : case E_V16BFmode:
3339 0 : if (pattern795 (x1,
3340 : E_V16BFmode,
3341 : E_HImode) != 0)
3342 : return -1;
3343 : return 16;
3344 :
3345 0 : case E_V8BFmode:
3346 0 : if (pattern795 (x1,
3347 : E_V8BFmode,
3348 : E_QImode) != 0)
3349 : return -1;
3350 : return 17;
3351 :
3352 110 : case E_V16SFmode:
3353 110 : if (pattern795 (x1,
3354 : E_V16SFmode,
3355 : E_HImode) != 0)
3356 : return -1;
3357 : return 18;
3358 :
3359 146 : case E_V8SFmode:
3360 146 : if (pattern795 (x1,
3361 : E_V8SFmode,
3362 : E_QImode) != 0)
3363 : return -1;
3364 : return 19;
3365 :
3366 122 : case E_V4SFmode:
3367 122 : if (pattern795 (x1,
3368 : E_V4SFmode,
3369 : E_QImode) != 0)
3370 : return -1;
3371 : return 20;
3372 :
3373 161 : case E_V8DFmode:
3374 161 : if (pattern795 (x1,
3375 : E_V8DFmode,
3376 : E_QImode) != 0)
3377 : return -1;
3378 : return 21;
3379 :
3380 158 : case E_V4DFmode:
3381 158 : if (pattern795 (x1,
3382 : E_V4DFmode,
3383 : E_QImode) != 0)
3384 : return -1;
3385 : return 22;
3386 :
3387 123 : case E_V2DFmode:
3388 123 : if (pattern795 (x1,
3389 : E_V2DFmode,
3390 : E_QImode) != 0)
3391 : return -1;
3392 : return 23;
3393 :
3394 : default:
3395 : return -1;
3396 : }
3397 : }
3398 :
3399 : int
3400 4 : pattern839 (rtx x1)
3401 : {
3402 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3403 4 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3404 4 : rtx x10, x11;
3405 4 : int res ATTRIBUTE_UNUSED;
3406 4 : x2 = XVECEXP (x1, 0, 1);
3407 4 : if (GET_CODE (x2) != CLOBBER)
3408 : return -1;
3409 0 : x3 = XVECEXP (x1, 0, 2);
3410 0 : if (GET_CODE (x3) != CLOBBER)
3411 : return -1;
3412 0 : x4 = XEXP (x3, 0);
3413 0 : if (GET_CODE (x4) != REG
3414 0 : || REGNO (x4) != 17
3415 0 : || GET_MODE (x4) != E_CCmode)
3416 : return -1;
3417 0 : x5 = XVECEXP (x1, 0, 0);
3418 0 : x6 = XEXP (x5, 0);
3419 0 : operands[0] = x6;
3420 0 : x7 = XEXP (x5, 1);
3421 0 : x8 = XEXP (x7, 0);
3422 0 : x9 = XEXP (x8, 0);
3423 0 : operands[1] = x9;
3424 0 : if (!register_operand (operands[1], E_SImode))
3425 : return -1;
3426 0 : x10 = XEXP (x8, 1);
3427 0 : operands[2] = x10;
3428 0 : if (!nonimmediate_operand (operands[2], E_SImode))
3429 : return -1;
3430 0 : x11 = XEXP (x2, 0);
3431 0 : operands[3] = x11;
3432 0 : if (!scratch_operand (operands[3], E_SImode))
3433 : return -1;
3434 : return 0;
3435 : }
3436 :
3437 : int
3438 1552 : pattern850 (rtx x1, int i1, int i2, int i3, int i4)
3439 : {
3440 1552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3441 1552 : rtx x2, x3, x4, x5;
3442 1552 : int res ATTRIBUTE_UNUSED;
3443 1552 : x2 = XVECEXP (x1, 0, 8);
3444 1552 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
3445 : return -1;
3446 1527 : x3 = XVECEXP (x1, 0, 9);
3447 1527 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
3448 : return -1;
3449 1527 : x4 = XVECEXP (x1, 0, 10);
3450 1527 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
3451 : return -1;
3452 1527 : x5 = XVECEXP (x1, 0, 11);
3453 1527 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
3454 0 : return -1;
3455 : return 0;
3456 : }
3457 :
3458 : int
3459 14202914 : pattern856 ()
3460 : {
3461 14202914 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3462 14202914 : int res ATTRIBUTE_UNUSED;
3463 14202914 : switch (GET_MODE (operands[0]))
3464 : {
3465 6606240 : case E_DImode:
3466 6606240 : if (!nonimmediate_operand (operands[0], E_DImode)
3467 6606240 : || !general_operand (operands[1], E_DImode))
3468 477903 : return -1;
3469 : return 0;
3470 :
3471 393095 : case E_TImode:
3472 393095 : if (!nonimmediate_operand (operands[0], E_TImode)
3473 393095 : || !general_operand (operands[1], E_TImode))
3474 2070 : return -1;
3475 : return 1;
3476 :
3477 : default:
3478 : return -1;
3479 : }
3480 : }
3481 :
3482 : int
3483 28951 : pattern860 (rtx x1)
3484 : {
3485 28951 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3486 28951 : rtx x2, x3, x4, x5, x6, x7;
3487 28951 : int res ATTRIBUTE_UNUSED;
3488 28951 : x2 = XVECEXP (x1, 0, 2);
3489 28951 : if (maybe_ne (SUBREG_BYTE (x2), 0))
3490 : return -1;
3491 28951 : x3 = XEXP (x2, 0);
3492 28951 : if (GET_CODE (x3) != EQ)
3493 : return -1;
3494 3083 : x4 = XEXP (x3, 0);
3495 3083 : if (GET_CODE (x4) != EQ)
3496 : return -1;
3497 424 : x5 = XEXP (x4, 0);
3498 424 : operands[3] = x5;
3499 424 : x6 = XEXP (x4, 1);
3500 424 : operands[4] = x6;
3501 424 : x7 = XEXP (x3, 1);
3502 424 : operands[5] = x7;
3503 424 : switch (GET_MODE (operands[0]))
3504 : {
3505 75 : case E_V8QImode:
3506 75 : if (!register_operand (operands[0], E_V8QImode)
3507 75 : || GET_MODE (x1) != E_V8QImode
3508 75 : || !register_operand (operands[1], E_V8QImode)
3509 42 : || !register_operand (operands[2], E_V8QImode)
3510 96 : || GET_MODE (x2) != E_V8QImode)
3511 54 : return -1;
3512 21 : switch (GET_MODE (x3))
3513 : {
3514 21 : case E_V4HImode:
3515 21 : return pattern859 (x4,
3516 21 : E_V4HImode); /* [-1, 0] */
3517 :
3518 0 : case E_V2SImode:
3519 0 : if (pattern859 (x4,
3520 : E_V2SImode) != 0)
3521 : return -1;
3522 : return 1;
3523 :
3524 : default:
3525 : return -1;
3526 : }
3527 :
3528 315 : case E_V4QImode:
3529 315 : if (!register_operand (operands[0], E_V4QImode)
3530 315 : || GET_MODE (x1) != E_V4QImode
3531 315 : || !register_operand (operands[1], E_V4QImode)
3532 174 : || !register_operand (operands[2], E_V4QImode)
3533 93 : || GET_MODE (x2) != E_V4QImode
3534 93 : || GET_MODE (x3) != E_V2HImode
3535 408 : || pattern859 (x4,
3536 : E_V2HImode) != 0)
3537 270 : return -1;
3538 : return 2;
3539 :
3540 : default:
3541 : return -1;
3542 : }
3543 : }
3544 :
3545 : int
3546 1034 : pattern878 (rtx x1, machine_mode i1)
3547 : {
3548 1034 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3549 1034 : rtx x2;
3550 1034 : int res ATTRIBUTE_UNUSED;
3551 1034 : if (!register_operand (operands[0], i1)
3552 1018 : || GET_MODE (x1) != i1
3553 1018 : || !bcst_vector_operand (operands[1], i1)
3554 2048 : || !bcst_vector_operand (operands[2], i1))
3555 55 : return -1;
3556 979 : x2 = XEXP (x1, 2);
3557 979 : if (GET_MODE (x2) != i1
3558 979 : || !bcst_vector_operand (operands[3], i1))
3559 55 : return -1;
3560 : return 0;
3561 : }
3562 :
3563 : int
3564 1392 : pattern887 (rtx x1, machine_mode i1)
3565 : {
3566 1392 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3567 1392 : rtx x2, x3;
3568 1392 : int res ATTRIBUTE_UNUSED;
3569 1392 : if (!register_operand (operands[0], i1)
3570 1392 : || GET_MODE (x1) != i1)
3571 : return -1;
3572 1328 : x2 = XVECEXP (x1, 0, 0);
3573 1328 : if (GET_MODE (x2) != i1)
3574 : return -1;
3575 1328 : x3 = XVECEXP (x2, 0, 0);
3576 1328 : switch (GET_MODE (x3))
3577 : {
3578 488 : case E_HFmode:
3579 488 : if (!register_operand (operands[1], E_V8HFmode))
3580 : return -1;
3581 : return 0;
3582 :
3583 420 : case E_SFmode:
3584 420 : if (!register_operand (operands[1], E_V4SFmode))
3585 : return -1;
3586 : return 1;
3587 :
3588 420 : case E_DFmode:
3589 420 : if (!register_operand (operands[1], E_V2DFmode))
3590 : return -1;
3591 : return 2;
3592 :
3593 : default:
3594 : return -1;
3595 : }
3596 : }
3597 :
3598 : int
3599 11 : pattern897 (rtx x1, machine_mode i1, machine_mode i2)
3600 : {
3601 11 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3602 11 : rtx x2, x3;
3603 11 : int res ATTRIBUTE_UNUSED;
3604 11 : if (!register_operand (operands[0], i1)
3605 11 : || GET_MODE (x1) != i1)
3606 : return -1;
3607 11 : x2 = XEXP (x1, 0);
3608 11 : if (GET_MODE (x2) != i1)
3609 : return -1;
3610 11 : x3 = XEXP (x2, 0);
3611 11 : if (GET_MODE (x3) != i2
3612 11 : || !nonimmediate_operand (operands[1], i2)
3613 21 : || !register_operand (operands[2], i1))
3614 2 : return -1;
3615 : return 0;
3616 : }
3617 :
3618 : int
3619 901 : pattern907 (rtx x1, machine_mode i1)
3620 : {
3621 901 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3622 901 : rtx x2;
3623 901 : int res ATTRIBUTE_UNUSED;
3624 901 : if (!register_operand (operands[0], i1)
3625 901 : || GET_MODE (x1) != i1)
3626 : return -1;
3627 863 : x2 = XEXP (x1, 0);
3628 863 : if (GET_MODE (x2) != i1
3629 863 : || !nonimm_or_0_operand (operands[2], i1)
3630 1712 : || !register_operand (operands[3], E_QImode))
3631 58 : return -1;
3632 805 : switch (GET_MODE (operands[1]))
3633 : {
3634 378 : case E_V4SImode:
3635 378 : if (!nonimmediate_operand (operands[1], E_V4SImode))
3636 : return -1;
3637 : return 0;
3638 :
3639 427 : case E_V4DImode:
3640 427 : if (!nonimmediate_operand (operands[1], E_V4DImode))
3641 : return -1;
3642 : return 1;
3643 :
3644 : default:
3645 : return -1;
3646 : }
3647 : }
3648 :
3649 : int
3650 3955 : pattern918 (rtx x1, machine_mode i1, machine_mode i2)
3651 : {
3652 3955 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3653 3955 : int res ATTRIBUTE_UNUSED;
3654 3955 : if (!register_operand (operands[0], i2)
3655 3764 : || GET_MODE (x1) != i2
3656 3764 : || !register_operand (operands[1], i2)
3657 3712 : || !nonimm_or_0_operand (operands[2], i2)
3658 7625 : || !register_operand (operands[3], i1))
3659 654 : return -1;
3660 : return 0;
3661 : }
3662 :
3663 : int
3664 225 : pattern922 (rtx x1, machine_mode i1, machine_mode i2)
3665 : {
3666 225 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3667 225 : int res ATTRIBUTE_UNUSED;
3668 225 : if (!register_operand (operands[0], i2)
3669 213 : || GET_MODE (x1) != i2
3670 213 : || !register_operand (operands[1], i2)
3671 210 : || !register_operand (operands[2], i1)
3672 435 : || !nonimmediate_operand (operands[3], i1))
3673 15 : return -1;
3674 : return 0;
3675 : }
3676 :
3677 : int
3678 241 : pattern927 (rtx x1, machine_mode i1)
3679 : {
3680 241 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3681 241 : int res ATTRIBUTE_UNUSED;
3682 241 : if (!register_operand (operands[0], i1)
3683 232 : || GET_MODE (x1) != i1
3684 232 : || !nonimmediate_operand (operands[1], i1)
3685 223 : || !nonimmediate_operand (operands[2], i1)
3686 464 : || !nonimmediate_operand (operands[3], i1))
3687 18 : return -1;
3688 : return 0;
3689 : }
3690 :
3691 : int
3692 232 : pattern930 (rtx x1, machine_mode i1)
3693 : {
3694 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3695 232 : rtx x2, x3;
3696 232 : int res ATTRIBUTE_UNUSED;
3697 232 : if (!register_operand (operands[0], i1)
3698 232 : || GET_MODE (x1) != i1)
3699 : return -1;
3700 223 : x2 = XEXP (x1, 0);
3701 223 : if (GET_MODE (x2) != i1
3702 223 : || !nonimmediate_operand (operands[1], i1)
3703 443 : || !nonimmediate_operand (operands[2], i1))
3704 3 : return -1;
3705 220 : x3 = XEXP (x1, 2);
3706 220 : if (GET_MODE (x3) != i1
3707 220 : || !nonimmediate_operand (operands[3], i1))
3708 0 : return -1;
3709 : return 0;
3710 : }
3711 :
3712 : int
3713 51253 : pattern936 (rtx x1, machine_mode i1)
3714 : {
3715 51253 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3716 51253 : rtx x2;
3717 51253 : int res ATTRIBUTE_UNUSED;
3718 51253 : if (!register_operand (operands[0], i1)
3719 51253 : || GET_MODE (x1) != i1)
3720 : return -1;
3721 50619 : x2 = XEXP (x1, 0);
3722 50619 : if (GET_MODE (x2) != i1
3723 50619 : || !bcst_vector_operand (operands[1], i1)
3724 100825 : || !bcst_vector_operand (operands[2], i1))
3725 1599 : return -1;
3726 : return 0;
3727 : }
3728 :
3729 : int
3730 2583037 : pattern940 (rtx x1)
3731 : {
3732 2583037 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3733 2583037 : rtx x2, x3, x4, x5, x6, x7;
3734 2583037 : int res ATTRIBUTE_UNUSED;
3735 2583037 : x2 = XEXP (x1, 1);
3736 2583037 : x3 = XEXP (x2, 0);
3737 2583037 : switch (GET_CODE (x3))
3738 : {
3739 2275291 : case REG:
3740 2275291 : case SUBREG:
3741 2275291 : case MEM:
3742 2275291 : return pattern938 (x1); /* [-1, 7] */
3743 :
3744 36066 : case ASHIFT:
3745 36066 : x4 = XEXP (x1, 0);
3746 36066 : operands[0] = x4;
3747 36066 : x5 = XEXP (x3, 0);
3748 36066 : operands[1] = x5;
3749 36066 : x6 = XEXP (x3, 1);
3750 36066 : operands[2] = x6;
3751 36066 : if (!const_int_operand (operands[2], E_QImode))
3752 : return -1;
3753 35661 : x7 = XEXP (x2, 1);
3754 35661 : operands[3] = x7;
3755 35661 : if (!const_int_operand (operands[3], E_QImode))
3756 : return -1;
3757 35661 : switch (GET_MODE (operands[0]))
3758 : {
3759 11821 : case E_DImode:
3760 11821 : if (pattern939 (x2,
3761 : E_DImode) != 0)
3762 : return -1;
3763 : return 8;
3764 :
3765 14744 : case E_TImode:
3766 14744 : if (pattern939 (x2,
3767 : E_TImode) != 0)
3768 : return -1;
3769 : return 9;
3770 :
3771 : default:
3772 : return -1;
3773 : }
3774 :
3775 : default:
3776 : return -1;
3777 : }
3778 : }
3779 :
3780 : int
3781 21182 : pattern957 (rtx x1, machine_mode i1, machine_mode i2)
3782 : {
3783 21182 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3784 21182 : rtx x2, x3;
3785 21182 : int res ATTRIBUTE_UNUSED;
3786 21182 : if (!nonimmediate_operand (operands[0], i2)
3787 21182 : || GET_MODE (x1) != i2)
3788 : return -1;
3789 21182 : x2 = XEXP (x1, 0);
3790 21182 : if (GET_MODE (x2) != i2
3791 21182 : || !register_operand (operands[1], i2))
3792 11 : return -1;
3793 21171 : x3 = XEXP (x1, 1);
3794 21171 : if (GET_MODE (x3) != i2
3795 21171 : || !nonimmediate_operand (operands[3], i1))
3796 13496 : return -1;
3797 : return 0;
3798 : }
3799 :
3800 : int
3801 5917514 : pattern965 (rtx x1, machine_mode i1, machine_mode i2)
3802 : {
3803 5917514 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3804 5917514 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3805 5917514 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3806 5917514 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
3807 5917514 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
3808 5917514 : rtx x34, x35, x36, x37, x38;
3809 5917514 : int res ATTRIBUTE_UNUSED;
3810 5917514 : x2 = XEXP (x1, 0);
3811 5917514 : operands[6] = x2;
3812 5917514 : x3 = XEXP (x1, 1);
3813 5917514 : operands[7] = x3;
3814 5917514 : if (!memory_operand (operands[7], i1))
3815 : return -1;
3816 1547503 : x4 = PATTERN (peep2_next_insn (1));
3817 1547503 : x5 = XEXP (x4, 1);
3818 1547503 : operands[9] = x5;
3819 1547503 : if (!memory_operand (operands[9], i1))
3820 : return -1;
3821 917488 : x6 = PATTERN (peep2_next_insn (2));
3822 917488 : if (GET_CODE (x6) != PARALLEL
3823 79031 : || XVECLEN (x6, 0) != 2)
3824 : return -1;
3825 77443 : x7 = XVECEXP (x6, 0, 0);
3826 77443 : if (GET_CODE (x7) != SET)
3827 : return -1;
3828 77425 : x8 = XEXP (x7, 1);
3829 77425 : if (GET_CODE (x8) != COMPARE
3830 6340 : || GET_MODE (x8) != E_CCCmode)
3831 : return -1;
3832 2102 : x9 = XEXP (x8, 0);
3833 2102 : if (GET_CODE (x9) != ZERO_EXTEND
3834 41 : || GET_MODE (x9) != i2)
3835 : return -1;
3836 41 : x10 = XEXP (x8, 1);
3837 41 : if (GET_CODE (x10) != PLUS
3838 41 : || GET_MODE (x10) != i2)
3839 : return -1;
3840 41 : x11 = XEXP (x10, 0);
3841 41 : if (!ix86_carry_flag_operator (x11, i2))
3842 : return -1;
3843 41 : operands[4] = x11;
3844 41 : x12 = XEXP (x11, 1);
3845 41 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3846 : return -1;
3847 41 : x13 = XEXP (x10, 1);
3848 41 : if (GET_CODE (x13) != ZERO_EXTEND
3849 41 : || GET_MODE (x13) != i2)
3850 : return -1;
3851 41 : x14 = XEXP (x7, 0);
3852 41 : if (GET_CODE (x14) != REG
3853 41 : || REGNO (x14) != 17
3854 82 : || GET_MODE (x14) != E_CCCmode)
3855 : return -1;
3856 41 : x15 = XVECEXP (x6, 0, 1);
3857 41 : if (GET_CODE (x15) != SET)
3858 : return -1;
3859 6 : x16 = XEXP (x15, 1);
3860 6 : if (GET_CODE (x16) != MINUS
3861 6 : || GET_MODE (x16) != i1)
3862 : return -1;
3863 6 : x17 = XEXP (x16, 0);
3864 6 : if (GET_CODE (x17) != MINUS
3865 6 : || GET_MODE (x17) != i1)
3866 : return -1;
3867 6 : x18 = XEXP (x17, 1);
3868 6 : if (!ix86_carry_flag_operator (x18, i1))
3869 : return -1;
3870 6 : operands[5] = x18;
3871 6 : x19 = XEXP (x18, 1);
3872 6 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3873 : return -1;
3874 6 : x20 = XEXP (x9, 0);
3875 6 : operands[0] = x20;
3876 6 : if (!general_reg_operand (operands[0], i1))
3877 : return -1;
3878 6 : x21 = XEXP (x11, 0);
3879 6 : operands[3] = x21;
3880 6 : if (!flags_reg_operand (operands[3], E_VOIDmode))
3881 : return -1;
3882 6 : x22 = XEXP (x13, 0);
3883 6 : operands[2] = x22;
3884 6 : if (!general_reg_operand (operands[2], i1))
3885 : return -1;
3886 6 : x23 = XEXP (x17, 0);
3887 6 : if (!rtx_equal_p (x23, operands[0]))
3888 : return -1;
3889 6 : x24 = XEXP (x18, 0);
3890 6 : if (!rtx_equal_p (x24, operands[3]))
3891 : return -1;
3892 6 : x25 = XEXP (x16, 1);
3893 6 : if (!rtx_equal_p (x25, operands[2]))
3894 : return -1;
3895 6 : x26 = XEXP (x15, 0);
3896 6 : if (!rtx_equal_p (x26, operands[0]))
3897 : return -1;
3898 6 : x27 = PATTERN (peep2_next_insn (3));
3899 6 : if (GET_CODE (x27) != SET)
3900 : return -1;
3901 6 : x28 = XEXP (x27, 1);
3902 6 : switch (GET_CODE (x28))
3903 : {
3904 0 : case REG:
3905 0 : if (!rtx_equal_p (x28, operands[0]))
3906 : return -1;
3907 0 : x29 = XEXP (x27, 0);
3908 0 : operands[1] = x29;
3909 0 : if (!memory_operand (operands[1], i1))
3910 : return -1;
3911 : return 0;
3912 :
3913 6 : case LTU:
3914 6 : if (peep2_current_count < 5
3915 6 : || peep2_current_count < 6
3916 6 : || GET_MODE (x28) != E_QImode)
3917 : return -1;
3918 6 : x30 = XEXP (x28, 0);
3919 6 : if (GET_CODE (x30) != REG
3920 6 : || REGNO (x30) != 17
3921 12 : || GET_MODE (x30) != E_CCCmode)
3922 : return -1;
3923 6 : x31 = XEXP (x28, 1);
3924 6 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3925 : return -1;
3926 6 : x29 = XEXP (x27, 0);
3927 6 : operands[10] = x29;
3928 6 : if (!general_reg_operand (operands[10], E_QImode))
3929 : return -1;
3930 6 : x32 = PATTERN (peep2_next_insn (4));
3931 6 : if (GET_CODE (x32) != SET)
3932 : return -1;
3933 0 : x33 = XEXP (x32, 1);
3934 0 : if (GET_CODE (x33) != ZERO_EXTEND
3935 0 : || GET_MODE (x33) != i1)
3936 : return -1;
3937 0 : x34 = XEXP (x32, 0);
3938 0 : operands[11] = x34;
3939 0 : if (!general_reg_operand (operands[11], i1))
3940 : return -1;
3941 0 : x35 = XEXP (x33, 0);
3942 0 : if (!rtx_equal_p (x35, operands[10]))
3943 : return -1;
3944 0 : x36 = PATTERN (peep2_next_insn (5));
3945 0 : if (GET_CODE (x36) != SET)
3946 : return -1;
3947 0 : x37 = XEXP (x36, 0);
3948 0 : operands[1] = x37;
3949 0 : if (!memory_operand (operands[1], i1))
3950 : return -1;
3951 0 : x38 = XEXP (x36, 1);
3952 0 : if (!rtx_equal_p (x38, operands[0]))
3953 : return -1;
3954 : return 1;
3955 :
3956 : default:
3957 : return -1;
3958 : }
3959 : }
3960 :
3961 : int
3962 875 : pattern999 (rtx x1, machine_mode i1)
3963 : {
3964 875 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3965 875 : rtx x2;
3966 875 : int res ATTRIBUTE_UNUSED;
3967 875 : if (!register_operand (operands[0], i1)
3968 875 : || GET_MODE (x1) != i1)
3969 : return -1;
3970 789 : x2 = XEXP (x1, 0);
3971 789 : if (GET_MODE (x2) != i1
3972 789 : || !nonimm_or_0_operand (operands[2], i1)
3973 1539 : || !register_operand (operands[3], E_QImode))
3974 105 : return -1;
3975 684 : switch (GET_MODE (operands[1]))
3976 : {
3977 291 : case E_V8HFmode:
3978 291 : if (!vector_operand (operands[1], E_V8HFmode))
3979 : return -1;
3980 : return 0;
3981 :
3982 274 : case E_V8SFmode:
3983 274 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
3984 : return -1;
3985 : return 1;
3986 :
3987 119 : case E_V8DFmode:
3988 119 : if (!vector_operand (operands[1], E_V8DFmode))
3989 : return -1;
3990 : return 2;
3991 :
3992 : default:
3993 : return -1;
3994 : }
3995 : }
3996 :
3997 : int
3998 582 : pattern1007 (rtx x1, machine_mode i1, machine_mode i2)
3999 : {
4000 582 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4001 582 : rtx x2;
4002 582 : int res ATTRIBUTE_UNUSED;
4003 582 : if (!register_operand (operands[0], i2)
4004 582 : || GET_MODE (x1) != i2)
4005 : return -1;
4006 582 : x2 = XEXP (x1, 0);
4007 582 : if (GET_MODE (x2) != i2
4008 582 : || !nonimmediate_operand (operands[1], i2)
4009 582 : || !reg_or_0_operand (operands[2], i2)
4010 1164 : || !register_operand (operands[3], i1))
4011 12 : return -1;
4012 : return 0;
4013 : }
4014 :
4015 : int
4016 1302 : pattern1015 (rtx x1, machine_mode i1, machine_mode i2)
4017 : {
4018 1302 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4019 1302 : rtx x2;
4020 1302 : int res ATTRIBUTE_UNUSED;
4021 1302 : if (!register_operand (operands[0], i1)
4022 1302 : || GET_MODE (x1) != i1)
4023 : return -1;
4024 910 : x2 = XEXP (x1, 0);
4025 910 : if (GET_MODE (x2) != i1
4026 910 : || !nonimmediate_operand (operands[2], i2)
4027 1820 : || !const0_operand (operands[1], i1))
4028 40 : return -1;
4029 : return 0;
4030 : }
4031 :
4032 : int
4033 1961 : pattern1023 (rtx x1, machine_mode i1, machine_mode i2)
4034 : {
4035 1961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4036 1961 : rtx x2, x3;
4037 1961 : int res ATTRIBUTE_UNUSED;
4038 1961 : if (!register_operand (operands[0], i1)
4039 1961 : || GET_MODE (x1) != i1)
4040 : return -1;
4041 1867 : x2 = XEXP (x1, 0);
4042 1867 : if (GET_MODE (x2) != i1)
4043 : return -1;
4044 1867 : x3 = XEXP (x2, 0);
4045 1867 : if (GET_MODE (x3) != i1
4046 1867 : || !register_operand (operands[1], i1)
4047 1857 : || !nonimmediate_operand (operands[2], i1)
4048 1760 : || !nonimm_or_0_operand (operands[3], i1)
4049 3576 : || !register_operand (operands[4], i2))
4050 289 : return -1;
4051 : return 0;
4052 : }
4053 :
4054 : int
4055 420 : pattern1030 (rtx x1)
4056 : {
4057 420 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4058 420 : rtx x2;
4059 420 : int res ATTRIBUTE_UNUSED;
4060 420 : if (!register_operand (operands[0], E_V16SImode)
4061 420 : || GET_MODE (x1) != E_V16SImode)
4062 : return -1;
4063 408 : x2 = XVECEXP (x1, 0, 0);
4064 408 : if (GET_MODE (x2) != E_V16SImode)
4065 : return -1;
4066 408 : switch (GET_MODE (operands[1]))
4067 : {
4068 213 : case E_V16HFmode:
4069 213 : if (!register_operand (operands[1], E_V16HFmode))
4070 : return -1;
4071 : return 0;
4072 :
4073 195 : case E_V16SFmode:
4074 195 : if (!register_operand (operands[1], E_V16SFmode))
4075 : return -1;
4076 : return 1;
4077 :
4078 : default:
4079 : return -1;
4080 : }
4081 : }
4082 :
4083 : int
4084 7022 : pattern1041 (rtx x1, machine_mode i1, machine_mode i2)
4085 : {
4086 7022 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4087 7022 : int res ATTRIBUTE_UNUSED;
4088 7022 : if (!register_operand (operands[0], i2)
4089 6854 : || GET_MODE (x1) != i2
4090 6854 : || !nonimmediate_operand (operands[1], i2)
4091 6829 : || !nonimm_or_0_operand (operands[2], i2)
4092 13747 : || !register_operand (operands[3], i1))
4093 297 : return -1;
4094 : return 0;
4095 : }
4096 :
4097 : int
4098 156 : pattern1049 (rtx x1)
4099 : {
4100 156 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4101 156 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4102 156 : rtx x10, x11;
4103 156 : int res ATTRIBUTE_UNUSED;
4104 156 : x2 = XEXP (x1, 1);
4105 156 : x3 = XEXP (x2, 0);
4106 156 : x4 = XEXP (x3, 0);
4107 156 : if (GET_CODE (x4) != SUBREG
4108 156 : || maybe_ne (SUBREG_BYTE (x4), 0)
4109 312 : || GET_MODE (x4) != E_QImode)
4110 : return -1;
4111 156 : x5 = XEXP (x4, 0);
4112 156 : switch (GET_CODE (x5))
4113 : {
4114 156 : case ASHIFTRT:
4115 156 : case LSHIFTRT:
4116 156 : case SIGN_EXTRACT:
4117 156 : case ZERO_EXTRACT:
4118 156 : operands[3] = x5;
4119 156 : x6 = XEXP (x1, 0);
4120 156 : if (GET_CODE (x6) != ZERO_EXTRACT)
4121 : return -1;
4122 156 : x7 = XEXP (x6, 1);
4123 156 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4124 : return -1;
4125 156 : x8 = XEXP (x6, 2);
4126 156 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4127 : return -1;
4128 156 : x9 = XEXP (x6, 0);
4129 156 : operands[0] = x9;
4130 156 : if (!int248_register_operand (operands[0], E_VOIDmode))
4131 : return -1;
4132 156 : x10 = XEXP (x5, 0);
4133 156 : operands[1] = x10;
4134 156 : if (!int248_register_operand (operands[1], E_VOIDmode))
4135 : return -1;
4136 156 : x11 = XEXP (x3, 1);
4137 156 : operands[2] = x11;
4138 156 : if (!nonmemory_operand (operands[2], E_QImode))
4139 : return -1;
4140 155 : return pattern1048 (x1); /* [-1, 2] */
4141 :
4142 : default:
4143 : return -1;
4144 : }
4145 : }
4146 :
4147 : int
4148 535 : pattern1058 (rtx x1)
4149 : {
4150 535 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4151 535 : rtx x2, x3, x4, x5;
4152 535 : int res ATTRIBUTE_UNUSED;
4153 535 : x2 = XEXP (x1, 1);
4154 535 : x3 = XEXP (x2, 0);
4155 535 : x4 = XEXP (x3, 0);
4156 535 : x5 = XEXP (x4, 0);
4157 535 : operands[1] = x5;
4158 535 : if (!int248_register_operand (operands[1], E_VOIDmode))
4159 : return -1;
4160 375 : return pattern1057 (x1); /* [-1, 5] */
4161 : }
4162 :
4163 : int
4164 833 : pattern1062 (rtx x1, machine_mode i1)
4165 : {
4166 833 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4167 833 : rtx x2, x3;
4168 833 : int res ATTRIBUTE_UNUSED;
4169 833 : if (!register_operand (operands[0], i1)
4170 833 : || GET_MODE (x1) != i1)
4171 : return -1;
4172 832 : x2 = XEXP (x1, 0);
4173 832 : if (GET_MODE (x2) != i1)
4174 : return -1;
4175 832 : x3 = XEXP (x2, 0);
4176 832 : if (GET_MODE (x3) != i1
4177 832 : || !nonimmediate_operand (operands[1], i1)
4178 832 : || !nonimmediate_operand (operands[2], i1)
4179 1616 : || !nonimmediate_operand (operands[3], i1))
4180 48 : return -1;
4181 : return 0;
4182 : }
4183 :
4184 : int
4185 0 : pattern1065 (rtx x1, machine_mode i1, machine_mode i2)
4186 : {
4187 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4188 0 : rtx x2;
4189 0 : int res ATTRIBUTE_UNUSED;
4190 0 : if (!register_operand (operands[0], i2)
4191 0 : || GET_MODE (x1) != i2)
4192 : return -1;
4193 0 : x2 = XEXP (x1, 0);
4194 0 : if (GET_MODE (x2) != i2
4195 0 : || !register_operand (operands[1], i2)
4196 0 : || !vector_operand (operands[2], i1))
4197 0 : return -1;
4198 : return 0;
4199 : }
4200 :
4201 : int
4202 7449 : pattern1069 (rtx x1)
4203 : {
4204 7449 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4205 7449 : rtx x2, x3, x4, x5, x6, x7;
4206 7449 : int res ATTRIBUTE_UNUSED;
4207 7449 : x2 = XEXP (x1, 1);
4208 7449 : x3 = XEXP (x2, 0);
4209 7449 : x4 = XEXP (x3, 0);
4210 7449 : if (GET_CODE (x4) != ASHIFT)
4211 : return -1;
4212 2237 : x5 = XEXP (x4, 0);
4213 2237 : if (GET_CODE (x5) != ZERO_EXTEND)
4214 : return -1;
4215 1703 : x6 = XEXP (x3, 1);
4216 1703 : if (GET_CODE (x6) != ZERO_EXTEND)
4217 : return -1;
4218 1703 : x7 = XEXP (x1, 0);
4219 1703 : operands[0] = x7;
4220 1703 : return pattern360 (x2); /* [-1, 3] */
4221 : }
4222 :
4223 : int
4224 4974 : pattern1075 (rtx x1, machine_mode i1, machine_mode i2)
4225 : {
4226 4974 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4227 4974 : rtx x2;
4228 4974 : int res ATTRIBUTE_UNUSED;
4229 4974 : if (!sse_reg_operand (operands[0], i1)
4230 4974 : || GET_MODE (x1) != i1)
4231 : return -1;
4232 4033 : x2 = XEXP (x1, 0);
4233 4033 : if (GET_MODE (x2) != i1
4234 4033 : || !sse_reg_operand (operands[2], i2)
4235 4092 : || !sse_reg_operand (operands[1], i1))
4236 3974 : return -1;
4237 : return 0;
4238 : }
4239 :
4240 : int
4241 212 : pattern1081 (rtx x1, machine_mode i1)
4242 : {
4243 212 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4244 212 : rtx x2, x3, x4;
4245 212 : int res ATTRIBUTE_UNUSED;
4246 212 : if (!register_operand (operands[1], i1))
4247 : return -1;
4248 196 : x2 = XVECEXP (x1, 0, 1);
4249 196 : operands[2] = x2;
4250 196 : if (!register_operand (operands[2], i1))
4251 : return -1;
4252 185 : x3 = XVECEXP (x1, 0, 2);
4253 185 : x4 = XEXP (x3, 0);
4254 185 : if (!rtx_equal_p (x4, operands[0]))
4255 : return -1;
4256 185 : switch (GET_MODE (operands[0]))
4257 : {
4258 0 : case E_SImode:
4259 0 : if (!register_operand (operands[0], E_SImode))
4260 : return -1;
4261 : return 0;
4262 :
4263 185 : case E_DImode:
4264 185 : if (!register_operand (operands[0], E_DImode))
4265 : return -1;
4266 : return 1;
4267 :
4268 : default:
4269 : return -1;
4270 : }
4271 : }
4272 :
4273 : int
4274 34652 : pattern1089 (rtx x1)
4275 : {
4276 34652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4277 34652 : rtx x2;
4278 34652 : int res ATTRIBUTE_UNUSED;
4279 34652 : x2 = XEXP (x1, 1);
4280 34652 : operands[4] = x2;
4281 34652 : switch (GET_MODE (operands[0]))
4282 : {
4283 9359 : case E_HImode:
4284 9359 : return pattern1088 (x1,
4285 9359 : E_HImode); /* [-1, 0] */
4286 :
4287 17974 : case E_QImode:
4288 17974 : if (pattern1088 (x1,
4289 : E_QImode) != 0)
4290 : return -1;
4291 : return 1;
4292 :
4293 : default:
4294 : return -1;
4295 : }
4296 : }
4297 :
4298 : int
4299 6658 : pattern1096 (rtx x1, machine_mode i1)
4300 : {
4301 6658 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4302 6658 : int res ATTRIBUTE_UNUSED;
4303 6658 : if (!nonimmediate_operand (operands[0], i1)
4304 6658 : || GET_MODE (x1) != i1
4305 6658 : || !ix86_carry_flag_operator (operands[2], i1)
4306 13316 : || !nonimmediate_operand (operands[1], i1))
4307 1353 : return -1;
4308 : return 0;
4309 : }
4310 :
4311 : int
4312 146 : pattern1103 (rtx x1, machine_mode i1)
4313 : {
4314 146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4315 146 : rtx x2;
4316 146 : int res ATTRIBUTE_UNUSED;
4317 146 : if (!register_operand (operands[0], i1)
4318 146 : || GET_MODE (x1) != i1)
4319 : return -1;
4320 146 : x2 = XEXP (x1, 0);
4321 146 : return pattern1102 (x2); /* [-1, 11] */
4322 : }
4323 :
4324 : int
4325 62 : pattern1109 (rtx x1)
4326 : {
4327 62 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4328 62 : rtx x2, x3, x4;
4329 62 : int res ATTRIBUTE_UNUSED;
4330 62 : x2 = XEXP (x1, 0);
4331 62 : x3 = XEXP (x2, 0);
4332 62 : operands[1] = x3;
4333 62 : x4 = XEXP (x2, 1);
4334 62 : operands[2] = x4;
4335 62 : if (!const_int_operand (operands[2], E_QImode))
4336 : return -1;
4337 62 : switch (GET_MODE (x1))
4338 : {
4339 14 : case E_V8SFmode:
4340 14 : if (GET_MODE (x2) != E_V8SImode
4341 14 : || !register_operand (operands[1], E_V8SImode))
4342 0 : return -1;
4343 : return 0;
4344 :
4345 16 : case E_V4SFmode:
4346 16 : if (GET_MODE (x2) != E_V4SImode
4347 16 : || !register_operand (operands[1], E_V4SImode))
4348 0 : return -1;
4349 : return 1;
4350 :
4351 0 : case E_V4DFmode:
4352 0 : if (GET_MODE (x2) != E_V4DImode
4353 0 : || !register_operand (operands[1], E_V4DImode))
4354 0 : return -1;
4355 : return 2;
4356 :
4357 14 : case E_V2DFmode:
4358 14 : if (GET_MODE (x2) != E_V2DImode
4359 14 : || !register_operand (operands[1], E_V2DImode))
4360 0 : return -1;
4361 : return 3;
4362 :
4363 : default:
4364 : return -1;
4365 : }
4366 : }
4367 :
4368 : int
4369 1349 : pattern1118 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4370 : {
4371 1349 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4372 1349 : rtx x2;
4373 1349 : int res ATTRIBUTE_UNUSED;
4374 1349 : if (!register_operand (operands[0], i2)
4375 1349 : || GET_MODE (x1) != i2)
4376 : return -1;
4377 1293 : x2 = XEXP (x1, 0);
4378 1293 : if (GET_MODE (x2) != i2
4379 1293 : || !register_operand (operands[1], i3)
4380 1293 : || !vector_operand (operands[2], i3)
4381 1293 : || !nonimm_or_0_operand (operands[3], i2)
4382 2540 : || !register_operand (operands[4], i1))
4383 106 : return -1;
4384 : return 0;
4385 : }
4386 :
4387 : int
4388 3141 : pattern1122 (rtx x1, machine_mode i1, machine_mode i2)
4389 : {
4390 3141 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4391 3141 : rtx x2;
4392 3141 : int res ATTRIBUTE_UNUSED;
4393 3141 : if (!register_operand (operands[0], i1)
4394 3141 : || GET_MODE (x1) != i1)
4395 : return -1;
4396 2955 : x2 = XEXP (x1, 0);
4397 2955 : if (GET_MODE (x2) != i1
4398 2955 : || !register_operand (operands[1], i1)
4399 2918 : || !nonimmediate_operand (operands[2], i1)
4400 2918 : || !nonimm_or_0_operand (operands[3], i1)
4401 5825 : || !register_operand (operands[4], i2))
4402 163 : return -1;
4403 : return 0;
4404 : }
4405 :
4406 : int
4407 36 : pattern1129 (rtx x1, machine_mode i1, machine_mode i2)
4408 : {
4409 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4410 36 : rtx x2, x3;
4411 36 : int res ATTRIBUTE_UNUSED;
4412 36 : if (!register_operand (operands[0], i1)
4413 36 : || GET_MODE (x1) != i1)
4414 : return -1;
4415 36 : x2 = XEXP (x1, 0);
4416 36 : if (GET_MODE (x2) != i1)
4417 : return -1;
4418 36 : x3 = XEXP (x2, 0);
4419 36 : if (GET_MODE (x3) != i2
4420 36 : || !nonimmediate_operand (operands[1], i2)
4421 68 : || !register_operand (operands[2], i1))
4422 8 : return -1;
4423 : return 0;
4424 : }
4425 :
4426 : int
4427 1093 : pattern1138 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
4428 : {
4429 1093 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4430 1093 : int res ATTRIBUTE_UNUSED;
4431 1093 : if (GET_MODE (x1) != i4
4432 1093 : || !register_operand (operands[1], i3)
4433 1093 : || !nonimm_or_0_operand (operands[3], i2)
4434 2167 : || !register_operand (operands[4], i1))
4435 71 : return -1;
4436 : return 0;
4437 : }
4438 :
4439 : int
4440 1696 : pattern1144 (rtx x1)
4441 : {
4442 1696 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4443 1696 : rtx x2, x3, x4, x5, x6, x7, x8;
4444 1696 : int res ATTRIBUTE_UNUSED;
4445 1696 : x2 = XVECEXP (x1, 0, 0);
4446 1696 : x3 = XEXP (x2, 0);
4447 1696 : x4 = XVECEXP (x3, 0, 2);
4448 1696 : operands[3] = x4;
4449 1696 : x5 = XVECEXP (x1, 0, 1);
4450 1696 : if (!const_4_or_8_to_11_operand (x5, E_SImode))
4451 : return -1;
4452 1696 : x6 = XEXP (x2, 1);
4453 1696 : switch (GET_CODE (x6))
4454 : {
4455 448 : case CONST_INT:
4456 448 : case CONST_DOUBLE:
4457 448 : case CONST_VECTOR:
4458 448 : operands[4] = x6;
4459 448 : if (!const0_operand (operands[4], E_V32HFmode))
4460 : return -1;
4461 448 : x7 = XEXP (x2, 2);
4462 448 : if (GET_CODE (x7) != UNSPEC
4463 448 : || XVECLEN (x7, 0) != 1
4464 448 : || XINT (x7, 1) != 224
4465 448 : || GET_MODE (x7) != E_SImode
4466 448 : || !register_operand (operands[0], E_V32HFmode)
4467 428 : || GET_MODE (x1) != E_V32HFmode
4468 428 : || GET_MODE (x2) != E_V32HFmode
4469 428 : || GET_MODE (x3) != E_V32HFmode
4470 428 : || !register_operand (operands[1], E_V32HFmode)
4471 428 : || !register_operand (operands[2], E_V32HFmode)
4472 866 : || !register_operand (operands[3], E_V32HFmode))
4473 38 : return -1;
4474 410 : x8 = XVECEXP (x7, 0, 0);
4475 410 : operands[5] = x8;
4476 410 : if (!register_operand (operands[5], E_HImode))
4477 : return -1;
4478 384 : operands[6] = x5;
4479 384 : return 0;
4480 :
4481 1232 : case REG:
4482 1232 : case SUBREG:
4483 1232 : x7 = XEXP (x2, 2);
4484 1232 : switch (GET_CODE (x7))
4485 : {
4486 864 : case UNSPEC:
4487 864 : if (XVECLEN (x7, 0) != 1
4488 864 : || XINT (x7, 1) != 224
4489 864 : || GET_MODE (x7) != E_SImode
4490 864 : || !register_operand (operands[0], E_V32HFmode)
4491 846 : || GET_MODE (x1) != E_V32HFmode
4492 846 : || GET_MODE (x2) != E_V32HFmode
4493 846 : || GET_MODE (x3) != E_V32HFmode
4494 846 : || !register_operand (operands[1], E_V32HFmode)
4495 846 : || !register_operand (operands[2], E_V32HFmode)
4496 1690 : || !register_operand (operands[3], E_V32HFmode))
4497 54 : return -1;
4498 810 : x8 = XVECEXP (x7, 0, 0);
4499 810 : operands[4] = x8;
4500 810 : if (!register_operand (operands[4], E_HImode))
4501 : return -1;
4502 762 : operands[5] = x5;
4503 762 : if (!rtx_equal_p (x6, operands[1]))
4504 : return -1;
4505 : return 1;
4506 :
4507 368 : case CONST_INT:
4508 368 : if (XWINT (x7, 0) != 3L
4509 368 : || !register_operand (operands[0], E_V8HFmode)
4510 352 : || GET_MODE (x1) != E_V8HFmode
4511 352 : || GET_MODE (x2) != E_V8HFmode
4512 352 : || GET_MODE (x3) != E_V8HFmode
4513 352 : || !register_operand (operands[1], E_V8HFmode)
4514 348 : || !register_operand (operands[2], E_V8HFmode)
4515 716 : || !register_operand (operands[3], E_V8HFmode))
4516 28 : return -1;
4517 340 : operands[4] = x5;
4518 340 : if (!rtx_equal_p (x6, operands[2]))
4519 : return -1;
4520 : return 2;
4521 :
4522 : default:
4523 : return -1;
4524 : }
4525 :
4526 : default:
4527 : return -1;
4528 : }
4529 : }
4530 :
4531 : int
4532 18670811 : pattern1188 (rtx x1)
4533 : {
4534 18670811 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4535 18670811 : rtx x2, x3, x4;
4536 18670811 : int res ATTRIBUTE_UNUSED;
4537 18670811 : x2 = XEXP (x1, 1);
4538 18670811 : x3 = XEXP (x2, 1);
4539 18670811 : operands[2] = x3;
4540 18670811 : x4 = XEXP (x1, 0);
4541 18670811 : switch (GET_CODE (x4))
4542 : {
4543 18669454 : case REG:
4544 18669454 : case SUBREG:
4545 18669454 : case MEM:
4546 18669454 : operands[0] = x4;
4547 18669454 : return 0;
4548 :
4549 1357 : case STRICT_LOW_PART:
4550 1357 : res = pattern561 (x1);
4551 1357 : if (res >= 0)
4552 1252 : return res + 1; /* [1, 2] */
4553 : return -1;
4554 :
4555 : default:
4556 : return -1;
4557 : }
4558 : }
4559 :
4560 : int
4561 683 : pattern1197 (rtx x1, machine_mode i1, machine_mode i2)
4562 : {
4563 683 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4564 683 : int res ATTRIBUTE_UNUSED;
4565 683 : if (!register_operand (operands[0], i2)
4566 677 : || GET_MODE (x1) != i2
4567 677 : || !const0_operand (operands[2], i2)
4568 8 : || !vector_all_ones_operand (operands[3], i2)
4569 683 : || !register_operand (operands[1], i1))
4570 683 : return -1;
4571 : return 0;
4572 : }
4573 :
4574 : int
4575 4 : pattern1202 (rtx x1, machine_mode i1)
4576 : {
4577 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4578 4 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4579 4 : rtx x10, x11, x12;
4580 4 : int res ATTRIBUTE_UNUSED;
4581 4 : x2 = XVECEXP (x1, 0, 0);
4582 4 : x3 = XEXP (x2, 1);
4583 4 : x4 = XEXP (x3, 0);
4584 4 : operands[2] = x4;
4585 4 : if (!memory_operand (operands[2], i1))
4586 : return -1;
4587 4 : x5 = XVECEXP (x1, 0, 1);
4588 4 : x6 = XEXP (x5, 1);
4589 4 : if (GET_CODE (x6) != MINUS)
4590 : return -1;
4591 4 : x7 = XEXP (x2, 0);
4592 4 : if (GET_MODE (x7) != E_CCmode
4593 4 : || GET_MODE (x3) != E_CCmode)
4594 : return -1;
4595 4 : x8 = XEXP (x3, 1);
4596 4 : if (!rtx_equal_p (x8, operands[0]))
4597 : return -1;
4598 4 : x9 = XEXP (x6, 0);
4599 4 : if (!rtx_equal_p (x9, operands[2]))
4600 : return -1;
4601 4 : x10 = XEXP (x6, 1);
4602 4 : if (!rtx_equal_p (x10, operands[0]))
4603 : return -1;
4604 4 : x11 = PATTERN (peep2_next_insn (2));
4605 4 : x12 = XEXP (x11, 0);
4606 4 : if (!rtx_equal_p (x12, operands[2]))
4607 : return -1;
4608 : return 0;
4609 : }
4610 :
4611 : int
4612 1132874 : pattern1211 (rtx x1)
4613 : {
4614 1132874 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4615 1132874 : int res ATTRIBUTE_UNUSED;
4616 1132874 : if (!register_operand (operands[0], E_QImode)
4617 1130032 : || GET_MODE (x1) != E_QImode
4618 1130032 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
4619 1130032 : || !register_operand (operands[2], E_QImode)
4620 2250844 : || !register_operand (operands[3], E_QImode))
4621 524539 : return -1;
4622 : return 0;
4623 : }
4624 :
4625 : int
4626 161 : pattern1216 (rtx x1, machine_mode i1)
4627 : {
4628 161 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4629 161 : rtx x2, x3;
4630 161 : int res ATTRIBUTE_UNUSED;
4631 161 : if (!nonimmediate_operand (operands[0], i1)
4632 161 : || GET_MODE (x1) != i1)
4633 : return -1;
4634 161 : x2 = XEXP (x1, 0);
4635 161 : if (GET_MODE (x2) != i1)
4636 : return -1;
4637 161 : x3 = XEXP (x2, 0);
4638 161 : if (GET_MODE (x3) != i1
4639 161 : || !nonimmediate_operand (operands[1], i1)
4640 273 : || !x86_64_general_operand (operands[2], i1))
4641 49 : return -1;
4642 : return 0;
4643 : }
4644 :
4645 : int
4646 1933 : pattern1223 (rtx x1, machine_mode i1, machine_mode i2)
4647 : {
4648 1933 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4649 1933 : rtx x2;
4650 1933 : int res ATTRIBUTE_UNUSED;
4651 1933 : if (!register_operand (operands[0], i1)
4652 1933 : || GET_MODE (x1) != i1)
4653 : return -1;
4654 1799 : x2 = XEXP (x1, 0);
4655 1799 : if (GET_MODE (x2) != i1
4656 1799 : || !vector_operand (operands[1], i1)
4657 1799 : || !nonimm_or_0_operand (operands[3], i1)
4658 3568 : || !register_operand (operands[4], i2))
4659 139 : return -1;
4660 : return 0;
4661 : }
4662 :
4663 : int
4664 652 : pattern1231 (rtx x1, machine_mode i1)
4665 : {
4666 652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4667 652 : rtx x2;
4668 652 : int res ATTRIBUTE_UNUSED;
4669 652 : if (!register_operand (operands[0], i1)
4670 652 : || GET_MODE (x1) != i1)
4671 : return -1;
4672 626 : x2 = XVECEXP (x1, 0, 0);
4673 626 : if (GET_MODE (x2) != i1
4674 626 : || !nonimmediate_operand (operands[1], i1))
4675 2 : return -1;
4676 : return 0;
4677 : }
4678 :
4679 : int
4680 42 : pattern1236 (rtx x1)
4681 : {
4682 42 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4683 42 : rtx x2, x3, x4, x5, x6, x7;
4684 42 : int res ATTRIBUTE_UNUSED;
4685 42 : x2 = XVECEXP (x1, 0, 2);
4686 42 : x3 = XEXP (x2, 0);
4687 42 : x4 = XEXP (x3, 0);
4688 42 : if (maybe_ne (SUBREG_BYTE (x4), 0))
4689 : return -1;
4690 42 : x5 = XEXP (x4, 0);
4691 42 : if (GET_CODE (x5) != NOT)
4692 : return -1;
4693 18 : x6 = XEXP (x5, 0);
4694 18 : operands[3] = x6;
4695 18 : x7 = XEXP (x3, 1);
4696 18 : operands[4] = x7;
4697 18 : switch (GET_MODE (operands[0]))
4698 : {
4699 18 : case E_V16QImode:
4700 18 : if (!register_operand (operands[0], E_V16QImode)
4701 18 : || GET_MODE (x1) != E_V16QImode
4702 18 : || !register_operand (operands[1], E_V16QImode)
4703 18 : || !vector_operand (operands[2], E_V16QImode)
4704 18 : || GET_MODE (x2) != E_V16QImode
4705 18 : || GET_MODE (x5) != E_V16QImode
4706 36 : || !register_operand (operands[3], E_V16QImode))
4707 0 : return -1;
4708 18 : switch (GET_MODE (x3))
4709 : {
4710 18 : case E_V4SImode:
4711 18 : if (GET_MODE (x4) != E_V4SImode
4712 18 : || !const0_operand (operands[4], E_V4SImode))
4713 0 : return -1;
4714 : return 0;
4715 :
4716 0 : case E_V2DImode:
4717 0 : if (GET_MODE (x4) != E_V2DImode
4718 0 : || !const0_operand (operands[4], E_V2DImode))
4719 0 : return -1;
4720 : return 1;
4721 :
4722 : default:
4723 : return -1;
4724 : }
4725 :
4726 0 : case E_V32QImode:
4727 0 : if (!register_operand (operands[0], E_V32QImode)
4728 0 : || GET_MODE (x1) != E_V32QImode
4729 0 : || !register_operand (operands[1], E_V32QImode)
4730 0 : || !vector_operand (operands[2], E_V32QImode)
4731 0 : || GET_MODE (x2) != E_V32QImode
4732 0 : || GET_MODE (x5) != E_V32QImode
4733 0 : || !register_operand (operands[3], E_V32QImode))
4734 0 : return -1;
4735 0 : switch (GET_MODE (x3))
4736 : {
4737 0 : case E_V8SImode:
4738 0 : if (GET_MODE (x4) != E_V8SImode
4739 0 : || !const0_operand (operands[4], E_V8SImode))
4740 0 : return -1;
4741 : return 2;
4742 :
4743 0 : case E_V4DImode:
4744 0 : if (GET_MODE (x4) != E_V4DImode
4745 0 : || !const0_operand (operands[4], E_V4DImode))
4746 0 : return -1;
4747 : return 3;
4748 :
4749 : default:
4750 : return -1;
4751 : }
4752 :
4753 : default:
4754 : return -1;
4755 : }
4756 : }
4757 :
4758 : int
4759 58 : pattern1257 (rtx x1)
4760 : {
4761 58 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4762 58 : rtx x2, x3, x4, x5;
4763 58 : int res ATTRIBUTE_UNUSED;
4764 58 : x2 = XEXP (x1, 0);
4765 58 : x3 = XEXP (x2, 0);
4766 58 : x4 = XEXP (x3, 0);
4767 58 : operands[1] = x4;
4768 58 : x5 = XEXP (x3, 1);
4769 58 : operands[2] = x5;
4770 58 : if (!register_operand (operands[2], E_QImode))
4771 : return -1;
4772 50 : return pattern1256 (x1); /* [-1, 1] */
4773 : }
4774 :
4775 : int
4776 12568 : pattern1262 (rtx x1)
4777 : {
4778 12568 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4779 12568 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4780 12568 : int res ATTRIBUTE_UNUSED;
4781 12568 : x2 = XVECEXP (x1, 0, 1);
4782 12568 : if (GET_CODE (x2) != CLOBBER)
4783 : return -1;
4784 12568 : x3 = XVECEXP (x1, 0, 2);
4785 12568 : if (GET_CODE (x3) != CLOBBER)
4786 : return -1;
4787 12568 : x4 = XVECEXP (x1, 0, 3);
4788 12568 : x5 = XEXP (x4, 0);
4789 12568 : if (GET_CODE (x5) != REG
4790 12568 : || REGNO (x5) != 17
4791 12568 : || GET_MODE (x5) != E_CCmode
4792 25136 : || !register_operand (operands[0], E_SImode))
4793 0 : return -1;
4794 12568 : x6 = XVECEXP (x1, 0, 0);
4795 12568 : x7 = XEXP (x6, 1);
4796 12568 : x8 = XVECEXP (x7, 0, 0);
4797 12568 : operands[1] = x8;
4798 12568 : if (!register_operand (operands[1], E_SImode))
4799 : return -1;
4800 12083 : x9 = XVECEXP (x7, 0, 1);
4801 12083 : operands[2] = x9;
4802 12083 : return 0;
4803 : }
4804 :
4805 : int
4806 2 : pattern1273 (rtx x1)
4807 : {
4808 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4809 2 : rtx x2, x3, x4, x5, x6, x7;
4810 2 : int res ATTRIBUTE_UNUSED;
4811 2 : x2 = XEXP (x1, 2);
4812 2 : switch (GET_CODE (x2))
4813 : {
4814 0 : case REG:
4815 0 : case SUBREG:
4816 0 : operands[1] = x2;
4817 0 : x3 = XEXP (x1, 0);
4818 0 : operands[0] = x3;
4819 0 : x4 = XEXP (x1, 1);
4820 0 : operands[3] = x4;
4821 0 : switch (GET_MODE (x1))
4822 : {
4823 0 : case E_V32QImode:
4824 0 : if (!vector_all_ones_operand (operands[0], E_V32QImode)
4825 0 : || !const0_operand (operands[3], E_V32QImode)
4826 0 : || !register_operand (operands[1], E_SImode))
4827 0 : return -1;
4828 : return 0;
4829 :
4830 0 : case E_V16QImode:
4831 0 : if (!vector_all_ones_operand (operands[0], E_V16QImode)
4832 0 : || !const0_operand (operands[3], E_V16QImode)
4833 0 : || !register_operand (operands[1], E_HImode))
4834 0 : return -1;
4835 : return 1;
4836 :
4837 : default:
4838 : return -1;
4839 : }
4840 :
4841 2 : case UNSPEC:
4842 2 : if (XVECLEN (x2, 0) != 3
4843 2 : || XINT (x2, 1) != 60)
4844 : return -1;
4845 2 : x5 = XVECEXP (x2, 0, 2);
4846 2 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4847 : return -1;
4848 2 : x3 = XEXP (x1, 0);
4849 2 : operands[3] = x3;
4850 2 : x4 = XEXP (x1, 1);
4851 2 : operands[4] = x4;
4852 2 : x6 = XVECEXP (x2, 0, 0);
4853 2 : operands[0] = x6;
4854 2 : x7 = XVECEXP (x2, 0, 1);
4855 2 : operands[1] = x7;
4856 2 : switch (GET_MODE (x1))
4857 : {
4858 0 : case E_V32QImode:
4859 0 : if (pattern1272 (x2,
4860 : E_V32QImode,
4861 : E_SImode) != 0)
4862 : return -1;
4863 : return 2;
4864 :
4865 2 : case E_V16QImode:
4866 2 : if (pattern1272 (x2,
4867 : E_V16QImode,
4868 : E_HImode) != 0)
4869 : return -1;
4870 : return 3;
4871 :
4872 : default:
4873 : return -1;
4874 : }
4875 :
4876 : default:
4877 : return -1;
4878 : }
4879 : }
4880 :
4881 : int
4882 787 : pattern1299 (rtx x1, machine_mode i1, machine_mode i2)
4883 : {
4884 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4885 787 : rtx x2;
4886 787 : int res ATTRIBUTE_UNUSED;
4887 787 : if (!register_operand (operands[0], i2)
4888 787 : || GET_MODE (x1) != i2)
4889 : return -1;
4890 763 : x2 = XEXP (x1, 0);
4891 763 : if (GET_MODE (x2) != i2
4892 763 : || !nonimmediate_operand (operands[1], i2)
4893 736 : || !nonimmediate_operand (operands[2], i2)
4894 736 : || !nonimmediate_operand (operands[3], i2)
4895 1490 : || !register_operand (operands[4], i1))
4896 36 : return -1;
4897 : return 0;
4898 : }
4899 :
4900 : int
4901 460 : pattern1309 (rtx x1, int i1, int i2, int i3, int i4)
4902 : {
4903 460 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4904 460 : rtx x2, x3, x4, x5;
4905 460 : int res ATTRIBUTE_UNUSED;
4906 460 : x2 = XVECEXP (x1, 0, 8);
4907 460 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4908 : return -1;
4909 460 : x3 = XVECEXP (x1, 0, 9);
4910 460 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4911 : return -1;
4912 460 : x4 = XVECEXP (x1, 0, 10);
4913 460 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4914 : return -1;
4915 460 : x5 = XVECEXP (x1, 0, 11);
4916 460 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4917 0 : return -1;
4918 : return 0;
4919 : }
4920 :
4921 : int
4922 900 : pattern1317 (rtx x1)
4923 : {
4924 900 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4925 900 : rtx x2, x3;
4926 900 : int res ATTRIBUTE_UNUSED;
4927 900 : if (!register_operand (operands[0], E_V8HFmode)
4928 900 : || GET_MODE (x1) != E_V8HFmode)
4929 : return -1;
4930 870 : x2 = XVECEXP (x1, 0, 0);
4931 870 : if (GET_MODE (x2) != E_V8HFmode)
4932 : return -1;
4933 870 : x3 = XEXP (x2, 0);
4934 870 : if (GET_MODE (x3) != E_V8HFmode
4935 870 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
4936 1738 : || !register_operand (operands[3], E_QImode))
4937 24 : return -1;
4938 846 : switch (GET_MODE (operands[1]))
4939 : {
4940 0 : case E_V8HImode:
4941 0 : if (!register_operand (operands[1], E_V8HImode))
4942 : return -1;
4943 : return 0;
4944 :
4945 0 : case E_V8SImode:
4946 0 : if (!register_operand (operands[1], E_V8SImode))
4947 : return -1;
4948 : return 1;
4949 :
4950 846 : case E_V8DImode:
4951 846 : if (!register_operand (operands[1], E_V8DImode))
4952 : return -1;
4953 : return 2;
4954 :
4955 : default:
4956 : return -1;
4957 : }
4958 : }
4959 :
4960 : int
4961 9757 : pattern1329 (rtx x1)
4962 : {
4963 9757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4964 9757 : rtx x2, x3;
4965 9757 : int res ATTRIBUTE_UNUSED;
4966 9757 : if (GET_CODE (x1) != PLUS)
4967 : return -1;
4968 9757 : x2 = XEXP (x1, 0);
4969 9757 : if (GET_CODE (x2) != PLUS)
4970 : return -1;
4971 9757 : x3 = XEXP (x2, 0);
4972 9757 : switch (GET_CODE (x3))
4973 : {
4974 9757 : case LTU:
4975 9757 : case UNLT:
4976 9757 : if (!rtx_equal_p (x3, operands[4]))
4977 : return -1;
4978 : return 0;
4979 :
4980 : default:
4981 : return -1;
4982 : }
4983 : }
4984 :
4985 : int
4986 25362 : pattern1332 (rtx x1)
4987 : {
4988 25362 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4989 25362 : rtx x2, x3, x4, x5, x6, x7, x8;
4990 25362 : int res ATTRIBUTE_UNUSED;
4991 25362 : x2 = XVECEXP (x1, 0, 1);
4992 25362 : x3 = XEXP (x2, 1);
4993 25362 : x4 = XEXP (x3, 0);
4994 25362 : if (!rtx_equal_p (x4, operands[1]))
4995 : return -1;
4996 25362 : x5 = XEXP (x3, 1);
4997 25362 : if (!rtx_equal_p (x5, operands[2]))
4998 : return -1;
4999 25358 : x6 = XVECEXP (x1, 0, 0);
5000 25358 : x7 = XEXP (x6, 1);
5001 25358 : x8 = XEXP (x7, 0);
5002 25358 : switch (GET_MODE (x8))
5003 : {
5004 456 : case E_QImode:
5005 456 : return pattern1331 (x3,
5006 456 : E_QImode); /* [-1, 0] */
5007 :
5008 133 : case E_HImode:
5009 133 : if (pattern1331 (x3,
5010 : E_HImode) != 0)
5011 : return -1;
5012 : return 1;
5013 :
5014 3463 : case E_SImode:
5015 3463 : if (pattern1331 (x3,
5016 : E_SImode) != 0)
5017 : return -1;
5018 : return 2;
5019 :
5020 21027 : case E_DImode:
5021 21027 : if (!nonimmediate_operand (operands[1], E_DImode)
5022 19156 : || !const_1_to_63_operand (operands[2], E_QImode)
5023 18120 : || !nonimmediate_operand (operands[0], E_DImode)
5024 39147 : || GET_MODE (x3) != E_DImode)
5025 2907 : return -1;
5026 : return 3;
5027 :
5028 : default:
5029 : return -1;
5030 : }
5031 : }
5032 :
5033 : int
5034 2175146 : pattern1350 (rtx x1, machine_mode i1)
5035 : {
5036 2175146 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5037 2175146 : int res ATTRIBUTE_UNUSED;
5038 2175146 : if (!mask_reg_operand (operands[0], i1)
5039 48 : || GET_MODE (x1) != i1
5040 48 : || !mask_reg_operand (operands[1], i1)
5041 2175194 : || !const_int_operand (operands[2], E_VOIDmode))
5042 2175098 : return -1;
5043 : return 0;
5044 : }
5045 :
5046 : int
5047 10324 : pattern1356 (rtx x1, machine_mode i1)
5048 : {
5049 10324 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5050 10324 : rtx x2, x3, x4;
5051 10324 : int res ATTRIBUTE_UNUSED;
5052 10324 : x2 = XEXP (x1, 0);
5053 10324 : operands[2] = x2;
5054 10324 : if (!general_reg_operand (operands[2], i1))
5055 : return -1;
5056 6116 : x3 = XEXP (x1, 1);
5057 6116 : operands[3] = x3;
5058 6116 : if (!general_gr_operand (operands[3], i1))
5059 : return -1;
5060 2030 : x4 = PATTERN (peep2_next_insn (3));
5061 2030 : return pattern966 (x4,
5062 2030 : i1); /* [-1, 0] */
5063 : }
5064 :
5065 : int
5066 1267069 : pattern1364 (rtx x1, machine_mode i1)
5067 : {
5068 1267069 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5069 1267069 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5070 1267069 : rtx x10, x11, x12, x13, x14, x15, x16;
5071 1267069 : int res ATTRIBUTE_UNUSED;
5072 1267069 : if (!general_reg_operand (operands[0], i1))
5073 : return -1;
5074 1267069 : switch (GET_CODE (x1))
5075 : {
5076 884411 : case SET:
5077 884411 : x2 = XEXP (x1, 1);
5078 884411 : switch (GET_CODE (x2))
5079 : {
5080 301094 : case CONST_INT:
5081 301094 : if (XWINT (x2, 0) != 0L)
5082 : return -1;
5083 173753 : x3 = XEXP (x1, 0);
5084 173753 : if (GET_CODE (x3) != ZERO_EXTRACT)
5085 : return -1;
5086 3 : x4 = XEXP (x3, 1);
5087 3 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
5088 : return -1;
5089 3 : x5 = XEXP (x3, 2);
5090 3 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
5091 : return -1;
5092 3 : x6 = XEXP (x3, 0);
5093 3 : operands[1] = x6;
5094 3 : if (!int248_register_operand (operands[1], E_VOIDmode))
5095 : return -1;
5096 3 : switch (GET_MODE (x3))
5097 : {
5098 : case E_HImode:
5099 : return 0;
5100 :
5101 : case E_SImode:
5102 : return 1;
5103 :
5104 : case E_DImode:
5105 : return 2;
5106 :
5107 : default:
5108 : return -1;
5109 : }
5110 :
5111 132159 : case REG:
5112 132159 : case SUBREG:
5113 132159 : case MEM:
5114 132159 : operands[2] = x2;
5115 132159 : x3 = XEXP (x1, 0);
5116 132159 : if (GET_CODE (x3) != STRICT_LOW_PART)
5117 : return -1;
5118 343 : x6 = XEXP (x3, 0);
5119 343 : operands[1] = x6;
5120 343 : res = pattern1363 ();
5121 343 : if (res >= 0)
5122 343 : return res + 3; /* [3, 4] */
5123 : return -1;
5124 :
5125 : default:
5126 : return -1;
5127 : }
5128 :
5129 64834 : case PARALLEL:
5130 64834 : if (XVECLEN (x1, 0) != 2)
5131 : return -1;
5132 22608 : x7 = XVECEXP (x1, 0, 0);
5133 22608 : if (GET_CODE (x7) != SET)
5134 : return -1;
5135 21066 : x8 = XEXP (x7, 1);
5136 21066 : switch (GET_CODE (x8))
5137 : {
5138 989 : case PLUS:
5139 989 : if (GET_MODE (x8) != i1
5140 989 : || pattern1353 (x1) != 0)
5141 973 : return -1;
5142 : return 5;
5143 :
5144 319 : case IOR:
5145 319 : if (GET_MODE (x8) != i1
5146 319 : || pattern1353 (x1) != 0)
5147 185 : return -1;
5148 : return 6;
5149 :
5150 75 : case XOR:
5151 75 : if (GET_MODE (x8) != i1
5152 75 : || pattern1353 (x1) != 0)
5153 73 : return -1;
5154 : return 7;
5155 :
5156 706 : case UNSPEC:
5157 706 : if (peep2_current_count < 3
5158 706 : || peep2_current_count < 4
5159 700 : || XVECLEN (x8, 0) != 2
5160 668 : || XINT (x8, 1) != 41
5161 668 : || GET_MODE (x8) != E_CCCmode)
5162 : return -1;
5163 664 : x9 = XVECEXP (x8, 0, 1);
5164 664 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5165 : return -1;
5166 664 : x10 = XEXP (x7, 0);
5167 664 : if (GET_CODE (x10) != REG
5168 664 : || REGNO (x10) != 17
5169 1328 : || GET_MODE (x10) != E_CCCmode)
5170 : return -1;
5171 664 : x11 = XVECEXP (x1, 0, 1);
5172 664 : if (GET_CODE (x11) != SET)
5173 : return -1;
5174 657 : x12 = XEXP (x11, 1);
5175 657 : if (GET_CODE (x12) != NEG
5176 657 : || GET_MODE (x12) != i1)
5177 : return -1;
5178 657 : x13 = XVECEXP (x8, 0, 0);
5179 657 : operands[1] = x13;
5180 657 : if (!general_reg_operand (operands[1], i1))
5181 : return -1;
5182 657 : x14 = XEXP (x12, 0);
5183 657 : if (!rtx_equal_p (x14, operands[1]))
5184 : return -1;
5185 657 : x15 = XEXP (x11, 0);
5186 657 : if (!rtx_equal_p (x15, operands[1]))
5187 : return -1;
5188 657 : x16 = PATTERN (peep2_next_insn (2));
5189 657 : if (pattern1208 (x16,
5190 : i1) != 0)
5191 : return -1;
5192 : return 8;
5193 :
5194 : default:
5195 : return -1;
5196 : }
5197 :
5198 : default:
5199 : return -1;
5200 : }
5201 : }
5202 :
5203 : int
5204 3624 : pattern1418 (rtx x1)
5205 : {
5206 3624 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5207 3624 : rtx x2, x3, x4, x5;
5208 3624 : int res ATTRIBUTE_UNUSED;
5209 3624 : x2 = XVECEXP (x1, 0, 0);
5210 3624 : x3 = XEXP (x2, 2);
5211 3624 : switch (GET_CODE (x3))
5212 : {
5213 2471 : case REG:
5214 2471 : case SUBREG:
5215 2471 : operands[4] = x3;
5216 2471 : x4 = XVECEXP (x1, 0, 1);
5217 2471 : operands[5] = x4;
5218 2471 : switch (GET_MODE (operands[0]))
5219 : {
5220 : case E_V32HFmode:
5221 : return 0;
5222 :
5223 788 : case E_V16SFmode:
5224 788 : return 1;
5225 :
5226 789 : case E_V8DFmode:
5227 789 : return 2;
5228 :
5229 0 : case E_V16HFmode:
5230 0 : return 3;
5231 :
5232 0 : case E_V8HFmode:
5233 0 : return 4;
5234 :
5235 0 : case E_V8SFmode:
5236 0 : return 5;
5237 :
5238 0 : case E_V4SFmode:
5239 0 : return 6;
5240 :
5241 0 : case E_V4DFmode:
5242 0 : return 7;
5243 :
5244 0 : case E_V2DFmode:
5245 0 : return 8;
5246 :
5247 : default:
5248 : return -1;
5249 : }
5250 :
5251 1149 : case CONST_INT:
5252 1149 : if (XWINT (x3, 0) != 1L)
5253 : return -1;
5254 1131 : x4 = XVECEXP (x1, 0, 1);
5255 1131 : operands[4] = x4;
5256 1131 : x5 = XEXP (x2, 1);
5257 1131 : if (!rtx_equal_p (x5, operands[1]))
5258 : return -1;
5259 1110 : switch (GET_MODE (operands[0]))
5260 : {
5261 : case E_V8HFmode:
5262 : return 9;
5263 :
5264 : case E_V4SFmode:
5265 : return 10;
5266 :
5267 : case E_V2DFmode:
5268 : return 11;
5269 :
5270 : default:
5271 : return -1;
5272 : }
5273 :
5274 : default:
5275 : return -1;
5276 : }
5277 : }
5278 :
5279 : int
5280 34 : pattern1441 (rtx x1, machine_mode i1)
5281 : {
5282 34 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5283 34 : rtx x2;
5284 34 : int res ATTRIBUTE_UNUSED;
5285 34 : if (!register_operand (operands[0], i1)
5286 34 : || GET_MODE (x1) != i1)
5287 : return -1;
5288 34 : x2 = XEXP (x1, 0);
5289 34 : if (GET_MODE (x2) != i1
5290 34 : || !nonimmediate_operand (operands[1], i1))
5291 0 : return -1;
5292 : return 0;
5293 : }
5294 :
5295 : int
5296 85380 : pattern1448 (rtx x1, machine_mode i1)
5297 : {
5298 85380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5299 85380 : rtx x2;
5300 85380 : int res ATTRIBUTE_UNUSED;
5301 85380 : if (!memory_operand (operands[0], i1)
5302 85380 : || GET_MODE (x1) != i1)
5303 : return -1;
5304 83373 : x2 = XVECEXP (x1, 0, 0);
5305 83373 : if (GET_MODE (x2) != i1
5306 83373 : || !nonmemory_operand (operands[1], i1))
5307 1345 : return -1;
5308 : return 0;
5309 : }
5310 :
5311 : int
5312 4145 : pattern1455 (rtx x1, machine_mode i1)
5313 : {
5314 4145 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5315 4145 : rtx x2, x3;
5316 4145 : int res ATTRIBUTE_UNUSED;
5317 4145 : if (!register_operand (operands[0], i1)
5318 4145 : || !addsub_vm_operator (operands[6], i1))
5319 0 : return -1;
5320 4145 : x2 = XEXP (x1, 0);
5321 4145 : if (GET_MODE (x2) != i1
5322 4145 : || !register_operand (operands[1], i1)
5323 8290 : || !vector_operand (operands[2], i1))
5324 0 : return -1;
5325 4145 : x3 = XEXP (x1, 1);
5326 4145 : if (GET_MODE (x3) != i1
5327 4145 : || !vector_operand (operands[3], i1)
5328 8290 : || !vector_operand (operands[4], i1))
5329 0 : return -1;
5330 : return 0;
5331 : }
5332 :
5333 : int
5334 978 : pattern1463 (rtx x1, machine_mode i1, machine_mode i2)
5335 : {
5336 978 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5337 978 : rtx x2;
5338 978 : int res ATTRIBUTE_UNUSED;
5339 978 : if (!register_operand (operands[0], i2)
5340 978 : || GET_MODE (x1) != i2)
5341 : return -1;
5342 972 : x2 = XVECEXP (x1, 0, 0);
5343 972 : if (GET_MODE (x2) != i2
5344 972 : || !register_operand (operands[1], i1)
5345 1942 : || !nonimmediate_operand (operands[2], i1))
5346 2 : return -1;
5347 : return 0;
5348 : }
5349 :
5350 : int
5351 128 : pattern1469 (rtx x1, machine_mode i1, machine_mode i2)
5352 : {
5353 128 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5354 128 : rtx x2, x3, x4;
5355 128 : int res ATTRIBUTE_UNUSED;
5356 128 : if (!register_operand (operands[0], i1)
5357 128 : || GET_MODE (x1) != i1)
5358 : return -1;
5359 116 : x2 = XEXP (x1, 0);
5360 116 : if (GET_MODE (x2) != i1)
5361 : return -1;
5362 116 : x3 = XEXP (x2, 0);
5363 116 : if (GET_MODE (x3) != i1)
5364 : return -1;
5365 116 : x4 = XEXP (x3, 0);
5366 116 : if (GET_MODE (x4) != i2
5367 116 : || !nonimm_or_0_operand (operands[3], i1)
5368 232 : || !register_operand (operands[2], i1))
5369 0 : return -1;
5370 : return 0;
5371 : }
5372 :
5373 : int
5374 0 : pattern1480 (rtx x1, machine_mode i1, machine_mode i2)
5375 : {
5376 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5377 0 : rtx x2;
5378 0 : int res ATTRIBUTE_UNUSED;
5379 0 : if (!register_operand (operands[0], i1)
5380 0 : || GET_MODE (x1) != i1
5381 0 : || !vector_all_ones_operand (operands[1], i1))
5382 0 : return -1;
5383 0 : x2 = XEXP (x1, 2);
5384 0 : return pattern1479 (x2,
5385 : i1,
5386 0 : i2); /* [-1, 0] */
5387 : }
5388 :
5389 : int
5390 1188 : pattern1485 (rtx x1, machine_mode i1, machine_mode i2)
5391 : {
5392 1188 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5393 1188 : rtx x2, x3;
5394 1188 : int res ATTRIBUTE_UNUSED;
5395 1188 : if (!register_operand (operands[0], i1)
5396 1188 : || GET_MODE (x1) != i1)
5397 : return -1;
5398 1155 : x2 = XVECEXP (x1, 0, 0);
5399 1155 : if (GET_MODE (x2) != i1)
5400 : return -1;
5401 1155 : x3 = XEXP (x2, 0);
5402 1155 : if (GET_MODE (x3) != i1
5403 1155 : || !register_operand (operands[1], i1)
5404 1147 : || !nonimm_or_0_operand (operands[2], i1)
5405 2302 : || !register_operand (operands[3], i2))
5406 23 : return -1;
5407 : return 0;
5408 : }
5409 :
5410 : int
5411 87131 : pattern1492 (rtx x1, machine_mode i1, machine_mode i2)
5412 : {
5413 87131 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5414 87131 : rtx x2;
5415 87131 : int res ATTRIBUTE_UNUSED;
5416 87131 : if (!nonimmediate_operand (operands[0], i1)
5417 87131 : || GET_MODE (x1) != i1)
5418 : return -1;
5419 87131 : x2 = XEXP (x1, 0);
5420 87131 : if (GET_MODE (x2) != i2
5421 87131 : || !nonimmediate_operand (operands[1], i1)
5422 174242 : || !nonimmediate_operand (operands[2], i1))
5423 183 : return -1;
5424 : return 0;
5425 : }
5426 :
5427 : int
5428 46560 : pattern1499 (rtx x1, machine_mode i1)
5429 : {
5430 46560 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5431 46560 : int res ATTRIBUTE_UNUSED;
5432 46560 : if (!nonimmediate_operand (operands[1], i1)
5433 46558 : || !x86_64_general_operand (operands[2], i1)
5434 46306 : || !nonimmediate_operand (operands[0], i1)
5435 92866 : || GET_MODE (x1) != i1)
5436 254 : return -1;
5437 : return 0;
5438 : }
5439 :
5440 : int
5441 141850 : pattern1505 (rtx x1, machine_mode i1)
5442 : {
5443 141850 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5444 141850 : int res ATTRIBUTE_UNUSED;
5445 141850 : if (!register_operand (operands[0], i1)
5446 141850 : || GET_MODE (x1) != i1
5447 141850 : || !memory_operand (operands[1], i1)
5448 282795 : || !register_operand (operands[2], i1))
5449 905 : return -1;
5450 : return 0;
5451 : }
5452 :
5453 : int
5454 180 : pattern1509 (rtx x1, rtx_code i1)
5455 : {
5456 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5457 180 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5458 180 : rtx x10;
5459 180 : int res ATTRIBUTE_UNUSED;
5460 180 : x2 = XVECEXP (x1, 0, 1);
5461 180 : x3 = XEXP (x2, 1);
5462 180 : if (GET_CODE (x3) != i1)
5463 : return -1;
5464 180 : x4 = XVECEXP (x1, 0, 0);
5465 180 : x5 = XEXP (x4, 0);
5466 180 : operands[0] = x5;
5467 180 : x6 = XEXP (x4, 1);
5468 180 : x7 = XEXP (x6, 0);
5469 180 : x8 = XEXP (x7, 0);
5470 180 : operands[2] = x8;
5471 180 : if (!register_operand (operands[2], E_SImode))
5472 : return -1;
5473 180 : x9 = XEXP (x7, 1);
5474 180 : operands[3] = x9;
5475 180 : if (!nonimmediate_operand (operands[3], E_SImode))
5476 : return -1;
5477 180 : x10 = XEXP (x2, 0);
5478 180 : operands[1] = x10;
5479 180 : return pattern1508 (x1); /* [-1, 1] */
5480 : }
5481 :
5482 : int
5483 118 : pattern1521 (rtx x1, machine_mode i1, machine_mode i2)
5484 : {
5485 118 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5486 118 : rtx x2, x3;
5487 118 : int res ATTRIBUTE_UNUSED;
5488 118 : if (!register_operand (operands[0], i1)
5489 118 : || GET_MODE (x1) != i1)
5490 : return -1;
5491 118 : x2 = XEXP (x1, 0);
5492 118 : if (GET_MODE (x2) != i1
5493 118 : || !register_operand (operands[1], i2))
5494 2 : return -1;
5495 116 : x3 = XEXP (x1, 1);
5496 116 : if (GET_MODE (x3) != i1)
5497 : return -1;
5498 : return 0;
5499 : }
5500 :
5501 : int
5502 5490 : pattern1527 (rtx x1)
5503 : {
5504 5490 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5505 5490 : rtx x2, x3, x4, x5, x6, x7;
5506 5490 : int res ATTRIBUTE_UNUSED;
5507 5490 : x2 = XVECEXP (x1, 0, 0);
5508 5490 : x3 = XEXP (x2, 0);
5509 5490 : x4 = XEXP (x3, 1);
5510 5490 : switch (GET_CODE (x4))
5511 : {
5512 3824 : case REG:
5513 3824 : case SUBREG:
5514 3824 : case MEM:
5515 3824 : x5 = XEXP (x3, 2);
5516 3824 : operands[4] = x5;
5517 3824 : x6 = XVECEXP (x1, 0, 1);
5518 3824 : operands[5] = x6;
5519 3824 : switch (GET_MODE (operands[0]))
5520 : {
5521 : case E_V8HFmode:
5522 : return 0;
5523 :
5524 : case E_V4SFmode:
5525 : return 1;
5526 :
5527 : case E_V2DFmode:
5528 : return 2;
5529 :
5530 : default:
5531 : return -1;
5532 : }
5533 :
5534 1666 : case CONST_INT:
5535 1666 : case CONST_DOUBLE:
5536 1666 : case CONST_VECTOR:
5537 1666 : operands[4] = x4;
5538 1666 : x5 = XEXP (x3, 2);
5539 1666 : operands[5] = x5;
5540 1666 : x6 = XVECEXP (x1, 0, 1);
5541 1666 : operands[6] = x6;
5542 1666 : x7 = XEXP (x2, 1);
5543 1666 : if (!rtx_equal_p (x7, operands[1]))
5544 : return -1;
5545 1666 : switch (GET_MODE (operands[0]))
5546 : {
5547 : case E_V8HFmode:
5548 : return 3;
5549 :
5550 : case E_V4SFmode:
5551 : return 4;
5552 :
5553 : case E_V2DFmode:
5554 : return 5;
5555 :
5556 : default:
5557 : return -1;
5558 : }
5559 :
5560 : default:
5561 : return -1;
5562 : }
5563 : }
5564 :
5565 : int
5566 21628 : pattern1547 (rtx x1)
5567 : {
5568 21628 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5569 21628 : int res ATTRIBUTE_UNUSED;
5570 21628 : switch (GET_MODE (operands[0]))
5571 : {
5572 6739 : case E_V8SFmode:
5573 6739 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
5574 6739 : || GET_MODE (x1) != E_V8SFmode
5575 13478 : || !nonimmediate_operand (operands[1], E_V16SFmode))
5576 0 : return -1;
5577 : return 0;
5578 :
5579 6213 : case E_V8SImode:
5580 6213 : if (!nonimmediate_operand (operands[0], E_V8SImode)
5581 6213 : || GET_MODE (x1) != E_V8SImode
5582 12426 : || !nonimmediate_operand (operands[1], E_V16SImode))
5583 0 : return -1;
5584 : return 1;
5585 :
5586 7203 : case E_V8HImode:
5587 7203 : if (!nonimmediate_operand (operands[0], E_V8HImode)
5588 7203 : || GET_MODE (x1) != E_V8HImode
5589 14406 : || !nonimmediate_operand (operands[1], E_V16HImode))
5590 79 : return -1;
5591 : return 2;
5592 :
5593 517 : case E_V8HFmode:
5594 517 : if (!nonimmediate_operand (operands[0], E_V8HFmode)
5595 517 : || GET_MODE (x1) != E_V8HFmode
5596 1034 : || !nonimmediate_operand (operands[1], E_V16HFmode))
5597 3 : return -1;
5598 : return 3;
5599 :
5600 711 : case E_V8BFmode:
5601 711 : if (!nonimmediate_operand (operands[0], E_V8BFmode)
5602 711 : || GET_MODE (x1) != E_V8BFmode
5603 1422 : || !nonimmediate_operand (operands[1], E_V16BFmode))
5604 34 : return -1;
5605 : return 4;
5606 :
5607 : default:
5608 : return -1;
5609 : }
5610 : }
5611 :
5612 : int
5613 2799 : pattern1565 (rtx x1, machine_mode i1, machine_mode i2)
5614 : {
5615 2799 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5616 2799 : rtx x2, x3;
5617 2799 : int res ATTRIBUTE_UNUSED;
5618 2799 : if (!register_operand (operands[0], i1)
5619 2799 : || GET_MODE (x1) != i1)
5620 : return -1;
5621 2739 : x2 = XVECEXP (x1, 0, 0);
5622 2739 : if (GET_MODE (x2) != i1)
5623 : return -1;
5624 2739 : x3 = XEXP (x2, 0);
5625 2739 : if (GET_MODE (x3) != i1
5626 2739 : || !nonimmediate_operand (operands[1], i1)
5627 2737 : || !nonimm_or_0_operand (operands[3], i1)
5628 5474 : || !register_operand (operands[4], i2))
5629 43 : return -1;
5630 : return 0;
5631 : }
5632 :
5633 : int
5634 92 : pattern1573 (rtx x1)
5635 : {
5636 92 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5637 92 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5638 92 : rtx x10;
5639 92 : int res ATTRIBUTE_UNUSED;
5640 92 : x2 = XVECEXP (x1, 0, 1);
5641 92 : x3 = XEXP (x2, 1);
5642 92 : x4 = XEXP (x3, 1);
5643 92 : if (!rtx_equal_p (x4, operands[2]))
5644 : return -1;
5645 92 : x5 = XVECEXP (x1, 0, 0);
5646 92 : x6 = XEXP (x5, 1);
5647 92 : x7 = XEXP (x6, 0);
5648 92 : x8 = XEXP (x7, 1);
5649 92 : x9 = XEXP (x8, 0);
5650 92 : operands[3] = x9;
5651 92 : if (!flags_reg_operand (operands[3], E_VOIDmode))
5652 : return -1;
5653 84 : x10 = XEXP (x3, 0);
5654 84 : if (!rtx_equal_p (x10, operands[1]))
5655 : return -1;
5656 84 : switch (GET_MODE (x7))
5657 : {
5658 : case E_QImode:
5659 : return 0;
5660 :
5661 : case E_HImode:
5662 : return 1;
5663 :
5664 : case E_SImode:
5665 : return 2;
5666 :
5667 : case E_DImode:
5668 : return 3;
5669 :
5670 : default:
5671 : return -1;
5672 : }
5673 : }
5674 :
5675 : int
5676 4 : pattern1587 (rtx x1)
5677 : {
5678 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5679 4 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5680 4 : rtx x10, x11, x12;
5681 4 : int res ATTRIBUTE_UNUSED;
5682 4 : x2 = XVECEXP (x1, 0, 0);
5683 4 : x3 = XEXP (x2, 1);
5684 4 : x4 = XEXP (x3, 0);
5685 4 : x5 = XEXP (x4, 0);
5686 4 : x6 = XEXP (x5, 0);
5687 4 : operands[1] = x6;
5688 4 : x7 = XEXP (x4, 1);
5689 4 : if (!rtx_equal_p (x7, operands[1]))
5690 : return -1;
5691 4 : x8 = XVECEXP (x1, 0, 1);
5692 4 : x9 = XEXP (x8, 1);
5693 4 : x10 = XEXP (x9, 0);
5694 4 : x11 = XEXP (x10, 0);
5695 4 : if (!rtx_equal_p (x11, operands[1]))
5696 : return -1;
5697 4 : x12 = XEXP (x9, 1);
5698 4 : if (!rtx_equal_p (x12, operands[1]))
5699 : return -1;
5700 4 : switch (GET_MODE (x4))
5701 : {
5702 4 : case E_SImode:
5703 4 : return pattern1586 (x1,
5704 4 : E_SImode); /* [-1, 0] */
5705 :
5706 0 : case E_DImode:
5707 0 : if (pattern1586 (x1,
5708 : E_DImode) != 0)
5709 : return -1;
5710 : return 1;
5711 :
5712 : default:
5713 : return -1;
5714 : }
5715 : }
5716 :
5717 : int
5718 0 : pattern1601 (rtx x1, machine_mode i1, machine_mode i2)
5719 : {
5720 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5721 0 : rtx x2, x3, x4;
5722 0 : int res ATTRIBUTE_UNUSED;
5723 0 : if (!register_operand (operands[0], i1)
5724 0 : || GET_MODE (x1) != i1)
5725 : return -1;
5726 0 : x2 = XVECEXP (x1, 0, 0);
5727 0 : if (GET_MODE (x2) != i1)
5728 : return -1;
5729 0 : x3 = XEXP (x2, 0);
5730 0 : if (GET_MODE (x3) != i1)
5731 : return -1;
5732 0 : x4 = XEXP (x3, 0);
5733 0 : if (GET_MODE (x4) != i2
5734 0 : || !register_operand (operands[2], i2)
5735 0 : || !register_operand (operands[1], i1))
5736 0 : return -1;
5737 : return 0;
5738 : }
5739 :
5740 : int
5741 507 : pattern1610 (rtx x1, machine_mode i1, machine_mode i2)
5742 : {
5743 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5744 507 : rtx x2, x3, x4;
5745 507 : int res ATTRIBUTE_UNUSED;
5746 507 : if (!register_operand (operands[0], i2)
5747 507 : || GET_MODE (x1) != i2)
5748 : return -1;
5749 493 : x2 = XVECEXP (x1, 0, 0);
5750 493 : if (GET_MODE (x2) != i2)
5751 : return -1;
5752 493 : x3 = XEXP (x2, 0);
5753 493 : if (GET_MODE (x3) != i2
5754 493 : || !register_operand (operands[1], i2))
5755 5 : return -1;
5756 488 : x4 = XEXP (x3, 2);
5757 488 : return pattern1609 (x4,
5758 : i1,
5759 488 : i2); /* [-1, 0] */
5760 : }
5761 :
5762 : int
5763 0 : pattern1618 (rtx x1, machine_mode i1, machine_mode i2)
5764 : {
5765 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5766 0 : rtx x2, x3, x4, x5, x6;
5767 0 : int res ATTRIBUTE_UNUSED;
5768 0 : if (!register_operand (operands[0], i1)
5769 0 : || GET_MODE (x1) != i1)
5770 : return -1;
5771 0 : x2 = XVECEXP (x1, 0, 0);
5772 0 : if (GET_MODE (x2) != i1)
5773 : return -1;
5774 0 : x3 = XEXP (x2, 0);
5775 0 : if (GET_MODE (x3) != i1)
5776 : return -1;
5777 0 : x4 = XEXP (x3, 0);
5778 0 : if (GET_MODE (x4) != i1
5779 0 : || !register_operand (operands[1], i1)
5780 0 : || !register_operand (operands[2], i1))
5781 0 : return -1;
5782 0 : x5 = XEXP (x3, 2);
5783 0 : if (GET_MODE (x5) != i1
5784 0 : || !nonimmediate_operand (operands[3], i1)
5785 0 : || !register_operand (operands[4], i2))
5786 0 : return -1;
5787 0 : x6 = XEXP (x2, 1);
5788 0 : if (!rtx_equal_p (x6, operands[3]))
5789 : return -1;
5790 : return 0;
5791 : }
5792 :
5793 : int
5794 29 : pattern1630 (machine_mode i1)
5795 : {
5796 29 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5797 29 : int res ATTRIBUTE_UNUSED;
5798 29 : if (!vsib_address_operand (operands[3], i1))
5799 : return -1;
5800 21 : switch (GET_MODE (operands[2]))
5801 : {
5802 5 : case E_V8SImode:
5803 5 : if (!register_operand (operands[2], E_V8SImode))
5804 : return -1;
5805 : return 0;
5806 :
5807 16 : case E_V4DImode:
5808 16 : if (!register_operand (operands[2], E_V4DImode))
5809 : return -1;
5810 : return 1;
5811 :
5812 : default:
5813 : return -1;
5814 : }
5815 : }
5816 :
5817 : int
5818 184 : pattern1638 (rtx x1, int i1, int i2, int i3, int i4)
5819 : {
5820 184 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5821 184 : rtx x2, x3, x4, x5;
5822 184 : int res ATTRIBUTE_UNUSED;
5823 184 : if (XVECLEN (x1, 0) != 4)
5824 : return -1;
5825 184 : x2 = XVECEXP (x1, 0, 0);
5826 184 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
5827 : return -1;
5828 184 : x3 = XVECEXP (x1, 0, 1);
5829 184 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
5830 : return -1;
5831 184 : x4 = XVECEXP (x1, 0, 2);
5832 184 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
5833 : return -1;
5834 184 : x5 = XVECEXP (x1, 0, 3);
5835 184 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5836 0 : return -1;
5837 : return 0;
5838 : }
5839 :
5840 : int
5841 1874 : pattern1649 (rtx x1)
5842 : {
5843 1874 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5844 1874 : rtx x2, x3, x4, x5;
5845 1874 : int res ATTRIBUTE_UNUSED;
5846 1874 : x2 = XEXP (x1, 0);
5847 1874 : if (GET_CODE (x2) != STRICT_LOW_PART)
5848 : return -1;
5849 125 : x3 = XEXP (x2, 0);
5850 125 : operands[0] = x3;
5851 125 : if (!register_operand (operands[0], E_QImode))
5852 : return -1;
5853 125 : x4 = XEXP (x1, 1);
5854 125 : x5 = XEXP (x4, 1);
5855 125 : operands[1] = x5;
5856 125 : if (!nonimmediate_operand (operands[1], E_QImode))
5857 : return -1;
5858 80 : return pattern1533 (); /* [-1, 2] */
5859 : }
5860 :
5861 : int
5862 29 : pattern1659 (rtx x1, machine_mode i1, machine_mode i2)
5863 : {
5864 29 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5865 29 : rtx x2, x3;
5866 29 : int res ATTRIBUTE_UNUSED;
5867 29 : if (!register_operand (operands[0], i1)
5868 29 : || GET_MODE (x1) != i1)
5869 : return -1;
5870 23 : x2 = XEXP (x1, 0);
5871 23 : if (GET_MODE (x2) != i1)
5872 : return -1;
5873 23 : x3 = XEXP (x2, 0);
5874 23 : if (GET_MODE (x3) != i1
5875 23 : || !register_operand (operands[1], i1)
5876 23 : || !register_operand (operands[2], i1)
5877 23 : || !nonimmediate_operand (operands[3], i2)
5878 46 : || !const0_operand (operands[5], i1))
5879 0 : return -1;
5880 : return 0;
5881 : }
5882 :
5883 : int
5884 725 : pattern1668 (rtx x1, machine_mode i1, machine_mode i2)
5885 : {
5886 725 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5887 725 : rtx x2, x3;
5888 725 : int res ATTRIBUTE_UNUSED;
5889 725 : if (!register_operand (operands[0], i2)
5890 725 : || GET_MODE (x1) != i2)
5891 : return -1;
5892 705 : x2 = XVECEXP (x1, 0, 0);
5893 705 : if (GET_MODE (x2) != i2)
5894 : return -1;
5895 705 : x3 = XEXP (x2, 0);
5896 705 : if (GET_MODE (x3) != i2
5897 705 : || !register_operand (operands[1], i2)
5898 700 : || !register_operand (operands[2], i2)
5899 696 : || !register_operand (operands[3], i2)
5900 696 : || !const0_operand (operands[4], i2)
5901 1401 : || !register_operand (operands[5], i1))
5902 19 : return -1;
5903 : return 0;
5904 : }
5905 :
5906 : int
5907 118 : pattern1678 (machine_mode i1)
5908 : {
5909 118 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5910 118 : int res ATTRIBUTE_UNUSED;
5911 118 : if (!vsib_address_operand (operands[4], i1))
5912 : return -1;
5913 118 : switch (GET_MODE (operands[3]))
5914 : {
5915 82 : case E_V4SImode:
5916 82 : if (!register_operand (operands[3], E_V4SImode))
5917 : return -1;
5918 : return 0;
5919 :
5920 36 : case E_V4DImode:
5921 36 : if (!register_operand (operands[3], E_V4DImode))
5922 : return -1;
5923 : return 1;
5924 :
5925 : default:
5926 : return -1;
5927 : }
5928 : }
5929 :
5930 : int
5931 19 : pattern1686 (rtx x1, machine_mode i1)
5932 : {
5933 19 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5934 19 : rtx x2, x3, x4;
5935 19 : int res ATTRIBUTE_UNUSED;
5936 19 : x2 = XVECEXP (x1, 0, 0);
5937 19 : x3 = XEXP (x2, 0);
5938 19 : if (GET_MODE (x3) != i1)
5939 : return -1;
5940 19 : x4 = XEXP (x2, 1);
5941 19 : if (GET_MODE (x4) != i1)
5942 : return -1;
5943 19 : switch (GET_MODE (operands[2]))
5944 : {
5945 17 : case E_SImode:
5946 17 : return pattern1685 (x1,
5947 17 : E_SImode); /* [-1, 0] */
5948 :
5949 2 : case E_DImode:
5950 2 : if (pattern1685 (x1,
5951 : E_DImode) != 0)
5952 : return -1;
5953 : return 1;
5954 :
5955 : default:
5956 : return -1;
5957 : }
5958 : }
5959 :
5960 : int
5961 1356 : pattern1697 (rtx x1, machine_mode i1)
5962 : {
5963 1356 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5964 1356 : rtx x2, x3, x4, x5;
5965 1356 : int res ATTRIBUTE_UNUSED;
5966 1356 : if (!register_operand (operands[0], i1)
5967 1356 : || GET_MODE (x1) != i1)
5968 : return -1;
5969 1316 : x2 = XVECEXP (x1, 0, 0);
5970 1316 : if (GET_MODE (x2) != i1)
5971 : return -1;
5972 1316 : x3 = XEXP (x2, 0);
5973 1316 : if (GET_MODE (x3) != i1)
5974 : return -1;
5975 1316 : x4 = XEXP (x3, 0);
5976 1316 : if (GET_MODE (x4) != i1
5977 1316 : || !register_operand (operands[2], i1))
5978 15 : return -1;
5979 1301 : x5 = XEXP (x4, 2);
5980 1301 : if (GET_MODE (x5) != i1)
5981 : return -1;
5982 : return 0;
5983 : }
5984 :
5985 : int
5986 544 : pattern1706 (rtx x1)
5987 : {
5988 544 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5989 544 : rtx x2, x3, x4, x5, x6, x7, x8;
5990 544 : int res ATTRIBUTE_UNUSED;
5991 544 : if (!register_operand (operands[0], E_DImode))
5992 : return -1;
5993 544 : x2 = XEXP (x1, 0);
5994 544 : x3 = XEXP (x2, 0);
5995 544 : operands[1] = x3;
5996 544 : if (!nonimmediate_operand (operands[1], E_DImode))
5997 : return -1;
5998 544 : x4 = XEXP (x1, 1);
5999 544 : if (GET_MODE (x4) != E_DImode)
6000 : return -1;
6001 544 : x5 = XEXP (x4, 0);
6002 544 : if (GET_MODE (x5) != E_TImode)
6003 : return -1;
6004 544 : x6 = XEXP (x5, 0);
6005 544 : if (GET_MODE (x6) != E_TImode)
6006 : return -1;
6007 544 : x7 = XEXP (x6, 0);
6008 544 : operands[2] = x7;
6009 544 : if (!register_operand (operands[2], E_DImode))
6010 : return -1;
6011 544 : x8 = XEXP (x5, 1);
6012 544 : operands[4] = x8;
6013 544 : if (!const_0_to_255_operand (operands[4], E_QImode))
6014 : return -1;
6015 : return 0;
6016 : }
6017 :
6018 : int
6019 36 : pattern1718 (rtx x1, machine_mode i1)
6020 : {
6021 36 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6022 36 : rtx x2, x3, x4, x5, x6, x7, x8;
6023 36 : int res ATTRIBUTE_UNUSED;
6024 36 : x2 = XEXP (x1, 0);
6025 36 : x3 = XEXP (x2, 0);
6026 36 : x4 = XEXP (x3, 0);
6027 36 : x5 = XEXP (x4, 0);
6028 36 : operands[1] = x5;
6029 36 : x6 = XEXP (x3, 2);
6030 36 : if (GET_MODE (x6) != i1
6031 36 : || !nonimmediate_operand (operands[3], i1))
6032 0 : return -1;
6033 36 : x7 = XEXP (x2, 1);
6034 36 : if (!rtx_equal_p (x7, operands[1]))
6035 : return -1;
6036 12 : x8 = XEXP (x1, 1);
6037 12 : if (!rtx_equal_p (x8, operands[1]))
6038 : return -1;
6039 : return 0;
6040 : }
6041 :
6042 : int
6043 152 : pattern1726 (machine_mode i1)
6044 : {
6045 152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6046 152 : int res ATTRIBUTE_UNUSED;
6047 152 : if (!vsib_address_operand (operands[2], i1))
6048 : return -1;
6049 130 : switch (GET_MODE (operands[3]))
6050 : {
6051 86 : case E_V4SImode:
6052 86 : if (!register_operand (operands[3], E_V4SImode))
6053 : return -1;
6054 : return 0;
6055 :
6056 44 : case E_V4DImode:
6057 44 : if (!register_operand (operands[3], E_V4DImode))
6058 : return -1;
6059 : return 1;
6060 :
6061 : default:
6062 : return -1;
6063 : }
6064 : }
6065 :
6066 : int
6067 872 : pattern1733 (rtx x1, machine_mode i1)
6068 : {
6069 872 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6070 872 : rtx x2, x3, x4;
6071 872 : int res ATTRIBUTE_UNUSED;
6072 872 : if (!vsib_mem_operator (operands[5], i1)
6073 872 : || !register_operand (operands[6], E_QImode))
6074 80 : return -1;
6075 792 : x2 = XEXP (x1, 1);
6076 792 : if (GET_MODE (x2) != i1
6077 792 : || !scratch_operand (operands[1], E_QImode))
6078 0 : return -1;
6079 792 : x3 = XEXP (x1, 0);
6080 792 : x4 = XEXP (x3, 0);
6081 792 : switch (GET_MODE (x4))
6082 : {
6083 : case E_SImode:
6084 : return 0;
6085 :
6086 792 : case E_DImode:
6087 792 : return 1;
6088 :
6089 : default:
6090 : return -1;
6091 : }
6092 : }
6093 :
6094 : int
6095 177 : pattern1743 (rtx x1, machine_mode i1, machine_mode i2)
6096 : {
6097 177 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6098 177 : rtx x2, x3;
6099 177 : int res ATTRIBUTE_UNUSED;
6100 177 : if (!register_operand (operands[0], i2)
6101 177 : || GET_MODE (x1) != i2
6102 177 : || !register_operand (operands[6], E_QImode)
6103 124 : || !vsib_mem_operator (operands[5], i1)
6104 301 : || !scratch_operand (operands[1], E_QImode))
6105 53 : return -1;
6106 124 : x2 = XVECEXP (x1, 0, 2);
6107 124 : x3 = XEXP (x2, 0);
6108 124 : switch (GET_MODE (x3))
6109 : {
6110 0 : case E_SImode:
6111 0 : return pattern1742 (
6112 0 : E_SImode); /* [-1, 1] */
6113 :
6114 124 : case E_DImode:
6115 124 : res = pattern1742 (
6116 : E_DImode);
6117 124 : if (res >= 0)
6118 116 : return res + 2; /* [2, 3] */
6119 : return -1;
6120 :
6121 : default:
6122 : return -1;
6123 : }
6124 : }
6125 :
6126 : int
6127 1363 : pattern1757 (rtx x1, machine_mode i1)
6128 : {
6129 1363 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6130 1363 : rtx x2, x3, x4;
6131 1363 : int res ATTRIBUTE_UNUSED;
6132 1363 : if (!register_operand (operands[0], i1)
6133 1363 : || GET_MODE (x1) != i1)
6134 : return -1;
6135 1349 : x2 = XVECEXP (x1, 0, 0);
6136 1349 : if (GET_MODE (x2) != i1)
6137 : return -1;
6138 1349 : x3 = XEXP (x2, 0);
6139 1349 : if (GET_MODE (x3) != i1)
6140 : return -1;
6141 1349 : x4 = XEXP (x3, 0);
6142 1349 : if (GET_MODE (x4) != i1
6143 1349 : || !nonimmediate_operand (operands[1], i1)
6144 1349 : || !register_operand (operands[2], i1)
6145 1349 : || !register_operand (operands[3], i1)
6146 2698 : || !const0_operand (operands[4], i1))
6147 0 : return -1;
6148 : return 0;
6149 : }
6150 :
6151 : int
6152 429 : pattern1764 (rtx x1, machine_mode i1, machine_mode i2)
6153 : {
6154 429 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6155 429 : rtx x2, x3;
6156 429 : int res ATTRIBUTE_UNUSED;
6157 429 : if (!register_operand (operands[0], i1)
6158 405 : || GET_MODE (x1) != i1
6159 405 : || !register_operand (operands[2], i1)
6160 404 : || !vsib_mem_operator (operands[7], i2)
6161 833 : || !register_operand (operands[5], i1))
6162 153 : return -1;
6163 276 : x2 = XVECEXP (x1, 0, 1);
6164 276 : x3 = XEXP (x2, 0);
6165 276 : switch (GET_MODE (x3))
6166 : {
6167 0 : case E_SImode:
6168 0 : return pattern1763 (
6169 0 : E_SImode); /* [-1, 1] */
6170 :
6171 276 : case E_DImode:
6172 276 : res = pattern1763 (
6173 : E_DImode);
6174 276 : if (res >= 0)
6175 139 : return res + 2; /* [2, 3] */
6176 : return -1;
6177 :
6178 : default:
6179 : return -1;
6180 : }
6181 : }
6182 :
6183 : int
6184 8 : pattern1774 (rtx x1, machine_mode i1)
6185 : {
6186 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6187 8 : int res ATTRIBUTE_UNUSED;
6188 8 : if (GET_MODE (x1) != i1
6189 8 : || !ix86_carry_flag_operator (operands[3], i1)
6190 8 : || !nonimmediate_operand (operands[1], i1)
6191 16 : || !x86_64_general_operand (operands[2], i1))
6192 0 : return -1;
6193 : return 0;
6194 : }
6195 :
6196 : int
6197 755 : pattern1781 (rtx x1, machine_mode i1, machine_mode i2)
6198 : {
6199 755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6200 755 : rtx x2, x3;
6201 755 : int res ATTRIBUTE_UNUSED;
6202 755 : if (!register_operand (operands[0], i1)
6203 755 : || GET_MODE (x1) != i1)
6204 : return -1;
6205 688 : x2 = XEXP (x1, 0);
6206 688 : if (GET_MODE (x2) != i1)
6207 : return -1;
6208 688 : x3 = XEXP (x2, 0);
6209 688 : if (GET_MODE (x3) != i2
6210 688 : || !register_operand (operands[1], i1)
6211 688 : || !nonimmediate_operand (operands[2], i1)
6212 671 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
6213 671 : || !const_0_to_7_operand (operands[4], E_VOIDmode)
6214 643 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
6215 643 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
6216 643 : || !const_8_to_15_operand (operands[7], E_VOIDmode)
6217 643 : || !const_8_to_15_operand (operands[8], E_VOIDmode)
6218 643 : || !const_8_to_15_operand (operands[9], E_VOIDmode)
6219 643 : || !const_8_to_15_operand (operands[10], E_VOIDmode)
6220 1331 : || !nonimm_or_0_operand (operands[11], i1))
6221 52 : return -1;
6222 : return 0;
6223 : }
6224 :
6225 : int
6226 599 : pattern1797 (rtx x1)
6227 : {
6228 599 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6229 599 : int res ATTRIBUTE_UNUSED;
6230 599 : switch (GET_MODE (operands[0]))
6231 : {
6232 286 : case E_SImode:
6233 286 : if (!register_operand (operands[0], E_SImode)
6234 286 : || GET_MODE (x1) != E_SImode)
6235 : return -1;
6236 : return 0;
6237 :
6238 313 : case E_V16QImode:
6239 313 : if (!register_operand (operands[0], E_V16QImode)
6240 313 : || GET_MODE (x1) != E_V16QImode)
6241 : return -1;
6242 : return 1;
6243 :
6244 : default:
6245 : return -1;
6246 : }
6247 : }
6248 :
6249 : int
6250 5404 : pattern1805 (rtx x1)
6251 : {
6252 5404 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6253 5404 : int res ATTRIBUTE_UNUSED;
6254 5404 : switch (GET_MODE (operands[0]))
6255 : {
6256 683 : case E_V16HImode:
6257 683 : if (!nonimmediate_operand (operands[0], E_V16HImode)
6258 683 : || GET_MODE (x1) != E_V16HImode
6259 1366 : || !nonimmediate_operand (operands[1], E_V32HImode))
6260 0 : return -1;
6261 : return 0;
6262 :
6263 315 : case E_V16HFmode:
6264 315 : if (!nonimmediate_operand (operands[0], E_V16HFmode)
6265 315 : || GET_MODE (x1) != E_V16HFmode
6266 630 : || !nonimmediate_operand (operands[1], E_V32HFmode))
6267 3 : return -1;
6268 : return 1;
6269 :
6270 27 : case E_V16BFmode:
6271 27 : if (!nonimmediate_operand (operands[0], E_V16BFmode)
6272 27 : || GET_MODE (x1) != E_V16BFmode
6273 54 : || !nonimmediate_operand (operands[1], E_V32BFmode))
6274 0 : return -1;
6275 : return 2;
6276 :
6277 4379 : case E_V16QImode:
6278 4379 : if (!nonimmediate_operand (operands[0], E_V16QImode)
6279 4379 : || GET_MODE (x1) != E_V16QImode
6280 8758 : || !nonimmediate_operand (operands[1], E_V32QImode))
6281 1199 : return -1;
6282 : return 3;
6283 :
6284 : default:
6285 : return -1;
6286 : }
6287 : }
6288 :
6289 : int
6290 0 : pattern1822 (rtx x1, machine_mode i1)
6291 : {
6292 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6293 0 : rtx x2, x3, x4, x5, x6, x7;
6294 0 : int res ATTRIBUTE_UNUSED;
6295 0 : x2 = XVECEXP (x1, 0, 0);
6296 0 : x3 = XEXP (x2, 1);
6297 0 : x4 = XEXP (x3, 0);
6298 0 : x5 = XEXP (x4, 0);
6299 0 : if (GET_MODE (x5) != i1
6300 0 : || !ix86_carry_flag_operator (operands[4], i1)
6301 0 : || !nonimmediate_operand (operands[1], i1))
6302 0 : return -1;
6303 0 : x6 = XVECEXP (x1, 0, 1);
6304 0 : x7 = XEXP (x6, 1);
6305 0 : return pattern1821 (x7,
6306 0 : i1); /* [-1, 0] */
6307 : }
6308 :
6309 : int
6310 14947 : pattern1829 (rtx x1, machine_mode i1, machine_mode i2)
6311 : {
6312 14947 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6313 14947 : rtx x2, x3, x4, x5, x6;
6314 14947 : int res ATTRIBUTE_UNUSED;
6315 14947 : x2 = XVECEXP (x1, 0, 0);
6316 14947 : x3 = XEXP (x2, 1);
6317 14947 : x4 = XEXP (x3, 0);
6318 14947 : x5 = XEXP (x4, 0);
6319 14947 : if (GET_MODE (x5) != i2
6320 14947 : || !nonimmediate_operand (operands[1], i1))
6321 136 : return -1;
6322 14811 : x6 = XEXP (x4, 1);
6323 14811 : if (GET_MODE (x6) != i2
6324 14811 : || !nonimmediate_operand (operands[2], i1)
6325 29586 : || pattern1827 (x1,
6326 : i1,
6327 : i2) != 0)
6328 36 : return -1;
6329 : return 0;
6330 : }
6331 :
6332 : int
6333 749 : pattern1839 (rtx x1, machine_mode i1)
6334 : {
6335 749 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6336 749 : rtx x2, x3, x4, x5, x6, x7;
6337 749 : int res ATTRIBUTE_UNUSED;
6338 749 : x2 = XEXP (x1, 0);
6339 749 : x3 = XEXP (x2, 0);
6340 749 : x4 = XEXP (x3, 0);
6341 749 : x5 = XEXP (x4, 0);
6342 749 : operands[1] = x5;
6343 749 : if (!nonimmediate_operand (operands[1], i1)
6344 749 : || !register_operand (operands[3], i1))
6345 10 : return -1;
6346 739 : x6 = XEXP (x2, 1);
6347 739 : if (!rtx_equal_p (x6, operands[1]))
6348 : return -1;
6349 326 : x7 = XEXP (x1, 1);
6350 326 : if (!rtx_equal_p (x7, operands[1]))
6351 : return -1;
6352 : return 0;
6353 : }
6354 :
6355 : int
6356 96 : pattern1846 (rtx x1, rtx_code i1)
6357 : {
6358 96 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6359 96 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6360 96 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6361 96 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
6362 96 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
6363 96 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
6364 96 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
6365 96 : rtx x50, x51, x52, x53, x54, x55;
6366 96 : int res ATTRIBUTE_UNUSED;
6367 96 : x2 = XEXP (x1, 0);
6368 96 : x3 = XEXP (x2, 0);
6369 96 : x4 = XEXP (x3, 0);
6370 96 : x5 = XEXP (x4, 0);
6371 96 : if (GET_CODE (x5) != VEC_SELECT
6372 96 : || GET_MODE (x5) != E_V2QImode)
6373 : return -1;
6374 96 : x6 = XEXP (x5, 1);
6375 96 : if (GET_CODE (x6) != PARALLEL
6376 96 : || XVECLEN (x6, 0) != 2)
6377 : return -1;
6378 96 : x7 = XVECEXP (x6, 0, 0);
6379 96 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6380 : return -1;
6381 96 : x8 = XVECEXP (x6, 0, 1);
6382 96 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6383 : return -1;
6384 96 : x9 = XEXP (x3, 1);
6385 96 : if (GET_CODE (x9) != i1)
6386 : return -1;
6387 96 : x10 = XEXP (x9, 0);
6388 96 : if (GET_CODE (x10) != VEC_SELECT
6389 96 : || GET_MODE (x10) != E_V2QImode)
6390 : return -1;
6391 96 : x11 = XEXP (x10, 1);
6392 96 : if (GET_CODE (x11) != PARALLEL
6393 96 : || XVECLEN (x11, 0) != 2)
6394 : return -1;
6395 96 : x12 = XVECEXP (x11, 0, 0);
6396 96 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6397 : return -1;
6398 96 : x13 = XVECEXP (x11, 0, 1);
6399 96 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
6400 : return -1;
6401 96 : x14 = XEXP (x2, 1);
6402 96 : x15 = XEXP (x14, 0);
6403 96 : if (GET_CODE (x15) != i1)
6404 : return -1;
6405 96 : x16 = XEXP (x15, 0);
6406 96 : if (GET_CODE (x16) != VEC_SELECT
6407 96 : || GET_MODE (x16) != E_V2QImode)
6408 : return -1;
6409 96 : x17 = XEXP (x16, 1);
6410 96 : if (GET_CODE (x17) != PARALLEL
6411 96 : || XVECLEN (x17, 0) != 2)
6412 : return -1;
6413 96 : x18 = XVECEXP (x17, 0, 0);
6414 96 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
6415 : return -1;
6416 96 : x19 = XVECEXP (x17, 0, 1);
6417 96 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
6418 : return -1;
6419 96 : x20 = XEXP (x14, 1);
6420 96 : if (GET_CODE (x20) != i1)
6421 : return -1;
6422 96 : x21 = XEXP (x20, 0);
6423 96 : if (GET_CODE (x21) != VEC_SELECT
6424 96 : || GET_MODE (x21) != E_V2QImode)
6425 : return -1;
6426 96 : x22 = XEXP (x21, 1);
6427 96 : if (GET_CODE (x22) != PARALLEL
6428 96 : || XVECLEN (x22, 0) != 2)
6429 : return -1;
6430 96 : x23 = XVECEXP (x22, 0, 0);
6431 96 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
6432 : return -1;
6433 96 : x24 = XVECEXP (x22, 0, 1);
6434 96 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
6435 : return -1;
6436 96 : x25 = XEXP (x1, 1);
6437 96 : x26 = XEXP (x25, 0);
6438 96 : x27 = XEXP (x26, 0);
6439 96 : if (GET_CODE (x27) != i1)
6440 : return -1;
6441 96 : x28 = XEXP (x27, 0);
6442 96 : if (GET_CODE (x28) != VEC_SELECT
6443 96 : || GET_MODE (x28) != E_V2QImode)
6444 : return -1;
6445 96 : x29 = XEXP (x28, 1);
6446 96 : if (GET_CODE (x29) != PARALLEL
6447 96 : || XVECLEN (x29, 0) != 2)
6448 : return -1;
6449 96 : x30 = XVECEXP (x29, 0, 0);
6450 96 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
6451 : return -1;
6452 96 : x31 = XVECEXP (x29, 0, 1);
6453 96 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
6454 : return -1;
6455 96 : x32 = XEXP (x26, 1);
6456 96 : if (GET_CODE (x32) != i1)
6457 : return -1;
6458 96 : x33 = XEXP (x32, 0);
6459 96 : if (GET_CODE (x33) != VEC_SELECT
6460 96 : || GET_MODE (x33) != E_V2QImode)
6461 : return -1;
6462 96 : x34 = XEXP (x33, 1);
6463 96 : if (GET_CODE (x34) != PARALLEL
6464 96 : || XVECLEN (x34, 0) != 2)
6465 : return -1;
6466 96 : x35 = XVECEXP (x34, 0, 0);
6467 96 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
6468 : return -1;
6469 96 : x36 = XVECEXP (x34, 0, 1);
6470 96 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
6471 : return -1;
6472 96 : x37 = XEXP (x25, 1);
6473 96 : x38 = XEXP (x37, 0);
6474 96 : if (GET_CODE (x38) != i1)
6475 : return -1;
6476 96 : x39 = XEXP (x38, 0);
6477 96 : if (GET_CODE (x39) != VEC_SELECT
6478 96 : || GET_MODE (x39) != E_V2QImode)
6479 : return -1;
6480 96 : x40 = XEXP (x39, 1);
6481 96 : if (GET_CODE (x40) != PARALLEL
6482 96 : || XVECLEN (x40, 0) != 2)
6483 : return -1;
6484 96 : x41 = XVECEXP (x40, 0, 0);
6485 96 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
6486 : return -1;
6487 96 : x42 = XVECEXP (x40, 0, 1);
6488 96 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
6489 : return -1;
6490 96 : x43 = XEXP (x37, 1);
6491 96 : if (GET_CODE (x43) != i1)
6492 : return -1;
6493 96 : x44 = XEXP (x43, 0);
6494 96 : if (GET_CODE (x44) != VEC_SELECT
6495 96 : || GET_MODE (x44) != E_V2QImode)
6496 : return -1;
6497 96 : x45 = XEXP (x44, 1);
6498 96 : if (GET_CODE (x45) != PARALLEL
6499 96 : || XVECLEN (x45, 0) != 2)
6500 : return -1;
6501 96 : x46 = XVECEXP (x45, 0, 0);
6502 96 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
6503 : return -1;
6504 96 : x47 = XVECEXP (x45, 0, 1);
6505 96 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
6506 : return -1;
6507 96 : x48 = XEXP (x5, 0);
6508 96 : operands[1] = x48;
6509 96 : if (!nonimmediate_operand (operands[1], E_V16QImode))
6510 : return -1;
6511 96 : x49 = XEXP (x10, 0);
6512 96 : if (!rtx_equal_p (x49, operands[1]))
6513 : return -1;
6514 96 : x50 = XEXP (x16, 0);
6515 96 : if (!rtx_equal_p (x50, operands[1]))
6516 : return -1;
6517 96 : x51 = XEXP (x21, 0);
6518 96 : if (!rtx_equal_p (x51, operands[1]))
6519 : return -1;
6520 96 : x52 = XEXP (x28, 0);
6521 96 : if (!rtx_equal_p (x52, operands[1]))
6522 : return -1;
6523 96 : x53 = XEXP (x33, 0);
6524 96 : if (!rtx_equal_p (x53, operands[1]))
6525 : return -1;
6526 96 : x54 = XEXP (x39, 0);
6527 96 : if (!rtx_equal_p (x54, operands[1]))
6528 : return -1;
6529 96 : x55 = XEXP (x44, 0);
6530 96 : if (!rtx_equal_p (x55, operands[1]))
6531 : return -1;
6532 : return 0;
6533 : }
6534 :
6535 : int
6536 1056 : pattern1902 (rtx x1, machine_mode i1, machine_mode i2)
6537 : {
6538 1056 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6539 1056 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6540 1056 : int res ATTRIBUTE_UNUSED;
6541 1056 : x2 = XVECEXP (x1, 0, 0);
6542 1056 : x3 = XEXP (x2, 1);
6543 1056 : x4 = XEXP (x3, 1);
6544 1056 : if (GET_MODE (x4) != i2)
6545 : return -1;
6546 1056 : x5 = XEXP (x4, 0);
6547 1056 : if (GET_MODE (x5) != i1)
6548 : return -1;
6549 1056 : x6 = XEXP (x5, 0);
6550 1056 : if (GET_MODE (x6) != i1
6551 1056 : || !ix86_carry_flag_operator (operands[5], i1)
6552 2112 : || !nonimmediate_operand (operands[0], i1))
6553 0 : return -1;
6554 1056 : x7 = XVECEXP (x1, 0, 1);
6555 1056 : x8 = XEXP (x7, 1);
6556 1056 : if (GET_MODE (x8) != i1)
6557 : return -1;
6558 1056 : x9 = XEXP (x8, 0);
6559 1056 : if (GET_MODE (x9) != i1)
6560 : return -1;
6561 : return 0;
6562 : }
6563 :
6564 : int
6565 718 : pattern1911 (rtx x1, int i1, int i2, int i3, int i4)
6566 : {
6567 718 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6568 718 : rtx x2, x3, x4, x5;
6569 718 : int res ATTRIBUTE_UNUSED;
6570 718 : x2 = XVECEXP (x1, 0, 28);
6571 718 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6572 : return -1;
6573 718 : x3 = XVECEXP (x1, 0, 29);
6574 718 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6575 : return -1;
6576 718 : x4 = XVECEXP (x1, 0, 30);
6577 718 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6578 : return -1;
6579 718 : x5 = XVECEXP (x1, 0, 31);
6580 718 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6581 0 : return -1;
6582 : return 0;
6583 : }
6584 :
6585 : int
6586 236 : pattern1918 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6587 : {
6588 236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6589 236 : rtx x2, x3, x4;
6590 236 : int res ATTRIBUTE_UNUSED;
6591 236 : if (!register_operand (operands[0], i3)
6592 236 : || GET_MODE (x1) != i3)
6593 : return -1;
6594 232 : x2 = XEXP (x1, 0);
6595 232 : if (GET_MODE (x2) != i3)
6596 : return -1;
6597 232 : x3 = XEXP (x2, 0);
6598 232 : if (GET_MODE (x3) != i3)
6599 : return -1;
6600 232 : x4 = XEXP (x3, 0);
6601 232 : if (GET_MODE (x4) != i2
6602 232 : || !register_operand (operands[1], i1))
6603 10 : return -1;
6604 : return 0;
6605 : }
6606 :
6607 : int
6608 193924 : recog_2 (rtx x1 ATTRIBUTE_UNUSED,
6609 : rtx_insn *insn ATTRIBUTE_UNUSED,
6610 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6611 : {
6612 193924 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6613 193924 : rtx x2, x3, x4, x5, x6, x7, x8;
6614 193924 : int res ATTRIBUTE_UNUSED;
6615 193924 : x2 = XEXP (x1, 1);
6616 193924 : x3 = XEXP (x2, 1);
6617 193924 : switch (GET_CODE (x3))
6618 : {
6619 139015 : case LABEL_REF:
6620 139015 : x4 = XEXP (x2, 2);
6621 139015 : if (GET_CODE (x4) != PC)
6622 : return -1;
6623 139015 : x5 = XEXP (x1, 0);
6624 139015 : if (GET_CODE (x5) != PC)
6625 : return -1;
6626 139015 : x6 = XEXP (x2, 0);
6627 139015 : operands[0] = x6;
6628 139015 : if (!nonmemory_operand (operands[2], E_QImode))
6629 : return -1;
6630 138573 : x7 = XEXP (x3, 0);
6631 138573 : operands[3] = x7;
6632 138573 : x8 = XEXP (x6, 0);
6633 138573 : switch (GET_MODE (x8))
6634 : {
6635 70957 : case E_SImode:
6636 70957 : if (!nonimmediate_operand (operands[1], E_SImode)
6637 75120 : || !
6638 : #line 20152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6639 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
6640 : && (CONST_INT_P (operands[2])
6641 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
6642 : && INTVAL (operands[2])
6643 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
6644 : : !memory_operand (operands[1], SImode))
6645 : && ix86_pre_reload_split ()))
6646 : return -1;
6647 : *pnum_clobbers = 1;
6648 : return 1452; /* *jcc_btsi */
6649 :
6650 : case E_DImode:
6651 : if (!nonimmediate_operand (operands[1], E_DImode)
6652 : || !(
6653 : #line 20152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6654 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
6655 : && (CONST_INT_P (operands[2])
6656 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
6657 : && INTVAL (operands[2])
6658 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
6659 : : !memory_operand (operands[1], DImode))
6660 : && ix86_pre_reload_split ()) &&
6661 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6662 : (TARGET_64BIT)))
6663 : return -1;
6664 : *pnum_clobbers = 1;
6665 : return 1453; /* *jcc_btdi */
6666 :
6667 : default:
6668 : return -1;
6669 : }
6670 :
6671 : case REG:
6672 : case SUBREG:
6673 : case MEM:
6674 : operands[3] = x3;
6675 : if (!nonimmediate_operand (operands[3], E_HImode))
6676 : return -1;
6677 : x5 = XEXP (x1, 0);
6678 : operands[0] = x5;
6679 : if (!register_operand (operands[0], E_HImode)
6680 : || GET_MODE (x2) != E_HImode)
6681 : return -1;
6682 : x6 = XEXP (x2, 0);
6683 : operands[5] = x6;
6684 : if (!register_operand (operands[2], E_QImode))
6685 : return -1;
6686 : x4 = XEXP (x2, 2);
6687 : operands[4] = x4;
6688 : x8 = XEXP (x6, 0);
6689 : switch (pattern1595 (x8,
6690 : E_HImode))
6691 : {
6692 : case 0:
6693 : if (!
6694 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6695 : (TARGET_USE_BT && TARGET_CMOVE
6696 : && ix86_pre_reload_split ()))
6697 : return -1;
6698 : *pnum_clobbers = 1;
6699 : return 1458; /* *cmov_bthi */
6700 :
6701 : case 1:
6702 : if (!(
6703 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6704 : (TARGET_USE_BT && TARGET_CMOVE
6705 : && ix86_pre_reload_split ()) &&
6706 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6707 : (TARGET_64BIT)))
6708 : return -1;
6709 : *pnum_clobbers = 1;
6710 : return 1459; /* *cmov_bthi */
6711 :
6712 : default:
6713 : return -1;
6714 : }
6715 :
6716 : default:
6717 : return -1;
6718 : }
6719 : }
6720 :
6721 : int
6722 : recog_11 (rtx x1 ATTRIBUTE_UNUSED,
6723 : rtx_insn *insn ATTRIBUTE_UNUSED,
6724 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6725 : {
6726 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6727 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6728 : rtx x10, x11;
6729 : int res ATTRIBUTE_UNUSED;
6730 : x2 = XEXP (x1, 1);
6731 : if (GET_MODE (x2) != E_CCFPmode)
6732 : return -1;
6733 : x3 = XVECEXP (x2, 0, 0);
6734 : if (GET_CODE (x3) != VEC_SELECT)
6735 : return -1;
6736 : x4 = XEXP (x3, 1);
6737 : if (GET_CODE (x4) != PARALLEL
6738 : || XVECLEN (x4, 0) != 1)
6739 : return -1;
6740 : x5 = XVECEXP (x4, 0, 0);
6741 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6742 : return -1;
6743 : x6 = XVECEXP (x2, 0, 1);
6744 : if (GET_CODE (x6) != VEC_SELECT)
6745 : return -1;
6746 : x7 = XEXP (x6, 1);
6747 : if (GET_CODE (x7) != PARALLEL
6748 : || XVECLEN (x7, 0) != 1)
6749 : return -1;
6750 : x8 = XVECEXP (x7, 0, 0);
6751 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6752 : return -1;
6753 : x9 = XEXP (x1, 0);
6754 : if (GET_CODE (x9) != REG
6755 : || REGNO (x9) != 17
6756 : || GET_MODE (x9) != E_CCFPmode)
6757 : return -1;
6758 : x10 = XEXP (x3, 0);
6759 : operands[0] = x10;
6760 : x11 = XEXP (x6, 0);
6761 : operands[1] = x11;
6762 : switch (GET_MODE (x3))
6763 : {
6764 : case E_HFmode:
6765 : if (!register_operand (operands[0], E_V8HFmode)
6766 : || GET_MODE (x6) != E_HFmode
6767 : || !nonimmediate_operand (operands[1], E_V8HFmode)
6768 : || !(
6769 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6770 : (TARGET_AVX10_2) &&
6771 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6772 : (TARGET_AVX512FP16)))
6773 : return -1;
6774 : return 3746; /* avx10_2_comxhf */
6775 :
6776 : case E_SFmode:
6777 : if (!register_operand (operands[0], E_V4SFmode)
6778 : || GET_MODE (x6) != E_SFmode
6779 : || !nonimmediate_operand (operands[1], E_V4SFmode)
6780 : || !
6781 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6782 : (TARGET_AVX10_2))
6783 : return -1;
6784 : return 3750; /* avx10_2_comxsf */
6785 :
6786 : case E_DFmode:
6787 : if (!register_operand (operands[0], E_V2DFmode)
6788 : || GET_MODE (x6) != E_DFmode
6789 : || !nonimmediate_operand (operands[1], E_V2DFmode)
6790 : || !
6791 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6792 : (TARGET_AVX10_2))
6793 : return -1;
6794 : return 3754; /* avx10_2_comxdf */
6795 :
6796 : default:
6797 : return -1;
6798 : }
6799 : }
6800 :
6801 : int
6802 : recog_14 (rtx x1 ATTRIBUTE_UNUSED,
6803 : rtx_insn *insn ATTRIBUTE_UNUSED,
6804 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6805 : {
6806 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6807 : rtx x2, x3, x4, x5, x6, x7;
6808 : int res ATTRIBUTE_UNUSED;
6809 : x2 = XEXP (x1, 1);
6810 : switch (XINT (x2, 1))
6811 : {
6812 : case 25:
6813 : return recog_8 (x1, insn, pnum_clobbers);
6814 :
6815 : case 26:
6816 : if (pattern58 (x1,
6817 : E_HImode) != 0
6818 : || !
6819 : #line 2031 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6820 : (TARGET_SAHF))
6821 : return -1;
6822 : return 51; /* x86_sahf_1 */
6823 :
6824 : case 27:
6825 : return recog_7 (x1, insn, pnum_clobbers);
6826 :
6827 : case 45:
6828 : if (GET_MODE (x2) != E_CCFPmode)
6829 : return -1;
6830 : x3 = XVECEXP (x2, 0, 0);
6831 : if (GET_CODE (x3) != COMPARE
6832 : || GET_MODE (x3) != E_CCFPmode)
6833 : return -1;
6834 : x4 = XEXP (x1, 0);
6835 : if (GET_CODE (x4) != REG
6836 : || REGNO (x4) != 17
6837 : || GET_MODE (x4) != E_CCFPmode)
6838 : return -1;
6839 : x5 = XEXP (x3, 0);
6840 : operands[0] = x5;
6841 : x6 = XEXP (x3, 1);
6842 : operands[1] = x6;
6843 : switch (GET_MODE (operands[0]))
6844 : {
6845 : case E_SFmode:
6846 : if (!register_operand (operands[0], E_SFmode)
6847 : || !nonimmediate_operand (operands[1], E_SFmode)
6848 : || !
6849 : #line 2083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6850 : (TARGET_AVX10_2))
6851 : return -1;
6852 : return 54; /* *cmpxsf */
6853 :
6854 : case E_DFmode:
6855 : if (!register_operand (operands[0], E_DFmode)
6856 : || !nonimmediate_operand (operands[1], E_DFmode)
6857 : || !
6858 : #line 2083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6859 : (TARGET_AVX10_2))
6860 : return -1;
6861 : return 56; /* *cmpxdf */
6862 :
6863 : case E_HFmode:
6864 : if (!register_operand (operands[0], E_HFmode)
6865 : || !nonimmediate_operand (operands[1], E_HFmode)
6866 : || !
6867 : #line 2096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6868 : (TARGET_AVX10_2))
6869 : return -1;
6870 : return 58; /* *cmpxhf */
6871 :
6872 : default:
6873 : return -1;
6874 : }
6875 :
6876 : case 42:
6877 : if (pattern60 (x1,
6878 : E_CCCmode) != 0)
6879 : return -1;
6880 : return 67; /* x86_stc */
6881 :
6882 : case 43:
6883 : x4 = XEXP (x1, 0);
6884 : operands[0] = x4;
6885 : x3 = XVECEXP (x2, 0, 0);
6886 : operands[1] = x3;
6887 : if (!flags_reg_operand (operands[1], E_VOIDmode))
6888 : return -1;
6889 : switch (GET_MODE (operands[0]))
6890 : {
6891 : case E_SImode:
6892 : if (!push_operand (operands[0], E_SImode)
6893 : || GET_MODE (x2) != E_SImode
6894 : || !(
6895 : #line 2362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6896 : (GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_CC) &&
6897 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6898 : (word_mode == SImode)))
6899 : return -1;
6900 : return 84; /* pushflsi2 */
6901 :
6902 : case E_DImode:
6903 : if (!push_operand (operands[0], E_DImode)
6904 : || GET_MODE (x2) != E_DImode
6905 : || !(
6906 : #line 2362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6907 : (GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_CC) &&
6908 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6909 : (word_mode == DImode)))
6910 : return -1;
6911 : return 85; /* pushfldi2 */
6912 :
6913 : default:
6914 : return -1;
6915 : }
6916 :
6917 : case 44:
6918 : if (GET_MODE (x2) != E_CCmode)
6919 : return -1;
6920 : x4 = XEXP (x1, 0);
6921 : operands[0] = x4;
6922 : if (!flags_reg_operand (operands[0], E_CCmode))
6923 : return -1;
6924 : x3 = XVECEXP (x2, 0, 0);
6925 : operands[1] = x3;
6926 : switch (GET_MODE (operands[1]))
6927 : {
6928 : case E_SImode:
6929 : if (!pop_operand (operands[1], E_SImode)
6930 : || !
6931 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6932 : (word_mode == SImode))
6933 : return -1;
6934 : return 86; /* popflsi1 */
6935 :
6936 : case E_DImode:
6937 : if (!pop_operand (operands[1], E_DImode)
6938 : || !
6939 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6940 : (word_mode == DImode))
6941 : return -1;
6942 : return 87; /* popfldi1 */
6943 :
6944 : default:
6945 : return -1;
6946 : }
6947 :
6948 : case 61:
6949 : if (GET_MODE (x2) != E_SFmode)
6950 : return -1;
6951 : x4 = XEXP (x1, 0);
6952 : operands[0] = x4;
6953 : if (!register_operand (operands[0], E_SFmode))
6954 : return -1;
6955 : x3 = XVECEXP (x2, 0, 0);
6956 : operands[1] = x3;
6957 : if (!register_operand (operands[1], E_BFmode)
6958 : || !
6959 : #line 5582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6960 : (TARGET_SSE2))
6961 : return -1;
6962 : return 207; /* extendbfsf2_1 */
6963 :
6964 : case 29:
6965 : if (GET_MODE (x2) != E_HImode)
6966 : return -1;
6967 : x3 = XVECEXP (x2, 0, 0);
6968 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6969 : return -1;
6970 : x4 = XEXP (x1, 0);
6971 : operands[0] = x4;
6972 : if (!memory_operand (operands[0], E_HImode)
6973 : || !
6974 : #line 6156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6975 : (TARGET_80387))
6976 : return -1;
6977 : return 242; /* x86_fnstcw_1 */
6978 :
6979 : case 98:
6980 : if (GET_MODE (x2) != E_HImode)
6981 : return -1;
6982 : x4 = XEXP (x1, 0);
6983 : operands[0] = x4;
6984 : if (!register_operand (operands[0], E_HImode))
6985 : return -1;
6986 : x3 = XVECEXP (x2, 0, 0);
6987 : operands[1] = x3;
6988 : if (!nonimmediate_operand (operands[1], E_HImode))
6989 : return -1;
6990 : if ((
6991 : #line 22744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6992 : (TARGET_APX_NF) &&
6993 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6994 : (TARGET_BMI)))
6995 : return 1594; /* tzcnt_hi_nf */
6996 : if (pnum_clobbers == NULL
6997 : || !(
6998 : #line 22744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6999 : (true) &&
7000 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7001 : (TARGET_BMI)))
7002 : return -1;
7003 : *pnum_clobbers = 1;
7004 : return 1595; /* tzcnt_hi */
7005 :
7006 : case 97:
7007 : if (GET_MODE (x2) != E_HImode)
7008 : return -1;
7009 : x4 = XEXP (x1, 0);
7010 : operands[0] = x4;
7011 : if (!register_operand (operands[0], E_HImode))
7012 : return -1;
7013 : x3 = XVECEXP (x2, 0, 0);
7014 : operands[1] = x3;
7015 : if (!nonimmediate_operand (operands[1], E_HImode))
7016 : return -1;
7017 : if ((
7018 : #line 22744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7019 : (TARGET_APX_NF) &&
7020 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7021 : (TARGET_LZCNT)))
7022 : return 1596; /* lzcnt_hi_nf */
7023 : if (pnum_clobbers == NULL
7024 : || !(
7025 : #line 22744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7026 : (true) &&
7027 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7028 : (TARGET_LZCNT)))
7029 : return -1;
7030 : *pnum_clobbers = 1;
7031 : return 1597; /* lzcnt_hi */
7032 :
7033 : case 28:
7034 : if (pattern58 (x1,
7035 : E_QImode) != 0)
7036 : return -1;
7037 : return 1680; /* parityqi2_cmp */
7038 :
7039 : case 55:
7040 : switch (pattern61 (x1))
7041 : {
7042 : case 0:
7043 : if (!
7044 : #line 24507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7045 : (TARGET_SSE && TARGET_SSE_MATH))
7046 : return -1;
7047 : return 1712; /* *rcpsf2_sse */
7048 :
7049 : case 1:
7050 : if (!
7051 : #line 24533 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7052 : (TARGET_AVX512FP16))
7053 : return -1;
7054 : return 1713; /* rcphf2 */
7055 :
7056 : default:
7057 : return -1;
7058 : }
7059 :
7060 : case 32:
7061 : x4 = XEXP (x1, 0);
7062 : operands[0] = x4;
7063 : x3 = XVECEXP (x2, 0, 0);
7064 : operands[1] = x3;
7065 : if (!register_operand (operands[1], E_XFmode))
7066 : return -1;
7067 : switch (GET_MODE (operands[0]))
7068 : {
7069 : case E_SFmode:
7070 : if (!nonimmediate_operand (operands[0], E_SFmode)
7071 : || GET_MODE (x2) != E_SFmode
7072 : || !
7073 : #line 24750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7074 : (TARGET_USE_FANCY_MATH_387))
7075 : return -1;
7076 : return 1738; /* truncxfsf2_i387_noop_unspec */
7077 :
7078 : case E_DFmode:
7079 : if (!nonimmediate_operand (operands[0], E_DFmode)
7080 : || GET_MODE (x2) != E_DFmode
7081 : || !
7082 : #line 24750 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7083 : (TARGET_USE_FANCY_MATH_387))
7084 : return -1;
7085 : return 1739; /* truncxfdf2_i387_noop_unspec */
7086 :
7087 : default:
7088 : return -1;
7089 : }
7090 :
7091 : case 56:
7092 : switch (pattern61 (x1))
7093 : {
7094 : case 0:
7095 : if (!
7096 : #line 24771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7097 : (TARGET_SSE))
7098 : return -1;
7099 : return 1741; /* *rsqrtsf2_sse */
7100 :
7101 : case 1:
7102 : if (!
7103 : #line 24807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7104 : (TARGET_AVX512FP16))
7105 : return -1;
7106 : return 1742; /* rsqrthf2 */
7107 :
7108 : default:
7109 : return -1;
7110 : }
7111 :
7112 : case 65:
7113 : if (GET_MODE (x2) != E_XFmode)
7114 : return -1;
7115 : x4 = XEXP (x1, 0);
7116 : operands[0] = x4;
7117 : if (!register_operand (operands[0], E_XFmode))
7118 : return -1;
7119 : x3 = XVECEXP (x2, 0, 0);
7120 : operands[1] = x3;
7121 : if (!register_operand (operands[1], E_XFmode)
7122 : || !
7123 : #line 25076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7124 : (TARGET_USE_FANCY_MATH_387
7125 : && flag_unsafe_math_optimizations))
7126 : return -1;
7127 : return 1749; /* sinxf2 */
7128 :
7129 : case 66:
7130 : if (GET_MODE (x2) != E_XFmode)
7131 : return -1;
7132 : x4 = XEXP (x1, 0);
7133 : operands[0] = x4;
7134 : if (!register_operand (operands[0], E_XFmode))
7135 : return -1;
7136 : x3 = XVECEXP (x2, 0, 0);
7137 : operands[1] = x3;
7138 : if (!register_operand (operands[1], E_XFmode)
7139 : || !
7140 : #line 25076 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7141 : (TARGET_USE_FANCY_MATH_387
7142 : && flag_unsafe_math_optimizations))
7143 : return -1;
7144 : return 1750; /* cosxf2 */
7145 :
7146 : case 72:
7147 : if (GET_MODE (x2) != E_XFmode)
7148 : return -1;
7149 : x4 = XEXP (x1, 0);
7150 : operands[0] = x4;
7151 : if (!register_operand (operands[0], E_XFmode))
7152 : return -1;
7153 : x3 = XVECEXP (x2, 0, 0);
7154 : operands[1] = x3;
7155 : if (!register_operand (operands[1], E_XFmode)
7156 : || !
7157 : #line 25709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7158 : (TARGET_USE_FANCY_MATH_387
7159 : && flag_unsafe_math_optimizations))
7160 : return -1;
7161 : return 1757; /* *f2xm1xf2_i387 */
7162 :
7163 : case 70:
7164 : if (GET_MODE (x2) != E_XFmode)
7165 : return -1;
7166 : x4 = XEXP (x1, 0);
7167 : operands[0] = x4;
7168 : if (!register_operand (operands[0], E_XFmode))
7169 : return -1;
7170 : x3 = XVECEXP (x2, 0, 0);
7171 : operands[1] = x3;
7172 : if (!register_operand (operands[1], E_XFmode)
7173 : || !
7174 : #line 26045 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7175 : (TARGET_USE_FANCY_MATH_387))
7176 : return -1;
7177 : return 1764; /* rintxf2 */
7178 :
7179 : case 71:
7180 : if (GET_MODE (x2) != E_HImode)
7181 : return -1;
7182 : x4 = XEXP (x1, 0);
7183 : operands[0] = x4;
7184 : if (!nonimmediate_operand (operands[0], E_HImode))
7185 : return -1;
7186 : x3 = XVECEXP (x2, 0, 0);
7187 : operands[1] = x3;
7188 : if (!register_operand (operands[1], E_XFmode)
7189 : || !
7190 : #line 26187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7191 : (TARGET_USE_FANCY_MATH_387))
7192 : return -1;
7193 : return 1766; /* lrintxfhi2 */
7194 :
7195 : case 75:
7196 : if (pattern62 (x1, pnum_clobbers,
7197 : E_XFmode) != 0
7198 : || !
7199 : #line 26277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7200 : (TARGET_USE_FANCY_MATH_387
7201 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7202 : && ix86_pre_reload_split ()))
7203 : return -1;
7204 : *pnum_clobbers = 1;
7205 : return 1768; /* frndintxf2_roundeven */
7206 :
7207 : case 76:
7208 : if (pattern62 (x1, pnum_clobbers,
7209 : E_XFmode) != 0
7210 : || !
7211 : #line 26277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7212 : (TARGET_USE_FANCY_MATH_387
7213 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7214 : && ix86_pre_reload_split ()))
7215 : return -1;
7216 : *pnum_clobbers = 1;
7217 : return 1769; /* frndintxf2_floor */
7218 :
7219 : case 77:
7220 : if (pattern62 (x1, pnum_clobbers,
7221 : E_XFmode) != 0
7222 : || !
7223 : #line 26277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7224 : (TARGET_USE_FANCY_MATH_387
7225 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7226 : && ix86_pre_reload_split ()))
7227 : return -1;
7228 : *pnum_clobbers = 1;
7229 : return 1770; /* frndintxf2_ceil */
7230 :
7231 : case 78:
7232 : if (pattern62 (x1, pnum_clobbers,
7233 : E_XFmode) != 0
7234 : || !
7235 : #line 26277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7236 : (TARGET_USE_FANCY_MATH_387
7237 : && (flag_fp_int_builtin_inexact || !flag_trapping_math)
7238 : && ix86_pre_reload_split ()))
7239 : return -1;
7240 : *pnum_clobbers = 1;
7241 : return 1771; /* frndintxf2_trunc */
7242 :
7243 : case 79:
7244 : if (pattern63 (x1, pnum_clobbers) != 0
7245 : || !
7246 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7247 : (TARGET_USE_FANCY_MATH_387
7248 : && flag_unsafe_math_optimizations
7249 : && ix86_pre_reload_split ()))
7250 : return -1;
7251 : *pnum_clobbers = 1;
7252 : return 1776; /* *fisthi2_floor_1 */
7253 :
7254 : case 80:
7255 : if (pattern63 (x1, pnum_clobbers) != 0
7256 : || !
7257 : #line 26394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7258 : (TARGET_USE_FANCY_MATH_387
7259 : && flag_unsafe_math_optimizations
7260 : && ix86_pre_reload_split ()))
7261 : return -1;
7262 : *pnum_clobbers = 1;
7263 : return 1777; /* *fisthi2_ceil_1 */
7264 :
7265 : case 74:
7266 : if (GET_MODE (x2) != E_HImode)
7267 : return -1;
7268 : x4 = XEXP (x1, 0);
7269 : operands[0] = x4;
7270 : if (!register_operand (operands[0], E_HImode))
7271 : return -1;
7272 : x3 = XVECEXP (x2, 0, 0);
7273 : operands[1] = x3;
7274 : switch (GET_MODE (operands[1]))
7275 : {
7276 : case E_SFmode:
7277 : if (!register_operand (operands[1], E_SFmode)
7278 : || !
7279 : #line 26496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7280 : (TARGET_USE_FANCY_MATH_387))
7281 : return -1;
7282 : return 1788; /* fxamsf2_i387 */
7283 :
7284 : case E_DFmode:
7285 : if (!register_operand (operands[1], E_DFmode)
7286 : || !
7287 : #line 26496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7288 : (TARGET_USE_FANCY_MATH_387))
7289 : return -1;
7290 : return 1789; /* fxamdf2_i387 */
7291 :
7292 : case E_XFmode:
7293 : if (!register_operand (operands[1], E_XFmode)
7294 : || !
7295 : #line 26496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7296 : (TARGET_USE_FANCY_MATH_387))
7297 : return -1;
7298 : return 1790; /* fxamxf2_i387 */
7299 :
7300 : default:
7301 : return -1;
7302 : }
7303 :
7304 : case 19:
7305 : if (pnum_clobbers == NULL
7306 : || GET_MODE (x2) != E_QImode)
7307 : return -1;
7308 : x4 = XEXP (x1, 0);
7309 : operands[0] = x4;
7310 : if (!memory_operand (operands[0], E_QImode))
7311 : return -1;
7312 : x3 = XVECEXP (x2, 0, 0);
7313 : operands[1] = x3;
7314 : if (!const0_operand (operands[1], E_QImode))
7315 : return -1;
7316 : *pnum_clobbers = 1;
7317 : return 1913; /* probe_stack_1 */
7318 :
7319 : case 113:
7320 : if (GET_MODE (x2) != E_V2SFmode)
7321 : return -1;
7322 : x4 = XEXP (x1, 0);
7323 : operands[0] = x4;
7324 : if (!register_operand (operands[0], E_V2SFmode))
7325 : return -1;
7326 : x3 = XVECEXP (x2, 0, 0);
7327 : operands[1] = x3;
7328 : if (!nonimmediate_operand (operands[1], E_V2SFmode)
7329 : || !
7330 : #line 924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7331 : (TARGET_3DNOW))
7332 : return -1;
7333 : return 2113; /* mmx_rcpv2sf2 */
7334 :
7335 : case 116:
7336 : if (GET_MODE (x2) != E_V2SFmode)
7337 : return -1;
7338 : x4 = XEXP (x1, 0);
7339 : operands[0] = x4;
7340 : if (!register_operand (operands[0], E_V2SFmode))
7341 : return -1;
7342 : x3 = XVECEXP (x2, 0, 0);
7343 : operands[1] = x3;
7344 : if (!nonimmediate_operand (operands[1], E_V2SFmode)
7345 : || !
7346 : #line 972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7347 : (TARGET_3DNOW))
7348 : return -1;
7349 : return 2116; /* mmx_rsqrtv2sf2 */
7350 :
7351 : case 173:
7352 : if (GET_MODE (x2) != E_V2SImode)
7353 : return -1;
7354 : x4 = XEXP (x1, 0);
7355 : operands[0] = x4;
7356 : if (!register_operand (operands[0], E_V2SImode))
7357 : return -1;
7358 : x3 = XVECEXP (x2, 0, 0);
7359 : operands[1] = x3;
7360 : switch (GET_MODE (operands[1]))
7361 : {
7362 : case E_V4SFmode:
7363 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
7364 : || !
7365 : #line 8841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7366 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSE))
7367 : return -1;
7368 : return 4833; /* unspec_sse_cvttps2pi */
7369 :
7370 : case E_V2DFmode:
7371 : if (!vector_operand (operands[1], E_V2DFmode)
7372 : || !
7373 : #line 9306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7374 : (TARGET_SSE2))
7375 : return -1;
7376 : return 4943; /* unspec_sse2_cvttpd2pi */
7377 :
7378 : default:
7379 : return -1;
7380 : }
7381 :
7382 : case 47:
7383 : if (GET_MODE (x2) != E_V2SImode)
7384 : return -1;
7385 : x4 = XEXP (x1, 0);
7386 : operands[0] = x4;
7387 : if (!register_operand (operands[0], E_V2SImode))
7388 : return -1;
7389 : x3 = XVECEXP (x2, 0, 0);
7390 : operands[1] = x3;
7391 : if (!vector_operand (operands[1], E_V2DFmode)
7392 : || !
7393 : #line 9288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7394 : (TARGET_SSE2))
7395 : return -1;
7396 : return 4942; /* sse2_cvtpd2pi */
7397 :
7398 : case 174:
7399 : if (GET_MODE (x2) != E_V2SImode)
7400 : return -1;
7401 : x4 = XEXP (x1, 0);
7402 : operands[0] = x4;
7403 : if (!register_operand (operands[0], E_V2SImode))
7404 : return -1;
7405 : x3 = XVECEXP (x2, 0, 0);
7406 : operands[1] = x3;
7407 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
7408 : || !
7409 : #line 9347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7410 : (TARGET_MMX_WITH_SSE && TARGET_AVX512VL))
7411 : return -1;
7412 : return 4945; /* unspec_fixuns_truncv2dfv2si2 */
7413 :
7414 : case 192:
7415 : x4 = XEXP (x1, 0);
7416 : operands[0] = x4;
7417 : x3 = XVECEXP (x2, 0, 0);
7418 : operands[1] = x3;
7419 : switch (GET_MODE (operands[0]))
7420 : {
7421 : case E_HImode:
7422 : if (!register_operand (operands[0], E_HImode)
7423 : || GET_MODE (x2) != E_HImode)
7424 : return -1;
7425 : switch (GET_MODE (operands[1]))
7426 : {
7427 : case E_V16QImode:
7428 : if (!register_operand (operands[1], E_V16QImode)
7429 : || !(
7430 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7431 : (TARGET_AVX512BW) &&
7432 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7433 : (TARGET_AVX512VL)))
7434 : return -1;
7435 : return 5216; /* avx512vl_cvtb2maskv16qi */
7436 :
7437 : case E_V16HImode:
7438 : if (!register_operand (operands[1], E_V16HImode)
7439 : || !(
7440 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7441 : (TARGET_AVX512BW) &&
7442 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7443 : (TARGET_AVX512VL)))
7444 : return -1;
7445 : return 5219; /* avx512vl_cvtw2maskv16hi */
7446 :
7447 : case E_V16SImode:
7448 : if (!register_operand (operands[1], E_V16SImode)
7449 : || !
7450 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7451 : (TARGET_AVX512DQ))
7452 : return -1;
7453 : return 5221; /* avx512f_cvtd2maskv16si */
7454 :
7455 : default:
7456 : return -1;
7457 : }
7458 :
7459 : case E_QImode:
7460 : if (!register_operand (operands[0], E_QImode)
7461 : || GET_MODE (x2) != E_QImode)
7462 : return -1;
7463 : switch (GET_MODE (operands[1]))
7464 : {
7465 : case E_V8HImode:
7466 : if (!register_operand (operands[1], E_V8HImode)
7467 : || !(
7468 : #line 10648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7469 : (TARGET_AVX512BW) &&
7470 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7471 : (TARGET_AVX512VL)))
7472 : return -1;
7473 : return 5220; /* avx512vl_cvtw2maskv8hi */
7474 :
7475 : case E_V8SImode:
7476 : if (!register_operand (operands[1], E_V8SImode)
7477 : || !(
7478 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7479 : (TARGET_AVX512DQ) &&
7480 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7481 : (TARGET_AVX512VL)))
7482 : return -1;
7483 : return 5222; /* avx512vl_cvtd2maskv8si */
7484 :
7485 : case E_V4SImode:
7486 : if (!register_operand (operands[1], E_V4SImode)
7487 : || !(
7488 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7489 : (TARGET_AVX512DQ) &&
7490 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7491 : (TARGET_AVX512VL)))
7492 : return -1;
7493 : return 5223; /* avx512vl_cvtd2maskv4si */
7494 :
7495 : case E_V8DImode:
7496 : if (!register_operand (operands[1], E_V8DImode)
7497 : || !
7498 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7499 : (TARGET_AVX512DQ))
7500 : return -1;
7501 : return 5224; /* avx512f_cvtq2maskv8di */
7502 :
7503 : case E_V4DImode:
7504 : if (!register_operand (operands[1], E_V4DImode)
7505 : || !(
7506 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7507 : (TARGET_AVX512DQ) &&
7508 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7509 : (TARGET_AVX512VL)))
7510 : return -1;
7511 : return 5225; /* avx512vl_cvtq2maskv4di */
7512 :
7513 : case E_V2DImode:
7514 : if (!register_operand (operands[1], E_V2DImode)
7515 : || !(
7516 : #line 10658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7517 : (TARGET_AVX512DQ) &&
7518 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7519 : (TARGET_AVX512VL)))
7520 : return -1;
7521 : return 5226; /* avx512vl_cvtq2maskv2di */
7522 :
7523 : default:
7524 : return -1;
7525 : }
7526 :
7527 : default:
7528 : return -1;
7529 : }
7530 :
7531 : case 118:
7532 : x4 = XEXP (x1, 0);
7533 : operands[0] = x4;
7534 : x3 = XVECEXP (x2, 0, 0);
7535 : switch (GET_CODE (x3))
7536 : {
7537 : case REG:
7538 : case SUBREG:
7539 : operands[1] = x3;
7540 : switch (GET_MODE (operands[0]))
7541 : {
7542 : case E_SFmode:
7543 : if (!memory_operand (operands[0], E_SFmode)
7544 : || GET_MODE (x2) != E_SFmode
7545 : || !register_operand (operands[1], E_SFmode)
7546 : || !
7547 : #line 23950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7548 : (TARGET_SSE4A))
7549 : return -1;
7550 : return 8746; /* sse4a_movntsf */
7551 :
7552 : case E_DFmode:
7553 : if (!memory_operand (operands[0], E_DFmode)
7554 : || GET_MODE (x2) != E_DFmode
7555 : || !register_operand (operands[1], E_DFmode)
7556 : || !
7557 : #line 23950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7558 : (TARGET_SSE4A))
7559 : return -1;
7560 : return 8747; /* sse4a_movntdf */
7561 :
7562 : default:
7563 : return -1;
7564 : }
7565 :
7566 : case VEC_SELECT:
7567 : x6 = XEXP (x3, 1);
7568 : if (GET_CODE (x6) != PARALLEL
7569 : || XVECLEN (x6, 0) != 1)
7570 : return -1;
7571 : x7 = XVECEXP (x6, 0, 0);
7572 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
7573 : return -1;
7574 : x5 = XEXP (x3, 0);
7575 : operands[1] = x5;
7576 : switch (GET_MODE (operands[0]))
7577 : {
7578 : case E_SFmode:
7579 : if (pattern1080 (x2,
7580 : E_V4SFmode,
7581 : E_SFmode) != 0
7582 : || !
7583 : #line 23963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7584 : (TARGET_SSE4A))
7585 : return -1;
7586 : return 8748; /* sse4a_vmmovntv4sf */
7587 :
7588 : case E_DFmode:
7589 : if (pattern1080 (x2,
7590 : E_V2DFmode,
7591 : E_DFmode) != 0
7592 : || !(
7593 : #line 23963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7594 : (TARGET_SSE4A) &&
7595 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7596 : (TARGET_SSE2)))
7597 : return -1;
7598 : return 8749; /* sse4a_vmmovntv2df */
7599 :
7600 : default:
7601 : return -1;
7602 : }
7603 :
7604 : default:
7605 : return -1;
7606 : }
7607 :
7608 : case 137:
7609 : x4 = XEXP (x1, 0);
7610 : operands[0] = x4;
7611 : x3 = XVECEXP (x2, 0, 0);
7612 : operands[1] = x3;
7613 : switch (GET_MODE (operands[0]))
7614 : {
7615 : case E_SFmode:
7616 : if (!register_operand (operands[0], E_SFmode)
7617 : || GET_MODE (x2) != E_SFmode
7618 : || !nonimmediate_operand (operands[1], E_SFmode)
7619 : || !
7620 : #line 27921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7621 : (TARGET_XOP))
7622 : return -1;
7623 : return 9138; /* xop_frczsf2 */
7624 :
7625 : case E_DFmode:
7626 : if (!register_operand (operands[0], E_DFmode)
7627 : || GET_MODE (x2) != E_DFmode
7628 : || !nonimmediate_operand (operands[1], E_DFmode)
7629 : || !
7630 : #line 27921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7631 : (TARGET_XOP))
7632 : return -1;
7633 : return 9139; /* xop_frczdf2 */
7634 :
7635 : default:
7636 : return -1;
7637 : }
7638 :
7639 : case 287:
7640 : if (GET_MODE (x2) != E_DFmode)
7641 : return -1;
7642 : x4 = XEXP (x1, 0);
7643 : operands[0] = x4;
7644 : if (!register_operand (operands[0], E_DFmode))
7645 : return -1;
7646 : x3 = XVECEXP (x2, 0, 0);
7647 : operands[1] = x3;
7648 : if (!memory_operand (operands[1], E_DImode)
7649 : || !
7650 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
7651 : (TARGET_80387))
7652 : return -1;
7653 : return 11100; /* loaddi_via_fpu */
7654 :
7655 : case 289:
7656 : if (GET_MODE (x2) != E_DFmode)
7657 : return -1;
7658 : x4 = XEXP (x1, 0);
7659 : operands[0] = x4;
7660 : if (!register_operand (operands[0], E_DFmode))
7661 : return -1;
7662 : x3 = XVECEXP (x2, 0, 0);
7663 : operands[1] = x3;
7664 : if (!memory_operand (operands[1], E_DImode)
7665 : || !
7666 : #line 369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
7667 : (TARGET_SSE))
7668 : return -1;
7669 : return 11102; /* loaddi_via_sse */
7670 :
7671 : default:
7672 : return -1;
7673 : }
7674 : }
7675 :
7676 : int
7677 : recog_33 (rtx x1 ATTRIBUTE_UNUSED,
7678 : rtx_insn *insn ATTRIBUTE_UNUSED,
7679 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7680 : {
7681 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7682 : rtx x2, x3, x4;
7683 : int res ATTRIBUTE_UNUSED;
7684 : x2 = XEXP (x1, 0);
7685 : operands[0] = x2;
7686 : x3 = XEXP (x1, 1);
7687 : x4 = XEXP (x3, 0);
7688 : operands[1] = x4;
7689 : switch (GET_MODE (operands[0]))
7690 : {
7691 : case E_SFmode:
7692 : if (GET_MODE (x3) != E_SFmode)
7693 : return -1;
7694 : if (nonimm_ssenomem_operand (operands[0], E_SFmode)
7695 : && register_ssemem_operand (operands[1], E_DFmode)
7696 : &&
7697 : #line 5641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7698 : (TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)))
7699 : return 210; /* truncdfsf2 */
7700 : if (!nonimmediate_operand (operands[0], E_SFmode)
7701 : || !register_operand (operands[1], E_XFmode)
7702 : || !
7703 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7704 : (TARGET_80387))
7705 : return -1;
7706 : return 211; /* truncxfsf2 */
7707 :
7708 : case E_DFmode:
7709 : if (!nonimmediate_operand (operands[0], E_DFmode)
7710 : || GET_MODE (x3) != E_DFmode
7711 : || !register_operand (operands[1], E_XFmode)
7712 : || !
7713 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7714 : (TARGET_80387))
7715 : return -1;
7716 : return 212; /* truncxfdf2 */
7717 :
7718 : case E_HFmode:
7719 : if (!register_operand (operands[0], E_HFmode))
7720 : return -1;
7721 : switch (pattern430 (x3,
7722 : E_HFmode))
7723 : {
7724 : case 0:
7725 : if (!
7726 : #line 5810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7727 : (TARGET_AVX512FP16))
7728 : return -1;
7729 : return 213; /* *truncsfhf2 */
7730 :
7731 : case 1:
7732 : if (!
7733 : #line 5810 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7734 : (TARGET_AVX512FP16))
7735 : return -1;
7736 : return 214; /* *truncdfhf2 */
7737 :
7738 : default:
7739 : return -1;
7740 : }
7741 :
7742 : case E_BFmode:
7743 : if (!register_operand (operands[0], E_BFmode)
7744 : || GET_MODE (x3) != E_BFmode
7745 : || !register_operand (operands[1], E_SFmode)
7746 : || !
7747 : #line 5826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7748 : (TARGET_SSE2 && !HONOR_NANS (BFmode) && !flag_rounding_math
7749 : && (flag_unsafe_math_optimizations
7750 : || TARGET_AVXNECONVERT
7751 : || (TARGET_AVX512BF16 && TARGET_AVX512VL))))
7752 : return -1;
7753 : return 215; /* truncsfbf2 */
7754 :
7755 : case E_V2SFmode:
7756 : if (!register_operand (operands[0], E_V2SFmode)
7757 : || GET_MODE (x3) != E_V2SFmode
7758 : || !vector_operand (operands[1], E_V2DFmode)
7759 : || !
7760 : #line 10540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7761 : (TARGET_MMX_WITH_SSE))
7762 : return -1;
7763 : return 5204; /* truncv2dfv2sf2 */
7764 :
7765 : default:
7766 : return -1;
7767 : }
7768 : }
7769 :
7770 : int
7771 : recog_37 (rtx x1 ATTRIBUTE_UNUSED,
7772 : rtx_insn *insn ATTRIBUTE_UNUSED,
7773 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7774 : {
7775 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7776 : rtx x2, x3, x4;
7777 : int res ATTRIBUTE_UNUSED;
7778 : x2 = XEXP (x1, 0);
7779 : operands[0] = x2;
7780 : x3 = XEXP (x1, 1);
7781 : x4 = XEXP (x3, 0);
7782 : operands[1] = x4;
7783 : switch (GET_MODE (operands[0]))
7784 : {
7785 : case E_HFmode:
7786 : switch (pattern266 (x3,
7787 : E_HFmode))
7788 : {
7789 : case 0:
7790 : if (!
7791 : #line 6250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7792 : (TARGET_AVX512FP16))
7793 : return -1;
7794 : return 253; /* floatunssihf2 */
7795 :
7796 : case 1:
7797 : if (!(
7798 : #line 6250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7799 : (TARGET_AVX512FP16) &&
7800 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7801 : (TARGET_64BIT)))
7802 : return -1;
7803 : return 255; /* floatunsdihf2 */
7804 :
7805 : default:
7806 : return -1;
7807 : }
7808 :
7809 : case E_SFmode:
7810 : switch (pattern266 (x3,
7811 : E_SFmode))
7812 : {
7813 : case 0:
7814 : if (!
7815 : #line 6395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7816 : (TARGET_AVX512F && TARGET_SSE_MATH))
7817 : return -1;
7818 : return 261; /* *floatunssisf2_avx512 */
7819 :
7820 : case 1:
7821 : if (!(
7822 : #line 6395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7823 : (TARGET_AVX512F && TARGET_SSE_MATH) &&
7824 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7825 : (TARGET_64BIT)))
7826 : return -1;
7827 : return 262; /* *floatunsdisf2_avx512 */
7828 :
7829 : default:
7830 : return -1;
7831 : }
7832 :
7833 : case E_DFmode:
7834 : switch (pattern266 (x3,
7835 : E_DFmode))
7836 : {
7837 : case 0:
7838 : if (!
7839 : #line 6395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7840 : (TARGET_AVX512F && TARGET_SSE_MATH))
7841 : return -1;
7842 : return 263; /* *floatunssidf2_avx512 */
7843 :
7844 : case 1:
7845 : if (!(
7846 : #line 6395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7847 : (TARGET_AVX512F && TARGET_SSE_MATH) &&
7848 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7849 : (TARGET_64BIT)))
7850 : return -1;
7851 : return 264; /* *floatunsdidf2_avx512 */
7852 :
7853 : default:
7854 : return -1;
7855 : }
7856 :
7857 : default:
7858 : return -1;
7859 : }
7860 : }
7861 :
7862 : int
7863 : recog_41 (rtx x1 ATTRIBUTE_UNUSED,
7864 : rtx_insn *insn ATTRIBUTE_UNUSED,
7865 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7866 : {
7867 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7868 : rtx x2, x3, x4, x5;
7869 : int res ATTRIBUTE_UNUSED;
7870 : x2 = XEXP (x1, 1);
7871 : x3 = XEXP (x2, 1);
7872 : if (GET_CODE (x3) != CONST_INT
7873 : || !register_operand (operands[0], E_QImode)
7874 : || GET_MODE (x2) != E_QImode)
7875 : return -1;
7876 : x4 = XEXP (x2, 0);
7877 : x5 = XVECEXP (x4, 0, 2);
7878 : operands[3] = x5;
7879 : if (!const_0_to_7_operand (operands[3], E_SImode))
7880 : return -1;
7881 : switch (XWINT (x3, 0))
7882 : {
7883 : case 15L:
7884 : switch (GET_MODE (operands[1]))
7885 : {
7886 : case E_V4SImode:
7887 : if (!nonimmediate_operand (operands[1], E_V4SImode)
7888 : || !nonimmediate_operand (operands[2], E_V4SImode)
7889 : || !(
7890 : #line 4795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7891 : (TARGET_AVX512F) &&
7892 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7893 : (TARGET_AVX512VL)))
7894 : return -1;
7895 : return 3465; /* *avx512vl_ucmpv4si3_and15 */
7896 :
7897 : case E_V4DImode:
7898 : if (!nonimmediate_operand (operands[1], E_V4DImode)
7899 : || !nonimmediate_operand (operands[2], E_V4DImode)
7900 : || !(
7901 : #line 4795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7902 : (TARGET_AVX512F) &&
7903 : #line 525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7904 : (TARGET_AVX512VL)))
7905 : return -1;
7906 : return 3466; /* *avx512vl_ucmpv4di3_and15 */
7907 :
7908 : default:
7909 : return -1;
7910 : }
7911 :
7912 : case 3L:
7913 : if (!nonimmediate_operand (operands[1], E_V2DImode)
7914 : || !nonimmediate_operand (operands[2], E_V2DImode)
7915 : || !
7916 : #line 4844 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7917 : (TARGET_AVX512F))
7918 : return -1;
7919 : return 3473; /* *avx512vl_ucmpv2di3_and3 */
7920 :
7921 : default:
7922 : return -1;
7923 : }
7924 : }
7925 :
7926 : int
7927 : recog_43 (rtx x1 ATTRIBUTE_UNUSED,
7928 : rtx_insn *insn ATTRIBUTE_UNUSED,
7929 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7930 : {
7931 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7932 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7933 : rtx x10, x11, x12, x13;
7934 : int res ATTRIBUTE_UNUSED;
7935 : x2 = XEXP (x1, 1);
7936 : x3 = XEXP (x2, 0);
7937 : switch (GET_CODE (x3))
7938 : {
7939 : case XOR:
7940 : if (pnum_clobbers == NULL)
7941 : return -1;
7942 : x4 = XEXP (x1, 0);
7943 : operands[0] = x4;
7944 : x5 = XEXP (x3, 0);
7945 : operands[1] = x5;
7946 : x6 = XEXP (x3, 1);
7947 : operands[2] = x6;
7948 : switch (GET_MODE (operands[0]))
7949 : {
7950 : case E_HImode:
7951 : if (pattern751 (x2,
7952 : E_HImode) != 0
7953 : || !
7954 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7955 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)))
7956 : return -1;
7957 : *pnum_clobbers = 1;
7958 : return 863; /* *notxorhi_1 */
7959 :
7960 : case E_QImode:
7961 : if (pattern751 (x2,
7962 : E_QImode) != 0
7963 : || !
7964 : #line 14656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7965 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)))
7966 : return -1;
7967 : *pnum_clobbers = 1;
7968 : return 899; /* *notxorqi_1 */
7969 :
7970 : default:
7971 : return -1;
7972 : }
7973 :
7974 : case REG:
7975 : case SUBREG:
7976 : case MEM:
7977 : switch (pattern42 (x1))
7978 : {
7979 : case 0:
7980 : switch (GET_MODE (operands[0]))
7981 : {
7982 : case E_TImode:
7983 : if (!nonimmediate_operand (operands[0], E_TImode)
7984 : || GET_MODE (x2) != E_TImode
7985 : || !nonimmediate_operand (operands[1], E_TImode)
7986 : || !(
7987 : #line 15911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7988 : (ix86_unary_operator_ok (NOT, TImode, operands, TARGET_APX_NDD)) &&
7989 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7990 : (TARGET_64BIT)))
7991 : return -1;
7992 : return 1063; /* *one_cmplti2_doubleword */
7993 :
7994 : case E_HImode:
7995 : if (!nonimmediate_operand (operands[0], E_HImode)
7996 : || GET_MODE (x2) != E_HImode
7997 : || !nonimmediate_operand (operands[1], E_HImode)
7998 : || !
7999 : #line 15928 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8000 : (ix86_unary_operator_ok (NOT, HImode, operands, TARGET_APX_NDD)))
8001 : return -1;
8002 : return 1064; /* *one_cmplhi2_1 */
8003 :
8004 : case E_QImode:
8005 : if (!nonimmediate_operand (operands[0], E_QImode)
8006 : || GET_MODE (x2) != E_QImode
8007 : || !nonimmediate_operand (operands[1], E_QImode)
8008 : || !
8009 : #line 15990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8010 : (ix86_unary_operator_ok (NOT, QImode, operands, TARGET_APX_NDD)))
8011 : return -1;
8012 : return 1073; /* *one_cmplqi2_1 */
8013 :
8014 : case E_V4QImode:
8015 : if (!register_operand (operands[0], E_V4QImode)
8016 : || GET_MODE (x2) != E_V4QImode
8017 : || !register_operand (operands[1], E_V4QImode))
8018 : return -1;
8019 : return 2319; /* one_cmplv4qi2 */
8020 :
8021 : case E_V2QImode:
8022 : if (!register_operand (operands[0], E_V2QImode)
8023 : || GET_MODE (x2) != E_V2QImode
8024 : || !register_operand (operands[1], E_V2QImode))
8025 : return -1;
8026 : return 2320; /* one_cmplv2qi2 */
8027 :
8028 : case E_V2HImode:
8029 : if (!register_operand (operands[0], E_V2HImode)
8030 : || GET_MODE (x2) != E_V2HImode
8031 : || !register_operand (operands[1], E_V2HImode))
8032 : return -1;
8033 : return 2321; /* one_cmplv2hi2 */
8034 :
8035 : default:
8036 : return -1;
8037 : }
8038 :
8039 : case 1:
8040 : if (!
8041 : #line 16021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8042 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8043 : return -1;
8044 : return 1074; /* *one_cmplqi_1_slp */
8045 :
8046 : case 2:
8047 : if (!
8048 : #line 16021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8049 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8050 : return -1;
8051 : return 1075; /* *one_cmplhi_1_slp */
8052 :
8053 : default:
8054 : return -1;
8055 : }
8056 :
8057 : case ASHIFTRT:
8058 : case LSHIFTRT:
8059 : case SIGN_EXTRACT:
8060 : case ZERO_EXTRACT:
8061 : operands[2] = x3;
8062 : switch (pattern90 (x1))
8063 : {
8064 : case 0:
8065 : return 1081; /* *one_cmplqi_exthi_1 */
8066 :
8067 : case 1:
8068 : return 1082; /* *one_cmplqi_extsi_1 */
8069 :
8070 : case 2:
8071 : if (
8072 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8073 : (TARGET_64BIT))
8074 : return 1083; /* *one_cmplqi_extdi_1 */
8075 : break;
8076 :
8077 : default:
8078 : break;
8079 : }
8080 : if (pnum_clobbers == NULL
8081 : || GET_CODE (x3) != ZERO_EXTRACT
8082 : || GET_MODE (x3) != E_DImode)
8083 : return -1;
8084 : x6 = XEXP (x3, 1);
8085 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8086 : return -1;
8087 : x4 = XEXP (x1, 0);
8088 : if (GET_CODE (x4) != ZERO_EXTRACT
8089 : || GET_MODE (x4) != E_DImode)
8090 : return -1;
8091 : x7 = XEXP (x4, 1);
8092 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8093 : return -1;
8094 : x8 = XEXP (x4, 0);
8095 : operands[0] = x8;
8096 : if (!nonimmediate_operand (operands[0], E_DImode))
8097 : return -1;
8098 : x9 = XEXP (x4, 2);
8099 : operands[1] = x9;
8100 : if (!const_0_to_63_operand (operands[1], E_QImode)
8101 : || GET_MODE (x2) != E_DImode)
8102 : return -1;
8103 : x5 = XEXP (x3, 0);
8104 : if (!rtx_equal_p (x5, operands[0]))
8105 : return -1;
8106 : x10 = XEXP (x3, 2);
8107 : if (!rtx_equal_p (x10, operands[1])
8108 : || !
8109 : #line 20002 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8110 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
8111 : return -1;
8112 : *pnum_clobbers = 1;
8113 : return 1447; /* *btcq_imm */
8114 :
8115 : case UNSPEC:
8116 : if (XVECLEN (x3, 0) != 3)
8117 : return -1;
8118 : x4 = XEXP (x1, 0);
8119 : operands[0] = x4;
8120 : x11 = XVECEXP (x3, 0, 0);
8121 : operands[1] = x11;
8122 : x12 = XVECEXP (x3, 0, 1);
8123 : operands[2] = x12;
8124 : x13 = XVECEXP (x3, 0, 2);
8125 : operands[3] = x13;
8126 : switch (XINT (x3, 1))
8127 : {
8128 : case 60:
8129 : switch (GET_MODE (operands[0]))
8130 : {
8131 : case E_HImode:
8132 : switch (pattern977 (x2))
8133 : {
8134 : case 0:
8135 : if (!
8136 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8137 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SImode) >= 8
8138 : && ix86_pre_reload_split ()))
8139 : return -1;
8140 : return 3446; /* *avx512f_cmpv16si3 */
8141 :
8142 : case 1:
8143 : if (!(
8144 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8145 : (TARGET_AVX512F && GET_MODE_NUNITS (V16HFmode) >= 8
8146 : && ix86_pre_reload_split ()) &&
8147 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8148 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
8149 : return -1;
8150 : return 3453; /* *avx512vl_cmpv16hf3 */
8151 :
8152 : case 2:
8153 : if (!
8154 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8155 : (TARGET_AVX512F && GET_MODE_NUNITS (V16SFmode) >= 8
8156 : && ix86_pre_reload_split ()))
8157 : return -1;
8158 : return 3455; /* *avx512f_cmpv16sf3 */
8159 :
8160 : case 3:
8161 : if (!(
8162 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8163 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8164 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8165 : (TARGET_AVX512VL)))
8166 : return -1;
8167 : return 3538; /* *avx512vl_cmpv16qi3 */
8168 :
8169 : case 4:
8170 : if (!(
8171 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8172 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8173 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8174 : (TARGET_AVX512VL)))
8175 : return -1;
8176 : return 3544; /* *avx512vl_cmpv16hi3 */
8177 :
8178 : default:
8179 : return -1;
8180 : }
8181 :
8182 : case E_QImode:
8183 : switch (pattern978 (x2))
8184 : {
8185 : case 0:
8186 : if (!(
8187 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8188 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SImode) >= 8
8189 : && ix86_pre_reload_split ()) &&
8190 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8191 : (TARGET_AVX512VL)))
8192 : return -1;
8193 : return 3447; /* *avx512vl_cmpv8si3 */
8194 :
8195 : case 1:
8196 : if (!(
8197 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8198 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SImode) >= 8
8199 : && ix86_pre_reload_split ()) &&
8200 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8201 : (TARGET_AVX512VL)))
8202 : return -1;
8203 : return 3448; /* *avx512vl_cmpv4si3 */
8204 :
8205 : case 2:
8206 : if (!
8207 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8208 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DImode) >= 8
8209 : && ix86_pre_reload_split ()))
8210 : return -1;
8211 : return 3449; /* *avx512f_cmpv8di3 */
8212 :
8213 : case 3:
8214 : if (!(
8215 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8216 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DImode) >= 8
8217 : && ix86_pre_reload_split ()) &&
8218 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8219 : (TARGET_AVX512VL)))
8220 : return -1;
8221 : return 3450; /* *avx512vl_cmpv4di3 */
8222 :
8223 : case 4:
8224 : if (!(
8225 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8226 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DImode) >= 8
8227 : && ix86_pre_reload_split ()) &&
8228 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8229 : (TARGET_AVX512VL)))
8230 : return -1;
8231 : return 3451; /* *avx512vl_cmpv2di3 */
8232 :
8233 : case 5:
8234 : if (!(
8235 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8236 : (TARGET_AVX512F && GET_MODE_NUNITS (V8HFmode) >= 8
8237 : && ix86_pre_reload_split ()) &&
8238 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8239 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
8240 : return -1;
8241 : return 3454; /* *avx512fp16_cmpv8hf3 */
8242 :
8243 : case 6:
8244 : if (!(
8245 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8246 : (TARGET_AVX512F && GET_MODE_NUNITS (V8SFmode) >= 8
8247 : && ix86_pre_reload_split ()) &&
8248 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8249 : (TARGET_AVX512VL)))
8250 : return -1;
8251 : return 3456; /* *avx512vl_cmpv8sf3 */
8252 :
8253 : case 7:
8254 : if (!(
8255 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8256 : (TARGET_AVX512F && GET_MODE_NUNITS (V4SFmode) >= 8
8257 : && ix86_pre_reload_split ()) &&
8258 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8259 : (TARGET_AVX512VL)))
8260 : return -1;
8261 : return 3457; /* *avx512vl_cmpv4sf3 */
8262 :
8263 : case 8:
8264 : if (!
8265 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8266 : (TARGET_AVX512F && GET_MODE_NUNITS (V8DFmode) >= 8
8267 : && ix86_pre_reload_split ()))
8268 : return -1;
8269 : return 3458; /* *avx512f_cmpv8df3 */
8270 :
8271 : case 9:
8272 : if (!(
8273 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8274 : (TARGET_AVX512F && GET_MODE_NUNITS (V4DFmode) >= 8
8275 : && ix86_pre_reload_split ()) &&
8276 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8277 : (TARGET_AVX512VL)))
8278 : return -1;
8279 : return 3459; /* *avx512vl_cmpv4df3 */
8280 :
8281 : case 10:
8282 : if (!(
8283 : #line 4755 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8284 : (TARGET_AVX512F && GET_MODE_NUNITS (V2DFmode) >= 8
8285 : && ix86_pre_reload_split ()) &&
8286 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8287 : (TARGET_AVX512VL)))
8288 : return -1;
8289 : return 3460; /* *avx512vl_cmpv2df3 */
8290 :
8291 : case 11:
8292 : if (!(
8293 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8294 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8295 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8296 : (TARGET_AVX512VL)))
8297 : return -1;
8298 : return 3546; /* *avx512vl_cmpv8hi3 */
8299 :
8300 : default:
8301 : return -1;
8302 : }
8303 :
8304 : default:
8305 : return -1;
8306 : }
8307 :
8308 : case 158:
8309 : if (!const_0_to_7_operand (operands[3], E_SImode))
8310 : return -1;
8311 : switch (GET_MODE (operands[0]))
8312 : {
8313 : case E_HImode:
8314 : switch (pattern1091 (x2))
8315 : {
8316 : case 0:
8317 : if (!(
8318 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8319 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8320 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8321 : (TARGET_AVX512VL)))
8322 : return -1;
8323 : return 3539; /* *avx512vl_cmpv16qi3 */
8324 :
8325 : case 1:
8326 : if (!(
8327 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8328 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8329 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8330 : (TARGET_AVX512VL)))
8331 : return -1;
8332 : return 3545; /* *avx512vl_cmpv16hi3 */
8333 :
8334 : case 2:
8335 : if (!
8336 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8337 : (TARGET_AVX512F && ix86_pre_reload_split ()
8338 : && GET_MODE_NUNITS (V16SImode) >= 8))
8339 : return -1;
8340 : return 3716; /* *avx512f_ucmpv16si3 */
8341 :
8342 : default:
8343 : return -1;
8344 : }
8345 :
8346 : case E_QImode:
8347 : switch (pattern1092 (x2))
8348 : {
8349 : case 0:
8350 : if (!(
8351 : #line 4950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8352 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
8353 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8354 : (TARGET_AVX512VL)))
8355 : return -1;
8356 : return 3547; /* *avx512vl_cmpv8hi3 */
8357 :
8358 : case 1:
8359 : if (!(
8360 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8361 : (TARGET_AVX512F && ix86_pre_reload_split ()
8362 : && GET_MODE_NUNITS (V8SImode) >= 8) &&
8363 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8364 : (TARGET_AVX512VL)))
8365 : return -1;
8366 : return 3717; /* *avx512vl_ucmpv8si3 */
8367 :
8368 : case 2:
8369 : if (!(
8370 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8371 : (TARGET_AVX512F && ix86_pre_reload_split ()
8372 : && GET_MODE_NUNITS (V4SImode) >= 8) &&
8373 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8374 : (TARGET_AVX512VL)))
8375 : return -1;
8376 : return 3718; /* *avx512vl_ucmpv4si3 */
8377 :
8378 : case 3:
8379 : if (!
8380 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8381 : (TARGET_AVX512F && ix86_pre_reload_split ()
8382 : && GET_MODE_NUNITS (V8DImode) >= 8))
8383 : return -1;
8384 : return 3719; /* *avx512f_ucmpv8di3 */
8385 :
8386 : case 4:
8387 : if (!(
8388 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8389 : (TARGET_AVX512F && ix86_pre_reload_split ()
8390 : && GET_MODE_NUNITS (V4DImode) >= 8) &&
8391 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8392 : (TARGET_AVX512VL)))
8393 : return -1;
8394 : return 3720; /* *avx512vl_ucmpv4di3 */
8395 :
8396 : case 5:
8397 : if (!(
8398 : #line 5165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8399 : (TARGET_AVX512F && ix86_pre_reload_split ()
8400 : && GET_MODE_NUNITS (V2DImode) >= 8) &&
8401 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8402 : (TARGET_AVX512VL)))
8403 : return -1;
8404 : return 3721; /* *avx512vl_ucmpv2di3 */
8405 :
8406 : default:
8407 : return -1;
8408 : }
8409 :
8410 : default:
8411 : return -1;
8412 : }
8413 :
8414 : default:
8415 : return -1;
8416 : }
8417 :
8418 : default:
8419 : return -1;
8420 : }
8421 : }
8422 :
8423 : int
8424 : recog_63 (rtx x1 ATTRIBUTE_UNUSED,
8425 : rtx_insn *insn ATTRIBUTE_UNUSED,
8426 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8427 : {
8428 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8429 : rtx x2, x3, x4, x5, x6;
8430 : int res ATTRIBUTE_UNUSED;
8431 : x2 = XEXP (x1, 1);
8432 : switch (XVECLEN (x2, 0))
8433 : {
8434 : case 1:
8435 : switch (XINT (x2, 1))
8436 : {
8437 : case 20:
8438 : if (GET_MODE (x2) != E_BLKmode)
8439 : return -1;
8440 : x3 = XVECEXP (x2, 0, 0);
8441 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8442 : return -1;
8443 : x4 = XEXP (x1, 0);
8444 : operands[0] = x4;
8445 : if (!memory_operand (operands[0], E_BLKmode)
8446 : || !
8447 : #line 30549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8448 : (TARGET_FXSR))
8449 : return -1;
8450 : return 1952; /* fxsave */
8451 :
8452 : case 22:
8453 : if (GET_MODE (x2) != E_BLKmode)
8454 : return -1;
8455 : x3 = XVECEXP (x2, 0, 0);
8456 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8457 : return -1;
8458 : x4 = XEXP (x1, 0);
8459 : operands[0] = x4;
8460 : if (!memory_operand (operands[0], E_BLKmode)
8461 : || !
8462 : #line 30559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8463 : (TARGET_64BIT && TARGET_FXSR))
8464 : return -1;
8465 : return 1953; /* fxsave64 */
8466 :
8467 : case 24:
8468 : if (GET_MODE (x2) != E_BLKmode)
8469 : return -1;
8470 : x4 = XEXP (x1, 0);
8471 : operands[0] = x4;
8472 : if (!memory_operand (operands[0], E_BLKmode))
8473 : return -1;
8474 : x3 = XVECEXP (x2, 0, 0);
8475 : operands[1] = x3;
8476 : if (!register_operand (operands[1], E_DImode)
8477 : || !
8478 : #line 30629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8479 : (!TARGET_64BIT && TARGET_XSAVE))
8480 : return -1;
8481 : return 1956; /* xsave */
8482 :
8483 : case 28:
8484 : if (GET_MODE (x2) != E_BLKmode)
8485 : return -1;
8486 : x4 = XEXP (x1, 0);
8487 : operands[0] = x4;
8488 : if (!memory_operand (operands[0], E_BLKmode))
8489 : return -1;
8490 : x3 = XVECEXP (x2, 0, 0);
8491 : operands[1] = x3;
8492 : if (!register_operand (operands[1], E_DImode)
8493 : || !(
8494 : #line 30629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8495 : (!TARGET_64BIT && TARGET_XSAVE) &&
8496 : #line 30590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8497 : (TARGET_XSAVEOPT)))
8498 : return -1;
8499 : return 1957; /* xsaveopt */
8500 :
8501 : case 34:
8502 : if (GET_MODE (x2) != E_BLKmode)
8503 : return -1;
8504 : x4 = XEXP (x1, 0);
8505 : operands[0] = x4;
8506 : if (!memory_operand (operands[0], E_BLKmode))
8507 : return -1;
8508 : x3 = XVECEXP (x2, 0, 0);
8509 : operands[1] = x3;
8510 : if (!register_operand (operands[1], E_DImode)
8511 : || !(
8512 : #line 30629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8513 : (!TARGET_64BIT && TARGET_XSAVE) &&
8514 : #line 30591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8515 : (TARGET_XSAVEC)))
8516 : return -1;
8517 : return 1958; /* xsavec */
8518 :
8519 : case 30:
8520 : if (GET_MODE (x2) != E_BLKmode)
8521 : return -1;
8522 : x4 = XEXP (x1, 0);
8523 : operands[0] = x4;
8524 : if (!memory_operand (operands[0], E_BLKmode))
8525 : return -1;
8526 : x3 = XVECEXP (x2, 0, 0);
8527 : operands[1] = x3;
8528 : if (!register_operand (operands[1], E_DImode)
8529 : || !(
8530 : #line 30629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8531 : (!TARGET_64BIT && TARGET_XSAVE) &&
8532 : #line 30592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8533 : (TARGET_XSAVES)))
8534 : return -1;
8535 : return 1959; /* xsaves */
8536 :
8537 : case 40:
8538 : if (pnum_clobbers == NULL
8539 : || GET_MODE (x2) != E_BLKmode)
8540 : return -1;
8541 : x3 = XVECEXP (x2, 0, 0);
8542 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8543 : return -1;
8544 : x4 = XEXP (x1, 0);
8545 : operands[0] = x4;
8546 : if (!memory_operand (operands[0], E_BLKmode)
8547 : || !
8548 : #line 30760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8549 : (TARGET_80387))
8550 : return -1;
8551 : *pnum_clobbers = 8;
8552 : return 1978; /* fnstenv */
8553 :
8554 : case 42:
8555 : if (GET_MODE (x2) != E_HImode)
8556 : return -1;
8557 : x3 = XVECEXP (x2, 0, 0);
8558 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8559 : return -1;
8560 : x4 = XEXP (x1, 0);
8561 : operands[0] = x4;
8562 : if (!nonimmediate_operand (operands[0], E_HImode)
8563 : || !
8564 : #line 30788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8565 : (TARGET_80387))
8566 : return -1;
8567 : return 1980; /* fnstsw */
8568 :
8569 : case 49:
8570 : if (pattern60 (x1,
8571 : E_CCZmode) != 0
8572 : || !
8573 : #line 31074 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8574 : (TARGET_RTM))
8575 : return -1;
8576 : return 2023; /* xtest_1 */
8577 :
8578 : case 74:
8579 : if (pattern60 (x1,
8580 : E_CCCmode) != 0
8581 : || !
8582 : #line 31259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8583 : (TARGET_UINTR && TARGET_64BIT))
8584 : return -1;
8585 : return 2049; /* testui */
8586 :
8587 : case 88:
8588 : if (GET_MODE (x2) != E_BLKmode)
8589 : return -1;
8590 : x3 = XVECEXP (x2, 0, 0);
8591 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8592 : return -1;
8593 : x4 = XEXP (x1, 0);
8594 : operands[0] = x4;
8595 : if (!memory_operand (operands[0], E_BLKmode)
8596 : || !
8597 : #line 31487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8598 : (TARGET_AMX_TILE))
8599 : return -1;
8600 : return 2065; /* sttilecfg */
8601 :
8602 : case 89:
8603 : x4 = XEXP (x1, 0);
8604 : operands[0] = x4;
8605 : x3 = XVECEXP (x2, 0, 0);
8606 : operands[1] = x3;
8607 : switch (GET_MODE (operands[0]))
8608 : {
8609 : case E_QImode:
8610 : if (!register_operand (operands[0], E_QImode)
8611 : || GET_MODE (x2) != E_QImode
8612 : || !memory_operand (operands[1], E_QImode)
8613 : || !
8614 : #line 31498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8615 : (TARGET_MOVRS && TARGET_64BIT))
8616 : return -1;
8617 : return 2066; /* movrsqi */
8618 :
8619 : case E_HImode:
8620 : if (!register_operand (operands[0], E_HImode)
8621 : || GET_MODE (x2) != E_HImode
8622 : || !memory_operand (operands[1], E_HImode)
8623 : || !
8624 : #line 31498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8625 : (TARGET_MOVRS && TARGET_64BIT))
8626 : return -1;
8627 : return 2067; /* movrshi */
8628 :
8629 : default:
8630 : return -1;
8631 : }
8632 :
8633 : default:
8634 : return -1;
8635 : }
8636 :
8637 : case 2:
8638 : switch (XINT (x2, 1))
8639 : {
8640 : case 24:
8641 : if (pattern99 (x1) != 0
8642 : || !
8643 : #line 30642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8644 : (TARGET_64BIT && TARGET_XSAVE))
8645 : return -1;
8646 : return 1960; /* xsave_rex64 */
8647 :
8648 : case 28:
8649 : if (pattern99 (x1) != 0
8650 : || !(
8651 : #line 30642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8652 : (TARGET_64BIT && TARGET_XSAVE) &&
8653 : #line 30590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8654 : (TARGET_XSAVEOPT)))
8655 : return -1;
8656 : return 1961; /* xsaveopt_rex64 */
8657 :
8658 : case 34:
8659 : if (pattern99 (x1) != 0
8660 : || !(
8661 : #line 30642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8662 : (TARGET_64BIT && TARGET_XSAVE) &&
8663 : #line 30591 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8664 : (TARGET_XSAVEC)))
8665 : return -1;
8666 : return 1962; /* xsavec_rex64 */
8667 :
8668 : case 30:
8669 : if (pattern99 (x1) != 0
8670 : || !(
8671 : #line 30642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8672 : (TARGET_64BIT && TARGET_XSAVE) &&
8673 : #line 30592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8674 : (TARGET_XSAVES)))
8675 : return -1;
8676 : return 1963; /* xsaves_rex64 */
8677 :
8678 : case 26:
8679 : if (pattern99 (x1) != 0
8680 : || !
8681 : #line 30656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8682 : (TARGET_64BIT && TARGET_XSAVE))
8683 : return -1;
8684 : return 1964; /* xsave64 */
8685 :
8686 : case 29:
8687 : if (pattern99 (x1) != 0
8688 : || !(
8689 : #line 30656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8690 : (TARGET_64BIT && TARGET_XSAVE) &&
8691 : #line 30596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8692 : (TARGET_XSAVEOPT)))
8693 : return -1;
8694 : return 1965; /* xsaveopt64 */
8695 :
8696 : case 35:
8697 : if (pattern99 (x1) != 0
8698 : || !(
8699 : #line 30656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8700 : (TARGET_64BIT && TARGET_XSAVE) &&
8701 : #line 30597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8702 : (TARGET_XSAVEC)))
8703 : return -1;
8704 : return 1966; /* xsavec64 */
8705 :
8706 : case 32:
8707 : if (pattern99 (x1) != 0
8708 : || !(
8709 : #line 30656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8710 : (TARGET_64BIT && TARGET_XSAVE) &&
8711 : #line 30598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8712 : (TARGET_XSAVES)))
8713 : return -1;
8714 : return 1967; /* xsaves64 */
8715 :
8716 : case 79:
8717 : switch (pattern100 (x1))
8718 : {
8719 : case 0:
8720 : if (!(
8721 : #line 31241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8722 : (TARGET_ENQCMD) &&
8723 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8724 : (Pmode == SImode)))
8725 : return -1;
8726 : return 2043; /* enqcmd_si */
8727 :
8728 : case 1:
8729 : if (!(
8730 : #line 31241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8731 : (TARGET_ENQCMD) &&
8732 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8733 : (Pmode == DImode)))
8734 : return -1;
8735 : return 2045; /* enqcmd_di */
8736 :
8737 : default:
8738 : return -1;
8739 : }
8740 :
8741 : case 80:
8742 : switch (pattern100 (x1))
8743 : {
8744 : case 0:
8745 : if (!(
8746 : #line 31241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8747 : (TARGET_ENQCMD) &&
8748 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8749 : (Pmode == SImode)))
8750 : return -1;
8751 : return 2044; /* enqcmds_si */
8752 :
8753 : case 1:
8754 : if (!(
8755 : #line 31241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8756 : (TARGET_ENQCMD) &&
8757 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8758 : (Pmode == DImode)))
8759 : return -1;
8760 : return 2046; /* enqcmds_di */
8761 :
8762 : default:
8763 : return -1;
8764 : }
8765 :
8766 : case 69:
8767 : if (pattern101 (x1) != 0
8768 : || !
8769 : #line 31280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8770 : (!TARGET_64BIT && TARGET_WAITPKG))
8771 : return -1;
8772 : return 2051; /* umwait */
8773 :
8774 : case 71:
8775 : if (pattern101 (x1) != 0
8776 : || !
8777 : #line 31307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8778 : (!TARGET_64BIT && TARGET_WAITPKG))
8779 : return -1;
8780 : return 2055; /* tpause */
8781 :
8782 : case 111:
8783 : if (pnum_clobbers == NULL)
8784 : return -1;
8785 : x4 = XEXP (x1, 0);
8786 : operands[0] = x4;
8787 : x5 = XVECEXP (x2, 0, 1);
8788 : operands[2] = x5;
8789 : if (!const_int_operand (operands[2], E_SImode))
8790 : return -1;
8791 : x3 = XVECEXP (x2, 0, 0);
8792 : switch (GET_CODE (x3))
8793 : {
8794 : case PLUS:
8795 : switch (pattern872 (x2))
8796 : {
8797 : case 0:
8798 : *pnum_clobbers = 1;
8799 : return 11130; /* atomic_addqi */
8800 :
8801 : case 1:
8802 : *pnum_clobbers = 1;
8803 : return 11131; /* atomic_addhi */
8804 :
8805 : default:
8806 : return -1;
8807 : }
8808 :
8809 : case MINUS:
8810 : switch (pattern872 (x2))
8811 : {
8812 : case 0:
8813 : *pnum_clobbers = 1;
8814 : return 11134; /* atomic_subqi */
8815 :
8816 : case 1:
8817 : *pnum_clobbers = 1;
8818 : return 11135; /* atomic_subhi */
8819 :
8820 : default:
8821 : return -1;
8822 : }
8823 :
8824 : case AND:
8825 : switch (pattern872 (x2))
8826 : {
8827 : case 0:
8828 : *pnum_clobbers = 1;
8829 : return 11138; /* atomic_andqi */
8830 :
8831 : case 1:
8832 : *pnum_clobbers = 1;
8833 : return 11141; /* atomic_andhi */
8834 :
8835 : default:
8836 : return -1;
8837 : }
8838 :
8839 : case IOR:
8840 : switch (pattern872 (x2))
8841 : {
8842 : case 0:
8843 : *pnum_clobbers = 1;
8844 : return 11139; /* atomic_orqi */
8845 :
8846 : case 1:
8847 : *pnum_clobbers = 1;
8848 : return 11142; /* atomic_orhi */
8849 :
8850 : default:
8851 : return -1;
8852 : }
8853 :
8854 : case XOR:
8855 : switch (pattern872 (x2))
8856 : {
8857 : case 0:
8858 : *pnum_clobbers = 1;
8859 : return 11140; /* atomic_xorqi */
8860 :
8861 : case 1:
8862 : *pnum_clobbers = 1;
8863 : return 11143; /* atomic_xorhi */
8864 :
8865 : default:
8866 : return -1;
8867 : }
8868 :
8869 : default:
8870 : return -1;
8871 : }
8872 :
8873 : default:
8874 : return -1;
8875 : }
8876 :
8877 : case 3:
8878 : if (pattern46 (x1,
8879 : E_CCCmode) != 0)
8880 : return -1;
8881 : x3 = XVECEXP (x2, 0, 0);
8882 : operands[0] = x3;
8883 : x5 = XVECEXP (x2, 0, 1);
8884 : operands[1] = x5;
8885 : x6 = XVECEXP (x2, 0, 2);
8886 : operands[2] = x6;
8887 : switch (XINT (x2, 1))
8888 : {
8889 : case 15:
8890 : if (!nonimmediate_operand (operands[1], E_SImode)
8891 : || !const_int_operand (operands[2], E_SImode))
8892 : return -1;
8893 : switch (GET_MODE (operands[0]))
8894 : {
8895 : case E_SImode:
8896 : if (!register_operand (operands[0], E_SImode)
8897 : || !
8898 : #line 30845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8899 : (TARGET_LWP))
8900 : return -1;
8901 : return 1988; /* lwp_lwpinssi */
8902 :
8903 : case E_DImode:
8904 : if (!register_operand (operands[0], E_DImode)
8905 : || !(
8906 : #line 30845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8907 : (TARGET_LWP) &&
8908 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8909 : (TARGET_64BIT)))
8910 : return -1;
8911 : return 1989; /* lwp_lwpinsdi */
8912 :
8913 : default:
8914 : return -1;
8915 : }
8916 :
8917 : case 69:
8918 : if (!register_operand (operands[0], E_SImode)
8919 : || !register_operand (operands[1], E_SImode)
8920 : || !register_operand (operands[2], E_SImode)
8921 : || !
8922 : #line 31290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8923 : (TARGET_64BIT && TARGET_WAITPKG))
8924 : return -1;
8925 : return 2052; /* umwait_rex64 */
8926 :
8927 : case 71:
8928 : if (!register_operand (operands[0], E_SImode)
8929 : || !register_operand (operands[1], E_SImode)
8930 : || !register_operand (operands[2], E_SImode)
8931 : || !
8932 : #line 31317 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8933 : (TARGET_64BIT && TARGET_WAITPKG))
8934 : return -1;
8935 : return 2056; /* tpause_rex64 */
8936 :
8937 : default:
8938 : return -1;
8939 : }
8940 :
8941 : default:
8942 : return -1;
8943 : }
8944 : }
8945 :
8946 : int
8947 : recog_76 (rtx x1 ATTRIBUTE_UNUSED,
8948 : rtx_insn *insn ATTRIBUTE_UNUSED,
8949 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8950 : {
8951 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8952 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8953 : rtx x10;
8954 : int res ATTRIBUTE_UNUSED;
8955 : x2 = XEXP (x1, 1);
8956 : x3 = XEXP (x2, 0);
8957 : x4 = XEXP (x3, 0);
8958 : switch (GET_CODE (x4))
8959 : {
8960 : case REG:
8961 : case SUBREG:
8962 : case MEM:
8963 : switch (pattern115 (x2, pnum_clobbers))
8964 : {
8965 : case 0:
8966 : if (
8967 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8968 : (TARGET_APX_NDD && TARGET_APX_NF
8969 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8970 : return 738; /* *andqi_1_zextsi_nf */
8971 : if (pnum_clobbers == NULL
8972 : || !
8973 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8974 : (TARGET_APX_NDD && true
8975 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8976 : return -1;
8977 : *pnum_clobbers = 1;
8978 : return 739; /* *andqi_1_zextsi */
8979 :
8980 : case 1:
8981 : if (
8982 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8983 : (TARGET_APX_NDD && TARGET_APX_NF
8984 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8985 : return 742; /* *andhi_1_zextsi_nf */
8986 : if (pnum_clobbers == NULL
8987 : || !
8988 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8989 : (TARGET_APX_NDD && true
8990 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8991 : return -1;
8992 : *pnum_clobbers = 1;
8993 : return 743; /* *andhi_1_zextsi */
8994 :
8995 : case 2:
8996 : if (
8997 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8998 : (TARGET_APX_NDD && TARGET_APX_NF
8999 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9000 : return 740; /* *andqi_1_zextdi_nf */
9001 : if (pnum_clobbers == NULL
9002 : || !
9003 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9004 : (TARGET_APX_NDD && true
9005 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9006 : return -1;
9007 : *pnum_clobbers = 1;
9008 : return 741; /* *andqi_1_zextdi */
9009 :
9010 : case 3:
9011 : if (
9012 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9013 : (TARGET_APX_NDD && TARGET_APX_NF
9014 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9015 : return 744; /* *andhi_1_zextdi_nf */
9016 : if (pnum_clobbers == NULL
9017 : || !
9018 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9019 : (TARGET_APX_NDD && true
9020 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9021 : return -1;
9022 : *pnum_clobbers = 1;
9023 : return 745; /* *andhi_1_zextdi */
9024 :
9025 : case 4:
9026 : if (!
9027 : #line 13452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9028 : (TARGET_64BIT
9029 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
9030 : return -1;
9031 : *pnum_clobbers = 1;
9032 : return 746; /* *andsi_1_zext */
9033 :
9034 : default:
9035 : return -1;
9036 : }
9037 :
9038 : case PLUS:
9039 : if (pnum_clobbers == NULL
9040 : || pattern443 (x4) != 0)
9041 : return -1;
9042 : x5 = XEXP (x4, 1);
9043 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
9044 : || !register_operand (operands[0], E_DImode)
9045 : || GET_MODE (x2) != E_DImode
9046 : || GET_MODE (x3) != E_SImode)
9047 : return -1;
9048 : x6 = XEXP (x4, 0);
9049 : x7 = XEXP (x6, 1);
9050 : operands[2] = x7;
9051 : if (!register_operand (operands[2], E_QImode))
9052 : return -1;
9053 : x8 = XEXP (x3, 1);
9054 : operands[1] = x8;
9055 : if (!nonimmediate_operand (operands[1], E_SImode)
9056 : || !
9057 : #line 23126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9058 : (TARGET_64BIT && TARGET_BMI2))
9059 : return -1;
9060 : *pnum_clobbers = 1;
9061 : return 1630; /* *bmi2_bzhi_zero_extendsidi_4 */
9062 :
9063 : case UNSPEC:
9064 : if (XVECLEN (x4, 0) != 2)
9065 : return -1;
9066 : x9 = XVECEXP (x4, 0, 0);
9067 : operands[1] = x9;
9068 : x10 = XVECEXP (x4, 0, 1);
9069 : operands[2] = x10;
9070 : x8 = XEXP (x3, 1);
9071 : operands[3] = x8;
9072 : switch (XINT (x4, 1))
9073 : {
9074 : case 159:
9075 : switch (GET_MODE (operands[0]))
9076 : {
9077 : case E_DImode:
9078 : switch (pattern1099 (x2,
9079 : E_DImode))
9080 : {
9081 : case 0:
9082 : if (!(
9083 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9084 : (TARGET_AVX512BW
9085 : && (8
9086 : > GET_MODE_SIZE (DImode))) &&
9087 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9088 : (TARGET_AVX512BW)))
9089 : return -1;
9090 : return 8268; /* *avx512bw_testmv64qi3_zext_mask */
9091 :
9092 : case 1:
9093 : if (!(
9094 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9095 : (TARGET_AVX512BW
9096 : && (8
9097 : > GET_MODE_SIZE (SImode))) && ((
9098 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9099 : (TARGET_AVX512BW) &&
9100 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9101 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9102 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9103 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9104 : return -1;
9105 : return 8271; /* *avx512vl_testmv32qi3_zext_mask */
9106 :
9107 : case 2:
9108 : if (!(
9109 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9110 : (TARGET_AVX512BW
9111 : && (8
9112 : > GET_MODE_SIZE (SImode))) &&
9113 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9114 : (TARGET_AVX512BW)))
9115 : return -1;
9116 : return 8277; /* *avx512bw_testmv32hi3_zext_mask */
9117 :
9118 : case 3:
9119 : if (!(
9120 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9121 : (TARGET_AVX512BW
9122 : && (8
9123 : > GET_MODE_SIZE (HImode))) && ((
9124 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9125 : (TARGET_AVX512BW) &&
9126 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9127 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9128 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9129 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9130 : return -1;
9131 : return 8274; /* *avx512vl_testmv16qi3_zext_mask */
9132 :
9133 : case 4:
9134 : if (!(
9135 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9136 : (TARGET_AVX512BW
9137 : && (8
9138 : > GET_MODE_SIZE (HImode))) && ((
9139 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9140 : (TARGET_AVX512BW) &&
9141 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9142 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9143 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9144 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9145 : return -1;
9146 : return 8280; /* *avx512vl_testmv16hi3_zext_mask */
9147 :
9148 : case 5:
9149 : if (!(
9150 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9151 : (TARGET_AVX512BW
9152 : && (8
9153 : > GET_MODE_SIZE (HImode))) &&
9154 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9155 : (TARGET_AVX512BW)))
9156 : return -1;
9157 : return 8286; /* *avx512f_testmv16si3_zext_mask */
9158 :
9159 : case 6:
9160 : if (!(
9161 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9162 : (TARGET_AVX512BW
9163 : && (8
9164 : > GET_MODE_SIZE (QImode))) && ((
9165 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9166 : (TARGET_AVX512BW) &&
9167 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9168 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9169 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9170 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9171 : return -1;
9172 : return 8283; /* *avx512vl_testmv8hi3_zext_mask */
9173 :
9174 : case 7:
9175 : if (!(
9176 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9177 : (TARGET_AVX512BW
9178 : && (8
9179 : > GET_MODE_SIZE (QImode))) && ((
9180 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9181 : (TARGET_AVX512BW) &&
9182 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9183 : (TARGET_AVX512VL)) &&
9184 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9185 : (TARGET_AVX512VL))))
9186 : return -1;
9187 : return 8289; /* *avx512vl_testmv8si3_zext_mask */
9188 :
9189 : case 8:
9190 : if (!(
9191 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9192 : (TARGET_AVX512BW
9193 : && (8
9194 : > GET_MODE_SIZE (QImode))) && ((
9195 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9196 : (TARGET_AVX512BW) &&
9197 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9198 : (TARGET_AVX512VL)) &&
9199 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9200 : (TARGET_AVX512VL))))
9201 : return -1;
9202 : return 8292; /* *avx512vl_testmv4si3_zext_mask */
9203 :
9204 : case 9:
9205 : if (!(
9206 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9207 : (TARGET_AVX512BW
9208 : && (8
9209 : > GET_MODE_SIZE (QImode))) &&
9210 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9211 : (TARGET_AVX512BW)))
9212 : return -1;
9213 : return 8295; /* *avx512f_testmv8di3_zext_mask */
9214 :
9215 : case 10:
9216 : if (!(
9217 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9218 : (TARGET_AVX512BW
9219 : && (8
9220 : > GET_MODE_SIZE (QImode))) && ((
9221 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9222 : (TARGET_AVX512BW) &&
9223 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9224 : (TARGET_AVX512VL)) &&
9225 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9226 : (TARGET_AVX512VL))))
9227 : return -1;
9228 : return 8298; /* *avx512vl_testmv4di3_zext_mask */
9229 :
9230 : case 11:
9231 : if (!(
9232 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9233 : (TARGET_AVX512BW
9234 : && (8
9235 : > GET_MODE_SIZE (QImode))) && ((
9236 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9237 : (TARGET_AVX512BW) &&
9238 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9239 : (TARGET_AVX512VL)) &&
9240 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9241 : (TARGET_AVX512VL))))
9242 : return -1;
9243 : return 8301; /* *avx512vl_testmv2di3_zext_mask */
9244 :
9245 : default:
9246 : return -1;
9247 : }
9248 :
9249 : case E_SImode:
9250 : switch (pattern1099 (x2,
9251 : E_SImode))
9252 : {
9253 : case 0:
9254 : if (!(
9255 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9256 : (TARGET_AVX512BW
9257 : && (4
9258 : > GET_MODE_SIZE (DImode))) &&
9259 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9260 : (TARGET_AVX512BW)))
9261 : return -1;
9262 : return 8269; /* *avx512bw_testmv64qi3_zext_mask */
9263 :
9264 : case 1:
9265 : if (!(
9266 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9267 : (TARGET_AVX512BW
9268 : && (4
9269 : > GET_MODE_SIZE (SImode))) && ((
9270 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9271 : (TARGET_AVX512BW) &&
9272 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9273 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9274 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9275 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9276 : return -1;
9277 : return 8272; /* *avx512vl_testmv32qi3_zext_mask */
9278 :
9279 : case 2:
9280 : if (!(
9281 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9282 : (TARGET_AVX512BW
9283 : && (4
9284 : > GET_MODE_SIZE (SImode))) &&
9285 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9286 : (TARGET_AVX512BW)))
9287 : return -1;
9288 : return 8278; /* *avx512bw_testmv32hi3_zext_mask */
9289 :
9290 : case 3:
9291 : if (!(
9292 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9293 : (TARGET_AVX512BW
9294 : && (4
9295 : > GET_MODE_SIZE (HImode))) && ((
9296 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9297 : (TARGET_AVX512BW) &&
9298 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9299 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9300 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9301 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9302 : return -1;
9303 : return 8275; /* *avx512vl_testmv16qi3_zext_mask */
9304 :
9305 : case 4:
9306 : if (!(
9307 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9308 : (TARGET_AVX512BW
9309 : && (4
9310 : > GET_MODE_SIZE (HImode))) && ((
9311 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9312 : (TARGET_AVX512BW) &&
9313 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9314 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9315 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9316 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9317 : return -1;
9318 : return 8281; /* *avx512vl_testmv16hi3_zext_mask */
9319 :
9320 : case 5:
9321 : if (!(
9322 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9323 : (TARGET_AVX512BW
9324 : && (4
9325 : > GET_MODE_SIZE (HImode))) &&
9326 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9327 : (TARGET_AVX512BW)))
9328 : return -1;
9329 : return 8287; /* *avx512f_testmv16si3_zext_mask */
9330 :
9331 : case 6:
9332 : if (!(
9333 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9334 : (TARGET_AVX512BW
9335 : && (4
9336 : > GET_MODE_SIZE (QImode))) && ((
9337 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9338 : (TARGET_AVX512BW) &&
9339 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9340 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9341 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9342 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9343 : return -1;
9344 : return 8284; /* *avx512vl_testmv8hi3_zext_mask */
9345 :
9346 : case 7:
9347 : if (!(
9348 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9349 : (TARGET_AVX512BW
9350 : && (4
9351 : > GET_MODE_SIZE (QImode))) && ((
9352 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9353 : (TARGET_AVX512BW) &&
9354 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9355 : (TARGET_AVX512VL)) &&
9356 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9357 : (TARGET_AVX512VL))))
9358 : return -1;
9359 : return 8290; /* *avx512vl_testmv8si3_zext_mask */
9360 :
9361 : case 8:
9362 : if (!(
9363 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9364 : (TARGET_AVX512BW
9365 : && (4
9366 : > GET_MODE_SIZE (QImode))) && ((
9367 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9368 : (TARGET_AVX512BW) &&
9369 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9370 : (TARGET_AVX512VL)) &&
9371 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9372 : (TARGET_AVX512VL))))
9373 : return -1;
9374 : return 8293; /* *avx512vl_testmv4si3_zext_mask */
9375 :
9376 : case 9:
9377 : if (!(
9378 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9379 : (TARGET_AVX512BW
9380 : && (4
9381 : > GET_MODE_SIZE (QImode))) &&
9382 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9383 : (TARGET_AVX512BW)))
9384 : return -1;
9385 : return 8296; /* *avx512f_testmv8di3_zext_mask */
9386 :
9387 : case 10:
9388 : if (!(
9389 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9390 : (TARGET_AVX512BW
9391 : && (4
9392 : > GET_MODE_SIZE (QImode))) && ((
9393 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9394 : (TARGET_AVX512BW) &&
9395 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9396 : (TARGET_AVX512VL)) &&
9397 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9398 : (TARGET_AVX512VL))))
9399 : return -1;
9400 : return 8299; /* *avx512vl_testmv4di3_zext_mask */
9401 :
9402 : case 11:
9403 : if (!(
9404 : #line 19558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9405 : (TARGET_AVX512BW
9406 : && (4
9407 : > GET_MODE_SIZE (QImode))) && ((
9408 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9409 : (TARGET_AVX512BW) &&
9410 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9411 : (TARGET_AVX512VL)) &&
9412 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9413 : (TARGET_AVX512VL))))
9414 : return -1;
9415 : return 8302; /* *avx512vl_testmv2di3_zext_mask */
9416 :
9417 : default:
9418 : return -1;
9419 : }
9420 :
9421 : default:
9422 : return -1;
9423 : }
9424 :
9425 : case 160:
9426 : switch (GET_MODE (operands[0]))
9427 : {
9428 : case E_DImode:
9429 : switch (pattern1099 (x2,
9430 : E_DImode))
9431 : {
9432 : case 0:
9433 : if (!(
9434 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9435 : (TARGET_AVX512BW
9436 : && (8
9437 : > GET_MODE_SIZE (DImode))) &&
9438 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9439 : (TARGET_AVX512BW)))
9440 : return -1;
9441 : return 8340; /* *avx512bw_testnmv64qi3_zext_mask */
9442 :
9443 : case 1:
9444 : if (!(
9445 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9446 : (TARGET_AVX512BW
9447 : && (8
9448 : > GET_MODE_SIZE (SImode))) && ((
9449 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9450 : (TARGET_AVX512BW) &&
9451 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9452 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9453 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9454 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9455 : return -1;
9456 : return 8343; /* *avx512vl_testnmv32qi3_zext_mask */
9457 :
9458 : case 2:
9459 : if (!(
9460 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9461 : (TARGET_AVX512BW
9462 : && (8
9463 : > GET_MODE_SIZE (SImode))) &&
9464 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9465 : (TARGET_AVX512BW)))
9466 : return -1;
9467 : return 8349; /* *avx512bw_testnmv32hi3_zext_mask */
9468 :
9469 : case 3:
9470 : if (!(
9471 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9472 : (TARGET_AVX512BW
9473 : && (8
9474 : > GET_MODE_SIZE (HImode))) && ((
9475 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9476 : (TARGET_AVX512BW) &&
9477 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9478 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9479 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9480 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9481 : return -1;
9482 : return 8346; /* *avx512vl_testnmv16qi3_zext_mask */
9483 :
9484 : case 4:
9485 : if (!(
9486 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9487 : (TARGET_AVX512BW
9488 : && (8
9489 : > GET_MODE_SIZE (HImode))) && ((
9490 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9491 : (TARGET_AVX512BW) &&
9492 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9493 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9494 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9495 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9496 : return -1;
9497 : return 8352; /* *avx512vl_testnmv16hi3_zext_mask */
9498 :
9499 : case 5:
9500 : if (!(
9501 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9502 : (TARGET_AVX512BW
9503 : && (8
9504 : > GET_MODE_SIZE (HImode))) &&
9505 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9506 : (TARGET_AVX512BW)))
9507 : return -1;
9508 : return 8358; /* *avx512f_testnmv16si3_zext_mask */
9509 :
9510 : case 6:
9511 : if (!(
9512 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9513 : (TARGET_AVX512BW
9514 : && (8
9515 : > GET_MODE_SIZE (QImode))) && ((
9516 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9517 : (TARGET_AVX512BW) &&
9518 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9519 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9520 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9521 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9522 : return -1;
9523 : return 8355; /* *avx512vl_testnmv8hi3_zext_mask */
9524 :
9525 : case 7:
9526 : if (!(
9527 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9528 : (TARGET_AVX512BW
9529 : && (8
9530 : > GET_MODE_SIZE (QImode))) && ((
9531 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9532 : (TARGET_AVX512BW) &&
9533 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9534 : (TARGET_AVX512VL)) &&
9535 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9536 : (TARGET_AVX512VL))))
9537 : return -1;
9538 : return 8361; /* *avx512vl_testnmv8si3_zext_mask */
9539 :
9540 : case 8:
9541 : if (!(
9542 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9543 : (TARGET_AVX512BW
9544 : && (8
9545 : > GET_MODE_SIZE (QImode))) && ((
9546 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9547 : (TARGET_AVX512BW) &&
9548 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9549 : (TARGET_AVX512VL)) &&
9550 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9551 : (TARGET_AVX512VL))))
9552 : return -1;
9553 : return 8364; /* *avx512vl_testnmv4si3_zext_mask */
9554 :
9555 : case 9:
9556 : if (!(
9557 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9558 : (TARGET_AVX512BW
9559 : && (8
9560 : > GET_MODE_SIZE (QImode))) &&
9561 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9562 : (TARGET_AVX512BW)))
9563 : return -1;
9564 : return 8367; /* *avx512f_testnmv8di3_zext_mask */
9565 :
9566 : case 10:
9567 : if (!(
9568 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9569 : (TARGET_AVX512BW
9570 : && (8
9571 : > GET_MODE_SIZE (QImode))) && ((
9572 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9573 : (TARGET_AVX512BW) &&
9574 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9575 : (TARGET_AVX512VL)) &&
9576 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9577 : (TARGET_AVX512VL))))
9578 : return -1;
9579 : return 8370; /* *avx512vl_testnmv4di3_zext_mask */
9580 :
9581 : case 11:
9582 : if (!(
9583 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9584 : (TARGET_AVX512BW
9585 : && (8
9586 : > GET_MODE_SIZE (QImode))) && ((
9587 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9588 : (TARGET_AVX512BW) &&
9589 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9590 : (TARGET_AVX512VL)) &&
9591 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9592 : (TARGET_AVX512VL))))
9593 : return -1;
9594 : return 8373; /* *avx512vl_testnmv2di3_zext_mask */
9595 :
9596 : default:
9597 : return -1;
9598 : }
9599 :
9600 : case E_SImode:
9601 : switch (pattern1099 (x2,
9602 : E_SImode))
9603 : {
9604 : case 0:
9605 : if (!(
9606 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9607 : (TARGET_AVX512BW
9608 : && (4
9609 : > GET_MODE_SIZE (DImode))) &&
9610 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9611 : (TARGET_AVX512BW)))
9612 : return -1;
9613 : return 8341; /* *avx512bw_testnmv64qi3_zext_mask */
9614 :
9615 : case 1:
9616 : if (!(
9617 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9618 : (TARGET_AVX512BW
9619 : && (4
9620 : > GET_MODE_SIZE (SImode))) && ((
9621 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9622 : (TARGET_AVX512BW) &&
9623 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9624 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9625 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9626 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9627 : return -1;
9628 : return 8344; /* *avx512vl_testnmv32qi3_zext_mask */
9629 :
9630 : case 2:
9631 : if (!(
9632 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9633 : (TARGET_AVX512BW
9634 : && (4
9635 : > GET_MODE_SIZE (SImode))) &&
9636 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9637 : (TARGET_AVX512BW)))
9638 : return -1;
9639 : return 8350; /* *avx512bw_testnmv32hi3_zext_mask */
9640 :
9641 : case 3:
9642 : if (!(
9643 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9644 : (TARGET_AVX512BW
9645 : && (4
9646 : > GET_MODE_SIZE (HImode))) && ((
9647 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9648 : (TARGET_AVX512BW) &&
9649 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9650 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9651 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9652 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9653 : return -1;
9654 : return 8347; /* *avx512vl_testnmv16qi3_zext_mask */
9655 :
9656 : case 4:
9657 : if (!(
9658 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9659 : (TARGET_AVX512BW
9660 : && (4
9661 : > GET_MODE_SIZE (HImode))) && ((
9662 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9663 : (TARGET_AVX512BW) &&
9664 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9665 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9666 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9667 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9668 : return -1;
9669 : return 8353; /* *avx512vl_testnmv16hi3_zext_mask */
9670 :
9671 : case 5:
9672 : if (!(
9673 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9674 : (TARGET_AVX512BW
9675 : && (4
9676 : > GET_MODE_SIZE (HImode))) &&
9677 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9678 : (TARGET_AVX512BW)))
9679 : return -1;
9680 : return 8359; /* *avx512f_testnmv16si3_zext_mask */
9681 :
9682 : case 6:
9683 : if (!(
9684 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9685 : (TARGET_AVX512BW
9686 : && (4
9687 : > GET_MODE_SIZE (QImode))) && ((
9688 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9689 : (TARGET_AVX512BW) &&
9690 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9691 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9692 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9693 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9694 : return -1;
9695 : return 8356; /* *avx512vl_testnmv8hi3_zext_mask */
9696 :
9697 : case 7:
9698 : if (!(
9699 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9700 : (TARGET_AVX512BW
9701 : && (4
9702 : > GET_MODE_SIZE (QImode))) && ((
9703 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9704 : (TARGET_AVX512BW) &&
9705 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9706 : (TARGET_AVX512VL)) &&
9707 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9708 : (TARGET_AVX512VL))))
9709 : return -1;
9710 : return 8362; /* *avx512vl_testnmv8si3_zext_mask */
9711 :
9712 : case 8:
9713 : if (!(
9714 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9715 : (TARGET_AVX512BW
9716 : && (4
9717 : > GET_MODE_SIZE (QImode))) && ((
9718 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9719 : (TARGET_AVX512BW) &&
9720 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9721 : (TARGET_AVX512VL)) &&
9722 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9723 : (TARGET_AVX512VL))))
9724 : return -1;
9725 : return 8365; /* *avx512vl_testnmv4si3_zext_mask */
9726 :
9727 : case 9:
9728 : if (!(
9729 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9730 : (TARGET_AVX512BW
9731 : && (4
9732 : > GET_MODE_SIZE (QImode))) &&
9733 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9734 : (TARGET_AVX512BW)))
9735 : return -1;
9736 : return 8368; /* *avx512f_testnmv8di3_zext_mask */
9737 :
9738 : case 10:
9739 : if (!(
9740 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9741 : (TARGET_AVX512BW
9742 : && (4
9743 : > GET_MODE_SIZE (QImode))) && ((
9744 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9745 : (TARGET_AVX512BW) &&
9746 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9747 : (TARGET_AVX512VL)) &&
9748 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9749 : (TARGET_AVX512VL))))
9750 : return -1;
9751 : return 8371; /* *avx512vl_testnmv4di3_zext_mask */
9752 :
9753 : case 11:
9754 : if (!(
9755 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9756 : (TARGET_AVX512BW
9757 : && (4
9758 : > GET_MODE_SIZE (QImode))) && ((
9759 : #line 19511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9760 : (TARGET_AVX512BW) &&
9761 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9762 : (TARGET_AVX512VL)) &&
9763 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9764 : (TARGET_AVX512VL))))
9765 : return -1;
9766 : return 8374; /* *avx512vl_testnmv2di3_zext_mask */
9767 :
9768 : default:
9769 : return -1;
9770 : }
9771 :
9772 : default:
9773 : return -1;
9774 : }
9775 :
9776 : default:
9777 : return -1;
9778 : }
9779 :
9780 : default:
9781 : return -1;
9782 : }
9783 : }
9784 :
9785 : int
9786 : recog_98 (rtx x1 ATTRIBUTE_UNUSED,
9787 : rtx_insn *insn ATTRIBUTE_UNUSED,
9788 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9789 : {
9790 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9791 : rtx x2, x3, x4;
9792 : int res ATTRIBUTE_UNUSED;
9793 : if (pnum_clobbers == NULL)
9794 : return -1;
9795 : x2 = XEXP (x1, 0);
9796 : operands[0] = x2;
9797 : x3 = XEXP (x1, 1);
9798 : x4 = XEXP (x3, 0);
9799 : operands[1] = x4;
9800 : switch (GET_MODE (operands[0]))
9801 : {
9802 : case E_DImode:
9803 : if (!register_operand (operands[0], E_DImode)
9804 : || GET_MODE (x3) != E_DImode
9805 : || !general_operand (operands[1], E_DImode))
9806 : return -1;
9807 : if ((
9808 : #line 15535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9809 : (TARGET_CMOVE
9810 : && ix86_pre_reload_split ()) &&
9811 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9812 : (!TARGET_64BIT)))
9813 : {
9814 : *pnum_clobbers = 1;
9815 : return 1027; /* *absdi2_doubleword */
9816 : }
9817 : if (!(
9818 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9819 : (TARGET_CMOVE
9820 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
9821 : && ix86_pre_reload_split ()) &&
9822 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9823 : (TARGET_64BIT)))
9824 : return -1;
9825 : *pnum_clobbers = 1;
9826 : return 1034; /* *absdi2_1 */
9827 :
9828 : case E_SImode:
9829 : if (!register_operand (operands[0], E_SImode)
9830 : || GET_MODE (x3) != E_SImode
9831 : || !general_operand (operands[1], E_SImode)
9832 : || !
9833 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9834 : (TARGET_CMOVE
9835 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
9836 : && ix86_pre_reload_split ()))
9837 : return -1;
9838 : *pnum_clobbers = 1;
9839 : return 1033; /* *abssi2_1 */
9840 :
9841 : default:
9842 : return -1;
9843 : }
9844 : }
9845 :
9846 : int
9847 : recog_101 (rtx x1 ATTRIBUTE_UNUSED,
9848 : rtx_insn *insn ATTRIBUTE_UNUSED,
9849 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9850 : {
9851 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9852 : rtx x2, x3;
9853 : int res ATTRIBUTE_UNUSED;
9854 : if (register_operand (operands[2], E_SImode))
9855 : {
9856 : x2 = XEXP (x1, 0);
9857 : operands[0] = x2;
9858 : if (register_operand (operands[0], E_SImode))
9859 : {
9860 : x3 = XEXP (x1, 1);
9861 : if (GET_MODE (x3) == E_SImode
9862 : && nonimmediate_operand (operands[1], E_SImode)
9863 : &&
9864 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9865 : (TARGET_BMI2))
9866 : return 1203; /* *bmi2_lshrsi3_1 */
9867 : }
9868 : }
9869 : x2 = XEXP (x1, 0);
9870 : operands[0] = x2;
9871 : switch (GET_MODE (operands[0]))
9872 : {
9873 : case E_DImode:
9874 : if (!register_operand (operands[0], E_DImode))
9875 : return -1;
9876 : x3 = XEXP (x1, 1);
9877 : if (GET_MODE (x3) != E_DImode)
9878 : return -1;
9879 : if (pnum_clobbers != NULL
9880 : && register_operand (operands[1], E_DImode)
9881 : && nonmemory_operand (operands[2], E_QImode)
9882 : &&
9883 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9884 : (!TARGET_64BIT))
9885 : {
9886 : *pnum_clobbers = 1;
9887 : return 1162; /* lshrdi3_doubleword */
9888 : }
9889 : if (!nonimmediate_operand (operands[1], E_DImode)
9890 : || !register_operand (operands[2], E_DImode)
9891 : || !(
9892 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9893 : (TARGET_BMI2) &&
9894 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9895 : (TARGET_64BIT)))
9896 : return -1;
9897 : return 1205; /* *bmi2_lshrdi3_1 */
9898 :
9899 : case E_SImode:
9900 : x3 = XEXP (x1, 1);
9901 : if (pattern637 (x3,
9902 : E_SImode) != 0)
9903 : return -1;
9904 : if (
9905 : #line 18353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9906 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)
9907 : && TARGET_APX_NF))
9908 : return 1212; /* *lshrsi3_1_nf */
9909 : if (pnum_clobbers == NULL
9910 : || !
9911 : #line 18353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9912 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)
9913 : && true))
9914 : return -1;
9915 : *pnum_clobbers = 1;
9916 : return 1213; /* *lshrsi3_1 */
9917 :
9918 : default:
9919 : return -1;
9920 : }
9921 : }
9922 :
9923 : int
9924 : recog_106 (rtx x1 ATTRIBUTE_UNUSED,
9925 : rtx_insn *insn ATTRIBUTE_UNUSED,
9926 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9927 : {
9928 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9929 : rtx x2, x3;
9930 : int res ATTRIBUTE_UNUSED;
9931 : switch (pattern18 (x1, pnum_clobbers))
9932 : {
9933 : case 0:
9934 : if (!
9935 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9936 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9937 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
9938 : == GET_MODE_BITSIZE (SImode)-1
9939 : && ix86_pre_reload_split ()))
9940 : return -1;
9941 : *pnum_clobbers = 1;
9942 : return 1328; /* *rotlsi3_mask_1 */
9943 :
9944 : case 1:
9945 : if (!(
9946 : #line 19131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9947 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9948 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
9949 : == GET_MODE_BITSIZE (DImode)-1
9950 : && ix86_pre_reload_split ()) &&
9951 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9952 : (TARGET_64BIT)))
9953 : return -1;
9954 : *pnum_clobbers = 1;
9955 : return 1330; /* *rotldi3_mask_1 */
9956 :
9957 : case 2:
9958 : if (!
9959 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9960 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9961 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9962 : && ix86_pre_reload_split ()))
9963 : return -1;
9964 : *pnum_clobbers = 1;
9965 : return 1344; /* *rotlsi3_add_1 */
9966 :
9967 : case 3:
9968 : if (!(
9969 : #line 19212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9970 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9971 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9972 : && ix86_pre_reload_split ()) &&
9973 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9974 : (TARGET_64BIT)))
9975 : return -1;
9976 : *pnum_clobbers = 1;
9977 : return 1346; /* *rotldi3_add_1 */
9978 :
9979 : case 4:
9980 : if (!
9981 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9982 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
9983 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9984 : && ix86_pre_reload_split ()))
9985 : return -1;
9986 : *pnum_clobbers = 1;
9987 : return 1360; /* *rotlsi3_sub_1 */
9988 :
9989 : case 5:
9990 : if (!(
9991 : #line 19281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9992 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
9993 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9994 : && ix86_pre_reload_split ()) &&
9995 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9996 : (TARGET_64BIT)))
9997 : return -1;
9998 : *pnum_clobbers = 1;
9999 : return 1362; /* *rotldi3_sub_1 */
10000 :
10001 : case 6:
10002 : x2 = XEXP (x1, 1);
10003 : x3 = XEXP (x2, 1);
10004 : switch (GET_CODE (x3))
10005 : {
10006 : case SUBREG:
10007 : switch (pattern456 (x2, pnum_clobbers))
10008 : {
10009 : case 0:
10010 : if (
10011 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10012 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
10013 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
10014 : == GET_MODE_BITSIZE (SImode)-1
10015 : && ix86_pre_reload_split ()))
10016 : {
10017 : *pnum_clobbers = 1;
10018 : return 1320; /* *rotlsi3_mask */
10019 : }
10020 : break;
10021 :
10022 : case 1:
10023 : if ((
10024 : #line 19083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10025 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
10026 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
10027 : == GET_MODE_BITSIZE (DImode)-1
10028 : && ix86_pre_reload_split ()) &&
10029 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10030 : (TARGET_64BIT)))
10031 : {
10032 : *pnum_clobbers = 1;
10033 : return 1322; /* *rotldi3_mask */
10034 : }
10035 : break;
10036 :
10037 : case 2:
10038 : if (
10039 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10040 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
10041 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10042 : && ix86_pre_reload_split ()))
10043 : {
10044 : *pnum_clobbers = 1;
10045 : return 1336; /* *rotlsi3_add */
10046 : }
10047 : break;
10048 :
10049 : case 3:
10050 : if ((
10051 : #line 19176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10052 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
10053 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10054 : && ix86_pre_reload_split ()) &&
10055 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10056 : (TARGET_64BIT)))
10057 : {
10058 : *pnum_clobbers = 1;
10059 : return 1338; /* *rotldi3_add */
10060 : }
10061 : break;
10062 :
10063 : case 4:
10064 : if (
10065 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10066 : (ix86_binary_operator_ok (ROTATE, SImode, operands)
10067 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
10068 : && ix86_pre_reload_split ()))
10069 : {
10070 : *pnum_clobbers = 1;
10071 : return 1352; /* *rotlsi3_sub */
10072 : }
10073 : break;
10074 :
10075 : case 5:
10076 : if ((
10077 : #line 19245 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10078 : (ix86_binary_operator_ok (ROTATE, DImode, operands)
10079 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
10080 : && ix86_pre_reload_split ()) &&
10081 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10082 : (TARGET_64BIT)))
10083 : {
10084 : *pnum_clobbers = 1;
10085 : return 1354; /* *rotldi3_sub */
10086 : }
10087 : break;
10088 :
10089 : default:
10090 : break;
10091 : }
10092 : break;
10093 :
10094 : case CONST_INT:
10095 : if (pnum_clobbers != NULL)
10096 : {
10097 : operands[2] = x3;
10098 : if (const_1_to_31_operand (operands[2], E_QImode)
10099 : && register_operand (operands[0], E_DImode)
10100 : && GET_MODE (x2) == E_DImode
10101 : && register_operand (operands[1], E_DImode)
10102 : &&
10103 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10104 : (!TARGET_64BIT))
10105 : {
10106 : *pnum_clobbers = 2;
10107 : return 1364; /* ix86_rotldi3_doubleword */
10108 : }
10109 : }
10110 : if (XWINT (x3, 0) == 32L
10111 : && register_operand (operands[0], E_DImode)
10112 : && GET_MODE (x2) == E_DImode
10113 : && register_operand (operands[1], E_DImode)
10114 : &&
10115 : #line 19386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10116 : (!TARGET_64BIT))
10117 : return 1368; /* rotl32di2_doubleword */
10118 : break;
10119 :
10120 : default:
10121 : break;
10122 : }
10123 : operands[2] = x3;
10124 : if (!nonmemory_operand (operands[2], E_QImode))
10125 : return -1;
10126 : switch (pattern14 (x2))
10127 : {
10128 : case 0:
10129 : if (
10130 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10131 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
10132 : && TARGET_APX_NF))
10133 : return 1374; /* *rotlsi3_1_nf */
10134 : if (pnum_clobbers == NULL
10135 : || !
10136 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10137 : (ix86_binary_operator_ok (ROTATE, SImode, operands, TARGET_APX_NDD)
10138 : && true))
10139 : return -1;
10140 : *pnum_clobbers = 1;
10141 : return 1375; /* *rotlsi3_1 */
10142 :
10143 : case 1:
10144 : if ((
10145 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10146 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
10147 : && TARGET_APX_NF) &&
10148 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10149 : (TARGET_64BIT)))
10150 : return 1378; /* *rotldi3_1_nf */
10151 : if (pnum_clobbers == NULL
10152 : || !(
10153 : #line 19437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10154 : (ix86_binary_operator_ok (ROTATE, DImode, operands, TARGET_APX_NDD)
10155 : && true) &&
10156 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10157 : (TARGET_64BIT)))
10158 : return -1;
10159 : *pnum_clobbers = 1;
10160 : return 1379; /* *rotldi3_1 */
10161 :
10162 : default:
10163 : return -1;
10164 : }
10165 :
10166 : default:
10167 : return -1;
10168 : }
10169 : }
10170 :
10171 : int
10172 : recog_114 (rtx x1 ATTRIBUTE_UNUSED,
10173 : rtx_insn *insn ATTRIBUTE_UNUSED,
10174 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10175 : {
10176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10177 : rtx x2, x3, x4, x5, x6, x7;
10178 : int res ATTRIBUTE_UNUSED;
10179 : x2 = XEXP (x1, 1);
10180 : switch (XVECLEN (x2, 0))
10181 : {
10182 : case 2:
10183 : return recog_113 (x1, insn, pnum_clobbers);
10184 :
10185 : case 1:
10186 : return recog_112 (x1, insn, pnum_clobbers);
10187 :
10188 : case 4:
10189 : if (pnum_clobbers == NULL)
10190 : return -1;
10191 : x3 = XVECEXP (x2, 0, 3);
10192 : if (GET_CODE (x3) != REG
10193 : || REGNO (x3) != 7
10194 : || GET_MODE (x3) != E_SImode)
10195 : return -1;
10196 : x4 = XEXP (x1, 0);
10197 : operands[0] = x4;
10198 : if (!register_operand (operands[0], E_SImode)
10199 : || GET_MODE (x2) != E_SImode)
10200 : return -1;
10201 : x5 = XVECEXP (x2, 0, 0);
10202 : operands[1] = x5;
10203 : x6 = XVECEXP (x2, 0, 1);
10204 : operands[2] = x6;
10205 : x7 = XVECEXP (x2, 0, 2);
10206 : operands[3] = x7;
10207 : switch (XINT (x2, 1))
10208 : {
10209 : case 21:
10210 : if (!register_operand (operands[1], E_SImode)
10211 : || !tls_symbolic_operand (operands[2], E_VOIDmode)
10212 : || !constant_call_address_operand (operands[3], E_VOIDmode)
10213 : || !
10214 : #line 23972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10215 : (!TARGET_64BIT && TARGET_GNU_TLS))
10216 : return -1;
10217 : *pnum_clobbers = 3;
10218 : return 1681; /* *tls_global_dynamic_32_gnu */
10219 :
10220 : case 23:
10221 : if (!tls_symbolic_operand (operands[1], E_VOIDmode)
10222 : || !register_operand (operands[2], E_SImode)
10223 : || !register_operand (operands[3], E_SImode)
10224 : || !
10225 : #line 24335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10226 : (!TARGET_64BIT && TARGET_GNU2_TLS))
10227 : return -1;
10228 : *pnum_clobbers = 1;
10229 : return 1697; /* *tls_dynamic_gnu2_call_32 */
10230 :
10231 : default:
10232 : return -1;
10233 : }
10234 :
10235 : case 3:
10236 : x4 = XEXP (x1, 0);
10237 : operands[0] = x4;
10238 : switch (XINT (x2, 1))
10239 : {
10240 : case 22:
10241 : if (pnum_clobbers == NULL
10242 : || GET_MODE (x2) != E_SImode)
10243 : return -1;
10244 : x7 = XVECEXP (x2, 0, 2);
10245 : if (GET_CODE (x7) != REG
10246 : || REGNO (x7) != 7
10247 : || GET_MODE (x7) != E_SImode
10248 : || !register_operand (operands[0], E_SImode))
10249 : return -1;
10250 : x5 = XVECEXP (x2, 0, 0);
10251 : operands[1] = x5;
10252 : if (!register_operand (operands[1], E_SImode))
10253 : return -1;
10254 : x6 = XVECEXP (x2, 0, 1);
10255 : operands[2] = x6;
10256 : if (!constant_call_address_operand (operands[2], E_VOIDmode)
10257 : || !
10258 : #line 24100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10259 : (!TARGET_64BIT && TARGET_GNU_TLS))
10260 : return -1;
10261 : *pnum_clobbers = 3;
10262 : return 1685; /* *tls_local_dynamic_base_32_gnu */
10263 :
10264 : case 23:
10265 : if (pnum_clobbers == NULL)
10266 : return -1;
10267 : x7 = XVECEXP (x2, 0, 2);
10268 : if (GET_CODE (x7) != REG
10269 : || REGNO (x7) != 7)
10270 : return -1;
10271 : x5 = XVECEXP (x2, 0, 0);
10272 : operands[1] = x5;
10273 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
10274 : return -1;
10275 : x6 = XVECEXP (x2, 0, 1);
10276 : operands[2] = x6;
10277 : switch (GET_MODE (operands[0]))
10278 : {
10279 : case E_SImode:
10280 : if (pattern1221 (x2,
10281 : E_SImode) != 0
10282 : || !(
10283 : #line 24398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10284 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10285 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10286 : (ptr_mode == SImode)))
10287 : return -1;
10288 : *pnum_clobbers = 1;
10289 : return 1701; /* *tls_dynamic_gnu2_call_64_si */
10290 :
10291 : case E_DImode:
10292 : if (pattern1221 (x2,
10293 : E_DImode) != 0
10294 : || !(
10295 : #line 24398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10296 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10297 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10298 : (ptr_mode == DImode)))
10299 : return -1;
10300 : *pnum_clobbers = 1;
10301 : return 1702; /* *tls_dynamic_gnu2_call_64_di */
10302 :
10303 : default:
10304 : return -1;
10305 : }
10306 :
10307 : case 60:
10308 : switch (pattern307 (x2))
10309 : {
10310 : case 0:
10311 : x7 = XVECEXP (x2, 0, 2);
10312 : operands[3] = x7;
10313 : x6 = XVECEXP (x2, 0, 1);
10314 : operands[2] = x6;
10315 : switch (pattern24 (x2))
10316 : {
10317 : case 0:
10318 : switch (GET_MODE (operands[1]))
10319 : {
10320 : case E_V32HFmode:
10321 : if (register_operand (operands[1], E_V32HFmode)
10322 : && nonimmediate_operand (operands[2], E_V32HFmode)
10323 : && const_0_to_31_operand (operands[3], E_SImode)
10324 : && (
10325 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10326 : (TARGET_AVX512F && 1) &&
10327 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10328 : (TARGET_AVX512FP16)))
10329 : return 3332; /* avx512bw_cmpv32hf3 */
10330 : break;
10331 :
10332 : case E_V32QImode:
10333 : if (const_0_to_7_operand (operands[3], E_SImode))
10334 : {
10335 : if (register_operand (operands[1], E_V32QImode)
10336 : && nonimmediate_operand (operands[2], E_V32QImode)
10337 : && (
10338 : #line 4876 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10339 : (TARGET_AVX512F) &&
10340 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10341 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10342 : return 3478; /* avx512vl_cmpv32qi3 */
10343 : if (general_operand (operands[1], E_V32QImode)
10344 : && general_operand (operands[2], E_V32QImode)
10345 : && (
10346 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10347 : (TARGET_AVX512F && ix86_pre_reload_split ()
10348 : && rtx_equal_p (operands[1], operands[2])
10349 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10350 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10351 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10352 : return 3550; /* *avx512vl_cmpv32qi3_dup_op */
10353 : }
10354 : break;
10355 :
10356 : case E_V32HImode:
10357 : if (const_0_to_7_operand (operands[3], E_SImode))
10358 : {
10359 : if (register_operand (operands[1], E_V32HImode)
10360 : && nonimmediate_operand (operands[2], E_V32HImode)
10361 : && (
10362 : #line 4876 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10363 : (TARGET_AVX512F) &&
10364 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10365 : (TARGET_AVX512BW)))
10366 : return 3482; /* avx512bw_cmpv32hi3 */
10367 : if (general_operand (operands[1], E_V32HImode)
10368 : && general_operand (operands[2], E_V32HImode)
10369 : && (
10370 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10371 : (TARGET_AVX512F && ix86_pre_reload_split ()
10372 : && rtx_equal_p (operands[1], operands[2])
10373 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10374 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10375 : (TARGET_AVX512BW)))
10376 : return 3554; /* *avx512bw_cmpv32hi3_dup_op */
10377 : }
10378 : break;
10379 :
10380 : case E_V32BFmode:
10381 : if (register_operand (operands[1], E_V32BFmode)
10382 : && nonimmediate_operand (operands[2], E_V32BFmode)
10383 : && const_0_to_31_operand (operands[3], E_VOIDmode)
10384 : &&
10385 : #line 33532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10386 : (TARGET_AVX10_2))
10387 : return 10828; /* avx10_2_cmpbf16_v32bf */
10388 : break;
10389 :
10390 : default:
10391 : break;
10392 : }
10393 : break;
10394 :
10395 : case 1:
10396 : if (const_0_to_7_operand (operands[3], E_SImode))
10397 : {
10398 : if (register_operand (operands[1], E_V64QImode)
10399 : && nonimmediate_operand (operands[2], E_V64QImode)
10400 : && (
10401 : #line 4876 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10402 : (TARGET_AVX512F) &&
10403 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10404 : (TARGET_AVX512BW)))
10405 : return 3476; /* avx512bw_cmpv64qi3 */
10406 : if (general_operand (operands[1], E_V64QImode)
10407 : && general_operand (operands[2], E_V64QImode)
10408 : && (
10409 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10410 : (TARGET_AVX512F && ix86_pre_reload_split ()
10411 : && rtx_equal_p (operands[1], operands[2])
10412 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10413 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10414 : (TARGET_AVX512BW)))
10415 : return 3548; /* *avx512bw_cmpv64qi3_dup_op */
10416 : }
10417 : break;
10418 :
10419 : default:
10420 : break;
10421 : }
10422 : if (XWINT (x7, 0) != 0L)
10423 : return -1;
10424 : operands[2] = x6;
10425 : switch (pattern997 (x2))
10426 : {
10427 : case 0:
10428 : if (!
10429 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10430 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
10431 : return -1;
10432 : return 3572; /* *avx512bw_eqv64qi3_1 */
10433 :
10434 : case 1:
10435 : if (!(
10436 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10437 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
10438 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10439 : (TARGET_AVX512VL)))
10440 : return -1;
10441 : return 3580; /* *avx512vl_eqv32qi3_1 */
10442 :
10443 : case 2:
10444 : if (!
10445 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10446 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
10447 : return -1;
10448 : return 3584; /* *avx512bw_eqv32hi3_1 */
10449 :
10450 : default:
10451 : return -1;
10452 : }
10453 :
10454 : case 1:
10455 : if (!
10456 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10457 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10458 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
10459 : && (INTVAL (operands[4]) & 3) == 0))
10460 : return -1;
10461 : return 3722; /* *avx512bw_ucmpv64qi3_1 */
10462 :
10463 : case 2:
10464 : if (!(
10465 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10466 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10467 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
10468 : && (INTVAL (operands[4]) & 3) == 0) &&
10469 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10470 : (TARGET_AVX512VL)))
10471 : return -1;
10472 : return 3726; /* *avx512vl_ucmpv32qi3_1 */
10473 :
10474 : case 3:
10475 : if (!
10476 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10477 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10478 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
10479 : && (INTVAL (operands[4]) & 3) == 0))
10480 : return -1;
10481 : return 3728; /* *avx512bw_ucmpv32hi3_1 */
10482 :
10483 : default:
10484 : return -1;
10485 : }
10486 :
10487 : case 158:
10488 : switch (pattern307 (x2))
10489 : {
10490 : case 0:
10491 : x7 = XVECEXP (x2, 0, 2);
10492 : operands[3] = x7;
10493 : if (const_0_to_7_operand (operands[3], E_SImode))
10494 : {
10495 : x6 = XVECEXP (x2, 0, 1);
10496 : operands[2] = x6;
10497 : switch (GET_MODE (operands[0]))
10498 : {
10499 : case E_DImode:
10500 : if (pattern598 (x2) == 0
10501 : && (
10502 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10503 : (TARGET_AVX512F && ix86_pre_reload_split ()
10504 : && rtx_equal_p (operands[1], operands[2])
10505 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10506 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10507 : (TARGET_AVX512BW)))
10508 : return 3549; /* *avx512bw_cmpv64qi3_dup_op */
10509 : break;
10510 :
10511 : case E_SImode:
10512 : switch (pattern599 (x2))
10513 : {
10514 : case 0:
10515 : if ((
10516 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10517 : (TARGET_AVX512F && ix86_pre_reload_split ()
10518 : && rtx_equal_p (operands[1], operands[2])
10519 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10520 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10521 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10522 : return 3551; /* *avx512vl_cmpv32qi3_dup_op */
10523 : break;
10524 :
10525 : case 1:
10526 : if ((
10527 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10528 : (TARGET_AVX512F && ix86_pre_reload_split ()
10529 : && rtx_equal_p (operands[1], operands[2])
10530 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
10531 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10532 : (TARGET_AVX512BW)))
10533 : return 3555; /* *avx512bw_cmpv32hi3_dup_op */
10534 : break;
10535 :
10536 : default:
10537 : break;
10538 : }
10539 : break;
10540 :
10541 : default:
10542 : break;
10543 : }
10544 : }
10545 : x6 = XVECEXP (x2, 0, 1);
10546 : operands[2] = x6;
10547 : if (XWINT (x7, 0) == 0L)
10548 : {
10549 : switch (pattern997 (x2))
10550 : {
10551 : case 0:
10552 : if (
10553 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10554 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
10555 : return 3574; /* *avx512bw_eqv64qi3_1 */
10556 : break;
10557 :
10558 : case 1:
10559 : if ((
10560 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10561 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
10562 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10563 : (TARGET_AVX512VL)))
10564 : return 3582; /* *avx512vl_eqv32qi3_1 */
10565 : break;
10566 :
10567 : case 2:
10568 : if (
10569 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10570 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
10571 : return 3586; /* *avx512bw_eqv32hi3_1 */
10572 : break;
10573 :
10574 : default:
10575 : break;
10576 : }
10577 : }
10578 : operands[3] = x7;
10579 : if (!const_0_to_7_operand (operands[3], E_SImode))
10580 : return -1;
10581 : switch (pattern303 (x2))
10582 : {
10583 : case 0:
10584 : if (!(
10585 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10586 : (TARGET_AVX512F) &&
10587 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10588 : (TARGET_AVX512BW)))
10589 : return -1;
10590 : return 3656; /* avx512bw_ucmpv64qi3 */
10591 :
10592 : case 1:
10593 : if (!(
10594 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10595 : (TARGET_AVX512F) &&
10596 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10597 : (TARGET_AVX512VL && TARGET_AVX512BW)))
10598 : return -1;
10599 : return 3658; /* avx512vl_ucmpv32qi3 */
10600 :
10601 : case 2:
10602 : if (!(
10603 : #line 5089 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10604 : (TARGET_AVX512F) &&
10605 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10606 : (TARGET_AVX512BW)))
10607 : return -1;
10608 : return 3662; /* avx512bw_ucmpv32hi3 */
10609 :
10610 : default:
10611 : return -1;
10612 : }
10613 :
10614 : case 1:
10615 : if (!
10616 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10617 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10618 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
10619 : && (INTVAL (operands[4]) & 1) == 0))
10620 : return -1;
10621 : return 3723; /* *avx512bw_ucmpv64qi3_1 */
10622 :
10623 : case 2:
10624 : if (!(
10625 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10626 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10627 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
10628 : && (INTVAL (operands[4]) & 1) == 0) &&
10629 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10630 : (TARGET_AVX512VL)))
10631 : return -1;
10632 : return 3727; /* *avx512vl_ucmpv32qi3_1 */
10633 :
10634 : case 3:
10635 : if (!
10636 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10637 : (TARGET_AVX512BW && ix86_pre_reload_split ()
10638 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
10639 : && (INTVAL (operands[4]) & 1) == 0))
10640 : return -1;
10641 : return 3729; /* *avx512bw_ucmpv32hi3_1 */
10642 :
10643 : default:
10644 : return -1;
10645 : }
10646 :
10647 : case 122:
10648 : if (pattern308 (x2) != 0
10649 : || !
10650 : #line 23805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10651 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
10652 : return -1;
10653 : return 8721; /* ssse3_palignrdi */
10654 :
10655 : default:
10656 : return -1;
10657 : }
10658 :
10659 : default:
10660 : return -1;
10661 : }
10662 : }
10663 :
10664 : int
10665 : recog_132 (rtx x1 ATTRIBUTE_UNUSED,
10666 : rtx_insn *insn ATTRIBUTE_UNUSED,
10667 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10668 : {
10669 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10670 : rtx x2, x3, x4, x5, x6, x7;
10671 : int res ATTRIBUTE_UNUSED;
10672 : x2 = XEXP (x1, 1);
10673 : x3 = XEXP (x2, 0);
10674 : x4 = XVECEXP (x3, 0, 0);
10675 : operands[1] = x4;
10676 : x5 = XVECEXP (x3, 0, 1);
10677 : operands[2] = x5;
10678 : x6 = XEXP (x2, 1);
10679 : operands[3] = x6;
10680 : x7 = XEXP (x2, 2);
10681 : operands[4] = x7;
10682 : switch (GET_MODE (operands[0]))
10683 : {
10684 : case E_V8SImode:
10685 : if (pattern1119 (x2,
10686 : E_QImode,
10687 : E_V8SImode) != 0
10688 : || !(
10689 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10690 : (TARGET_AVX512F) &&
10691 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10692 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
10693 : return -1;
10694 : return 9200; /* avx2_permvarv8si_mask */
10695 :
10696 : case E_V8SFmode:
10697 : if (pattern1120 (x2,
10698 : E_QImode,
10699 : E_V8SFmode,
10700 : E_V8SImode) != 0
10701 : || !(
10702 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10703 : (TARGET_AVX512F) &&
10704 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10705 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
10706 : return -1;
10707 : return 9202; /* avx2_permvarv8sf_mask */
10708 :
10709 : case E_V16SImode:
10710 : if (pattern1119 (x2,
10711 : E_HImode,
10712 : E_V16SImode) != 0
10713 : || !(
10714 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10715 : (TARGET_AVX512F) && (
10716 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10717 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10718 : #line 978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10719 : (TARGET_AVX512F))))
10720 : return -1;
10721 : return 9204; /* avx512f_permvarv16si_mask */
10722 :
10723 : case E_V16SFmode:
10724 : if (pattern1120 (x2,
10725 : E_HImode,
10726 : E_V16SFmode,
10727 : E_V16SImode) != 0
10728 : || !(
10729 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10730 : (TARGET_AVX512F) && (
10731 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10732 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10733 : #line 978 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10734 : (TARGET_AVX512F))))
10735 : return -1;
10736 : return 9206; /* avx512f_permvarv16sf_mask */
10737 :
10738 : case E_V8DImode:
10739 : if (pattern1119 (x2,
10740 : E_QImode,
10741 : E_V8DImode) != 0
10742 : || !(
10743 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10744 : (TARGET_AVX512F) && (
10745 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10746 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10747 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10748 : (TARGET_AVX512F))))
10749 : return -1;
10750 : return 9208; /* avx512f_permvarv8di_mask */
10751 :
10752 : case E_V8DFmode:
10753 : if (pattern1120 (x2,
10754 : E_QImode,
10755 : E_V8DFmode,
10756 : E_V8DImode) != 0
10757 : || !(
10758 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10759 : (TARGET_AVX512F) && (
10760 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10761 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
10762 : #line 979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10763 : (TARGET_AVX512F))))
10764 : return -1;
10765 : return 9210; /* avx512f_permvarv8df_mask */
10766 :
10767 : case E_V4DImode:
10768 : if (pattern1119 (x2,
10769 : E_QImode,
10770 : E_V4DImode) != 0
10771 : || !(
10772 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10773 : (TARGET_AVX512F) && (
10774 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10775 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10776 : #line 980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10777 : (TARGET_AVX512VL))))
10778 : return -1;
10779 : return 9212; /* avx2_permvarv4di_mask */
10780 :
10781 : case E_V4DFmode:
10782 : if (pattern1120 (x2,
10783 : E_QImode,
10784 : E_V4DFmode,
10785 : E_V4DImode) != 0
10786 : || !(
10787 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10788 : (TARGET_AVX512F) && (
10789 : #line 28251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10790 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
10791 : #line 980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10792 : (TARGET_AVX512VL))))
10793 : return -1;
10794 : return 9214; /* avx2_permvarv4df_mask */
10795 :
10796 : case E_V64QImode:
10797 : if (pattern1119 (x2,
10798 : E_DImode,
10799 : E_V64QImode) != 0
10800 : || !(
10801 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10802 : (TARGET_AVX512F) &&
10803 : #line 28271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10804 : (TARGET_AVX512VBMI && (64 == 64 || TARGET_AVX512VL))))
10805 : return -1;
10806 : return 9216; /* avx512bw_permvarv64qi_mask */
10807 :
10808 : case E_V16QImode:
10809 : if (pattern1119 (x2,
10810 : E_HImode,
10811 : E_V16QImode) != 0
10812 : || !(
10813 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10814 : (TARGET_AVX512F) && (
10815 : #line 28271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10816 : (TARGET_AVX512VBMI && (16 == 64 || TARGET_AVX512VL)) &&
10817 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10818 : (TARGET_AVX512VL))))
10819 : return -1;
10820 : return 9218; /* avx512vl_permvarv16qi_mask */
10821 :
10822 : case E_V32QImode:
10823 : if (pattern1119 (x2,
10824 : E_SImode,
10825 : E_V32QImode) != 0
10826 : || !(
10827 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10828 : (TARGET_AVX512F) && (
10829 : #line 28271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10830 : (TARGET_AVX512VBMI && (32 == 64 || TARGET_AVX512VL)) &&
10831 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10832 : (TARGET_AVX512VL))))
10833 : return -1;
10834 : return 9220; /* avx512vl_permvarv32qi_mask */
10835 :
10836 : case E_V8HImode:
10837 : if (pattern1119 (x2,
10838 : E_QImode,
10839 : E_V8HImode) != 0
10840 : || !(
10841 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10842 : (TARGET_AVX512F) && (
10843 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10844 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10845 : #line 678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10846 : (TARGET_AVX512VL))))
10847 : return -1;
10848 : return 9222; /* avx512vl_permvarv8hi_mask */
10849 :
10850 : case E_V16HImode:
10851 : if (pattern1119 (x2,
10852 : E_HImode,
10853 : E_V16HImode) != 0
10854 : || !(
10855 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10856 : (TARGET_AVX512F) && (
10857 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10858 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10859 : #line 678 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10860 : (TARGET_AVX512VL))))
10861 : return -1;
10862 : return 9224; /* avx512vl_permvarv16hi_mask */
10863 :
10864 : case E_V32HImode:
10865 : if (pattern1119 (x2,
10866 : E_SImode,
10867 : E_V32HImode) != 0
10868 : || !(
10869 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10870 : (TARGET_AVX512F) &&
10871 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10872 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10873 : return -1;
10874 : return 9226; /* avx512bw_permvarv32hi_mask */
10875 :
10876 : case E_V8HFmode:
10877 : if (pattern1120 (x2,
10878 : E_QImode,
10879 : E_V8HFmode,
10880 : E_V8HImode) != 0
10881 : || !(
10882 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10883 : (TARGET_AVX512F) && (
10884 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10885 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10886 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10887 : (TARGET_AVX512VL))))
10888 : return -1;
10889 : return 9228; /* avx512fp16_permvarv8hf_mask */
10890 :
10891 : case E_V16HFmode:
10892 : if (pattern1120 (x2,
10893 : E_HImode,
10894 : E_V16HFmode,
10895 : E_V16HImode) != 0
10896 : || !(
10897 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10898 : (TARGET_AVX512F) && (
10899 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10900 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10901 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10902 : (TARGET_AVX512VL))))
10903 : return -1;
10904 : return 9230; /* avx512vl_permvarv16hf_mask */
10905 :
10906 : case E_V32HFmode:
10907 : if (pattern1120 (x2,
10908 : E_SImode,
10909 : E_V32HFmode,
10910 : E_V32HImode) != 0
10911 : || !(
10912 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10913 : (TARGET_AVX512F) &&
10914 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10915 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10916 : return -1;
10917 : return 9232; /* avx512bw_permvarv32hf_mask */
10918 :
10919 : case E_V8BFmode:
10920 : if (pattern1120 (x2,
10921 : E_QImode,
10922 : E_V8BFmode,
10923 : E_V8HImode) != 0
10924 : || !(
10925 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10926 : (TARGET_AVX512F) && (
10927 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10928 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL)) &&
10929 : #line 680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10930 : (TARGET_AVX512VL))))
10931 : return -1;
10932 : return 9234; /* avx512vl_permvarv8bf_mask */
10933 :
10934 : case E_V16BFmode:
10935 : if (pattern1120 (x2,
10936 : E_HImode,
10937 : E_V16BFmode,
10938 : E_V16HImode) != 0
10939 : || !(
10940 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10941 : (TARGET_AVX512F) && (
10942 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10943 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
10944 : #line 680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10945 : (TARGET_AVX512VL))))
10946 : return -1;
10947 : return 9236; /* avx512vl_permvarv16bf_mask */
10948 :
10949 : case E_V32BFmode:
10950 : if (pattern1120 (x2,
10951 : E_SImode,
10952 : E_V32BFmode,
10953 : E_V32HImode) != 0
10954 : || !(
10955 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10956 : (TARGET_AVX512F) &&
10957 : #line 28284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10958 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL))))
10959 : return -1;
10960 : return 9238; /* avx512bw_permvarv32bf_mask */
10961 :
10962 : default:
10963 : return -1;
10964 : }
10965 : }
10966 :
10967 : int
10968 : recog_144 (rtx x1 ATTRIBUTE_UNUSED,
10969 : rtx_insn *insn ATTRIBUTE_UNUSED,
10970 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10971 : {
10972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10973 : rtx x2, x3, x4, x5, x6, x7, x8;
10974 : int res ATTRIBUTE_UNUSED;
10975 : x2 = XEXP (x1, 1);
10976 : x3 = XEXP (x2, 0);
10977 : x4 = XVECEXP (x3, 0, 0);
10978 : operands[1] = x4;
10979 : x5 = XVECEXP (x3, 0, 1);
10980 : operands[2] = x5;
10981 : x6 = XVECEXP (x3, 0, 2);
10982 : operands[3] = x6;
10983 : if (!const_0_to_255_operand (operands[3], E_SImode))
10984 : return -1;
10985 : x7 = XEXP (x2, 1);
10986 : operands[4] = x7;
10987 : x8 = XEXP (x2, 2);
10988 : operands[5] = x8;
10989 : switch (GET_MODE (operands[0]))
10990 : {
10991 : case E_V16SImode:
10992 : if (pattern482 (x2,
10993 : E_V16SImode,
10994 : E_HImode) != 0
10995 : || !
10996 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10997 : (TARGET_AVX512F))
10998 : return -1;
10999 : return 7111; /* avx512f_alignv16si_mask */
11000 :
11001 : case E_V8SImode:
11002 : if (pattern482 (x2,
11003 : E_V8SImode,
11004 : E_QImode) != 0
11005 : || !(
11006 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11007 : (TARGET_AVX512F) && (
11008 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11009 : (TARGET_AVX512F) &&
11010 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11011 : (TARGET_AVX512VL))))
11012 : return -1;
11013 : return 7113; /* avx512vl_alignv8si_mask */
11014 :
11015 : case E_V4SImode:
11016 : if (pattern482 (x2,
11017 : E_V4SImode,
11018 : E_QImode) != 0
11019 : || !(
11020 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11021 : (TARGET_AVX512F) && (
11022 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11023 : (TARGET_AVX512F) &&
11024 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11025 : (TARGET_AVX512VL))))
11026 : return -1;
11027 : return 7115; /* avx512vl_alignv4si_mask */
11028 :
11029 : case E_V8DImode:
11030 : if (pattern482 (x2,
11031 : E_V8DImode,
11032 : E_QImode) != 0
11033 : || !
11034 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11035 : (TARGET_AVX512F))
11036 : return -1;
11037 : return 7117; /* avx512f_alignv8di_mask */
11038 :
11039 : case E_V4DImode:
11040 : if (pattern482 (x2,
11041 : E_V4DImode,
11042 : E_QImode) != 0
11043 : || !(
11044 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11045 : (TARGET_AVX512F) && (
11046 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11047 : (TARGET_AVX512F) &&
11048 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11049 : (TARGET_AVX512VL))))
11050 : return -1;
11051 : return 7119; /* avx512vl_alignv4di_mask */
11052 :
11053 : case E_V2DImode:
11054 : if (pattern482 (x2,
11055 : E_V2DImode,
11056 : E_QImode) != 0
11057 : || !(
11058 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11059 : (TARGET_AVX512F) && (
11060 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11061 : (TARGET_AVX512F) &&
11062 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11063 : (TARGET_AVX512VL))))
11064 : return -1;
11065 : return 7121; /* avx512vl_alignv2di_mask */
11066 :
11067 : default:
11068 : return -1;
11069 : }
11070 : }
11071 :
11072 : int
11073 : recog_151 (rtx x1 ATTRIBUTE_UNUSED,
11074 : rtx_insn *insn ATTRIBUTE_UNUSED,
11075 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11076 : {
11077 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11078 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11079 : rtx x10, x11, x12;
11080 : int res ATTRIBUTE_UNUSED;
11081 : x2 = XEXP (x1, 1);
11082 : x3 = XEXP (x2, 0);
11083 : x4 = XEXP (x3, 0);
11084 : switch (XVECLEN (x4, 0))
11085 : {
11086 : case 1:
11087 : x5 = XEXP (x2, 2);
11088 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11089 : return -1;
11090 : x6 = XVECEXP (x4, 0, 0);
11091 : operands[1] = x6;
11092 : x7 = XEXP (x3, 1);
11093 : operands[3] = x7;
11094 : x8 = XEXP (x3, 2);
11095 : operands[4] = x8;
11096 : if (!register_operand (operands[4], E_QImode))
11097 : return -1;
11098 : x9 = XEXP (x2, 1);
11099 : operands[2] = x9;
11100 : switch (XINT (x4, 1))
11101 : {
11102 : case 55:
11103 : if (pattern1292 (x2) != 0
11104 : || !(
11105 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11106 : (TARGET_AVX512F) &&
11107 : #line 3022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_AVX512FP16)))
11109 : return -1;
11110 : return 2955; /* avx512fp16_vmrcpv8hf2_mask */
11111 :
11112 : case 162:
11113 : switch (GET_MODE (operands[0]))
11114 : {
11115 : case E_V4SFmode:
11116 : if (pattern1381 (x2,
11117 : E_V4SFmode) != 0
11118 : || !
11119 : #line 3080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11120 : (TARGET_AVX512F))
11121 : return -1;
11122 : return 2971; /* srcp14v4sf_mask */
11123 :
11124 : case E_V2DFmode:
11125 : if (pattern1381 (x2,
11126 : E_V2DFmode) != 0
11127 : || !(
11128 : #line 3080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11129 : (TARGET_AVX512F) &&
11130 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11131 : (TARGET_SSE2)))
11132 : return -1;
11133 : return 2972; /* srcp14v2df_mask */
11134 :
11135 : default:
11136 : return -1;
11137 : }
11138 :
11139 : case 163:
11140 : switch (GET_MODE (operands[0]))
11141 : {
11142 : case E_V4SFmode:
11143 : if (pattern1381 (x2,
11144 : E_V4SFmode) != 0
11145 : || !
11146 : #line 3240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11147 : (TARGET_AVX512F))
11148 : return -1;
11149 : return 3043; /* rsqrt14_v4sf_mask */
11150 :
11151 : case E_V2DFmode:
11152 : if (pattern1381 (x2,
11153 : E_V2DFmode) != 0
11154 : || !(
11155 : #line 3240 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11156 : (TARGET_AVX512F) &&
11157 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11158 : (TARGET_SSE2)))
11159 : return -1;
11160 : return 3044; /* rsqrt14_v2df_mask */
11161 :
11162 : default:
11163 : return -1;
11164 : }
11165 :
11166 : case 56:
11167 : if (pattern1292 (x2) != 0
11168 : || !(
11169 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11170 : (TARGET_AVX512F) &&
11171 : #line 3289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11172 : (TARGET_AVX512FP16)))
11173 : return -1;
11174 : return 3048; /* avx512fp16_vmrsqrtv8hf2_mask */
11175 :
11176 : default:
11177 : return -1;
11178 : }
11179 :
11180 : case 2:
11181 : x5 = XEXP (x2, 2);
11182 : if (GET_CODE (x5) != CONST_INT)
11183 : return -1;
11184 : switch (XINT (x4, 1))
11185 : {
11186 : case 64:
11187 : switch (pattern776 (x2))
11188 : {
11189 : case 0:
11190 : if (!(
11191 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11192 : (TARGET_AVX512F) && (
11193 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11194 : (TARGET_SSE) &&
11195 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11196 : (TARGET_AVX512FP16))))
11197 : return -1;
11198 : return 3199; /* avx512fp16_ieee_vmmaxv8hf3_mask */
11199 :
11200 : case 1:
11201 : if (!(
11202 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11203 : (TARGET_AVX512F) &&
11204 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11205 : (TARGET_SSE)))
11206 : return -1;
11207 : return 3207; /* sse_ieee_vmmaxv4sf3_mask */
11208 :
11209 : case 2:
11210 : if (!(
11211 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11212 : (TARGET_AVX512F) && (
11213 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11214 : (TARGET_SSE) &&
11215 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11216 : (TARGET_SSE2))))
11217 : return -1;
11218 : return 3215; /* sse2_ieee_vmmaxv2df3_mask */
11219 :
11220 : default:
11221 : return -1;
11222 : }
11223 :
11224 : case 63:
11225 : switch (pattern776 (x2))
11226 : {
11227 : case 0:
11228 : if (!(
11229 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11230 : (TARGET_AVX512F) && (
11231 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11232 : (TARGET_SSE) &&
11233 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11234 : (TARGET_AVX512FP16))))
11235 : return -1;
11236 : return 3203; /* avx512fp16_ieee_vmminv8hf3_mask */
11237 :
11238 : case 1:
11239 : if (!(
11240 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11241 : (TARGET_AVX512F) &&
11242 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11243 : (TARGET_SSE)))
11244 : return -1;
11245 : return 3211; /* sse_ieee_vmminv4sf3_mask */
11246 :
11247 : case 2:
11248 : if (!(
11249 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11250 : (TARGET_AVX512F) && (
11251 : #line 3588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11252 : (TARGET_SSE) &&
11253 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11254 : (TARGET_SSE2))))
11255 : return -1;
11256 : return 3219; /* sse2_ieee_vmminv2df3_mask */
11257 :
11258 : default:
11259 : return -1;
11260 : }
11261 :
11262 : case 222:
11263 : if (pattern777 (x2) != 0
11264 : || !(
11265 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11266 : (TARGET_AVX512F) &&
11267 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11268 : (TARGET_AVX512FP16)))
11269 : return -1;
11270 : return 4446; /* avx512fp16_fmulcsh_v8hf_mask */
11271 :
11272 : case 223:
11273 : if (pattern777 (x2) != 0
11274 : || !(
11275 : #line 389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11276 : (TARGET_AVX512F) &&
11277 : #line 7926 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11278 : (TARGET_AVX512FP16)))
11279 : return -1;
11280 : return 4450; /* avx512fp16_fcmulcsh_v8hf_mask */
11281 :
11282 : case 59:
11283 : switch (pattern776 (x2))
11284 : {
11285 : case 0:
11286 : if (!(
11287 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11288 : (TARGET_AVX512F) && (
11289 : #line 14013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11290 : (TARGET_AVX512F) &&
11291 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11292 : (TARGET_AVX512FP16))))
11293 : return -1;
11294 : return 5438; /* avx512f_vmscalefv8hf_mask */
11295 :
11296 : case 1:
11297 : if (!
11298 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11299 : (TARGET_AVX512F))
11300 : return -1;
11301 : return 5442; /* avx512f_vmscalefv4sf_mask */
11302 :
11303 : case 2:
11304 : if (!(
11305 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11306 : (TARGET_AVX512F) && (
11307 : #line 14013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11308 : (TARGET_AVX512F) &&
11309 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11310 : (TARGET_SSE2))))
11311 : return -1;
11312 : return 5446; /* avx512f_vmscalefv2df_mask */
11313 :
11314 : default:
11315 : return -1;
11316 : }
11317 :
11318 : case 166:
11319 : switch (pattern776 (x2))
11320 : {
11321 : case 0:
11322 : if (!(
11323 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11324 : (TARGET_AVX512F) && (
11325 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11326 : (TARGET_AVX512F) &&
11327 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11328 : (TARGET_AVX512FP16))))
11329 : return -1;
11330 : return 7099; /* avx512f_sgetexpv8hf_mask */
11331 :
11332 : case 1:
11333 : if (!
11334 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11335 : (TARGET_AVX512F))
11336 : return -1;
11337 : return 7103; /* avx512f_sgetexpv4sf_mask */
11338 :
11339 : case 2:
11340 : if (!(
11341 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11342 : (TARGET_AVX512F) && (
11343 : #line 14446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11344 : (TARGET_AVX512F) &&
11345 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11346 : (TARGET_SSE2))))
11347 : return -1;
11348 : return 7107; /* avx512f_sgetexpv2df_mask */
11349 :
11350 : default:
11351 : return -1;
11352 : }
11353 :
11354 : case 95:
11355 : if (XWINT (x5, 0) != 1L)
11356 : return -1;
11357 : x6 = XVECEXP (x4, 0, 0);
11358 : operands[2] = x6;
11359 : x10 = XVECEXP (x4, 0, 1);
11360 : operands[3] = x10;
11361 : if (!const_0_to_255_operand (operands[3], E_SImode))
11362 : return -1;
11363 : x7 = XEXP (x3, 1);
11364 : operands[4] = x7;
11365 : x8 = XEXP (x3, 2);
11366 : operands[5] = x8;
11367 : if (!register_operand (operands[5], E_QImode))
11368 : return -1;
11369 : x9 = XEXP (x2, 1);
11370 : operands[1] = x9;
11371 : switch (GET_MODE (operands[0]))
11372 : {
11373 : case E_V8HFmode:
11374 : if (pattern1553 (x2,
11375 : E_V8HFmode) != 0
11376 : || !(
11377 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11378 : (TARGET_AVX512F) && (
11379 : #line 14641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11380 : (TARGET_AVX512F) &&
11381 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11382 : (TARGET_AVX512FP16))))
11383 : return -1;
11384 : return 7215; /* avx512f_rndscalev8hf_mask */
11385 :
11386 : case E_V4SFmode:
11387 : if (pattern1553 (x2,
11388 : E_V4SFmode) != 0
11389 : || !
11390 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11391 : (TARGET_AVX512F))
11392 : return -1;
11393 : return 7219; /* avx512f_rndscalev4sf_mask */
11394 :
11395 : case E_V2DFmode:
11396 : if (pattern1553 (x2,
11397 : E_V2DFmode) != 0
11398 : || !(
11399 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11400 : (TARGET_AVX512F) && (
11401 : #line 14641 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11402 : (TARGET_AVX512F) &&
11403 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11404 : (TARGET_SSE2))))
11405 : return -1;
11406 : return 7223; /* avx512f_rndscalev2df_mask */
11407 :
11408 : default:
11409 : return -1;
11410 : }
11411 :
11412 : default:
11413 : return -1;
11414 : }
11415 :
11416 : case 3:
11417 : x5 = XEXP (x2, 2);
11418 : if (GET_CODE (x5) != CONST_INT)
11419 : return -1;
11420 : x6 = XVECEXP (x4, 0, 0);
11421 : operands[1] = x6;
11422 : x10 = XVECEXP (x4, 0, 1);
11423 : operands[2] = x10;
11424 : x11 = XVECEXP (x4, 0, 2);
11425 : operands[3] = x11;
11426 : switch (XINT (x4, 1))
11427 : {
11428 : case 193:
11429 : switch (pattern1126 (x2))
11430 : {
11431 : case 0:
11432 : if (!(
11433 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11434 : (TARGET_AVX512F) && (
11435 : #line 4310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11436 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
11437 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11438 : (TARGET_AVX512FP16))))
11439 : return -1;
11440 : return 3273; /* reducesv8hf_mask */
11441 :
11442 : case 1:
11443 : if (!(
11444 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11445 : (TARGET_AVX512F) &&
11446 : #line 4310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11447 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode)))))
11448 : return -1;
11449 : return 3277; /* reducesv4sf_mask */
11450 :
11451 : case 2:
11452 : if (!(
11453 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11454 : (TARGET_AVX512F) && (
11455 : #line 4310 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11456 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
11457 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11458 : (TARGET_SSE2))))
11459 : return -1;
11460 : return 3281; /* reducesv2df_mask */
11461 :
11462 : default:
11463 : return -1;
11464 : }
11465 :
11466 : case 218:
11467 : switch (pattern1127 (x2))
11468 : {
11469 : case 0:
11470 : if (!(
11471 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11472 : (TARGET_AVX512F) &&
11473 : #line 7891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11474 : (TARGET_AVX512FP16)))
11475 : return -1;
11476 : return 4433; /* avx512fp16_fma_fmaddcsh_v8hf_maskz */
11477 :
11478 : case 1:
11479 : if (!
11480 : #line 7911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11481 : (TARGET_AVX512FP16))
11482 : return -1;
11483 : return 4440; /* avx512fp16_fmaddcsh_v8hf_mask */
11484 :
11485 : default:
11486 : return -1;
11487 : }
11488 :
11489 : case 220:
11490 : switch (pattern1127 (x2))
11491 : {
11492 : case 0:
11493 : if (!(
11494 : #line 371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11495 : (TARGET_AVX512F) &&
11496 : #line 7891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11497 : (TARGET_AVX512FP16)))
11498 : return -1;
11499 : return 4437; /* avx512fp16_fma_fcmaddcsh_v8hf_maskz */
11500 :
11501 : case 1:
11502 : if (!
11503 : #line 7911 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11504 : (TARGET_AVX512FP16))
11505 : return -1;
11506 : return 4442; /* avx512fp16_fcmaddcsh_v8hf_mask */
11507 :
11508 : default:
11509 : return -1;
11510 : }
11511 :
11512 : case 195:
11513 : if (XWINT (x5, 0) != 1L
11514 : || !const_0_to_15_operand (operands[3], E_SImode))
11515 : return -1;
11516 : x7 = XEXP (x3, 1);
11517 : operands[4] = x7;
11518 : x8 = XEXP (x3, 2);
11519 : operands[5] = x8;
11520 : if (!register_operand (operands[5], E_QImode))
11521 : return -1;
11522 : x9 = XEXP (x2, 1);
11523 : if (!rtx_equal_p (x9, operands[1]))
11524 : return -1;
11525 : switch (GET_MODE (operands[0]))
11526 : {
11527 : case E_V4SFmode:
11528 : if (pattern1124 (x2,
11529 : E_V4SFmode) != 0
11530 : || !(
11531 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11532 : (TARGET_AVX512F) &&
11533 : #line 30888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11534 : (TARGET_AVX512DQ)))
11535 : return -1;
11536 : return 10079; /* avx512dq_rangesv4sf_mask */
11537 :
11538 : case E_V2DFmode:
11539 : if (pattern1124 (x2,
11540 : E_V2DFmode) != 0
11541 : || !(
11542 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11543 : (TARGET_AVX512F) && (
11544 : #line 30888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11545 : (TARGET_AVX512DQ) &&
11546 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11547 : (TARGET_SSE2))))
11548 : return -1;
11549 : return 10083; /* avx512dq_rangesv2df_mask */
11550 :
11551 : default:
11552 : return -1;
11553 : }
11554 :
11555 : case 167:
11556 : if (XWINT (x5, 0) != 1L
11557 : || !const_0_to_15_operand (operands[3], E_SImode))
11558 : return -1;
11559 : switch (pattern1125 (x2))
11560 : {
11561 : case 0:
11562 : if (!(
11563 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11564 : (TARGET_AVX512F) && (
11565 : #line 30956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11566 : (TARGET_AVX512F) &&
11567 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11568 : (TARGET_AVX512FP16))))
11569 : return -1;
11570 : return 10147; /* avx512f_vgetmantv8hf_mask */
11571 :
11572 : case 1:
11573 : if (!
11574 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11575 : (TARGET_AVX512F))
11576 : return -1;
11577 : return 10151; /* avx512f_vgetmantv4sf_mask */
11578 :
11579 : case 2:
11580 : if (!(
11581 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11582 : (TARGET_AVX512F) && (
11583 : #line 30956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11584 : (TARGET_AVX512F) &&
11585 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11586 : (TARGET_SSE2))))
11587 : return -1;
11588 : return 10155; /* avx512f_vgetmantv2df_mask */
11589 :
11590 : default:
11591 : return -1;
11592 : }
11593 :
11594 : case 279:
11595 : switch (pattern1126 (x2))
11596 : {
11597 : case 0:
11598 : if (!(
11599 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11600 : (TARGET_AVX512F) && (
11601 : #line 33741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11602 : (TARGET_AVX10_2) &&
11603 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11604 : (TARGET_AVX512FP16))))
11605 : return -1;
11606 : return 11045; /* avx10_2_minmaxsv8hf_mask */
11607 :
11608 : case 1:
11609 : if (!(
11610 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11611 : (TARGET_AVX512F) &&
11612 : #line 33741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11613 : (TARGET_AVX10_2)))
11614 : return -1;
11615 : return 11049; /* avx10_2_minmaxsv4sf_mask */
11616 :
11617 : case 2:
11618 : if (!(
11619 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11620 : (TARGET_AVX512F) && (
11621 : #line 33741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11622 : (TARGET_AVX10_2) &&
11623 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11624 : (TARGET_SSE2))))
11625 : return -1;
11626 : return 11053; /* avx10_2_minmaxsv2df_mask */
11627 :
11628 : default:
11629 : return -1;
11630 : }
11631 :
11632 : default:
11633 : return -1;
11634 : }
11635 :
11636 : case 4:
11637 : if (XINT (x4, 1) != 164)
11638 : return -1;
11639 : x6 = XVECEXP (x4, 0, 0);
11640 : operands[1] = x6;
11641 : x10 = XVECEXP (x4, 0, 1);
11642 : operands[2] = x10;
11643 : x11 = XVECEXP (x4, 0, 2);
11644 : operands[3] = x11;
11645 : x12 = XVECEXP (x4, 0, 3);
11646 : operands[4] = x12;
11647 : if (!const_0_to_255_operand (operands[4], E_SImode))
11648 : return -1;
11649 : x7 = XEXP (x3, 1);
11650 : switch (GET_CODE (x7))
11651 : {
11652 : case CONST_INT:
11653 : case CONST_DOUBLE:
11654 : case CONST_VECTOR:
11655 : operands[5] = x7;
11656 : x5 = XEXP (x2, 2);
11657 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11658 : return -1;
11659 : x8 = XEXP (x3, 2);
11660 : operands[6] = x8;
11661 : if (!register_operand (operands[6], E_QImode))
11662 : return -1;
11663 : x9 = XEXP (x2, 1);
11664 : if (!rtx_equal_p (x9, operands[2]))
11665 : return -1;
11666 : switch (GET_MODE (operands[0]))
11667 : {
11668 : case E_V4SFmode:
11669 : if (pattern1659 (x2,
11670 : E_V4SFmode,
11671 : E_V4SImode) != 0
11672 : || !
11673 : #line 154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11674 : (TARGET_AVX512F))
11675 : return -1;
11676 : return 7168; /* avx512f_sfixupimmv4sf_maskz_1 */
11677 :
11678 : case E_V2DFmode:
11679 : if (pattern1659 (x2,
11680 : E_V2DFmode,
11681 : E_V2DImode) != 0
11682 : || !(
11683 : #line 154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11684 : (TARGET_AVX512F) && (
11685 : #line 14596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11686 : (TARGET_AVX512F) &&
11687 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11688 : (TARGET_SSE2))))
11689 : return -1;
11690 : return 7172; /* avx512f_sfixupimmv2df_maskz_1 */
11691 :
11692 : default:
11693 : return -1;
11694 : }
11695 :
11696 : case REG:
11697 : case SUBREG:
11698 : if (!rtx_equal_p (x7, operands[2]))
11699 : return -1;
11700 : x8 = XEXP (x3, 2);
11701 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11702 : return -1;
11703 : x5 = XEXP (x2, 2);
11704 : operands[5] = x5;
11705 : if (!register_operand (operands[5], E_QImode))
11706 : return -1;
11707 : x9 = XEXP (x2, 1);
11708 : if (!rtx_equal_p (x9, operands[1]))
11709 : return -1;
11710 : switch (GET_MODE (operands[0]))
11711 : {
11712 : case E_V4SFmode:
11713 : if (pattern1660 (x2,
11714 : E_V4SImode,
11715 : E_V4SFmode) != 0
11716 : || !
11717 : #line 14615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11718 : (TARGET_AVX512F))
11719 : return -1;
11720 : return 7174; /* avx512f_sfixupimmv4sf_mask */
11721 :
11722 : case E_V2DFmode:
11723 : if (pattern1660 (x2,
11724 : E_V2DImode,
11725 : E_V2DFmode) != 0
11726 : || !(
11727 : #line 14615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11728 : (TARGET_AVX512F) &&
11729 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11730 : (TARGET_SSE2)))
11731 : return -1;
11732 : return 7176; /* avx512f_sfixupimmv2df_mask */
11733 :
11734 : default:
11735 : return -1;
11736 : }
11737 :
11738 : default:
11739 : return -1;
11740 : }
11741 :
11742 : default:
11743 : return -1;
11744 : }
11745 : }
11746 :
11747 : int
11748 : recog_164 (rtx x1 ATTRIBUTE_UNUSED,
11749 : rtx_insn *insn ATTRIBUTE_UNUSED,
11750 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11751 : {
11752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11753 : rtx x2, x3, x4, x5, x6;
11754 : int res ATTRIBUTE_UNUSED;
11755 : x2 = XEXP (x1, 1);
11756 : x3 = XEXP (x2, 0);
11757 : x4 = XEXP (x3, 0);
11758 : x5 = XEXP (x4, 0);
11759 : operands[1] = x5;
11760 : switch (pattern652 (x2))
11761 : {
11762 : case 0:
11763 : if (pattern1395 (x2,
11764 : E_V32HFmode,
11765 : E_SImode) != 0
11766 : || !(
11767 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11768 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1) &&
11769 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11770 : (TARGET_AVX512FP16)))
11771 : return -1;
11772 : return 4009; /* fma_fnmadd_v32hf_maskz_1 */
11773 :
11774 : case 1:
11775 : if (pattern1395 (x2,
11776 : E_V16HFmode,
11777 : E_HImode) != 0
11778 : || !(
11779 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11780 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11781 : #line 6334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11782 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11783 : return -1;
11784 : return 4013; /* fma_fnmadd_v16hf_maskz_1 */
11785 :
11786 : case 2:
11787 : if (pattern1395 (x2,
11788 : E_V8HFmode,
11789 : E_QImode) != 0
11790 : || !(
11791 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11792 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11793 : #line 6335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11794 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11795 : return -1;
11796 : return 4015; /* fma_fnmadd_v8hf_maskz_1 */
11797 :
11798 : case 3:
11799 : if (pattern1395 (x2,
11800 : E_V16SFmode,
11801 : E_HImode) != 0
11802 : || !
11803 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11804 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11805 : return -1;
11806 : return 4019; /* fma_fnmadd_v16sf_maskz_1 */
11807 :
11808 : case 4:
11809 : if (pattern1395 (x2,
11810 : E_V8SFmode,
11811 : E_QImode) != 0
11812 : || !(
11813 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11814 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11815 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11816 : (TARGET_AVX512VL)))
11817 : return -1;
11818 : return 4023; /* fma_fnmadd_v8sf_maskz_1 */
11819 :
11820 : case 5:
11821 : if (pattern1395 (x2,
11822 : E_V4SFmode,
11823 : E_QImode) != 0
11824 : || !(
11825 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11826 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11827 : #line 6337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11828 : (TARGET_AVX512VL)))
11829 : return -1;
11830 : return 4025; /* fma_fnmadd_v4sf_maskz_1 */
11831 :
11832 : case 6:
11833 : if (pattern1395 (x2,
11834 : E_V8DFmode,
11835 : E_QImode) != 0
11836 : || !
11837 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11838 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && 1))
11839 : return -1;
11840 : return 4028; /* fma_fnmadd_v8df_maskz_1 */
11841 :
11842 : case 7:
11843 : if (pattern1395 (x2,
11844 : E_V4DFmode,
11845 : E_QImode) != 0
11846 : || !(
11847 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11848 : (TARGET_AVX512F && (32 == 64 || TARGET_AVX512VL) && 1) &&
11849 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11850 : (TARGET_AVX512VL)))
11851 : return -1;
11852 : return 4032; /* fma_fnmadd_v4df_maskz_1 */
11853 :
11854 : case 8:
11855 : if (pattern1395 (x2,
11856 : E_V2DFmode,
11857 : E_QImode) != 0
11858 : || !(
11859 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11860 : (TARGET_AVX512F && (16 == 64 || TARGET_AVX512VL) && 1) &&
11861 : #line 6338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11862 : (TARGET_AVX512VL)))
11863 : return -1;
11864 : return 4034; /* fma_fnmadd_v2df_maskz_1 */
11865 :
11866 : case 9:
11867 : if (pattern1396 (x2,
11868 : E_SImode,
11869 : E_V32BFmode) != 0
11870 : || !
11871 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11872 : (TARGET_AVX10_2))
11873 : return -1;
11874 : return 10745; /* avx10_2_fnmaddbf16_v32bf_maskz_1 */
11875 :
11876 : case 10:
11877 : if (pattern1396 (x2,
11878 : E_HImode,
11879 : E_V16BFmode) != 0
11880 : || !
11881 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11882 : (TARGET_AVX10_2))
11883 : return -1;
11884 : return 10747; /* avx10_2_fnmaddbf16_v16bf_maskz_1 */
11885 :
11886 : case 11:
11887 : if (pattern1396 (x2,
11888 : E_QImode,
11889 : E_V8BFmode) != 0
11890 : || !
11891 : #line 33284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11892 : (TARGET_AVX10_2))
11893 : return -1;
11894 : return 10749; /* avx10_2_fnmaddbf16_v8bf_maskz_1 */
11895 :
11896 : case 12:
11897 : if (pattern1397 (x2,
11898 : E_V4SFmode) != 0
11899 : || !
11900 : #line 7391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11901 : (TARGET_FMA4))
11902 : return -1;
11903 : return 4364; /* *fma4i_vmfnmadd_v4sf */
11904 :
11905 : case 13:
11906 : if (pattern1397 (x2,
11907 : E_V2DFmode) != 0
11908 : || !(
11909 : #line 7391 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11910 : (TARGET_FMA4) &&
11911 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11912 : (TARGET_SSE2)))
11913 : return -1;
11914 : return 4365; /* *fma4i_vmfnmadd_v2df */
11915 :
11916 : case 14:
11917 : if (pattern1303 (x2,
11918 : E_V32HFmode,
11919 : E_SImode) != 0)
11920 : return -1;
11921 : if (nonimmediate_operand (operands[1], E_V32HFmode)
11922 : && vector_operand (operands[3], E_V32HFmode))
11923 : {
11924 : x6 = XEXP (x2, 1);
11925 : if (rtx_equal_p (x6, operands[1])
11926 : && (
11927 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11928 : (TARGET_AVX512F && 1) &&
11929 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11930 : (TARGET_AVX512FP16)))
11931 : return 4035; /* avx512bw_fnmadd_v32hf_mask */
11932 : }
11933 : if (!vector_operand (operands[1], E_V32HFmode)
11934 : || !nonimmediate_operand (operands[3], E_V32HFmode))
11935 : return -1;
11936 : x6 = XEXP (x2, 1);
11937 : if (!rtx_equal_p (x6, operands[3])
11938 : || !(
11939 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11940 : (TARGET_AVX512F && 1) &&
11941 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11942 : (TARGET_AVX512FP16)))
11943 : return -1;
11944 : return 4047; /* avx512bw_fnmadd_v32hf_mask3 */
11945 :
11946 : case 15:
11947 : if (pattern1303 (x2,
11948 : E_V16HFmode,
11949 : E_HImode) != 0)
11950 : return -1;
11951 : if (nonimmediate_operand (operands[1], E_V16HFmode)
11952 : && vector_operand (operands[3], E_V16HFmode))
11953 : {
11954 : x6 = XEXP (x2, 1);
11955 : if (rtx_equal_p (x6, operands[1])
11956 : && (
11957 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11958 : (TARGET_AVX512F && 1) &&
11959 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11960 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11961 : return 4037; /* avx512vl_fnmadd_v16hf_mask */
11962 : }
11963 : if (!vector_operand (operands[1], E_V16HFmode)
11964 : || !nonimmediate_operand (operands[3], E_V16HFmode))
11965 : return -1;
11966 : x6 = XEXP (x2, 1);
11967 : if (!rtx_equal_p (x6, operands[3])
11968 : || !(
11969 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11970 : (TARGET_AVX512F && 1) &&
11971 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11972 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11973 : return -1;
11974 : return 4049; /* avx512vl_fnmadd_v16hf_mask3 */
11975 :
11976 : case 16:
11977 : if (pattern1303 (x2,
11978 : E_V8HFmode,
11979 : E_QImode) != 0)
11980 : return -1;
11981 : if (nonimmediate_operand (operands[1], E_V8HFmode)
11982 : && vector_operand (operands[3], E_V8HFmode))
11983 : {
11984 : x6 = XEXP (x2, 1);
11985 : if (rtx_equal_p (x6, operands[1])
11986 : && (
11987 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11988 : (TARGET_AVX512F && 1) &&
11989 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11990 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11991 : return 4038; /* avx512fp16_fnmadd_v8hf_mask */
11992 : }
11993 : if (!vector_operand (operands[1], E_V8HFmode)
11994 : || !nonimmediate_operand (operands[3], E_V8HFmode))
11995 : return -1;
11996 : x6 = XEXP (x2, 1);
11997 : if (!rtx_equal_p (x6, operands[3])
11998 : || !(
11999 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12000 : (TARGET_AVX512F && 1) &&
12001 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12002 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
12003 : return -1;
12004 : return 4050; /* avx512fp16_fnmadd_v8hf_mask3 */
12005 :
12006 : case 17:
12007 : if (pattern1303 (x2,
12008 : E_V16SFmode,
12009 : E_HImode) != 0)
12010 : return -1;
12011 : if (nonimmediate_operand (operands[1], E_V16SFmode)
12012 : && vector_operand (operands[3], E_V16SFmode))
12013 : {
12014 : x6 = XEXP (x2, 1);
12015 : if (rtx_equal_p (x6, operands[1])
12016 : &&
12017 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12018 : (TARGET_AVX512F && 1))
12019 : return 4039; /* avx512f_fnmadd_v16sf_mask */
12020 : }
12021 : if (!vector_operand (operands[1], E_V16SFmode)
12022 : || !nonimmediate_operand (operands[3], E_V16SFmode))
12023 : return -1;
12024 : x6 = XEXP (x2, 1);
12025 : if (!rtx_equal_p (x6, operands[3])
12026 : || !
12027 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12028 : (TARGET_AVX512F && 1))
12029 : return -1;
12030 : return 4051; /* avx512f_fnmadd_v16sf_mask3 */
12031 :
12032 : case 18:
12033 : if (pattern1303 (x2,
12034 : E_V8SFmode,
12035 : E_QImode) != 0)
12036 : return -1;
12037 : if (nonimmediate_operand (operands[1], E_V8SFmode)
12038 : && vector_operand (operands[3], E_V8SFmode))
12039 : {
12040 : x6 = XEXP (x2, 1);
12041 : if (rtx_equal_p (x6, operands[1])
12042 : && (
12043 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12044 : (TARGET_AVX512F && 1) &&
12045 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12046 : (TARGET_AVX512VL)))
12047 : return 4041; /* avx512vl_fnmadd_v8sf_mask */
12048 : }
12049 : if (!vector_operand (operands[1], E_V8SFmode)
12050 : || !nonimmediate_operand (operands[3], E_V8SFmode))
12051 : return -1;
12052 : x6 = XEXP (x2, 1);
12053 : if (!rtx_equal_p (x6, operands[3])
12054 : || !(
12055 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12056 : (TARGET_AVX512F && 1) &&
12057 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12058 : (TARGET_AVX512VL)))
12059 : return -1;
12060 : return 4053; /* avx512vl_fnmadd_v8sf_mask3 */
12061 :
12062 : case 19:
12063 : if (pattern1303 (x2,
12064 : E_V4SFmode,
12065 : E_QImode) != 0)
12066 : return -1;
12067 : if (nonimmediate_operand (operands[1], E_V4SFmode)
12068 : && vector_operand (operands[3], E_V4SFmode))
12069 : {
12070 : x6 = XEXP (x2, 1);
12071 : if (rtx_equal_p (x6, operands[1])
12072 : && (
12073 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12074 : (TARGET_AVX512F && 1) &&
12075 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12076 : (TARGET_AVX512VL)))
12077 : return 4042; /* avx512vl_fnmadd_v4sf_mask */
12078 : }
12079 : if (!vector_operand (operands[1], E_V4SFmode)
12080 : || !nonimmediate_operand (operands[3], E_V4SFmode))
12081 : return -1;
12082 : x6 = XEXP (x2, 1);
12083 : if (!rtx_equal_p (x6, operands[3])
12084 : || !(
12085 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12086 : (TARGET_AVX512F && 1) &&
12087 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12088 : (TARGET_AVX512VL)))
12089 : return -1;
12090 : return 4054; /* avx512vl_fnmadd_v4sf_mask3 */
12091 :
12092 : case 20:
12093 : if (pattern1303 (x2,
12094 : E_V8DFmode,
12095 : E_QImode) != 0)
12096 : return -1;
12097 : if (nonimmediate_operand (operands[1], E_V8DFmode)
12098 : && vector_operand (operands[3], E_V8DFmode))
12099 : {
12100 : x6 = XEXP (x2, 1);
12101 : if (rtx_equal_p (x6, operands[1])
12102 : &&
12103 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12104 : (TARGET_AVX512F && 1))
12105 : return 4043; /* avx512f_fnmadd_v8df_mask */
12106 : }
12107 : if (!vector_operand (operands[1], E_V8DFmode)
12108 : || !nonimmediate_operand (operands[3], E_V8DFmode))
12109 : return -1;
12110 : x6 = XEXP (x2, 1);
12111 : if (!rtx_equal_p (x6, operands[3])
12112 : || !
12113 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12114 : (TARGET_AVX512F && 1))
12115 : return -1;
12116 : return 4055; /* avx512f_fnmadd_v8df_mask3 */
12117 :
12118 : case 21:
12119 : if (pattern1303 (x2,
12120 : E_V4DFmode,
12121 : E_QImode) != 0)
12122 : return -1;
12123 : if (nonimmediate_operand (operands[1], E_V4DFmode)
12124 : && vector_operand (operands[3], E_V4DFmode))
12125 : {
12126 : x6 = XEXP (x2, 1);
12127 : if (rtx_equal_p (x6, operands[1])
12128 : && (
12129 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12130 : (TARGET_AVX512F && 1) &&
12131 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12132 : (TARGET_AVX512VL)))
12133 : return 4045; /* avx512vl_fnmadd_v4df_mask */
12134 : }
12135 : if (!vector_operand (operands[1], E_V4DFmode)
12136 : || !nonimmediate_operand (operands[3], E_V4DFmode))
12137 : return -1;
12138 : x6 = XEXP (x2, 1);
12139 : if (!rtx_equal_p (x6, operands[3])
12140 : || !(
12141 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12142 : (TARGET_AVX512F && 1) &&
12143 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12144 : (TARGET_AVX512VL)))
12145 : return -1;
12146 : return 4057; /* avx512vl_fnmadd_v4df_mask3 */
12147 :
12148 : case 22:
12149 : if (pattern1303 (x2,
12150 : E_V2DFmode,
12151 : E_QImode) != 0)
12152 : return -1;
12153 : if (nonimmediate_operand (operands[1], E_V2DFmode)
12154 : && vector_operand (operands[3], E_V2DFmode))
12155 : {
12156 : x6 = XEXP (x2, 1);
12157 : if (rtx_equal_p (x6, operands[1])
12158 : && (
12159 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12160 : (TARGET_AVX512F && 1) &&
12161 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12162 : (TARGET_AVX512VL)))
12163 : return 4046; /* avx512vl_fnmadd_v2df_mask */
12164 : }
12165 : if (!vector_operand (operands[1], E_V2DFmode)
12166 : || !nonimmediate_operand (operands[3], E_V2DFmode))
12167 : return -1;
12168 : x6 = XEXP (x2, 1);
12169 : if (!rtx_equal_p (x6, operands[3])
12170 : || !(
12171 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12172 : (TARGET_AVX512F && 1) &&
12173 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12174 : (TARGET_AVX512VL)))
12175 : return -1;
12176 : return 4058; /* avx512vl_fnmadd_v2df_mask3 */
12177 :
12178 : case 23:
12179 : if (pattern1304 (x2,
12180 : E_SImode,
12181 : E_V32BFmode) != 0)
12182 : return -1;
12183 : x6 = XEXP (x2, 1);
12184 : if (rtx_equal_p (x6, operands[1])
12185 : &&
12186 : #line 33303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12187 : (TARGET_AVX10_2))
12188 : return 10750; /* avx10_2_fnmaddbf16_v32bf_mask */
12189 : if (!rtx_equal_p (x6, operands[3])
12190 : || !
12191 : #line 33321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12192 : (TARGET_AVX10_2))
12193 : return -1;
12194 : return 10753; /* avx10_2_fnmaddbf16_v32bf_mask3 */
12195 :
12196 : case 24:
12197 : if (pattern1304 (x2,
12198 : E_HImode,
12199 : E_V16BFmode) != 0)
12200 : return -1;
12201 : x6 = XEXP (x2, 1);
12202 : if (rtx_equal_p (x6, operands[1])
12203 : &&
12204 : #line 33303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12205 : (TARGET_AVX10_2))
12206 : return 10751; /* avx10_2_fnmaddbf16_v16bf_mask */
12207 : if (!rtx_equal_p (x6, operands[3])
12208 : || !
12209 : #line 33321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12210 : (TARGET_AVX10_2))
12211 : return -1;
12212 : return 10754; /* avx10_2_fnmaddbf16_v16bf_mask3 */
12213 :
12214 : case 25:
12215 : if (pattern1304 (x2,
12216 : E_QImode,
12217 : E_V8BFmode) != 0)
12218 : return -1;
12219 : x6 = XEXP (x2, 1);
12220 : if (rtx_equal_p (x6, operands[1])
12221 : &&
12222 : #line 33303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12223 : (TARGET_AVX10_2))
12224 : return 10752; /* avx10_2_fnmaddbf16_v8bf_mask */
12225 : if (!rtx_equal_p (x6, operands[3])
12226 : || !
12227 : #line 33321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12228 : (TARGET_AVX10_2))
12229 : return -1;
12230 : return 10755; /* avx10_2_fnmaddbf16_v8bf_mask3 */
12231 :
12232 : case 26:
12233 : if (pattern1398 (x2,
12234 : E_V8HFmode) != 0
12235 : || !(
12236 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12237 : (TARGET_FMA || TARGET_AVX512F) &&
12238 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12239 : (TARGET_AVX512FP16)))
12240 : return -1;
12241 : return 4276; /* *fmai_fnmadd_v8hf */
12242 :
12243 : case 27:
12244 : if (pattern1398 (x2,
12245 : E_V4SFmode) != 0
12246 : || !
12247 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12248 : (TARGET_FMA || TARGET_AVX512F))
12249 : return -1;
12250 : return 4278; /* *fmai_fnmadd_v4sf */
12251 :
12252 : case 28:
12253 : if (pattern1398 (x2,
12254 : E_V2DFmode) != 0
12255 : || !(
12256 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12257 : (TARGET_FMA || TARGET_AVX512F) &&
12258 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12259 : (TARGET_SSE2)))
12260 : return -1;
12261 : return 4280; /* *fmai_fnmadd_v2df */
12262 :
12263 : case 29:
12264 : return recog_163 (x1, insn, pnum_clobbers);
12265 :
12266 : default:
12267 : return -1;
12268 : }
12269 : }
12270 :
12271 : int
12272 : recog_168 (rtx x1 ATTRIBUTE_UNUSED,
12273 : rtx_insn *insn ATTRIBUTE_UNUSED,
12274 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12275 : {
12276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12277 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12278 : rtx x10;
12279 : int res ATTRIBUTE_UNUSED;
12280 : x2 = XEXP (x1, 1);
12281 : x3 = XEXP (x2, 0);
12282 : x4 = XEXP (x3, 0);
12283 : x5 = XEXP (x4, 1);
12284 : operands[2] = x5;
12285 : x6 = XEXP (x2, 1);
12286 : operands[3] = x6;
12287 : x7 = XEXP (x2, 2);
12288 : operands[4] = x7;
12289 : if (!register_operand (operands[4], E_QImode))
12290 : return -1;
12291 : x8 = XEXP (x3, 1);
12292 : x9 = XVECEXP (x8, 0, 0);
12293 : switch (XWINT (x9, 0))
12294 : {
12295 : case 1L:
12296 : x10 = XVECEXP (x8, 0, 1);
12297 : if (XWINT (x10, 0) != 3L)
12298 : return -1;
12299 : switch (GET_MODE (operands[0]))
12300 : {
12301 : case E_V2DFmode:
12302 : if (pattern1598 (x2,
12303 : E_V2DFmode,
12304 : E_V4DFmode) != 0
12305 : || !
12306 : #line 13781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12307 : (TARGET_AVX512VL))
12308 : return -1;
12309 : return 5424; /* avx512vl_unpckhpd128_mask */
12310 :
12311 : case E_V2DImode:
12312 : if (pattern1599 (x2,
12313 : E_V2DImode,
12314 : E_V4DImode) != 0
12315 : || !(
12316 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12317 : (TARGET_AVX512F) &&
12318 : #line 14897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12319 : (TARGET_SSE2 && TARGET_AVX512VL)))
12320 : return -1;
12321 : return 7244; /* vec_interleave_highv2di_mask */
12322 :
12323 : default:
12324 : return -1;
12325 : }
12326 :
12327 : case 0L:
12328 : x10 = XVECEXP (x8, 0, 1);
12329 : if (XWINT (x10, 0) != 2L)
12330 : return -1;
12331 : switch (GET_MODE (operands[0]))
12332 : {
12333 : case E_V2DFmode:
12334 : if (pattern1598 (x2,
12335 : E_V2DFmode,
12336 : E_V4DFmode) != 0
12337 : || !
12338 : #line 13928 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12339 : (TARGET_AVX512VL))
12340 : return -1;
12341 : return 5434; /* avx512vl_unpcklpd128_mask */
12342 :
12343 : case E_V2DImode:
12344 : if (pattern1599 (x2,
12345 : E_V2DImode,
12346 : E_V4DImode) != 0
12347 : || !(
12348 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12349 : (TARGET_AVX512F) &&
12350 : #line 14947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12351 : (TARGET_SSE2 && TARGET_AVX512VL)))
12352 : return -1;
12353 : return 7250; /* vec_interleave_lowv2di_mask */
12354 :
12355 : default:
12356 : return -1;
12357 : }
12358 :
12359 : default:
12360 : return -1;
12361 : }
12362 : }
12363 :
12364 : int
12365 : recog_171 (rtx x1 ATTRIBUTE_UNUSED,
12366 : rtx_insn *insn ATTRIBUTE_UNUSED,
12367 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12368 : {
12369 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12370 : rtx x2, x3, x4, x5, x6, x7, x8;
12371 : int res ATTRIBUTE_UNUSED;
12372 : x2 = XEXP (x1, 1);
12373 : x3 = XEXP (x2, 0);
12374 : x4 = XEXP (x3, 1);
12375 : x5 = XVECEXP (x4, 0, 0);
12376 : if (GET_CODE (x5) != CONST_INT)
12377 : return -1;
12378 : operands[2] = x5;
12379 : if (const_0_to_7_operand (operands[2], E_VOIDmode))
12380 : {
12381 : x6 = XVECEXP (x4, 0, 1);
12382 : operands[3] = x6;
12383 : if (const_0_to_7_operand (operands[3], E_VOIDmode))
12384 : {
12385 : x7 = XEXP (x2, 1);
12386 : operands[4] = x7;
12387 : x8 = XEXP (x2, 2);
12388 : operands[5] = x8;
12389 : if (register_operand (operands[5], E_QImode))
12390 : {
12391 : switch (GET_MODE (operands[0]))
12392 : {
12393 : case E_V2DFmode:
12394 : if (pattern1558 (x2,
12395 : E_V2DFmode,
12396 : E_V8DFmode) == 0
12397 : &&
12398 : #line 12833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12399 : (TARGET_AVX512DQ
12400 : && INTVAL (operands[2]) % 2 == 0
12401 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12402 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[4]))))
12403 : return 5356; /* avx512dq_vextractf64x2_1_mask */
12404 : break;
12405 :
12406 : case E_V2DImode:
12407 : if (pattern1558 (x2,
12408 : E_V2DImode,
12409 : E_V8DImode) == 0
12410 : &&
12411 : #line 12833 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12412 : (TARGET_AVX512DQ
12413 : && INTVAL (operands[2]) % 2 == 0
12414 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12415 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[4]))))
12416 : return 5357; /* avx512dq_vextracti64x2_1_mask */
12417 : break;
12418 :
12419 : default:
12420 : break;
12421 : }
12422 : }
12423 : }
12424 : }
12425 : x6 = XVECEXP (x4, 0, 1);
12426 : if (GET_CODE (x6) != CONST_INT)
12427 : return -1;
12428 : x7 = XEXP (x2, 1);
12429 : operands[2] = x7;
12430 : x8 = XEXP (x2, 2);
12431 : operands[3] = x8;
12432 : if (!register_operand (operands[3], E_QImode))
12433 : return -1;
12434 : switch (XWINT (x5, 0))
12435 : {
12436 : case 0L:
12437 : if (XWINT (x6, 0) != 1L)
12438 : return -1;
12439 : switch (GET_MODE (operands[0]))
12440 : {
12441 : case E_V2DImode:
12442 : if (!nonimmediate_operand (operands[0], E_V2DImode)
12443 : || pattern1559 (x2,
12444 : E_V2DImode,
12445 : E_V4DImode) != 0
12446 : || !
12447 : #line 13261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12448 : (TARGET_AVX512DQ
12449 : && TARGET_AVX512VL
12450 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12451 : return -1;
12452 : return 5380; /* vec_extract_lo_v4di_mask */
12453 :
12454 : case E_V2DFmode:
12455 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
12456 : || pattern1559 (x2,
12457 : E_V2DFmode,
12458 : E_V4DFmode) != 0
12459 : || !
12460 : #line 13261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12461 : (TARGET_AVX512DQ
12462 : && TARGET_AVX512VL
12463 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12464 : return -1;
12465 : return 5381; /* vec_extract_lo_v4df_mask */
12466 :
12467 : default:
12468 : return -1;
12469 : }
12470 :
12471 : case 2L:
12472 : if (XWINT (x6, 0) != 3L)
12473 : return -1;
12474 : switch (GET_MODE (operands[0]))
12475 : {
12476 : case E_V2DImode:
12477 : if (!nonimmediate_operand (operands[0], E_V2DImode)
12478 : || pattern1559 (x2,
12479 : E_V2DImode,
12480 : E_V4DImode) != 0
12481 : || !
12482 : #line 13298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12483 : (TARGET_AVX512DQ
12484 : && TARGET_AVX512VL
12485 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12486 : return -1;
12487 : return 5384; /* vec_extract_hi_v4di_mask */
12488 :
12489 : case E_V2DFmode:
12490 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
12491 : || pattern1559 (x2,
12492 : E_V2DFmode,
12493 : E_V4DFmode) != 0
12494 : || !
12495 : #line 13298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12496 : (TARGET_AVX512DQ
12497 : && TARGET_AVX512VL
12498 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12499 : return -1;
12500 : return 5385; /* vec_extract_hi_v4df_mask */
12501 :
12502 : default:
12503 : return -1;
12504 : }
12505 :
12506 : default:
12507 : return -1;
12508 : }
12509 : }
12510 :
12511 : int
12512 : recog_176 (rtx x1 ATTRIBUTE_UNUSED,
12513 : rtx_insn *insn ATTRIBUTE_UNUSED,
12514 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12515 : {
12516 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12517 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12518 : rtx x10;
12519 : int res ATTRIBUTE_UNUSED;
12520 : x2 = XEXP (x1, 1);
12521 : x3 = XEXP (x2, 0);
12522 : x4 = XEXP (x3, 1);
12523 : x5 = XVECEXP (x4, 0, 4);
12524 : if (GET_CODE (x5) != CONST_INT)
12525 : return -1;
12526 : operands[6] = x5;
12527 : res = recog_175 (x1, insn, pnum_clobbers);
12528 : if (res >= 0)
12529 : return res;
12530 : if (XWINT (x5, 0) != 4L)
12531 : return -1;
12532 : x6 = XVECEXP (x4, 0, 5);
12533 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
12534 : return -1;
12535 : x7 = XVECEXP (x4, 0, 6);
12536 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
12537 : return -1;
12538 : x8 = XVECEXP (x4, 0, 7);
12539 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
12540 : || pattern1308 (x2,
12541 : E_V8HImode) != 0
12542 : || pattern1025 (x4) != 0)
12543 : return -1;
12544 : x9 = XEXP (x2, 1);
12545 : operands[6] = x9;
12546 : if (!nonimm_or_0_operand (operands[6], E_V8HImode))
12547 : return -1;
12548 : x10 = XEXP (x2, 2);
12549 : operands[7] = x10;
12550 : if (!register_operand (operands[7], E_QImode)
12551 : || !(
12552 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12553 : (TARGET_AVX512F) &&
12554 : #line 21328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12555 : (TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12556 : return -1;
12557 : return 8523; /* sse2_pshuflw_1_mask */
12558 : }
12559 :
12560 : int
12561 : recog_180 (rtx x1 ATTRIBUTE_UNUSED,
12562 : rtx_insn *insn ATTRIBUTE_UNUSED,
12563 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12564 : {
12565 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12566 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12567 : rtx x10, x11, x12, x13, x14;
12568 : int res ATTRIBUTE_UNUSED;
12569 : x2 = XEXP (x1, 1);
12570 : x3 = XEXP (x2, 0);
12571 : x4 = XEXP (x3, 1);
12572 : x5 = XVECEXP (x4, 0, 0);
12573 : if (GET_CODE (x5) != CONST_INT)
12574 : return -1;
12575 : operands[2] = x5;
12576 : res = recog_179 (x1, insn, pnum_clobbers);
12577 : if (res >= 0)
12578 : return res;
12579 : if (XWINT (x5, 0) != 0L)
12580 : return -1;
12581 : x6 = XVECEXP (x4, 0, 1);
12582 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12583 : return -1;
12584 : x7 = XVECEXP (x4, 0, 2);
12585 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
12586 : return -1;
12587 : x8 = XVECEXP (x4, 0, 3);
12588 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
12589 : || pattern1309 (x4,
12590 : 11,
12591 : 10,
12592 : 9,
12593 : 8) != 0
12594 : || pattern764 (x2,
12595 : E_V16HImode) != 0
12596 : || pattern1560 (x4) != 0)
12597 : return -1;
12598 : x9 = XVECEXP (x4, 0, 12);
12599 : operands[6] = x9;
12600 : if (!const_12_to_15_operand (operands[6], E_VOIDmode))
12601 : return -1;
12602 : x10 = XVECEXP (x4, 0, 13);
12603 : operands[7] = x10;
12604 : if (!const_12_to_15_operand (operands[7], E_VOIDmode))
12605 : return -1;
12606 : x11 = XVECEXP (x4, 0, 14);
12607 : operands[8] = x11;
12608 : if (!const_12_to_15_operand (operands[8], E_VOIDmode))
12609 : return -1;
12610 : x12 = XVECEXP (x4, 0, 15);
12611 : operands[9] = x12;
12612 : if (!const_12_to_15_operand (operands[9], E_VOIDmode))
12613 : return -1;
12614 : x13 = XEXP (x2, 1);
12615 : operands[10] = x13;
12616 : if (!nonimm_or_0_operand (operands[10], E_V16HImode))
12617 : return -1;
12618 : x14 = XEXP (x2, 2);
12619 : operands[11] = x14;
12620 : if (!register_operand (operands[11], E_HImode)
12621 : || !(
12622 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12623 : (TARGET_AVX512F) &&
12624 : #line 21419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12625 : (TARGET_AVX2
12626 : && TARGET_AVX512BW && TARGET_AVX512VL
12627 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
12628 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
12629 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
12630 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9]))))
12631 : return -1;
12632 : return 8527; /* avx2_pshufhw_1_mask */
12633 : }
12634 :
12635 : int
12636 : recog_187 (rtx x1 ATTRIBUTE_UNUSED,
12637 : rtx_insn *insn ATTRIBUTE_UNUSED,
12638 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12639 : {
12640 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12641 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12642 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12643 : rtx x18, x19, x20, x21, x22;
12644 : int res ATTRIBUTE_UNUSED;
12645 : x2 = XEXP (x1, 1);
12646 : x3 = XEXP (x2, 0);
12647 : x4 = XEXP (x3, 0);
12648 : switch (GET_CODE (x4))
12649 : {
12650 : case SS_TRUNCATE:
12651 : x5 = XEXP (x3, 1);
12652 : if (GET_CODE (x5) != SS_TRUNCATE)
12653 : return -1;
12654 : x6 = XEXP (x4, 0);
12655 : operands[1] = x6;
12656 : x7 = XEXP (x5, 0);
12657 : operands[2] = x7;
12658 : x8 = XEXP (x2, 1);
12659 : operands[3] = x8;
12660 : x9 = XEXP (x2, 2);
12661 : operands[4] = x9;
12662 : switch (GET_MODE (operands[0]))
12663 : {
12664 : case E_V16QImode:
12665 : if (pattern1137 (x2,
12666 : E_HImode,
12667 : E_V16QImode,
12668 : E_V8HImode,
12669 : E_V8QImode) != 0
12670 : || !(
12671 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12672 : (TARGET_AVX512F) &&
12673 : #line 19679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12674 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12675 : return -1;
12676 : return 8377; /* sse2_packsswb_mask */
12677 :
12678 : case E_V8HImode:
12679 : if (pattern1137 (x2,
12680 : E_QImode,
12681 : E_V8HImode,
12682 : E_V4SImode,
12683 : E_V4HImode) != 0
12684 : || !(
12685 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12686 : (TARGET_AVX512F) &&
12687 : #line 19773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12688 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12689 : return -1;
12690 : return 8383; /* sse2_packssdw_mask */
12691 :
12692 : default:
12693 : return -1;
12694 : }
12695 :
12696 : case REG:
12697 : case SUBREG:
12698 : case MEM:
12699 : operands[2] = x4;
12700 : x5 = XEXP (x3, 1);
12701 : if (GET_CODE (x5) != VEC_SELECT)
12702 : return -1;
12703 : x10 = XEXP (x5, 1);
12704 : if (GET_CODE (x10) != PARALLEL)
12705 : return -1;
12706 : x7 = XEXP (x5, 0);
12707 : operands[1] = x7;
12708 : x8 = XEXP (x2, 1);
12709 : operands[3] = x8;
12710 : x9 = XEXP (x2, 2);
12711 : operands[4] = x9;
12712 : switch (XVECLEN (x10, 0))
12713 : {
12714 : case 8:
12715 : x11 = XVECEXP (x10, 0, 0);
12716 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
12717 : return -1;
12718 : x12 = XVECEXP (x10, 0, 1);
12719 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
12720 : return -1;
12721 : x13 = XVECEXP (x10, 0, 2);
12722 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
12723 : || pattern1423 (x10,
12724 : 15,
12725 : 14,
12726 : 13,
12727 : 12,
12728 : 11) != 0
12729 : || !register_operand (operands[4], E_HImode))
12730 : return -1;
12731 : switch (GET_MODE (operands[0]))
12732 : {
12733 : case E_V16SFmode:
12734 : if (pattern1526 (x2,
12735 : E_V16SFmode,
12736 : E_V8SFmode) != 0
12737 : || !(
12738 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12739 : (TARGET_AVX512F) &&
12740 : #line 20565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12741 : (TARGET_AVX512DQ)))
12742 : return -1;
12743 : return 8473; /* vec_set_lo_v16sf_mask */
12744 :
12745 : case E_V16SImode:
12746 : if (pattern1526 (x2,
12747 : E_V16SImode,
12748 : E_V8SImode) != 0
12749 : || !(
12750 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12751 : (TARGET_AVX512F) &&
12752 : #line 20565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12753 : (TARGET_AVX512DQ)))
12754 : return -1;
12755 : return 8475; /* vec_set_lo_v16si_mask */
12756 :
12757 : default:
12758 : return -1;
12759 : }
12760 :
12761 : case 4:
12762 : if (pattern1229 (x10,
12763 : 7,
12764 : 6,
12765 : 5,
12766 : 4) != 0
12767 : || !register_operand (operands[4], E_QImode))
12768 : return -1;
12769 : switch (GET_MODE (operands[0]))
12770 : {
12771 : case E_V8DFmode:
12772 : if (pattern1526 (x2,
12773 : E_V8DFmode,
12774 : E_V4DFmode) != 0
12775 : || !
12776 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12777 : (TARGET_AVX512F))
12778 : return -1;
12779 : return 8481; /* vec_set_lo_v8df_mask */
12780 :
12781 : case E_V8DImode:
12782 : if (pattern1526 (x2,
12783 : E_V8DImode,
12784 : E_V4DImode) != 0
12785 : || !
12786 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12787 : (TARGET_AVX512F))
12788 : return -1;
12789 : return 8483; /* vec_set_lo_v8di_mask */
12790 :
12791 : case E_V8SImode:
12792 : if (pattern1526 (x2,
12793 : E_V8SImode,
12794 : E_V4SImode) != 0
12795 : || !(
12796 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12797 : (TARGET_AVX512F) &&
12798 : #line 29449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12799 : (TARGET_AVX)))
12800 : return -1;
12801 : return 9575; /* vec_set_lo_v8si_mask */
12802 :
12803 : case E_V8SFmode:
12804 : if (pattern1526 (x2,
12805 : E_V8SFmode,
12806 : E_V4SFmode) != 0
12807 : || !(
12808 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12809 : (TARGET_AVX512F) &&
12810 : #line 29449 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12811 : (TARGET_AVX)))
12812 : return -1;
12813 : return 9577; /* vec_set_lo_v8sf_mask */
12814 :
12815 : default:
12816 : return -1;
12817 : }
12818 :
12819 : case 2:
12820 : x11 = XVECEXP (x10, 0, 0);
12821 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
12822 : return -1;
12823 : x12 = XVECEXP (x10, 0, 1);
12824 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
12825 : || !register_operand (operands[4], E_QImode))
12826 : return -1;
12827 : switch (GET_MODE (operands[0]))
12828 : {
12829 : case E_V4DImode:
12830 : if (pattern1526 (x2,
12831 : E_V4DImode,
12832 : E_V2DImode) != 0
12833 : || !(
12834 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12835 : (TARGET_AVX512F) &&
12836 : #line 29398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12837 : (TARGET_AVX && TARGET_AVX512DQ)))
12838 : return -1;
12839 : return 9567; /* vec_set_lo_v4di_mask */
12840 :
12841 : case E_V4DFmode:
12842 : if (pattern1526 (x2,
12843 : E_V4DFmode,
12844 : E_V2DFmode) != 0
12845 : || !(
12846 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12847 : (TARGET_AVX512F) &&
12848 : #line 29398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12849 : (TARGET_AVX && TARGET_AVX512DQ)))
12850 : return -1;
12851 : return 9569; /* vec_set_lo_v4df_mask */
12852 :
12853 : default:
12854 : return -1;
12855 : }
12856 :
12857 : default:
12858 : return -1;
12859 : }
12860 :
12861 : case VEC_SELECT:
12862 : x14 = XEXP (x4, 1);
12863 : if (GET_CODE (x14) != PARALLEL)
12864 : return -1;
12865 : x6 = XEXP (x4, 0);
12866 : operands[1] = x6;
12867 : x5 = XEXP (x3, 1);
12868 : operands[2] = x5;
12869 : x8 = XEXP (x2, 1);
12870 : operands[3] = x8;
12871 : x9 = XEXP (x2, 2);
12872 : operands[4] = x9;
12873 : switch (XVECLEN (x14, 0))
12874 : {
12875 : case 8:
12876 : if (pattern653 (x14) != 0)
12877 : return -1;
12878 : x15 = XVECEXP (x14, 0, 4);
12879 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
12880 : return -1;
12881 : x16 = XVECEXP (x14, 0, 5);
12882 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
12883 : return -1;
12884 : x17 = XVECEXP (x14, 0, 6);
12885 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
12886 : return -1;
12887 : x18 = XVECEXP (x14, 0, 7);
12888 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
12889 : || !register_operand (operands[4], E_HImode))
12890 : return -1;
12891 : switch (GET_MODE (operands[0]))
12892 : {
12893 : case E_V16SFmode:
12894 : if (pattern1482 (x2,
12895 : E_V16SFmode,
12896 : E_V8SFmode) != 0
12897 : || !(
12898 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12899 : (TARGET_AVX512F) &&
12900 : #line 20583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12901 : (TARGET_AVX512DQ)))
12902 : return -1;
12903 : return 8477; /* vec_set_hi_v16sf_mask */
12904 :
12905 : case E_V16SImode:
12906 : if (pattern1482 (x2,
12907 : E_V16SImode,
12908 : E_V8SImode) != 0
12909 : || !(
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F) &&
12912 : #line 20583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12913 : (TARGET_AVX512DQ)))
12914 : return -1;
12915 : return 8479; /* vec_set_hi_v16si_mask */
12916 :
12917 : default:
12918 : return -1;
12919 : }
12920 :
12921 : case 4:
12922 : if (pattern653 (x14) != 0
12923 : || !register_operand (operands[4], E_QImode))
12924 : return -1;
12925 : switch (GET_MODE (operands[0]))
12926 : {
12927 : case E_V8DFmode:
12928 : if (pattern1482 (x2,
12929 : E_V8DFmode,
12930 : E_V4DFmode) != 0
12931 : || !
12932 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12933 : (TARGET_AVX512F))
12934 : return -1;
12935 : return 8485; /* vec_set_hi_v8df_mask */
12936 :
12937 : case E_V8DImode:
12938 : if (pattern1482 (x2,
12939 : E_V8DImode,
12940 : E_V4DImode) != 0
12941 : || !
12942 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12943 : (TARGET_AVX512F))
12944 : return -1;
12945 : return 8487; /* vec_set_hi_v8di_mask */
12946 :
12947 : case E_V8SImode:
12948 : if (pattern1482 (x2,
12949 : E_V8SImode,
12950 : E_V4SImode) != 0
12951 : || !(
12952 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12953 : (TARGET_AVX512F) &&
12954 : #line 29473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12955 : (TARGET_AVX)))
12956 : return -1;
12957 : return 9579; /* vec_set_hi_v8si_mask */
12958 :
12959 : case E_V8SFmode:
12960 : if (pattern1482 (x2,
12961 : E_V8SFmode,
12962 : E_V4SFmode) != 0
12963 : || !(
12964 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12965 : (TARGET_AVX512F) &&
12966 : #line 29473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12967 : (TARGET_AVX)))
12968 : return -1;
12969 : return 9581; /* vec_set_hi_v8sf_mask */
12970 :
12971 : default:
12972 : return -1;
12973 : }
12974 :
12975 : case 2:
12976 : x19 = XVECEXP (x14, 0, 0);
12977 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
12978 : return -1;
12979 : x20 = XVECEXP (x14, 0, 1);
12980 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12981 : || !register_operand (operands[4], E_QImode))
12982 : return -1;
12983 : switch (GET_MODE (operands[0]))
12984 : {
12985 : case E_V4DImode:
12986 : if (pattern1482 (x2,
12987 : E_V4DImode,
12988 : E_V2DImode) != 0
12989 : || !(
12990 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12991 : (TARGET_AVX512F) &&
12992 : #line 29423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12993 : (TARGET_AVX && TARGET_AVX512DQ)))
12994 : return -1;
12995 : return 9571; /* vec_set_hi_v4di_mask */
12996 :
12997 : case E_V4DFmode:
12998 : if (pattern1482 (x2,
12999 : E_V4DFmode,
13000 : E_V2DFmode) != 0
13001 : || !(
13002 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13003 : (TARGET_AVX512F) &&
13004 : #line 29423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13005 : (TARGET_AVX && TARGET_AVX512DQ)))
13006 : return -1;
13007 : return 9573; /* vec_set_hi_v4df_mask */
13008 :
13009 : default:
13010 : return -1;
13011 : }
13012 :
13013 : default:
13014 : return -1;
13015 : }
13016 :
13017 : case UNSPEC:
13018 : if (XVECLEN (x4, 0) != 2
13019 : || XINT (x4, 1) != 151
13020 : || GET_MODE (x4) != E_V4HImode
13021 : || !register_operand (operands[0], E_V8HImode)
13022 : || GET_MODE (x2) != E_V8HImode
13023 : || GET_MODE (x3) != E_V8HImode)
13024 : return -1;
13025 : x21 = XVECEXP (x4, 0, 0);
13026 : operands[1] = x21;
13027 : if (!register_operand (operands[1], E_V4SFmode))
13028 : return -1;
13029 : x22 = XVECEXP (x4, 0, 1);
13030 : operands[2] = x22;
13031 : if (!const_0_to_255_operand (operands[2], E_SImode))
13032 : return -1;
13033 : x5 = XEXP (x3, 1);
13034 : operands[3] = x5;
13035 : if (!const0_operand (operands[3], E_V4HImode))
13036 : return -1;
13037 : x8 = XEXP (x2, 1);
13038 : operands[4] = x8;
13039 : if (!nonimm_or_0_operand (operands[4], E_V8HImode))
13040 : return -1;
13041 : x9 = XEXP (x2, 2);
13042 : operands[5] = x9;
13043 : if (!register_operand (operands[5], E_QImode)
13044 : || !(
13045 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13046 : (TARGET_AVX512F) &&
13047 : #line 30192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13048 : ((TARGET_F16C || TARGET_AVX512VL) && TARGET_AVX512VL)))
13049 : return -1;
13050 : return 9762; /* *vcvtps2ph_mask */
13051 :
13052 : case FLOAT_TRUNCATE:
13053 : x5 = XEXP (x3, 1);
13054 : if (GET_CODE (x5) != FLOAT_TRUNCATE)
13055 : return -1;
13056 : x6 = XEXP (x4, 0);
13057 : operands[2] = x6;
13058 : x7 = XEXP (x5, 0);
13059 : operands[1] = x7;
13060 : x8 = XEXP (x2, 1);
13061 : operands[3] = x8;
13062 : x9 = XEXP (x2, 2);
13063 : operands[4] = x9;
13064 : switch (GET_MODE (operands[0]))
13065 : {
13066 : case E_V32BFmode:
13067 : if (pattern1139 (x2,
13068 : E_SImode,
13069 : E_V32BFmode,
13070 : E_V16SFmode,
13071 : E_V16BFmode) != 0
13072 : || !(
13073 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13074 : (TARGET_AVX512F) &&
13075 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13076 : (TARGET_AVX512BF16)))
13077 : return -1;
13078 : return 10443; /* avx512f_cvtne2ps2bf16_v32bf_mask */
13079 :
13080 : case E_V16BFmode:
13081 : if (pattern1139 (x2,
13082 : E_HImode,
13083 : E_V16BFmode,
13084 : E_V8SFmode,
13085 : E_V8BFmode) != 0
13086 : || !(
13087 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13088 : (TARGET_AVX512F) && (
13089 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13090 : (TARGET_AVX512BF16) &&
13091 : #line 32054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13092 : (TARGET_AVX512VL))))
13093 : return -1;
13094 : return 10445; /* avx512f_cvtne2ps2bf16_v16bf_mask */
13095 :
13096 : case E_V8BFmode:
13097 : if (pattern1139 (x2,
13098 : E_QImode,
13099 : E_V8BFmode,
13100 : E_V4SFmode,
13101 : E_V4BFmode) != 0
13102 : || !(
13103 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13104 : (TARGET_AVX512F) && (
13105 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13106 : (TARGET_AVX512BF16) &&
13107 : #line 32054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13108 : (TARGET_AVX512VL))))
13109 : return -1;
13110 : return 10447; /* avx512f_cvtne2ps2bf16_v8bf_mask */
13111 :
13112 : case E_V32HFmode:
13113 : if (pattern1140 (x2,
13114 : E_SImode,
13115 : E_V32HFmode,
13116 : E_V16SFmode,
13117 : E_V16HFmode) != 0
13118 : || !(
13119 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13120 : (TARGET_AVX512F) &&
13121 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX10_2 && 1)))
13123 : return -1;
13124 : return 10543; /* avx10_2_cvt2ps2phx_v32hf_mask */
13125 :
13126 : case E_V16HFmode:
13127 : if (pattern1140 (x2,
13128 : E_HImode,
13129 : E_V16HFmode,
13130 : E_V8SFmode,
13131 : E_V8HFmode) != 0
13132 : || !(
13133 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13134 : (TARGET_AVX512F) && (
13135 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13136 : (TARGET_AVX10_2 && 1) &&
13137 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13138 : (TARGET_AVX512VL))))
13139 : return -1;
13140 : return 10546; /* avx10_2_cvt2ps2phx_v16hf_mask */
13141 :
13142 : case E_V8HFmode:
13143 : if (pattern1140 (x2,
13144 : E_QImode,
13145 : E_V8HFmode,
13146 : E_V4SFmode,
13147 : E_V4HFmode) != 0
13148 : || !(
13149 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13150 : (TARGET_AVX512F) && (
13151 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13152 : (TARGET_AVX10_2 && 1) &&
13153 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13154 : (TARGET_AVX512VL))))
13155 : return -1;
13156 : return 10548; /* avx10_2_cvt2ps2phx_v8hf_mask */
13157 :
13158 : default:
13159 : return -1;
13160 : }
13161 :
13162 : default:
13163 : return -1;
13164 : }
13165 : }
13166 :
13167 : int
13168 : recog_193 (rtx x1 ATTRIBUTE_UNUSED,
13169 : rtx_insn *insn ATTRIBUTE_UNUSED,
13170 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13171 : {
13172 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13173 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13174 : rtx x10;
13175 : int res ATTRIBUTE_UNUSED;
13176 : x2 = XEXP (x1, 1);
13177 : x3 = XEXP (x2, 0);
13178 : x4 = XEXP (x3, 0);
13179 : switch (GET_CODE (x4))
13180 : {
13181 : case REG:
13182 : case SUBREG:
13183 : case MEM:
13184 : operands[1] = x4;
13185 : x5 = XEXP (x2, 1);
13186 : operands[2] = x5;
13187 : x6 = XEXP (x2, 2);
13188 : operands[3] = x6;
13189 : switch (GET_MODE (operands[0]))
13190 : {
13191 : case E_V8DFmode:
13192 : if (pattern142 (x2,
13193 : E_V8DFmode,
13194 : E_QImode) != 0)
13195 : return -1;
13196 : switch (GET_MODE (operands[1]))
13197 : {
13198 : case E_V8HFmode:
13199 : if (!vector_operand (operands[1], E_V8HFmode)
13200 : || !(
13201 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13202 : (TARGET_AVX512F) &&
13203 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13204 : (TARGET_AVX512FP16)))
13205 : return -1;
13206 : return 4764; /* avx512fp16_float_extend_phv8df2_mask */
13207 :
13208 : case E_V8SFmode:
13209 : if (!vector_operand (operands[1], E_V8SFmode)
13210 : || !(
13211 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13212 : (TARGET_AVX512F) && (
13213 : #line 10609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13214 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL) && 1) &&
13215 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13216 : (TARGET_AVX512F))))
13217 : return -1;
13218 : return 5209; /* avx512f_cvtps2pd512_mask */
13219 :
13220 : default:
13221 : return -1;
13222 : }
13223 :
13224 : case E_V16SFmode:
13225 : if (pattern141 (x2,
13226 : E_V16SFmode,
13227 : E_HImode,
13228 : E_V16HFmode) != 0
13229 : || !(
13230 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13231 : (TARGET_AVX512F) &&
13232 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13233 : (TARGET_AVX512FP16)))
13234 : return -1;
13235 : return 4768; /* avx512fp16_float_extend_phv16sf2_mask */
13236 :
13237 : case E_V8SFmode:
13238 : if (pattern141 (x2,
13239 : E_V8SFmode,
13240 : E_QImode,
13241 : E_V8HFmode) != 0
13242 : || !(
13243 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13244 : (TARGET_AVX512F) && (
13245 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13246 : (TARGET_AVX512FP16) &&
13247 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13248 : (TARGET_AVX512VL))))
13249 : return -1;
13250 : return 4772; /* avx512fp16_float_extend_phv8sf2_mask */
13251 :
13252 : case E_V4DFmode:
13253 : if (pattern142 (x2,
13254 : E_V4DFmode,
13255 : E_QImode) != 0)
13256 : return -1;
13257 : switch (GET_MODE (operands[1]))
13258 : {
13259 : case E_V4HFmode:
13260 : if (!memory_operand (operands[1], E_V4HFmode)
13261 : || !(
13262 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13263 : (TARGET_AVX512F) &&
13264 : #line 8461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13265 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13266 : return -1;
13267 : return 4779; /* *avx512fp16_float_extend_phv4df2_load_mask */
13268 :
13269 : case E_V4SFmode:
13270 : if (!vector_operand (operands[1], E_V4SFmode)
13271 : || !(
13272 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13273 : (TARGET_AVX512F) &&
13274 : #line 10609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13275 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL) && 1)))
13276 : return -1;
13277 : return 5212; /* avx_cvtps2pd256_mask */
13278 :
13279 : default:
13280 : return -1;
13281 : }
13282 :
13283 : case E_V4SFmode:
13284 : if (pattern156 (x2,
13285 : E_V4SFmode,
13286 : E_V4HFmode) != 0
13287 : || !(
13288 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13289 : (TARGET_AVX512F) &&
13290 : #line 8461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13291 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13292 : return -1;
13293 : return 4781; /* *avx512fp16_float_extend_phv4sf2_load_mask */
13294 :
13295 : case E_V2DFmode:
13296 : if (pattern142 (x2,
13297 : E_V2DFmode,
13298 : E_QImode) != 0)
13299 : return -1;
13300 : switch (GET_MODE (operands[1]))
13301 : {
13302 : case E_V2HFmode:
13303 : if (!memory_operand (operands[1], E_V2HFmode)
13304 : || !(
13305 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13306 : (TARGET_AVX512F) &&
13307 : #line 8500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13308 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13309 : return -1;
13310 : return 4785; /* *avx512fp16_float_extend_phv2df2_load_mask */
13311 :
13312 : case E_V2SFmode:
13313 : if (!memory_operand (operands[1], E_V2SFmode)
13314 : || !(
13315 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13316 : (TARGET_AVX512F) &&
13317 : #line 10791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13318 : (TARGET_SSE2 && TARGET_AVX512VL)))
13319 : return -1;
13320 : return 5260; /* sse2_cvtps2pd_mask_1 */
13321 :
13322 : default:
13323 : return -1;
13324 : }
13325 :
13326 : default:
13327 : return -1;
13328 : }
13329 :
13330 : case VEC_SELECT:
13331 : x7 = XEXP (x4, 1);
13332 : if (GET_CODE (x7) != PARALLEL)
13333 : return -1;
13334 : switch (XVECLEN (x7, 0))
13335 : {
13336 : case 4:
13337 : if (pattern653 (x7) != 0
13338 : || GET_MODE (x4) != E_V4HFmode)
13339 : return -1;
13340 : x8 = XEXP (x4, 0);
13341 : operands[1] = x8;
13342 : if (!register_operand (operands[1], E_V8HFmode))
13343 : return -1;
13344 : x5 = XEXP (x2, 1);
13345 : operands[2] = x5;
13346 : x6 = XEXP (x2, 2);
13347 : operands[3] = x6;
13348 : if (!register_operand (operands[3], E_QImode))
13349 : return -1;
13350 : switch (GET_MODE (operands[0]))
13351 : {
13352 : case E_V4DFmode:
13353 : if (pattern143 (x2,
13354 : E_V4DFmode) != 0
13355 : || !(
13356 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13357 : (TARGET_AVX512F) &&
13358 : #line 8451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13359 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13360 : return -1;
13361 : return 4775; /* avx512fp16_float_extend_phv4df2_mask */
13362 :
13363 : case E_V4SFmode:
13364 : if (pattern143 (x2,
13365 : E_V4SFmode) != 0
13366 : || !(
13367 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13368 : (TARGET_AVX512F) &&
13369 : #line 8451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13370 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13371 : return -1;
13372 : return 4777; /* avx512fp16_float_extend_phv4sf2_mask */
13373 :
13374 : default:
13375 : return -1;
13376 : }
13377 :
13378 : case 2:
13379 : x9 = XVECEXP (x7, 0, 0);
13380 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
13381 : return -1;
13382 : x10 = XVECEXP (x7, 0, 1);
13383 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13384 : || !register_operand (operands[0], E_V2DFmode)
13385 : || GET_MODE (x2) != E_V2DFmode
13386 : || GET_MODE (x3) != E_V2DFmode)
13387 : return -1;
13388 : x6 = XEXP (x2, 2);
13389 : switch (GET_CODE (x6))
13390 : {
13391 : case REG:
13392 : case SUBREG:
13393 : operands[3] = x6;
13394 : if (!register_operand (operands[3], E_QImode))
13395 : return -1;
13396 : x8 = XEXP (x4, 0);
13397 : operands[1] = x8;
13398 : x5 = XEXP (x2, 1);
13399 : operands[2] = x5;
13400 : if (!nonimm_or_0_operand (operands[2], E_V2DFmode))
13401 : return -1;
13402 : switch (GET_MODE (x4))
13403 : {
13404 : case E_V2HFmode:
13405 : if (!register_operand (operands[1], E_V8HFmode)
13406 : || !(
13407 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13408 : (TARGET_AVX512F) &&
13409 : #line 8490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13410 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13411 : return -1;
13412 : return 4783; /* avx512fp16_float_extend_phv2df2_mask */
13413 :
13414 : case E_V2SFmode:
13415 : if (!register_operand (operands[1], E_V4SFmode)
13416 : || !(
13417 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13418 : (TARGET_AVX512F) &&
13419 : #line 10777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13420 : (TARGET_SSE2 && TARGET_AVX512VL)))
13421 : return -1;
13422 : return 5258; /* sse2_cvtps2pd_mask */
13423 :
13424 : default:
13425 : return -1;
13426 : }
13427 :
13428 : case CONST_INT:
13429 : if (XWINT (x6, 0) != 1L
13430 : || GET_MODE (x4) != E_V2SFmode)
13431 : return -1;
13432 : x8 = XEXP (x4, 0);
13433 : operands[2] = x8;
13434 : if (!nonimmediate_operand (operands[2], E_V4SFmode))
13435 : return -1;
13436 : x5 = XEXP (x2, 1);
13437 : operands[1] = x5;
13438 : if (!register_operand (operands[1], E_V2DFmode)
13439 : || !
13440 : #line 10436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13441 : (TARGET_SSE2))
13442 : return -1;
13443 : return 5192; /* sse2_cvtss2sd */
13444 :
13445 : default:
13446 : return -1;
13447 : }
13448 :
13449 : default:
13450 : return -1;
13451 : }
13452 :
13453 : default:
13454 : return -1;
13455 : }
13456 : }
13457 :
13458 : int
13459 : recog_200 (rtx x1 ATTRIBUTE_UNUSED,
13460 : rtx_insn *insn ATTRIBUTE_UNUSED,
13461 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13462 : {
13463 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13464 : rtx x2;
13465 : int res ATTRIBUTE_UNUSED;
13466 : x2 = XEXP (x1, 1);
13467 : switch (pattern139 (x2))
13468 : {
13469 : case 0:
13470 : if (!(
13471 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13472 : (TARGET_AVX512F) && (
13473 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13474 : (TARGET_SSE
13475 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13476 : && (64 == 64 || TARGET_AVX512VL)
13477 : && 1) &&
13478 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13479 : (TARGET_AVX512FP16))))
13480 : return -1;
13481 : return 3053; /* *smaxv32hf3_mask */
13482 :
13483 : case 1:
13484 : if (!(
13485 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13486 : (TARGET_AVX512F) && (
13487 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13488 : (TARGET_SSE
13489 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13490 : && (32 == 64 || TARGET_AVX512VL)
13491 : && 1) &&
13492 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13493 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13494 : return -1;
13495 : return 3060; /* *smaxv16hf3_mask */
13496 :
13497 : case 2:
13498 : if (!(
13499 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13500 : (TARGET_AVX512F) && (
13501 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13502 : (TARGET_SSE
13503 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13504 : && (16 == 64 || TARGET_AVX512VL)
13505 : && 1) &&
13506 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13507 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13508 : return -1;
13509 : return 3064; /* *smaxv8hf3_mask */
13510 :
13511 : case 3:
13512 : if (!(
13513 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13514 : (TARGET_AVX512F) && (
13515 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13516 : (TARGET_SSE
13517 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13518 : && (64 == 64 || TARGET_AVX512VL)
13519 : && 1) &&
13520 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13521 : (TARGET_AVX512F))))
13522 : return -1;
13523 : return 3069; /* *smaxv16sf3_mask */
13524 :
13525 : case 4:
13526 : if (!(
13527 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13528 : (TARGET_AVX512F) && (
13529 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13530 : (TARGET_SSE
13531 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13532 : && (32 == 64 || TARGET_AVX512VL)
13533 : && 1) &&
13534 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13535 : (TARGET_AVX))))
13536 : return -1;
13537 : return 3076; /* *smaxv8sf3_mask */
13538 :
13539 : case 5:
13540 : if (!(
13541 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13542 : (TARGET_AVX512F) &&
13543 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13544 : (TARGET_SSE
13545 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13546 : && (16 == 64 || TARGET_AVX512VL)
13547 : && 1)))
13548 : return -1;
13549 : return 3080; /* *smaxv4sf3_mask */
13550 :
13551 : case 6:
13552 : if (!(
13553 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13554 : (TARGET_AVX512F) && (
13555 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13556 : (TARGET_SSE
13557 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13558 : && (64 == 64 || TARGET_AVX512VL)
13559 : && 1) &&
13560 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13561 : (TARGET_AVX512F))))
13562 : return -1;
13563 : return 3085; /* *smaxv8df3_mask */
13564 :
13565 : case 7:
13566 : if (!(
13567 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13568 : (TARGET_AVX512F) && (
13569 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13570 : (TARGET_SSE
13571 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13572 : && (32 == 64 || TARGET_AVX512VL)
13573 : && 1) &&
13574 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13575 : (TARGET_AVX))))
13576 : return -1;
13577 : return 3092; /* *smaxv4df3_mask */
13578 :
13579 : case 8:
13580 : if (!(
13581 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13582 : (TARGET_AVX512F) && (
13583 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13584 : (TARGET_SSE
13585 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13586 : && (16 == 64 || TARGET_AVX512VL)
13587 : && 1) &&
13588 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13589 : (TARGET_SSE2))))
13590 : return -1;
13591 : return 3096; /* *smaxv2df3_mask */
13592 :
13593 : case 9:
13594 : if (!(
13595 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13596 : (TARGET_AVX512F) &&
13597 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13598 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13599 : return -1;
13600 : return 7838; /* *avx512f_smaxv16si3_mask */
13601 :
13602 : case 10:
13603 : if (!(
13604 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13605 : (TARGET_AVX512F) && (
13606 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13607 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13608 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13609 : (TARGET_AVX512VL))))
13610 : return -1;
13611 : return 7846; /* *avx512f_smaxv8si3_mask */
13612 :
13613 : case 11:
13614 : if (nonimmediate_operand (operands[1], E_V4SImode)
13615 : && nonimmediate_operand (operands[2], E_V4SImode)
13616 : && (
13617 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13618 : (TARGET_AVX512F) && (
13619 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13620 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13621 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13622 : (TARGET_AVX512VL))))
13623 : return 7854; /* *avx512f_smaxv4si3_mask */
13624 : if (!vector_operand (operands[1], E_V4SImode)
13625 : || !vector_operand (operands[2], E_V4SImode)
13626 : || !(
13627 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13628 : (TARGET_AVX512F) &&
13629 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13630 : (TARGET_SSE4_1
13631 : && (16 == 64 || TARGET_AVX512VL)
13632 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13633 : return -1;
13634 : return 7938; /* *sse4_1_smaxv4si3_mask */
13635 :
13636 : case 12:
13637 : if (!(
13638 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13639 : (TARGET_AVX512F) &&
13640 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13641 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13642 : return -1;
13643 : return 7862; /* *avx512f_smaxv8di3_mask */
13644 :
13645 : case 13:
13646 : if (!(
13647 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13648 : (TARGET_AVX512F) && (
13649 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13650 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13651 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13652 : (TARGET_AVX512VL))))
13653 : return -1;
13654 : return 7870; /* *avx512f_smaxv4di3_mask */
13655 :
13656 : case 14:
13657 : if (!(
13658 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13659 : (TARGET_AVX512F) && (
13660 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13661 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13662 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13663 : (TARGET_AVX512VL))))
13664 : return -1;
13665 : return 7878; /* *avx512f_smaxv2di3_mask */
13666 :
13667 : case 15:
13668 : if (!(
13669 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13670 : (TARGET_AVX512F) &&
13671 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13672 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13673 : return -1;
13674 : return 7886; /* *avx512bw_smaxv64qi3_mask */
13675 :
13676 : case 16:
13677 : if (nonimmediate_operand (operands[1], E_V16QImode)
13678 : && nonimmediate_operand (operands[2], E_V16QImode)
13679 : && (
13680 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13681 : (TARGET_AVX512F) && (
13682 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13683 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13684 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13685 : (TARGET_AVX512VL))))
13686 : return 7894; /* *avx512bw_smaxv16qi3_mask */
13687 : if (!vector_operand (operands[1], E_V16QImode)
13688 : || !vector_operand (operands[2], E_V16QImode)
13689 : || !(
13690 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13691 : (TARGET_AVX512F) &&
13692 : #line 18256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13693 : (TARGET_SSE4_1
13694 : && (16 == 64 || TARGET_AVX512VL)
13695 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13696 : return -1;
13697 : return 7934; /* *sse4_1_smaxv16qi3_mask */
13698 :
13699 : case 17:
13700 : if (!(
13701 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13702 : (TARGET_AVX512F) && (
13703 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13704 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13705 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13706 : (TARGET_AVX512VL))))
13707 : return -1;
13708 : return 7902; /* *avx512bw_smaxv32qi3_mask */
13709 :
13710 : case 18:
13711 : if (!(
13712 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13713 : (TARGET_AVX512F) &&
13714 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13715 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13716 : return -1;
13717 : return 7910; /* *avx512bw_smaxv32hi3_mask */
13718 :
13719 : case 19:
13720 : if (!(
13721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13722 : (TARGET_AVX512F) && (
13723 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13724 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13725 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13726 : (TARGET_AVX512VL))))
13727 : return -1;
13728 : return 7918; /* *avx512bw_smaxv16hi3_mask */
13729 :
13730 : case 20:
13731 : if (!(
13732 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13733 : (TARGET_AVX512F) && (
13734 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13735 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13736 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13737 : (TARGET_AVX512VL))))
13738 : return -1;
13739 : return 7926; /* *avx512bw_smaxv8hi3_mask */
13740 :
13741 : case 21:
13742 : if (!(
13743 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13744 : (TARGET_AVX512F) &&
13745 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13746 : (TARGET_AVX10_2)))
13747 : return -1;
13748 : return 10697; /* avx10_2_smaxbf16_v32bf_mask */
13749 :
13750 : case 22:
13751 : if (!(
13752 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13753 : (TARGET_AVX512F) &&
13754 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13755 : (TARGET_AVX10_2)))
13756 : return -1;
13757 : return 10701; /* avx10_2_smaxbf16_v16bf_mask */
13758 :
13759 : case 23:
13760 : if (!(
13761 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13762 : (TARGET_AVX512F) &&
13763 : #line 33186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13764 : (TARGET_AVX10_2)))
13765 : return -1;
13766 : return 10705; /* avx10_2_smaxbf16_v8bf_mask */
13767 :
13768 : case 24:
13769 : if (!(
13770 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13771 : (TARGET_SSE) &&
13772 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13773 : (TARGET_AVX512FP16)))
13774 : return -1;
13775 : return 3174; /* *avx512fp16_vmsmaxv8hf3 */
13776 :
13777 : case 25:
13778 : if (!
13779 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13780 : (TARGET_SSE))
13781 : return -1;
13782 : return 3182; /* *sse_vmsmaxv4sf3 */
13783 :
13784 : case 26:
13785 : if (!(
13786 : #line 3568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13787 : (TARGET_SSE) &&
13788 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13789 : (TARGET_SSE2)))
13790 : return -1;
13791 : return 3190; /* *sse2_vmsmaxv2df3 */
13792 :
13793 : default:
13794 : return -1;
13795 : }
13796 : }
13797 :
13798 : int
13799 : recog_212 (rtx x1 ATTRIBUTE_UNUSED,
13800 : rtx_insn *insn ATTRIBUTE_UNUSED,
13801 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13802 : {
13803 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13804 : rtx x2, x3;
13805 : int res ATTRIBUTE_UNUSED;
13806 : x2 = XEXP (x1, 1);
13807 : x3 = XVECEXP (x2, 0, 0);
13808 : operands[1] = x3;
13809 : switch (GET_MODE (operands[0]))
13810 : {
13811 : case E_V64QImode:
13812 : if (!register_operand (operands[0], E_V64QImode)
13813 : || GET_MODE (x2) != E_V64QImode
13814 : || !memory_operand (operands[1], E_V64QImode)
13815 : || !(
13816 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13817 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13818 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13819 : (TARGET_AVX512BW)))
13820 : return -1;
13821 : return 11056; /* avx10_2_vmovrsbv64qi */
13822 :
13823 : case E_V32QImode:
13824 : if (!register_operand (operands[0], E_V32QImode)
13825 : || GET_MODE (x2) != E_V32QImode
13826 : || !memory_operand (operands[1], E_V32QImode)
13827 : || !(
13828 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13829 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13830 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13831 : (TARGET_AVX512VL && TARGET_AVX512BW)))
13832 : return -1;
13833 : return 11058; /* avx10_2_vmovrsbv32qi */
13834 :
13835 : case E_V16QImode:
13836 : if (!register_operand (operands[0], E_V16QImode)
13837 : || GET_MODE (x2) != E_V16QImode
13838 : || !memory_operand (operands[1], E_V16QImode)
13839 : || !(
13840 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13841 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13842 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13843 : (TARGET_AVX512VL && TARGET_AVX512BW)))
13844 : return -1;
13845 : return 11060; /* avx10_2_vmovrsbv16qi */
13846 :
13847 : case E_V32HImode:
13848 : if (!register_operand (operands[0], E_V32HImode)
13849 : || GET_MODE (x2) != E_V32HImode
13850 : || !memory_operand (operands[1], E_V32HImode)
13851 : || !(
13852 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13853 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13854 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13855 : (TARGET_AVX512BW)))
13856 : return -1;
13857 : return 11062; /* avx10_2_vmovrswv32hi */
13858 :
13859 : case E_V16HImode:
13860 : if (!register_operand (operands[0], E_V16HImode)
13861 : || GET_MODE (x2) != E_V16HImode
13862 : || !memory_operand (operands[1], E_V16HImode)
13863 : || !(
13864 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13865 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13866 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13867 : (TARGET_AVX512VL && TARGET_AVX512BW)))
13868 : return -1;
13869 : return 11064; /* avx10_2_vmovrswv16hi */
13870 :
13871 : case E_V8HImode:
13872 : if (!register_operand (operands[0], E_V8HImode)
13873 : || GET_MODE (x2) != E_V8HImode
13874 : || !memory_operand (operands[1], E_V8HImode)
13875 : || !(
13876 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13877 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13878 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13879 : (TARGET_AVX512VL && TARGET_AVX512BW)))
13880 : return -1;
13881 : return 11066; /* avx10_2_vmovrswv8hi */
13882 :
13883 : case E_V16SImode:
13884 : if (!register_operand (operands[0], E_V16SImode)
13885 : || GET_MODE (x2) != E_V16SImode
13886 : || !memory_operand (operands[1], E_V16SImode)
13887 : || !
13888 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13889 : (TARGET_AVX10_2 && TARGET_MOVRS))
13890 : return -1;
13891 : return 11068; /* avx10_2_vmovrsdv16si */
13892 :
13893 : case E_V8SImode:
13894 : if (!register_operand (operands[0], E_V8SImode)
13895 : || GET_MODE (x2) != E_V8SImode
13896 : || !memory_operand (operands[1], E_V8SImode)
13897 : || !(
13898 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13899 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13900 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13901 : (TARGET_AVX512VL)))
13902 : return -1;
13903 : return 11070; /* avx10_2_vmovrsdv8si */
13904 :
13905 : case E_V4SImode:
13906 : if (!register_operand (operands[0], E_V4SImode)
13907 : || GET_MODE (x2) != E_V4SImode
13908 : || !memory_operand (operands[1], E_V4SImode)
13909 : || !(
13910 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13911 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13912 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13913 : (TARGET_AVX512VL)))
13914 : return -1;
13915 : return 11072; /* avx10_2_vmovrsdv4si */
13916 :
13917 : case E_V8DImode:
13918 : if (!register_operand (operands[0], E_V8DImode)
13919 : || GET_MODE (x2) != E_V8DImode
13920 : || !memory_operand (operands[1], E_V8DImode)
13921 : || !
13922 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13923 : (TARGET_AVX10_2 && TARGET_MOVRS))
13924 : return -1;
13925 : return 11074; /* avx10_2_vmovrsqv8di */
13926 :
13927 : case E_V4DImode:
13928 : if (!register_operand (operands[0], E_V4DImode)
13929 : || GET_MODE (x2) != E_V4DImode
13930 : || !memory_operand (operands[1], E_V4DImode)
13931 : || !(
13932 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13933 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13934 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13935 : (TARGET_AVX512VL)))
13936 : return -1;
13937 : return 11076; /* avx10_2_vmovrsqv4di */
13938 :
13939 : case E_V2DImode:
13940 : if (!register_operand (operands[0], E_V2DImode)
13941 : || GET_MODE (x2) != E_V2DImode
13942 : || !memory_operand (operands[1], E_V2DImode)
13943 : || !(
13944 : #line 33751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13945 : (TARGET_AVX10_2 && TARGET_MOVRS) &&
13946 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13947 : (TARGET_AVX512VL)))
13948 : return -1;
13949 : return 11078; /* avx10_2_vmovrsqv2di */
13950 :
13951 : default:
13952 : return -1;
13953 : }
13954 : }
13955 :
13956 : int
13957 : recog_222 (rtx x1 ATTRIBUTE_UNUSED,
13958 : rtx_insn *insn ATTRIBUTE_UNUSED,
13959 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13960 : {
13961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13962 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13963 : rtx x10, x11, x12, x13, x14;
13964 : int res ATTRIBUTE_UNUSED;
13965 : x2 = XEXP (x1, 1);
13966 : x3 = XVECEXP (x2, 0, 0);
13967 : x4 = XEXP (x3, 2);
13968 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13969 : return -1;
13970 : x5 = XEXP (x3, 0);
13971 : x6 = XEXP (x5, 2);
13972 : if (!register_operand (x6, E_QImode))
13973 : return -1;
13974 : x7 = XVECEXP (x2, 0, 1);
13975 : if (!const_4_or_8_to_11_operand (x7, E_SImode))
13976 : return -1;
13977 : x8 = XEXP (x5, 0);
13978 : x9 = XEXP (x8, 0);
13979 : switch (GET_CODE (x9))
13980 : {
13981 : case REG:
13982 : case SUBREG:
13983 : case MEM:
13984 : operands[1] = x9;
13985 : x10 = XEXP (x8, 1);
13986 : operands[2] = x10;
13987 : x11 = XEXP (x8, 2);
13988 : switch (GET_CODE (x11))
13989 : {
13990 : case REG:
13991 : case SUBREG:
13992 : case MEM:
13993 : operands[3] = x11;
13994 : switch (pattern1527 (x2))
13995 : {
13996 : case 0:
13997 : if (pattern1696 (x2,
13998 : E_V8HFmode) != 0)
13999 : return -1;
14000 : if (nonimmediate_operand (operands[1], E_V8HFmode)
14001 : && register_operand (operands[3], E_V8HFmode))
14002 : {
14003 : x12 = XEXP (x5, 1);
14004 : if (rtx_equal_p (x12, operands[1]))
14005 : {
14006 : x13 = XEXP (x3, 1);
14007 : if (rtx_equal_p (x13, operands[1])
14008 : && (
14009 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14010 : (TARGET_AVX512F) && (
14011 : #line 7075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14012 : (TARGET_AVX512F) &&
14013 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14014 : (TARGET_AVX512FP16))))
14015 : return 4289; /* avx512f_vmfmadd_v8hf_mask_round */
14016 : }
14017 : }
14018 : if (!register_operand (operands[1], E_V8HFmode)
14019 : || !nonimmediate_operand (operands[3], E_V8HFmode))
14020 : return -1;
14021 : x12 = XEXP (x5, 1);
14022 : if (!rtx_equal_p (x12, operands[3]))
14023 : return -1;
14024 : x13 = XEXP (x3, 1);
14025 : if (!rtx_equal_p (x13, operands[3])
14026 : || !(
14027 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14028 : (TARGET_AVX512F) && (
14029 : #line 7095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14030 : (TARGET_AVX512F) &&
14031 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14032 : (TARGET_AVX512FP16))))
14033 : return -1;
14034 : return 4295; /* avx512f_vmfmadd_v8hf_mask3_round */
14035 :
14036 : case 1:
14037 : if (pattern1696 (x2,
14038 : E_V4SFmode) != 0)
14039 : return -1;
14040 : if (nonimmediate_operand (operands[1], E_V4SFmode)
14041 : && register_operand (operands[3], E_V4SFmode))
14042 : {
14043 : x12 = XEXP (x5, 1);
14044 : if (rtx_equal_p (x12, operands[1]))
14045 : {
14046 : x13 = XEXP (x3, 1);
14047 : if (rtx_equal_p (x13, operands[1])
14048 : &&
14049 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14050 : (TARGET_AVX512F))
14051 : return 4291; /* avx512f_vmfmadd_v4sf_mask_round */
14052 : }
14053 : }
14054 : if (!register_operand (operands[1], E_V4SFmode)
14055 : || !nonimmediate_operand (operands[3], E_V4SFmode))
14056 : return -1;
14057 : x12 = XEXP (x5, 1);
14058 : if (!rtx_equal_p (x12, operands[3]))
14059 : return -1;
14060 : x13 = XEXP (x3, 1);
14061 : if (!rtx_equal_p (x13, operands[3])
14062 : || !
14063 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14064 : (TARGET_AVX512F))
14065 : return -1;
14066 : return 4297; /* avx512f_vmfmadd_v4sf_mask3_round */
14067 :
14068 : case 2:
14069 : if (pattern1696 (x2,
14070 : E_V2DFmode) != 0)
14071 : return -1;
14072 : if (nonimmediate_operand (operands[1], E_V2DFmode)
14073 : && register_operand (operands[3], E_V2DFmode))
14074 : {
14075 : x12 = XEXP (x5, 1);
14076 : if (rtx_equal_p (x12, operands[1]))
14077 : {
14078 : x13 = XEXP (x3, 1);
14079 : if (rtx_equal_p (x13, operands[1])
14080 : && (
14081 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14082 : (TARGET_AVX512F) && (
14083 : #line 7075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14084 : (TARGET_AVX512F) &&
14085 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14086 : (TARGET_SSE2))))
14087 : return 4293; /* avx512f_vmfmadd_v2df_mask_round */
14088 : }
14089 : }
14090 : if (!register_operand (operands[1], E_V2DFmode)
14091 : || !nonimmediate_operand (operands[3], E_V2DFmode))
14092 : return -1;
14093 : x12 = XEXP (x5, 1);
14094 : if (!rtx_equal_p (x12, operands[3]))
14095 : return -1;
14096 : x13 = XEXP (x3, 1);
14097 : if (!rtx_equal_p (x13, operands[3])
14098 : || !(
14099 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14100 : (TARGET_AVX512F) && (
14101 : #line 7095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14102 : (TARGET_AVX512F) &&
14103 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14104 : (TARGET_SSE2))))
14105 : return -1;
14106 : return 4299; /* avx512f_vmfmadd_v2df_mask3_round */
14107 :
14108 : case 3:
14109 : if (pattern1757 (x2,
14110 : E_V8HFmode) != 0
14111 : || !(
14112 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14113 : (TARGET_AVX512F) && (
14114 : #line 7127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14115 : (TARGET_AVX512F) &&
14116 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14117 : (TARGET_AVX512FP16))))
14118 : return -1;
14119 : return 4301; /* avx512f_vmfmadd_v8hf_maskz_1_round */
14120 :
14121 : case 4:
14122 : if (pattern1757 (x2,
14123 : E_V4SFmode) != 0
14124 : || !
14125 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14126 : (TARGET_AVX512F))
14127 : return -1;
14128 : return 4303; /* avx512f_vmfmadd_v4sf_maskz_1_round */
14129 :
14130 : case 5:
14131 : if (pattern1757 (x2,
14132 : E_V2DFmode) != 0
14133 : || !(
14134 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14135 : (TARGET_AVX512F) && (
14136 : #line 7127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14137 : (TARGET_AVX512F) &&
14138 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14139 : (TARGET_SSE2))))
14140 : return -1;
14141 : return 4305; /* avx512f_vmfmadd_v2df_maskz_1_round */
14142 :
14143 : default:
14144 : return -1;
14145 : }
14146 :
14147 : case NEG:
14148 : x14 = XEXP (x11, 0);
14149 : operands[3] = x14;
14150 : switch (pattern1527 (x2))
14151 : {
14152 : case 0:
14153 : if (pattern1697 (x2,
14154 : E_V8HFmode) != 0)
14155 : return -1;
14156 : if (nonimmediate_operand (operands[1], E_V8HFmode)
14157 : && register_operand (operands[3], E_V8HFmode))
14158 : {
14159 : x12 = XEXP (x5, 1);
14160 : if (rtx_equal_p (x12, operands[1]))
14161 : {
14162 : x13 = XEXP (x3, 1);
14163 : if (rtx_equal_p (x13, operands[1])
14164 : && (
14165 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14166 : (TARGET_AVX512F) && (
14167 : #line 7148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14168 : (TARGET_AVX512F) &&
14169 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14170 : (TARGET_AVX512FP16))))
14171 : return 4307; /* *avx512f_vmfmsub_v8hf_mask_round */
14172 : }
14173 : }
14174 : if (!register_operand (operands[1], E_V8HFmode)
14175 : || !nonimmediate_operand (operands[3], E_V8HFmode))
14176 : return -1;
14177 : x12 = XEXP (x5, 1);
14178 : if (!rtx_equal_p (x12, operands[3]))
14179 : return -1;
14180 : x13 = XEXP (x3, 1);
14181 : if (!rtx_equal_p (x13, operands[3])
14182 : || !(
14183 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14184 : (TARGET_AVX512F) && (
14185 : #line 7169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14186 : (TARGET_AVX512F) &&
14187 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14188 : (TARGET_AVX512FP16))))
14189 : return -1;
14190 : return 4313; /* avx512f_vmfmsub_v8hf_mask3_round */
14191 :
14192 : case 1:
14193 : if (pattern1697 (x2,
14194 : E_V4SFmode) != 0)
14195 : return -1;
14196 : if (nonimmediate_operand (operands[1], E_V4SFmode)
14197 : && register_operand (operands[3], E_V4SFmode))
14198 : {
14199 : x12 = XEXP (x5, 1);
14200 : if (rtx_equal_p (x12, operands[1]))
14201 : {
14202 : x13 = XEXP (x3, 1);
14203 : if (rtx_equal_p (x13, operands[1])
14204 : &&
14205 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14206 : (TARGET_AVX512F))
14207 : return 4309; /* *avx512f_vmfmsub_v4sf_mask_round */
14208 : }
14209 : }
14210 : if (!register_operand (operands[1], E_V4SFmode)
14211 : || !nonimmediate_operand (operands[3], E_V4SFmode))
14212 : return -1;
14213 : x12 = XEXP (x5, 1);
14214 : if (!rtx_equal_p (x12, operands[3]))
14215 : return -1;
14216 : x13 = XEXP (x3, 1);
14217 : if (!rtx_equal_p (x13, operands[3])
14218 : || !
14219 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14220 : (TARGET_AVX512F))
14221 : return -1;
14222 : return 4315; /* avx512f_vmfmsub_v4sf_mask3_round */
14223 :
14224 : case 2:
14225 : if (pattern1697 (x2,
14226 : E_V2DFmode) != 0)
14227 : return -1;
14228 : if (nonimmediate_operand (operands[1], E_V2DFmode)
14229 : && register_operand (operands[3], E_V2DFmode))
14230 : {
14231 : x12 = XEXP (x5, 1);
14232 : if (rtx_equal_p (x12, operands[1]))
14233 : {
14234 : x13 = XEXP (x3, 1);
14235 : if (rtx_equal_p (x13, operands[1])
14236 : && (
14237 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14238 : (TARGET_AVX512F) && (
14239 : #line 7148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14240 : (TARGET_AVX512F) &&
14241 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14242 : (TARGET_SSE2))))
14243 : return 4311; /* *avx512f_vmfmsub_v2df_mask_round */
14244 : }
14245 : }
14246 : if (!register_operand (operands[1], E_V2DFmode)
14247 : || !nonimmediate_operand (operands[3], E_V2DFmode))
14248 : return -1;
14249 : x12 = XEXP (x5, 1);
14250 : if (!rtx_equal_p (x12, operands[3]))
14251 : return -1;
14252 : x13 = XEXP (x3, 1);
14253 : if (!rtx_equal_p (x13, operands[3])
14254 : || !(
14255 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14256 : (TARGET_AVX512F) && (
14257 : #line 7169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14258 : (TARGET_AVX512F) &&
14259 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14260 : (TARGET_SSE2))))
14261 : return -1;
14262 : return 4317; /* avx512f_vmfmsub_v2df_mask3_round */
14263 :
14264 : case 3:
14265 : if (pattern1758 (x2,
14266 : E_V8HFmode) != 0
14267 : || !(
14268 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14269 : (TARGET_AVX512F) && (
14270 : #line 7188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14271 : (TARGET_AVX512F) &&
14272 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14273 : (TARGET_AVX512FP16))))
14274 : return -1;
14275 : return 4319; /* *avx512f_vmfmsub_v8hf_maskz_1_round */
14276 :
14277 : case 4:
14278 : if (pattern1758 (x2,
14279 : E_V4SFmode) != 0
14280 : || !
14281 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14282 : (TARGET_AVX512F))
14283 : return -1;
14284 : return 4321; /* *avx512f_vmfmsub_v4sf_maskz_1_round */
14285 :
14286 : case 5:
14287 : if (pattern1758 (x2,
14288 : E_V2DFmode) != 0
14289 : || !(
14290 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14291 : (TARGET_AVX512F) && (
14292 : #line 7188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14293 : (TARGET_AVX512F) &&
14294 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14295 : (TARGET_SSE2))))
14296 : return -1;
14297 : return 4323; /* *avx512f_vmfmsub_v2df_maskz_1_round */
14298 :
14299 : default:
14300 : return -1;
14301 : }
14302 :
14303 : default:
14304 : return -1;
14305 : }
14306 :
14307 : case NEG:
14308 : x11 = XEXP (x8, 2);
14309 : switch (GET_CODE (x11))
14310 : {
14311 : case REG:
14312 : case SUBREG:
14313 : case MEM:
14314 : operands[3] = x11;
14315 : switch (pattern1410 (x2))
14316 : {
14317 : case 0:
14318 : x10 = XEXP (x8, 1);
14319 : operands[2] = x10;
14320 : if (pattern1839 (x3,
14321 : E_V8HFmode) == 0
14322 : && (
14323 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14324 : (TARGET_AVX512F) && (
14325 : #line 7209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14326 : (TARGET_AVX512F) &&
14327 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_AVX512FP16))))
14329 : return 4325; /* avx512f_vmfnmadd_v8hf_mask_round */
14330 : operands[1] = x10;
14331 : if (pattern1840 (x3,
14332 : E_V8HFmode) != 0
14333 : || !(
14334 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14335 : (TARGET_AVX512F) && (
14336 : #line 7230 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14337 : (TARGET_AVX512F) &&
14338 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14339 : (TARGET_AVX512FP16))))
14340 : return -1;
14341 : return 4331; /* avx512f_vmfnmadd_v8hf_mask3_round */
14342 :
14343 : case 1:
14344 : x10 = XEXP (x8, 1);
14345 : operands[2] = x10;
14346 : if (pattern1839 (x3,
14347 : E_V4SFmode) == 0
14348 : &&
14349 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14350 : (TARGET_AVX512F))
14351 : return 4327; /* avx512f_vmfnmadd_v4sf_mask_round */
14352 : operands[1] = x10;
14353 : if (pattern1840 (x3,
14354 : E_V4SFmode) != 0
14355 : || !
14356 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14357 : (TARGET_AVX512F))
14358 : return -1;
14359 : return 4333; /* avx512f_vmfnmadd_v4sf_mask3_round */
14360 :
14361 : case 2:
14362 : x10 = XEXP (x8, 1);
14363 : operands[2] = x10;
14364 : if (pattern1839 (x3,
14365 : E_V2DFmode) == 0
14366 : && (
14367 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14368 : (TARGET_AVX512F) && (
14369 : #line 7209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14370 : (TARGET_AVX512F) &&
14371 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14372 : (TARGET_SSE2))))
14373 : return 4329; /* avx512f_vmfnmadd_v2df_mask_round */
14374 : operands[1] = x10;
14375 : if (pattern1840 (x3,
14376 : E_V2DFmode) != 0
14377 : || !(
14378 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14379 : (TARGET_AVX512F) && (
14380 : #line 7230 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14381 : (TARGET_AVX512F) &&
14382 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14383 : (TARGET_SSE2))))
14384 : return -1;
14385 : return 4335; /* avx512f_vmfnmadd_v2df_mask3_round */
14386 :
14387 : case 3:
14388 : if (pattern1759 (x2,
14389 : E_V8HFmode) != 0
14390 : || !(
14391 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14392 : (TARGET_AVX512F) && (
14393 : #line 7263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14394 : (TARGET_AVX512F) &&
14395 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14396 : (TARGET_AVX512FP16))))
14397 : return -1;
14398 : return 4337; /* avx512f_vmfnmadd_v8hf_maskz_1_round */
14399 :
14400 : case 4:
14401 : if (pattern1759 (x2,
14402 : E_V4SFmode) != 0
14403 : || !
14404 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14405 : (TARGET_AVX512F))
14406 : return -1;
14407 : return 4339; /* avx512f_vmfnmadd_v4sf_maskz_1_round */
14408 :
14409 : case 5:
14410 : if (pattern1759 (x2,
14411 : E_V2DFmode) != 0
14412 : || !(
14413 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14414 : (TARGET_AVX512F) && (
14415 : #line 7263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14416 : (TARGET_AVX512F) &&
14417 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14418 : (TARGET_SSE2))))
14419 : return -1;
14420 : return 4341; /* avx512f_vmfnmadd_v2df_maskz_1_round */
14421 :
14422 : default:
14423 : return -1;
14424 : }
14425 :
14426 : case NEG:
14427 : x14 = XEXP (x11, 0);
14428 : operands[3] = x14;
14429 : switch (pattern1410 (x2))
14430 : {
14431 : case 0:
14432 : x10 = XEXP (x8, 1);
14433 : operands[2] = x10;
14434 : if (pattern1841 (x3,
14435 : E_V8HFmode) == 0
14436 : && (
14437 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14438 : (TARGET_AVX512F) && (
14439 : #line 7285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14440 : (TARGET_AVX512F) &&
14441 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14442 : (TARGET_AVX512FP16))))
14443 : return 4343; /* *avx512f_vmfnmsub_v8hf_mask_round */
14444 : operands[1] = x10;
14445 : if (pattern1842 (x3,
14446 : E_V8HFmode) != 0
14447 : || !(
14448 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14449 : (TARGET_AVX512F) && (
14450 : #line 7307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14451 : (TARGET_AVX512F) &&
14452 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14453 : (TARGET_AVX512FP16))))
14454 : return -1;
14455 : return 4349; /* *avx512f_vmfnmsub_v8hf_mask3_round */
14456 :
14457 : case 1:
14458 : x10 = XEXP (x8, 1);
14459 : operands[2] = x10;
14460 : if (pattern1841 (x3,
14461 : E_V4SFmode) == 0
14462 : &&
14463 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14464 : (TARGET_AVX512F))
14465 : return 4345; /* *avx512f_vmfnmsub_v4sf_mask_round */
14466 : operands[1] = x10;
14467 : if (pattern1842 (x3,
14468 : E_V4SFmode) != 0
14469 : || !
14470 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14471 : (TARGET_AVX512F))
14472 : return -1;
14473 : return 4351; /* *avx512f_vmfnmsub_v4sf_mask3_round */
14474 :
14475 : case 2:
14476 : x10 = XEXP (x8, 1);
14477 : operands[2] = x10;
14478 : if (pattern1841 (x3,
14479 : E_V2DFmode) == 0
14480 : && (
14481 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14482 : (TARGET_AVX512F) && (
14483 : #line 7285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14484 : (TARGET_AVX512F) &&
14485 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14486 : (TARGET_SSE2))))
14487 : return 4347; /* *avx512f_vmfnmsub_v2df_mask_round */
14488 : operands[1] = x10;
14489 : if (pattern1842 (x3,
14490 : E_V2DFmode) != 0
14491 : || !(
14492 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14493 : (TARGET_AVX512F) && (
14494 : #line 7307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14495 : (TARGET_AVX512F) &&
14496 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14497 : (TARGET_SSE2))))
14498 : return -1;
14499 : return 4353; /* *avx512f_vmfnmsub_v2df_mask3_round */
14500 :
14501 : case 3:
14502 : if (pattern1760 (x2,
14503 : E_V8HFmode) != 0
14504 : || !(
14505 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14506 : (TARGET_AVX512F) && (
14507 : #line 7327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14508 : (TARGET_AVX512F) &&
14509 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14510 : (TARGET_AVX512FP16))))
14511 : return -1;
14512 : return 4355; /* *avx512f_vmfnmsub_v8hf_maskz_1_round */
14513 :
14514 : case 4:
14515 : if (pattern1760 (x2,
14516 : E_V4SFmode) != 0
14517 : || !
14518 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14519 : (TARGET_AVX512F))
14520 : return -1;
14521 : return 4357; /* *avx512f_vmfnmsub_v4sf_maskz_1_round */
14522 :
14523 : case 5:
14524 : if (pattern1760 (x2,
14525 : E_V2DFmode) != 0
14526 : || !(
14527 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14528 : (TARGET_AVX512F) && (
14529 : #line 7327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14530 : (TARGET_AVX512F) &&
14531 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14532 : (TARGET_SSE2))))
14533 : return -1;
14534 : return 4359; /* *avx512f_vmfnmsub_v2df_maskz_1_round */
14535 :
14536 : default:
14537 : return -1;
14538 : }
14539 :
14540 : default:
14541 : return -1;
14542 : }
14543 :
14544 : default:
14545 : return -1;
14546 : }
14547 : }
14548 :
14549 : int
14550 : recog_233 (rtx x1 ATTRIBUTE_UNUSED,
14551 : rtx_insn *insn ATTRIBUTE_UNUSED,
14552 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14553 : {
14554 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14555 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14556 : int res ATTRIBUTE_UNUSED;
14557 : x2 = XEXP (x1, 1);
14558 : x3 = XVECEXP (x2, 0, 0);
14559 : switch (XVECLEN (x3, 0))
14560 : {
14561 : case 2:
14562 : x4 = XVECEXP (x3, 0, 0);
14563 : operands[1] = x4;
14564 : x5 = XVECEXP (x3, 0, 1);
14565 : operands[2] = x5;
14566 : x6 = XVECEXP (x2, 0, 1);
14567 : operands[3] = x6;
14568 : switch (XINT (x3, 1))
14569 : {
14570 : case 64:
14571 : switch (pattern1146 (x2))
14572 : {
14573 : case 0:
14574 : if (!(
14575 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14576 : (TARGET_AVX512F) && (
14577 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14578 : (TARGET_SSE
14579 : && 1
14580 : && (V32HFmode == V16SFmode
14581 : || V32HFmode == V8DFmode
14582 : || V32HFmode == V8DImode
14583 : || V32HFmode == V16SImode
14584 : || V32HFmode == V32HFmode)) &&
14585 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14586 : (TARGET_AVX512FP16))))
14587 : return -1;
14588 : return 3121; /* ieee_maxv32hf3_round */
14589 :
14590 : case 1:
14591 : if (!(
14592 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14593 : (TARGET_AVX512F) && (
14594 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14595 : (TARGET_SSE
14596 : && 1
14597 : && (V16SFmode == V16SFmode
14598 : || V16SFmode == V8DFmode
14599 : || V16SFmode == V8DImode
14600 : || V16SFmode == V16SImode
14601 : || V16SFmode == V32HFmode)) &&
14602 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14603 : (TARGET_AVX512F))))
14604 : return -1;
14605 : return 3137; /* ieee_maxv16sf3_round */
14606 :
14607 : case 2:
14608 : if (!(
14609 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14610 : (TARGET_AVX512F) && (
14611 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14612 : (TARGET_SSE
14613 : && 1
14614 : && (V8DFmode == V16SFmode
14615 : || V8DFmode == V8DFmode
14616 : || V8DFmode == V8DImode
14617 : || V8DFmode == V16SImode
14618 : || V8DFmode == V32HFmode)) &&
14619 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14620 : (TARGET_AVX512F))))
14621 : return -1;
14622 : return 3153; /* ieee_maxv8df3_round */
14623 :
14624 : default:
14625 : return -1;
14626 : }
14627 :
14628 : case 63:
14629 : switch (pattern1146 (x2))
14630 : {
14631 : case 0:
14632 : if (!(
14633 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14634 : (TARGET_AVX512F) && (
14635 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14636 : (TARGET_SSE
14637 : && 1
14638 : && (V32HFmode == V16SFmode
14639 : || V32HFmode == V8DFmode
14640 : || V32HFmode == V8DImode
14641 : || V32HFmode == V16SImode
14642 : || V32HFmode == V32HFmode)) &&
14643 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14644 : (TARGET_AVX512FP16))))
14645 : return -1;
14646 : return 3125; /* ieee_minv32hf3_round */
14647 :
14648 : case 1:
14649 : if (!(
14650 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14651 : (TARGET_AVX512F) && (
14652 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14653 : (TARGET_SSE
14654 : && 1
14655 : && (V16SFmode == V16SFmode
14656 : || V16SFmode == V8DFmode
14657 : || V16SFmode == V8DImode
14658 : || V16SFmode == V16SImode
14659 : || V16SFmode == V32HFmode)) &&
14660 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14661 : (TARGET_AVX512F))))
14662 : return -1;
14663 : return 3141; /* ieee_minv16sf3_round */
14664 :
14665 : case 2:
14666 : if (!(
14667 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14668 : (TARGET_AVX512F) && (
14669 : #line 3493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14670 : (TARGET_SSE
14671 : && 1
14672 : && (V8DFmode == V16SFmode
14673 : || V8DFmode == V8DFmode
14674 : || V8DFmode == V8DImode
14675 : || V8DFmode == V16SImode
14676 : || V8DFmode == V32HFmode)) &&
14677 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14678 : (TARGET_AVX512F))))
14679 : return -1;
14680 : return 3157; /* ieee_minv8df3_round */
14681 :
14682 : default:
14683 : return -1;
14684 : }
14685 :
14686 : case 193:
14687 : if (!const_0_to_255_operand (operands[2], E_SImode)
14688 : || !const48_operand (operands[3], E_SImode))
14689 : return -1;
14690 : switch (GET_MODE (operands[0]))
14691 : {
14692 : case E_V32HFmode:
14693 : if (pattern1234 (x2,
14694 : E_V32HFmode) != 0
14695 : || !(
14696 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14697 : (TARGET_AVX512F) && (
14698 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14699 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
14700 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14701 : (TARGET_AVX512FP16))))
14702 : return -1;
14703 : return 3237; /* *reducepv32hf_round */
14704 :
14705 : case E_V16HFmode:
14706 : if (pattern1234 (x2,
14707 : E_V16HFmode) != 0
14708 : || !(
14709 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14710 : (TARGET_AVX512F) && (
14711 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14712 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
14713 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14714 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14715 : return -1;
14716 : return 3241; /* *reducepv16hf_round */
14717 :
14718 : case E_V8HFmode:
14719 : if (pattern1234 (x2,
14720 : E_V8HFmode) != 0
14721 : || !(
14722 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14723 : (TARGET_AVX512F) && (
14724 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14725 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
14726 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14727 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14728 : return -1;
14729 : return 3245; /* *reducepv8hf_round */
14730 :
14731 : case E_V16SFmode:
14732 : if (pattern1234 (x2,
14733 : E_V16SFmode) != 0
14734 : || !(
14735 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14736 : (TARGET_AVX512F) &&
14737 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14738 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode)))))
14739 : return -1;
14740 : return 3249; /* *reducepv16sf_round */
14741 :
14742 : case E_V8SFmode:
14743 : if (pattern1234 (x2,
14744 : E_V8SFmode) != 0
14745 : || !(
14746 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14747 : (TARGET_AVX512F) && (
14748 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14749 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
14750 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14751 : (TARGET_AVX512VL))))
14752 : return -1;
14753 : return 3253; /* *reducepv8sf_round */
14754 :
14755 : case E_V4SFmode:
14756 : if (pattern1234 (x2,
14757 : E_V4SFmode) != 0
14758 : || !(
14759 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14760 : (TARGET_AVX512F) && (
14761 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14762 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
14763 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14764 : (TARGET_AVX512VL))))
14765 : return -1;
14766 : return 3257; /* *reducepv4sf_round */
14767 :
14768 : case E_V8DFmode:
14769 : if (pattern1234 (x2,
14770 : E_V8DFmode) != 0
14771 : || !(
14772 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14773 : (TARGET_AVX512F) &&
14774 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14775 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode)))))
14776 : return -1;
14777 : return 3261; /* *reducepv8df_round */
14778 :
14779 : case E_V4DFmode:
14780 : if (pattern1234 (x2,
14781 : E_V4DFmode) != 0
14782 : || !(
14783 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14784 : (TARGET_AVX512F) && (
14785 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14786 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
14787 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14788 : (TARGET_AVX512VL))))
14789 : return -1;
14790 : return 3265; /* *reducepv4df_round */
14791 :
14792 : case E_V2DFmode:
14793 : if (pattern1234 (x2,
14794 : E_V2DFmode) != 0
14795 : || !(
14796 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14797 : (TARGET_AVX512F) && (
14798 : #line 4293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14799 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
14800 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14801 : (TARGET_AVX512VL))))
14802 : return -1;
14803 : return 3269; /* *reducepv2df_round */
14804 :
14805 : default:
14806 : return -1;
14807 : }
14808 :
14809 : case 222:
14810 : if (pattern1147 (x2) != 0
14811 : || !(
14812 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14813 : (TARGET_AVX512F) &&
14814 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14815 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14816 : || V32HFmode == V8DFmode
14817 : || V32HFmode == V8DImode
14818 : || V32HFmode == V16SImode
14819 : || V32HFmode == V32HFmode))))
14820 : return -1;
14821 : return 4418; /* avx512bw_fmulc_v32hf_round */
14822 :
14823 : case 223:
14824 : if (pattern1147 (x2) != 0
14825 : || !(
14826 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14827 : (TARGET_AVX512F) &&
14828 : #line 7722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14829 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14830 : || V32HFmode == V8DFmode
14831 : || V32HFmode == V8DImode
14832 : || V32HFmode == V16SImode
14833 : || V32HFmode == V32HFmode))))
14834 : return -1;
14835 : return 4422; /* avx512bw_fcmulc_v32hf_round */
14836 :
14837 : case 59:
14838 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
14839 : return -1;
14840 : switch (GET_MODE (operands[0]))
14841 : {
14842 : case E_V32HFmode:
14843 : if (pattern1321 (x2,
14844 : E_V32HFmode) != 0
14845 : || !(
14846 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14847 : (TARGET_AVX512F) && (
14848 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14849 : (TARGET_AVX512F) &&
14850 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14851 : (TARGET_AVX512FP16))))
14852 : return -1;
14853 : return 5449; /* avx512bw_scalefv32hf_round */
14854 :
14855 : case E_V16HFmode:
14856 : if (pattern1321 (x2,
14857 : E_V16HFmode) != 0
14858 : || !(
14859 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14860 : (TARGET_AVX512F) && (
14861 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14862 : (TARGET_AVX512F) &&
14863 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14864 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14865 : return -1;
14866 : return 5453; /* avx512vl_scalefv16hf_round */
14867 :
14868 : case E_V8HFmode:
14869 : if (pattern1321 (x2,
14870 : E_V8HFmode) != 0
14871 : || !(
14872 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14873 : (TARGET_AVX512F) && (
14874 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14875 : (TARGET_AVX512F) &&
14876 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14877 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14878 : return -1;
14879 : return 5457; /* avx512fp16_scalefv8hf_round */
14880 :
14881 : case E_V16SFmode:
14882 : if (pattern1321 (x2,
14883 : E_V16SFmode) != 0
14884 : || !
14885 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14886 : (TARGET_AVX512F))
14887 : return -1;
14888 : return 5461; /* avx512f_scalefv16sf_round */
14889 :
14890 : case E_V8SFmode:
14891 : if (pattern1321 (x2,
14892 : E_V8SFmode) != 0
14893 : || !(
14894 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14895 : (TARGET_AVX512F) && (
14896 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14897 : (TARGET_AVX512F) &&
14898 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14899 : (TARGET_AVX512VL))))
14900 : return -1;
14901 : return 5465; /* avx512vl_scalefv8sf_round */
14902 :
14903 : case E_V4SFmode:
14904 : if (pattern1321 (x2,
14905 : E_V4SFmode) != 0
14906 : || !(
14907 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14908 : (TARGET_AVX512F) && (
14909 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14910 : (TARGET_AVX512F) &&
14911 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14912 : (TARGET_AVX512VL))))
14913 : return -1;
14914 : return 5469; /* avx512vl_scalefv4sf_round */
14915 :
14916 : case E_V8DFmode:
14917 : if (pattern1321 (x2,
14918 : E_V8DFmode) != 0
14919 : || !
14920 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14921 : (TARGET_AVX512F))
14922 : return -1;
14923 : return 5473; /* avx512f_scalefv8df_round */
14924 :
14925 : case E_V4DFmode:
14926 : if (pattern1321 (x2,
14927 : E_V4DFmode) != 0
14928 : || !(
14929 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14930 : (TARGET_AVX512F) && (
14931 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14932 : (TARGET_AVX512F) &&
14933 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14934 : (TARGET_AVX512VL))))
14935 : return -1;
14936 : return 5477; /* avx512vl_scalefv4df_round */
14937 :
14938 : case E_V2DFmode:
14939 : if (pattern1321 (x2,
14940 : E_V2DFmode) != 0
14941 : || !(
14942 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14943 : (TARGET_AVX512F) && (
14944 : #line 14024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14945 : (TARGET_AVX512F) &&
14946 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14947 : (TARGET_AVX512VL))))
14948 : return -1;
14949 : return 5481; /* avx512vl_scalefv2df_round */
14950 :
14951 : default:
14952 : return -1;
14953 : }
14954 :
14955 : case 95:
14956 : if (!const_0_to_255_operand (operands[2], E_SImode))
14957 : return -1;
14958 : switch (pattern1232 (x2))
14959 : {
14960 : case 0:
14961 : if (!(
14962 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14963 : (TARGET_AVX512F) && (
14964 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14965 : (TARGET_AVX512F) &&
14966 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14967 : (TARGET_AVX512FP16))))
14968 : return -1;
14969 : return 7179; /* avx512bw_rndscalev32hf_round */
14970 :
14971 : case 1:
14972 : if (!(
14973 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14974 : (TARGET_AVX512F) && (
14975 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14976 : (TARGET_AVX512F) &&
14977 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14978 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14979 : return -1;
14980 : return 7183; /* avx512vl_rndscalev16hf_round */
14981 :
14982 : case 2:
14983 : if (!(
14984 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14985 : (TARGET_AVX512F) && (
14986 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14987 : (TARGET_AVX512F) &&
14988 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14989 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14990 : return -1;
14991 : return 7187; /* avx512fp16_rndscalev8hf_round */
14992 :
14993 : case 3:
14994 : if (!
14995 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14996 : (TARGET_AVX512F))
14997 : return -1;
14998 : return 7191; /* avx512f_rndscalev16sf_round */
14999 :
15000 : case 4:
15001 : if (!(
15002 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15003 : (TARGET_AVX512F) && (
15004 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15005 : (TARGET_AVX512F) &&
15006 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15007 : (TARGET_AVX512VL))))
15008 : return -1;
15009 : return 7195; /* avx512vl_rndscalev8sf_round */
15010 :
15011 : case 5:
15012 : if (!(
15013 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15014 : (TARGET_AVX512F) && (
15015 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15016 : (TARGET_AVX512F) &&
15017 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15018 : (TARGET_AVX512VL))))
15019 : return -1;
15020 : return 7199; /* avx512vl_rndscalev4sf_round */
15021 :
15022 : case 6:
15023 : if (!
15024 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15025 : (TARGET_AVX512F))
15026 : return -1;
15027 : return 7203; /* avx512f_rndscalev8df_round */
15028 :
15029 : case 7:
15030 : if (!(
15031 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15032 : (TARGET_AVX512F) && (
15033 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15034 : (TARGET_AVX512F) &&
15035 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15036 : (TARGET_AVX512VL))))
15037 : return -1;
15038 : return 7207; /* avx512vl_rndscalev4df_round */
15039 :
15040 : case 8:
15041 : if (!(
15042 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15043 : (TARGET_AVX512F) && (
15044 : #line 14626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15045 : (TARGET_AVX512F) &&
15046 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15047 : (TARGET_AVX512VL))))
15048 : return -1;
15049 : return 7211; /* avx512vl_rndscalev2df_round */
15050 :
15051 : default:
15052 : return -1;
15053 : }
15054 :
15055 : case 151:
15056 : if (GET_MODE (x3) != E_V16HImode
15057 : || !register_operand (operands[0], E_V16HImode)
15058 : || GET_MODE (x2) != E_V16HImode
15059 : || !register_operand (operands[1], E_V16SFmode)
15060 : || !const_0_to_255_operand (operands[2], E_SImode)
15061 : || !const48_operand (operands[3], E_SImode)
15062 : || !
15063 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15064 : (TARGET_AVX512F))
15065 : return -1;
15066 : return 9769; /* *avx512f_vcvtps2ph512_round */
15067 :
15068 : case 167:
15069 : if (!const_0_to_15_operand (operands[2], E_SImode))
15070 : return -1;
15071 : switch (pattern1232 (x2))
15072 : {
15073 : case 0:
15074 : if (!(
15075 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15076 : (TARGET_AVX512F) && (
15077 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15078 : (TARGET_AVX512F) &&
15079 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15080 : (TARGET_AVX512FP16))))
15081 : return -1;
15082 : return 10111; /* avx512bw_getmantv32hf_round */
15083 :
15084 : case 1:
15085 : if (!(
15086 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15087 : (TARGET_AVX512F) && (
15088 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15089 : (TARGET_AVX512F) &&
15090 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15091 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
15092 : return -1;
15093 : return 10115; /* avx512vl_getmantv16hf_round */
15094 :
15095 : case 2:
15096 : if (!(
15097 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15098 : (TARGET_AVX512F) && (
15099 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15100 : (TARGET_AVX512F) &&
15101 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15102 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
15103 : return -1;
15104 : return 10119; /* avx512fp16_getmantv8hf_round */
15105 :
15106 : case 3:
15107 : if (!
15108 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15109 : (TARGET_AVX512F))
15110 : return -1;
15111 : return 10123; /* avx512f_getmantv16sf_round */
15112 :
15113 : case 4:
15114 : if (!(
15115 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15116 : (TARGET_AVX512F) && (
15117 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15118 : (TARGET_AVX512F) &&
15119 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15120 : (TARGET_AVX512VL))))
15121 : return -1;
15122 : return 10127; /* avx512vl_getmantv8sf_round */
15123 :
15124 : case 5:
15125 : if (!(
15126 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15127 : (TARGET_AVX512F) && (
15128 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15129 : (TARGET_AVX512F) &&
15130 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15131 : (TARGET_AVX512VL))))
15132 : return -1;
15133 : return 10131; /* avx512vl_getmantv4sf_round */
15134 :
15135 : case 6:
15136 : if (!
15137 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15138 : (TARGET_AVX512F))
15139 : return -1;
15140 : return 10135; /* avx512f_getmantv8df_round */
15141 :
15142 : case 7:
15143 : if (!(
15144 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15145 : (TARGET_AVX512F) && (
15146 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15147 : (TARGET_AVX512F) &&
15148 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15149 : (TARGET_AVX512VL))))
15150 : return -1;
15151 : return 10139; /* avx512vl_getmantv4df_round */
15152 :
15153 : case 8:
15154 : if (!(
15155 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15156 : (TARGET_AVX512F) && (
15157 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15158 : (TARGET_AVX512F) &&
15159 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15160 : (TARGET_AVX512VL))))
15161 : return -1;
15162 : return 10143; /* avx512vl_getmantv2df_round */
15163 :
15164 : default:
15165 : return -1;
15166 : }
15167 :
15168 : default:
15169 : return -1;
15170 : }
15171 :
15172 : case 3:
15173 : x4 = XVECEXP (x3, 0, 0);
15174 : operands[1] = x4;
15175 : x5 = XVECEXP (x3, 0, 1);
15176 : operands[2] = x5;
15177 : x6 = XVECEXP (x2, 0, 1);
15178 : operands[4] = x6;
15179 : switch (XINT (x3, 1))
15180 : {
15181 : case 134:
15182 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
15183 : return -1;
15184 : x7 = XVECEXP (x3, 0, 2);
15185 : switch (GET_CODE (x7))
15186 : {
15187 : case REG:
15188 : case SUBREG:
15189 : operands[3] = x7;
15190 : switch (GET_MODE (operands[0]))
15191 : {
15192 : case E_V32HFmode:
15193 : if (pattern1487 (x2,
15194 : E_V32HFmode) != 0
15195 : || !(
15196 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15197 : (TARGET_AVX512F) && (
15198 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15199 : (TARGET_AVX512F && 1 && (V32HFmode == V16SFmode
15200 : || V32HFmode == V8DFmode
15201 : || V32HFmode == V8DImode
15202 : || V32HFmode == V16SImode
15203 : || V32HFmode == V32HFmode)) &&
15204 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15205 : (TARGET_AVX512FP16))))
15206 : return -1;
15207 : return 4142; /* *fma_fmaddsub_v32hf_round */
15208 :
15209 : case E_V16SFmode:
15210 : if (pattern1487 (x2,
15211 : E_V16SFmode) != 0
15212 : || !(
15213 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15214 : (TARGET_AVX512F) &&
15215 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15216 : (TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
15217 : || V16SFmode == V8DFmode
15218 : || V16SFmode == V8DImode
15219 : || V16SFmode == V16SImode
15220 : || V16SFmode == V32HFmode))))
15221 : return -1;
15222 : return 4150; /* *fma_fmaddsub_v16sf_round */
15223 :
15224 : case E_V8DFmode:
15225 : if (pattern1487 (x2,
15226 : E_V8DFmode) != 0
15227 : || !(
15228 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15229 : (TARGET_AVX512F) &&
15230 : #line 6825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15231 : (TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
15232 : || V8DFmode == V8DFmode
15233 : || V8DFmode == V8DImode
15234 : || V8DFmode == V16SImode
15235 : || V8DFmode == V32HFmode))))
15236 : return -1;
15237 : return 4158; /* *fma_fmaddsub_v8df_round */
15238 :
15239 : default:
15240 : return -1;
15241 : }
15242 :
15243 : case NEG:
15244 : x8 = XEXP (x7, 0);
15245 : operands[3] = x8;
15246 : switch (GET_MODE (operands[0]))
15247 : {
15248 : case E_V32HFmode:
15249 : if (pattern1488 (x2,
15250 : E_V32HFmode) != 0
15251 : || !(
15252 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15253 : (TARGET_AVX512F) && (
15254 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15255 : (TARGET_AVX512F && 1 && (V32HFmode == V16SFmode
15256 : || V32HFmode == V8DFmode
15257 : || V32HFmode == V8DImode
15258 : || V32HFmode == V16SImode
15259 : || V32HFmode == V32HFmode)) &&
15260 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15261 : (TARGET_AVX512FP16))))
15262 : return -1;
15263 : return 4206; /* *fma_fmsubadd_v32hf_round */
15264 :
15265 : case E_V16SFmode:
15266 : if (pattern1488 (x2,
15267 : E_V16SFmode) != 0
15268 : || !(
15269 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15270 : (TARGET_AVX512F) &&
15271 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15272 : (TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
15273 : || V16SFmode == V8DFmode
15274 : || V16SFmode == V8DImode
15275 : || V16SFmode == V16SImode
15276 : || V16SFmode == V32HFmode))))
15277 : return -1;
15278 : return 4214; /* *fma_fmsubadd_v16sf_round */
15279 :
15280 : case E_V8DFmode:
15281 : if (pattern1488 (x2,
15282 : E_V8DFmode) != 0
15283 : || !(
15284 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15285 : (TARGET_AVX512F) &&
15286 : #line 6895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15287 : (TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
15288 : || V8DFmode == V8DFmode
15289 : || V8DFmode == V8DImode
15290 : || V8DFmode == V16SImode
15291 : || V8DFmode == V32HFmode))))
15292 : return -1;
15293 : return 4222; /* *fma_fmsubadd_v8df_round */
15294 :
15295 : default:
15296 : return -1;
15297 : }
15298 :
15299 : default:
15300 : return -1;
15301 : }
15302 :
15303 : case 218:
15304 : if (pattern1148 (x2) != 0
15305 : || !(
15306 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15307 : (TARGET_AVX512F) &&
15308 : #line 7564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15309 : (TARGET_AVX512FP16 && 1 && (V32HFmode == V16SFmode
15310 : || V32HFmode == V8DFmode
15311 : || V32HFmode == V8DImode
15312 : || V32HFmode == V16SImode
15313 : || V32HFmode == V32HFmode))))
15314 : return -1;
15315 : return 4369; /* fma_fmaddc_v32hf_round */
15316 :
15317 : case 220:
15318 : if (pattern1148 (x2) != 0
15319 : || !(
15320 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15321 : (TARGET_AVX512F) &&
15322 : #line 7564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15323 : (TARGET_AVX512FP16 && 1 && (V32HFmode == V16SFmode
15324 : || V32HFmode == V8DFmode
15325 : || V32HFmode == V8DImode
15326 : || V32HFmode == V16SImode
15327 : || V32HFmode == V32HFmode))))
15328 : return -1;
15329 : return 4373; /* fma_fcmaddc_v32hf_round */
15330 :
15331 : case 195:
15332 : x7 = XVECEXP (x3, 0, 2);
15333 : operands[3] = x7;
15334 : if (!const_0_to_15_operand (operands[3], E_SImode)
15335 : || !const48_operand (operands[4], E_SImode))
15336 : return -1;
15337 : switch (GET_MODE (operands[0]))
15338 : {
15339 : case E_V16SFmode:
15340 : if (pattern1145 (x2,
15341 : E_V16SFmode) != 0
15342 : || !(
15343 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15344 : (TARGET_AVX512F) &&
15345 : #line 30865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15346 : (TARGET_AVX512DQ && (V16SFmode == V16SFmode
15347 : || V16SFmode == V8DFmode
15348 : || V16SFmode == V8DImode
15349 : || V16SFmode == V16SImode
15350 : || V16SFmode == V32HFmode))))
15351 : return -1;
15352 : return 10063; /* avx512dq_rangepv16sf_round */
15353 :
15354 : case E_V8DFmode:
15355 : if (pattern1145 (x2,
15356 : E_V8DFmode) != 0
15357 : || !(
15358 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15359 : (TARGET_AVX512F) &&
15360 : #line 30865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15361 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
15362 : || V8DFmode == V8DFmode
15363 : || V8DFmode == V8DImode
15364 : || V8DFmode == V16SImode
15365 : || V8DFmode == V32HFmode))))
15366 : return -1;
15367 : return 10071; /* avx512dq_rangepv8df_round */
15368 :
15369 : default:
15370 : return -1;
15371 : }
15372 :
15373 : case 279:
15374 : x7 = XVECEXP (x3, 0, 2);
15375 : operands[3] = x7;
15376 : if (!const_0_to_255_operand (operands[3], E_SImode)
15377 : || !const48_operand (operands[4], E_SImode))
15378 : return -1;
15379 : switch (GET_MODE (operands[0]))
15380 : {
15381 : case E_V32HFmode:
15382 : if (pattern1145 (x2,
15383 : E_V32HFmode) != 0
15384 : || !(
15385 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15386 : (TARGET_AVX512F) && (
15387 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15388 : (TARGET_AVX10_2) &&
15389 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15390 : (TARGET_AVX512FP16))))
15391 : return -1;
15392 : return 11009; /* avx10_2_minmaxpv32hf_round */
15393 :
15394 : case E_V16HFmode:
15395 : if (pattern1145 (x2,
15396 : E_V16HFmode) != 0
15397 : || !(
15398 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15399 : (TARGET_AVX512F) && (
15400 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15401 : (TARGET_AVX10_2) &&
15402 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15403 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
15404 : return -1;
15405 : return 11013; /* avx10_2_minmaxpv16hf_round */
15406 :
15407 : case E_V8HFmode:
15408 : if (pattern1145 (x2,
15409 : E_V8HFmode) != 0
15410 : || !(
15411 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15412 : (TARGET_AVX512F) && (
15413 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15414 : (TARGET_AVX10_2) &&
15415 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15416 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
15417 : return -1;
15418 : return 11017; /* avx10_2_minmaxpv8hf_round */
15419 :
15420 : case E_V16SFmode:
15421 : if (pattern1145 (x2,
15422 : E_V16SFmode) != 0
15423 : || !(
15424 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15425 : (TARGET_AVX512F) &&
15426 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15427 : (TARGET_AVX10_2)))
15428 : return -1;
15429 : return 11021; /* avx10_2_minmaxpv16sf_round */
15430 :
15431 : case E_V8SFmode:
15432 : if (pattern1145 (x2,
15433 : E_V8SFmode) != 0
15434 : || !(
15435 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15436 : (TARGET_AVX512F) && (
15437 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15438 : (TARGET_AVX10_2) &&
15439 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15440 : (TARGET_AVX512VL))))
15441 : return -1;
15442 : return 11025; /* avx10_2_minmaxpv8sf_round */
15443 :
15444 : case E_V4SFmode:
15445 : if (pattern1145 (x2,
15446 : E_V4SFmode) != 0
15447 : || !(
15448 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15449 : (TARGET_AVX512F) && (
15450 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15451 : (TARGET_AVX10_2) &&
15452 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15453 : (TARGET_AVX512VL))))
15454 : return -1;
15455 : return 11029; /* avx10_2_minmaxpv4sf_round */
15456 :
15457 : case E_V8DFmode:
15458 : if (pattern1145 (x2,
15459 : E_V8DFmode) != 0
15460 : || !(
15461 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15462 : (TARGET_AVX512F) &&
15463 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15464 : (TARGET_AVX10_2)))
15465 : return -1;
15466 : return 11033; /* avx10_2_minmaxpv8df_round */
15467 :
15468 : case E_V4DFmode:
15469 : if (pattern1145 (x2,
15470 : E_V4DFmode) != 0
15471 : || !(
15472 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15473 : (TARGET_AVX512F) && (
15474 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15475 : (TARGET_AVX10_2) &&
15476 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15477 : (TARGET_AVX512VL))))
15478 : return -1;
15479 : return 11037; /* avx10_2_minmaxpv4df_round */
15480 :
15481 : case E_V2DFmode:
15482 : if (pattern1145 (x2,
15483 : E_V2DFmode) != 0
15484 : || !(
15485 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15486 : (TARGET_AVX512F) && (
15487 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15488 : (TARGET_AVX10_2) &&
15489 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15490 : (TARGET_AVX512VL))))
15491 : return -1;
15492 : return 11041; /* avx10_2_minmaxpv2df_round */
15493 :
15494 : default:
15495 : return -1;
15496 : }
15497 :
15498 : default:
15499 : return -1;
15500 : }
15501 :
15502 : case 1:
15503 : return recog_231 (x1, insn, pnum_clobbers);
15504 :
15505 : case 4:
15506 : if (XINT (x3, 1) != 164)
15507 : return -1;
15508 : x4 = XVECEXP (x3, 0, 0);
15509 : operands[1] = x4;
15510 : x5 = XVECEXP (x3, 0, 1);
15511 : operands[2] = x5;
15512 : x7 = XVECEXP (x3, 0, 2);
15513 : operands[3] = x7;
15514 : x9 = XVECEXP (x3, 0, 3);
15515 : operands[4] = x9;
15516 : if (!const_0_to_255_operand (operands[4], E_SImode))
15517 : return -1;
15518 : x6 = XVECEXP (x2, 0, 1);
15519 : operands[5] = x6;
15520 : if (!const48_operand (operands[5], E_SImode))
15521 : return -1;
15522 : switch (GET_MODE (operands[0]))
15523 : {
15524 : case E_V16SFmode:
15525 : if (pattern1528 (x2,
15526 : E_V16SImode,
15527 : E_V16SFmode) != 0
15528 : || !
15529 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15530 : (TARGET_AVX512F))
15531 : return -1;
15532 : return 7131; /* avx512f_fixupimmv16sf_round */
15533 :
15534 : case E_V8SFmode:
15535 : if (pattern1528 (x2,
15536 : E_V8SImode,
15537 : E_V8SFmode) != 0
15538 : || !(
15539 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15540 : (TARGET_AVX512F) && (
15541 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15542 : (TARGET_AVX512F) &&
15543 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15544 : (TARGET_AVX512VL))))
15545 : return -1;
15546 : return 7135; /* avx512vl_fixupimmv8sf_round */
15547 :
15548 : case E_V4SFmode:
15549 : if (pattern1528 (x2,
15550 : E_V4SImode,
15551 : E_V4SFmode) != 0
15552 : || !(
15553 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15554 : (TARGET_AVX512F) && (
15555 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15556 : (TARGET_AVX512F) &&
15557 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15558 : (TARGET_AVX512VL))))
15559 : return -1;
15560 : return 7139; /* avx512vl_fixupimmv4sf_round */
15561 :
15562 : case E_V8DFmode:
15563 : if (pattern1528 (x2,
15564 : E_V8DImode,
15565 : E_V8DFmode) != 0
15566 : || !
15567 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15568 : (TARGET_AVX512F))
15569 : return -1;
15570 : return 7143; /* avx512f_fixupimmv8df_round */
15571 :
15572 : case E_V4DFmode:
15573 : if (pattern1528 (x2,
15574 : E_V4DImode,
15575 : E_V4DFmode) != 0
15576 : || !(
15577 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15578 : (TARGET_AVX512F) && (
15579 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15580 : (TARGET_AVX512F) &&
15581 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15582 : (TARGET_AVX512VL))))
15583 : return -1;
15584 : return 7147; /* avx512vl_fixupimmv4df_round */
15585 :
15586 : case E_V2DFmode:
15587 : if (pattern1528 (x2,
15588 : E_V2DImode,
15589 : E_V2DFmode) != 0
15590 : || !(
15591 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15592 : (TARGET_AVX512F) && (
15593 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15594 : (TARGET_AVX512F) &&
15595 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15596 : (TARGET_AVX512VL))))
15597 : return -1;
15598 : return 7151; /* avx512vl_fixupimmv2df_round */
15599 :
15600 : default:
15601 : return -1;
15602 : }
15603 :
15604 : default:
15605 : return -1;
15606 : }
15607 : }
15608 :
15609 : int
15610 : recog_256 (rtx x1 ATTRIBUTE_UNUSED,
15611 : rtx_insn *insn ATTRIBUTE_UNUSED,
15612 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15613 : {
15614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15615 : rtx x2, x3, x4, x5, x6;
15616 : int res ATTRIBUTE_UNUSED;
15617 : x2 = XEXP (x1, 0);
15618 : operands[0] = x2;
15619 : x3 = XEXP (x1, 1);
15620 : x4 = XVECEXP (x3, 0, 0);
15621 : operands[1] = x4;
15622 : x5 = XVECEXP (x3, 0, 1);
15623 : operands[2] = x5;
15624 : x6 = XVECEXP (x3, 0, 2);
15625 : operands[3] = x6;
15626 : if (!const_0_to_255_operand (operands[3], E_SImode))
15627 : return -1;
15628 : switch (GET_MODE (operands[0]))
15629 : {
15630 : case E_V32HFmode:
15631 : if (pattern158 (x3,
15632 : E_V32HFmode) != 0
15633 : || !(
15634 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15635 : (TARGET_AVX10_2) &&
15636 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15637 : (TARGET_AVX512FP16)))
15638 : return -1;
15639 : return 11008; /* avx10_2_minmaxpv32hf */
15640 :
15641 : case E_V16HFmode:
15642 : if (pattern158 (x3,
15643 : E_V16HFmode) != 0
15644 : || !(
15645 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15646 : (TARGET_AVX10_2) &&
15647 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15648 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15649 : return -1;
15650 : return 11012; /* avx10_2_minmaxpv16hf */
15651 :
15652 : case E_V8HFmode:
15653 : if (pattern158 (x3,
15654 : E_V8HFmode) != 0
15655 : || !(
15656 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15657 : (TARGET_AVX10_2) &&
15658 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15659 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
15660 : return -1;
15661 : return 11016; /* avx10_2_minmaxpv8hf */
15662 :
15663 : case E_V16SFmode:
15664 : if (pattern158 (x3,
15665 : E_V16SFmode) != 0
15666 : || !
15667 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15668 : (TARGET_AVX10_2))
15669 : return -1;
15670 : return 11020; /* avx10_2_minmaxpv16sf */
15671 :
15672 : case E_V8SFmode:
15673 : if (pattern158 (x3,
15674 : E_V8SFmode) != 0
15675 : || !(
15676 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15677 : (TARGET_AVX10_2) &&
15678 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15679 : (TARGET_AVX512VL)))
15680 : return -1;
15681 : return 11024; /* avx10_2_minmaxpv8sf */
15682 :
15683 : case E_V4SFmode:
15684 : if (pattern158 (x3,
15685 : E_V4SFmode) != 0
15686 : || !(
15687 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15688 : (TARGET_AVX10_2) &&
15689 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15690 : (TARGET_AVX512VL)))
15691 : return -1;
15692 : return 11028; /* avx10_2_minmaxpv4sf */
15693 :
15694 : case E_V8DFmode:
15695 : if (pattern158 (x3,
15696 : E_V8DFmode) != 0
15697 : || !
15698 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15699 : (TARGET_AVX10_2))
15700 : return -1;
15701 : return 11032; /* avx10_2_minmaxpv8df */
15702 :
15703 : case E_V4DFmode:
15704 : if (pattern158 (x3,
15705 : E_V4DFmode) != 0
15706 : || !(
15707 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15708 : (TARGET_AVX10_2) &&
15709 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15710 : (TARGET_AVX512VL)))
15711 : return -1;
15712 : return 11036; /* avx10_2_minmaxpv4df */
15713 :
15714 : case E_V2DFmode:
15715 : if (pattern158 (x3,
15716 : E_V2DFmode) != 0
15717 : || !(
15718 : #line 33726 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15719 : (TARGET_AVX10_2) &&
15720 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15721 : (TARGET_AVX512VL)))
15722 : return -1;
15723 : return 11040; /* avx10_2_minmaxpv2df */
15724 :
15725 : default:
15726 : return -1;
15727 : }
15728 : }
15729 :
15730 : int
15731 : recog_261 (rtx x1 ATTRIBUTE_UNUSED,
15732 : rtx_insn *insn ATTRIBUTE_UNUSED,
15733 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15734 : {
15735 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15736 : int res ATTRIBUTE_UNUSED;
15737 : switch (pattern182 (x1))
15738 : {
15739 : case 0:
15740 : if (!
15741 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15742 : (TARGET_AVX512VBMI2))
15743 : return -1;
15744 : return 10323; /* vpshrdv_v32hi */
15745 :
15746 : case 1:
15747 : if (!
15748 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15749 : (TARGET_AVX512VBMI2))
15750 : return -1;
15751 : return 10324; /* vpshrdv_v16si */
15752 :
15753 : case 2:
15754 : if (!
15755 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15756 : (TARGET_AVX512VBMI2))
15757 : return -1;
15758 : return 10325; /* vpshrdv_v8di */
15759 :
15760 : case 3:
15761 : if (!(
15762 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15763 : (TARGET_AVX512VBMI2) &&
15764 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15765 : (TARGET_AVX512VL)))
15766 : return -1;
15767 : return 10326; /* vpshrdv_v16hi */
15768 :
15769 : case 4:
15770 : if (!(
15771 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15772 : (TARGET_AVX512VBMI2) &&
15773 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15774 : (TARGET_AVX512VL)))
15775 : return -1;
15776 : return 10327; /* vpshrdv_v8si */
15777 :
15778 : case 5:
15779 : if (!(
15780 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15781 : (TARGET_AVX512VBMI2) &&
15782 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15783 : (TARGET_AVX512VL)))
15784 : return -1;
15785 : return 10328; /* vpshrdv_v4di */
15786 :
15787 : case 6:
15788 : if (!(
15789 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15790 : (TARGET_AVX512VBMI2) &&
15791 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15792 : (TARGET_AVX512VL)))
15793 : return -1;
15794 : return 10329; /* vpshrdv_v8hi */
15795 :
15796 : case 7:
15797 : if (!(
15798 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15799 : (TARGET_AVX512VBMI2) &&
15800 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15801 : (TARGET_AVX512VL)))
15802 : return -1;
15803 : return 10330; /* vpshrdv_v4si */
15804 :
15805 : case 8:
15806 : if (!(
15807 : #line 31478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15808 : (TARGET_AVX512VBMI2) &&
15809 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15810 : (TARGET_AVX512VL)))
15811 : return -1;
15812 : return 10331; /* vpshrdv_v2di */
15813 :
15814 : default:
15815 : return -1;
15816 : }
15817 : }
15818 :
15819 : int
15820 : recog_268 (rtx x1 ATTRIBUTE_UNUSED,
15821 : rtx_insn *insn ATTRIBUTE_UNUSED,
15822 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15823 : {
15824 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15825 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15826 : rtx x10, x11, x12;
15827 : int res ATTRIBUTE_UNUSED;
15828 : x2 = XEXP (x1, 0);
15829 : operands[0] = x2;
15830 : x3 = XEXP (x1, 1);
15831 : switch (XINT (x3, 1))
15832 : {
15833 : case 165:
15834 : x4 = XVECEXP (x3, 0, 0);
15835 : operands[1] = x4;
15836 : x5 = XVECEXP (x3, 0, 1);
15837 : operands[2] = x5;
15838 : x6 = XVECEXP (x3, 0, 2);
15839 : operands[3] = x6;
15840 : x7 = XVECEXP (x3, 0, 3);
15841 : operands[4] = x7;
15842 : if (!const_0_to_255_operand (operands[4], E_SImode))
15843 : return -1;
15844 : switch (GET_MODE (operands[0]))
15845 : {
15846 : case E_V16SImode:
15847 : if (pattern1149 (x3,
15848 : E_V16SImode) != 0)
15849 : return -1;
15850 : if (
15851 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15852 : (TARGET_AVX512F))
15853 : return 5484; /* avx512f_vternlogv16si */
15854 : if (!(
15855 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15856 : ((64 == 64 || TARGET_AVX512VL
15857 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15858 : /* Disallow embedded broadcast for vector HFmode since
15859 : it's not real AVX512FP16 instruction. */
15860 : && (GET_MODE_SIZE (GET_MODE_INNER (V16SImode)) >= 4
15861 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
15862 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15863 : (TARGET_AVX512F)))
15864 : return -1;
15865 : return 5502; /* *avx512f_vternlogv16si_all */
15866 :
15867 : case E_V8SImode:
15868 : if (pattern1149 (x3,
15869 : E_V8SImode) != 0)
15870 : return -1;
15871 : if ((
15872 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15873 : (TARGET_AVX512F) &&
15874 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15875 : (TARGET_AVX512VL)))
15876 : return 5486; /* avx512vl_vternlogv8si */
15877 : if (!(
15878 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15879 : ((32 == 64 || TARGET_AVX512VL
15880 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15881 : /* Disallow embedded broadcast for vector HFmode since
15882 : it's not real AVX512FP16 instruction. */
15883 : && (GET_MODE_SIZE (GET_MODE_INNER (V8SImode)) >= 4
15884 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
15885 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15886 : (TARGET_AVX)))
15887 : return -1;
15888 : return 5503; /* *avx512vl_vternlogv8si_all */
15889 :
15890 : case E_V4SImode:
15891 : if (pattern1149 (x3,
15892 : E_V4SImode) != 0)
15893 : return -1;
15894 : if ((
15895 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15896 : (TARGET_AVX512F) &&
15897 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15898 : (TARGET_AVX512VL)))
15899 : return 5488; /* avx512vl_vternlogv4si */
15900 : if (!
15901 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15902 : ((16 == 64 || TARGET_AVX512VL
15903 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15904 : /* Disallow embedded broadcast for vector HFmode since
15905 : it's not real AVX512FP16 instruction. */
15906 : && (GET_MODE_SIZE (GET_MODE_INNER (V4SImode)) >= 4
15907 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
15908 : return -1;
15909 : return 5504; /* *avx512vl_vternlogv4si_all */
15910 :
15911 : case E_V8DImode:
15912 : if (pattern1149 (x3,
15913 : E_V8DImode) != 0)
15914 : return -1;
15915 : if (
15916 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15917 : (TARGET_AVX512F))
15918 : return 5490; /* avx512f_vternlogv8di */
15919 : if (!(
15920 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15921 : ((64 == 64 || TARGET_AVX512VL
15922 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15923 : /* Disallow embedded broadcast for vector HFmode since
15924 : it's not real AVX512FP16 instruction. */
15925 : && (GET_MODE_SIZE (GET_MODE_INNER (V8DImode)) >= 4
15926 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
15927 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15928 : (TARGET_AVX512F)))
15929 : return -1;
15930 : return 5505; /* *avx512f_vternlogv8di_all */
15931 :
15932 : case E_V4DImode:
15933 : if (pattern1149 (x3,
15934 : E_V4DImode) != 0)
15935 : return -1;
15936 : if ((
15937 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15938 : (TARGET_AVX512F) &&
15939 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15940 : (TARGET_AVX512VL)))
15941 : return 5492; /* avx512vl_vternlogv4di */
15942 : if (!(
15943 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15944 : ((32 == 64 || TARGET_AVX512VL
15945 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15946 : /* Disallow embedded broadcast for vector HFmode since
15947 : it's not real AVX512FP16 instruction. */
15948 : && (GET_MODE_SIZE (GET_MODE_INNER (V4DImode)) >= 4
15949 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
15950 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15951 : (TARGET_AVX)))
15952 : return -1;
15953 : return 5506; /* *avx512vl_vternlogv4di_all */
15954 :
15955 : case E_V2DImode:
15956 : if (pattern1149 (x3,
15957 : E_V2DImode) != 0)
15958 : return -1;
15959 : if ((
15960 : #line 14052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15961 : (TARGET_AVX512F) &&
15962 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15963 : (TARGET_AVX512VL)))
15964 : return 5494; /* avx512vl_vternlogv2di */
15965 : if (!
15966 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15967 : ((16 == 64 || TARGET_AVX512VL
15968 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15969 : /* Disallow embedded broadcast for vector HFmode since
15970 : it's not real AVX512FP16 instruction. */
15971 : && (GET_MODE_SIZE (GET_MODE_INNER (V2DImode)) >= 4
15972 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
15973 : return -1;
15974 : return 5507; /* *avx512vl_vternlogv2di_all */
15975 :
15976 : case E_V64QImode:
15977 : if (pattern1149 (x3,
15978 : E_V64QImode) != 0
15979 : || !(
15980 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15981 : ((64 == 64 || TARGET_AVX512VL
15982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15983 : /* Disallow embedded broadcast for vector HFmode since
15984 : it's not real AVX512FP16 instruction. */
15985 : && (GET_MODE_SIZE (GET_MODE_INNER (V64QImode)) >= 4
15986 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
15987 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15988 : (TARGET_AVX512F)))
15989 : return -1;
15990 : return 5496; /* *avx512bw_vternlogv64qi_all */
15991 :
15992 : case E_V32QImode:
15993 : if (pattern1149 (x3,
15994 : E_V32QImode) != 0
15995 : || !(
15996 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15997 : ((32 == 64 || TARGET_AVX512VL
15998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
15999 : /* Disallow embedded broadcast for vector HFmode since
16000 : it's not real AVX512FP16 instruction. */
16001 : && (GET_MODE_SIZE (GET_MODE_INNER (V32QImode)) >= 4
16002 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16003 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16004 : (TARGET_AVX)))
16005 : return -1;
16006 : return 5497; /* *avx512vl_vternlogv32qi_all */
16007 :
16008 : case E_V16QImode:
16009 : if (pattern1149 (x3,
16010 : E_V16QImode) != 0
16011 : || !
16012 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16013 : ((16 == 64 || TARGET_AVX512VL
16014 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16015 : /* Disallow embedded broadcast for vector HFmode since
16016 : it's not real AVX512FP16 instruction. */
16017 : && (GET_MODE_SIZE (GET_MODE_INNER (V16QImode)) >= 4
16018 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
16019 : return -1;
16020 : return 5498; /* *avx512vl_vternlogv16qi_all */
16021 :
16022 : case E_V32HImode:
16023 : if (pattern1149 (x3,
16024 : E_V32HImode) != 0
16025 : || !(
16026 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16027 : ((64 == 64 || TARGET_AVX512VL
16028 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16029 : /* Disallow embedded broadcast for vector HFmode since
16030 : it's not real AVX512FP16 instruction. */
16031 : && (GET_MODE_SIZE (GET_MODE_INNER (V32HImode)) >= 4
16032 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16033 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16034 : (TARGET_AVX512F)))
16035 : return -1;
16036 : return 5499; /* *avx512bw_vternlogv32hi_all */
16037 :
16038 : case E_V16HImode:
16039 : if (pattern1149 (x3,
16040 : E_V16HImode) != 0
16041 : || !(
16042 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16043 : ((32 == 64 || TARGET_AVX512VL
16044 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16045 : /* Disallow embedded broadcast for vector HFmode since
16046 : it's not real AVX512FP16 instruction. */
16047 : && (GET_MODE_SIZE (GET_MODE_INNER (V16HImode)) >= 4
16048 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16049 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16050 : (TARGET_AVX)))
16051 : return -1;
16052 : return 5500; /* *avx512vl_vternlogv16hi_all */
16053 :
16054 : case E_V8HImode:
16055 : if (pattern1149 (x3,
16056 : E_V8HImode) != 0
16057 : || !
16058 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16059 : ((16 == 64 || TARGET_AVX512VL
16060 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16061 : /* Disallow embedded broadcast for vector HFmode since
16062 : it's not real AVX512FP16 instruction. */
16063 : && (GET_MODE_SIZE (GET_MODE_INNER (V8HImode)) >= 4
16064 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
16065 : return -1;
16066 : return 5501; /* *avx512vl_vternlogv8hi_all */
16067 :
16068 : case E_V32HFmode:
16069 : if (pattern1149 (x3,
16070 : E_V32HFmode) != 0
16071 : || !(
16072 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16073 : ((64 == 64 || TARGET_AVX512VL
16074 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16075 : /* Disallow embedded broadcast for vector HFmode since
16076 : it's not real AVX512FP16 instruction. */
16077 : && (GET_MODE_SIZE (GET_MODE_INNER (V32HFmode)) >= 4
16078 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16079 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16080 : (TARGET_AVX512F)))
16081 : return -1;
16082 : return 5508; /* *avx512bw_vternlogv32hf_all */
16083 :
16084 : case E_V16HFmode:
16085 : if (pattern1149 (x3,
16086 : E_V16HFmode) != 0
16087 : || !(
16088 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16089 : ((32 == 64 || TARGET_AVX512VL
16090 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16091 : /* Disallow embedded broadcast for vector HFmode since
16092 : it's not real AVX512FP16 instruction. */
16093 : && (GET_MODE_SIZE (GET_MODE_INNER (V16HFmode)) >= 4
16094 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16095 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16096 : (TARGET_AVX)))
16097 : return -1;
16098 : return 5509; /* *avx512vl_vternlogv16hf_all */
16099 :
16100 : case E_V8HFmode:
16101 : if (pattern1149 (x3,
16102 : E_V8HFmode) != 0
16103 : || !
16104 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16105 : ((16 == 64 || TARGET_AVX512VL
16106 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16107 : /* Disallow embedded broadcast for vector HFmode since
16108 : it's not real AVX512FP16 instruction. */
16109 : && (GET_MODE_SIZE (GET_MODE_INNER (V8HFmode)) >= 4
16110 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
16111 : return -1;
16112 : return 5510; /* *avx512fp16_vternlogv8hf_all */
16113 :
16114 : case E_V32BFmode:
16115 : if (pattern1149 (x3,
16116 : E_V32BFmode) != 0
16117 : || !(
16118 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16119 : ((64 == 64 || TARGET_AVX512VL
16120 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16121 : /* Disallow embedded broadcast for vector HFmode since
16122 : it's not real AVX512FP16 instruction. */
16123 : && (GET_MODE_SIZE (GET_MODE_INNER (V32BFmode)) >= 4
16124 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16125 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16126 : (TARGET_AVX512F)))
16127 : return -1;
16128 : return 5511; /* *avx512bw_vternlogv32bf_all */
16129 :
16130 : case E_V16BFmode:
16131 : if (pattern1149 (x3,
16132 : E_V16BFmode) != 0
16133 : || !(
16134 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16135 : ((32 == 64 || TARGET_AVX512VL
16136 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16137 : /* Disallow embedded broadcast for vector HFmode since
16138 : it's not real AVX512FP16 instruction. */
16139 : && (GET_MODE_SIZE (GET_MODE_INNER (V16BFmode)) >= 4
16140 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16141 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16142 : (TARGET_AVX)))
16143 : return -1;
16144 : return 5512; /* *avx512vl_vternlogv16bf_all */
16145 :
16146 : case E_V8BFmode:
16147 : if (pattern1149 (x3,
16148 : E_V8BFmode) != 0
16149 : || !
16150 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16151 : ((16 == 64 || TARGET_AVX512VL
16152 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16153 : /* Disallow embedded broadcast for vector HFmode since
16154 : it's not real AVX512FP16 instruction. */
16155 : && (GET_MODE_SIZE (GET_MODE_INNER (V8BFmode)) >= 4
16156 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
16157 : return -1;
16158 : return 5513; /* *avx512vl_vternlogv8bf_all */
16159 :
16160 : case E_V16SFmode:
16161 : if (pattern1149 (x3,
16162 : E_V16SFmode) != 0
16163 : || !(
16164 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16165 : ((64 == 64 || TARGET_AVX512VL
16166 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16167 : /* Disallow embedded broadcast for vector HFmode since
16168 : it's not real AVX512FP16 instruction. */
16169 : && (GET_MODE_SIZE (GET_MODE_INNER (V16SFmode)) >= 4
16170 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16171 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16172 : (TARGET_AVX512F)))
16173 : return -1;
16174 : return 5514; /* *avx512f_vternlogv16sf_all */
16175 :
16176 : case E_V8SFmode:
16177 : if (pattern1149 (x3,
16178 : E_V8SFmode) != 0
16179 : || !(
16180 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16181 : ((32 == 64 || TARGET_AVX512VL
16182 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16183 : /* Disallow embedded broadcast for vector HFmode since
16184 : it's not real AVX512FP16 instruction. */
16185 : && (GET_MODE_SIZE (GET_MODE_INNER (V8SFmode)) >= 4
16186 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16187 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16188 : (TARGET_AVX)))
16189 : return -1;
16190 : return 5515; /* *avx512vl_vternlogv8sf_all */
16191 :
16192 : case E_V4SFmode:
16193 : if (pattern1149 (x3,
16194 : E_V4SFmode) != 0
16195 : || !
16196 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16197 : ((16 == 64 || TARGET_AVX512VL
16198 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16199 : /* Disallow embedded broadcast for vector HFmode since
16200 : it's not real AVX512FP16 instruction. */
16201 : && (GET_MODE_SIZE (GET_MODE_INNER (V4SFmode)) >= 4
16202 : || GET_CODE (operands[3]) != VEC_DUPLICATE)))
16203 : return -1;
16204 : return 5516; /* *avx512vl_vternlogv4sf_all */
16205 :
16206 : case E_V8DFmode:
16207 : if (pattern1149 (x3,
16208 : E_V8DFmode) != 0
16209 : || !(
16210 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16211 : ((64 == 64 || TARGET_AVX512VL
16212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16213 : /* Disallow embedded broadcast for vector HFmode since
16214 : it's not real AVX512FP16 instruction. */
16215 : && (GET_MODE_SIZE (GET_MODE_INNER (V8DFmode)) >= 4
16216 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16217 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16218 : (TARGET_AVX512F)))
16219 : return -1;
16220 : return 5517; /* *avx512f_vternlogv8df_all */
16221 :
16222 : case E_V4DFmode:
16223 : if (pattern1149 (x3,
16224 : E_V4DFmode) != 0
16225 : || !(
16226 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16227 : ((32 == 64 || TARGET_AVX512VL
16228 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16229 : /* Disallow embedded broadcast for vector HFmode since
16230 : it's not real AVX512FP16 instruction. */
16231 : && (GET_MODE_SIZE (GET_MODE_INNER (V4DFmode)) >= 4
16232 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16233 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16234 : (TARGET_AVX)))
16235 : return -1;
16236 : return 5518; /* *avx512vl_vternlogv4df_all */
16237 :
16238 : case E_V2DFmode:
16239 : if (pattern1149 (x3,
16240 : E_V2DFmode) != 0
16241 : || !(
16242 : #line 14066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16243 : ((16 == 64 || TARGET_AVX512VL
16244 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
16245 : /* Disallow embedded broadcast for vector HFmode since
16246 : it's not real AVX512FP16 instruction. */
16247 : && (GET_MODE_SIZE (GET_MODE_INNER (V2DFmode)) >= 4
16248 : || GET_CODE (operands[3]) != VEC_DUPLICATE)) &&
16249 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16250 : (TARGET_SSE2)))
16251 : return -1;
16252 : return 5519; /* *avx512vl_vternlogv2df_all */
16253 :
16254 : default:
16255 : return -1;
16256 : }
16257 :
16258 : case 164:
16259 : x4 = XVECEXP (x3, 0, 0);
16260 : operands[1] = x4;
16261 : x5 = XVECEXP (x3, 0, 1);
16262 : operands[2] = x5;
16263 : x6 = XVECEXP (x3, 0, 2);
16264 : operands[3] = x6;
16265 : x7 = XVECEXP (x3, 0, 3);
16266 : operands[4] = x7;
16267 : if (!const_0_to_255_operand (operands[4], E_SImode))
16268 : return -1;
16269 : switch (GET_MODE (operands[0]))
16270 : {
16271 : case E_V16SFmode:
16272 : if (pattern1150 (x3,
16273 : E_V16SImode,
16274 : E_V16SFmode) != 0
16275 : || !
16276 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16277 : (TARGET_AVX512F))
16278 : return -1;
16279 : return 7130; /* avx512f_fixupimmv16sf */
16280 :
16281 : case E_V8SFmode:
16282 : if (pattern1150 (x3,
16283 : E_V8SImode,
16284 : E_V8SFmode) != 0
16285 : || !(
16286 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16287 : (TARGET_AVX512F) &&
16288 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16289 : (TARGET_AVX512VL)))
16290 : return -1;
16291 : return 7134; /* avx512vl_fixupimmv8sf */
16292 :
16293 : case E_V4SFmode:
16294 : if (pattern1150 (x3,
16295 : E_V4SImode,
16296 : E_V4SFmode) != 0
16297 : || !(
16298 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16299 : (TARGET_AVX512F) &&
16300 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16301 : (TARGET_AVX512VL)))
16302 : return -1;
16303 : return 7138; /* avx512vl_fixupimmv4sf */
16304 :
16305 : case E_V8DFmode:
16306 : if (pattern1150 (x3,
16307 : E_V8DImode,
16308 : E_V8DFmode) != 0
16309 : || !
16310 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16311 : (TARGET_AVX512F))
16312 : return -1;
16313 : return 7142; /* avx512f_fixupimmv8df */
16314 :
16315 : case E_V4DFmode:
16316 : if (pattern1150 (x3,
16317 : E_V4DImode,
16318 : E_V4DFmode) != 0
16319 : || !(
16320 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16321 : (TARGET_AVX512F) &&
16322 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16323 : (TARGET_AVX512VL)))
16324 : return -1;
16325 : return 7146; /* avx512vl_fixupimmv4df */
16326 :
16327 : case E_V2DFmode:
16328 : if (pattern1150 (x3,
16329 : E_V2DImode,
16330 : E_V2DFmode) != 0
16331 : || !(
16332 : #line 14548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16333 : (TARGET_AVX512F) &&
16334 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16335 : (TARGET_AVX512VL)))
16336 : return -1;
16337 : return 7150; /* avx512vl_fixupimmv2df */
16338 :
16339 : default:
16340 : return -1;
16341 : }
16342 :
16343 : case 125:
16344 : if (GET_MODE (x3) != E_V2DImode
16345 : || !register_operand (operands[0], E_V2DImode))
16346 : return -1;
16347 : x4 = XVECEXP (x3, 0, 0);
16348 : operands[1] = x4;
16349 : if (!register_operand (operands[1], E_V2DImode))
16350 : return -1;
16351 : x5 = XVECEXP (x3, 0, 1);
16352 : operands[2] = x5;
16353 : if (!register_operand (operands[2], E_V2DImode))
16354 : return -1;
16355 : x6 = XVECEXP (x3, 0, 2);
16356 : operands[3] = x6;
16357 : if (!const_0_to_255_operand (operands[3], E_VOIDmode))
16358 : return -1;
16359 : x7 = XVECEXP (x3, 0, 3);
16360 : operands[4] = x7;
16361 : if (!const_0_to_255_operand (operands[4], E_VOIDmode)
16362 : || !
16363 : #line 24000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16364 : (TARGET_SSE4A))
16365 : return -1;
16366 : return 8752; /* sse4a_insertqi */
16367 :
16368 : case 146:
16369 : x4 = XVECEXP (x3, 0, 0);
16370 : operands[1] = x4;
16371 : x5 = XVECEXP (x3, 0, 1);
16372 : operands[2] = x5;
16373 : x6 = XVECEXP (x3, 0, 2);
16374 : operands[3] = x6;
16375 : x7 = XVECEXP (x3, 0, 3);
16376 : operands[4] = x7;
16377 : if (!const_0_to_3_operand (operands[4], E_SImode))
16378 : return -1;
16379 : switch (GET_MODE (operands[0]))
16380 : {
16381 : case E_V8SFmode:
16382 : if (pattern1151 (x3,
16383 : E_V8SImode,
16384 : E_V8SFmode) != 0
16385 : || !(
16386 : #line 28015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16387 : (TARGET_XOP) &&
16388 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16389 : (TARGET_AVX)))
16390 : return -1;
16391 : return 9162; /* xop_vpermil2v8sf3 */
16392 :
16393 : case E_V4SFmode:
16394 : if (pattern1151 (x3,
16395 : E_V4SImode,
16396 : E_V4SFmode) != 0
16397 : || !
16398 : #line 28015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16399 : (TARGET_XOP))
16400 : return -1;
16401 : return 9163; /* xop_vpermil2v4sf3 */
16402 :
16403 : case E_V4DFmode:
16404 : if (pattern1151 (x3,
16405 : E_V4DImode,
16406 : E_V4DFmode) != 0
16407 : || !(
16408 : #line 28015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16409 : (TARGET_XOP) &&
16410 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16411 : (TARGET_AVX)))
16412 : return -1;
16413 : return 9164; /* xop_vpermil2v4df3 */
16414 :
16415 : case E_V2DFmode:
16416 : if (pattern1151 (x3,
16417 : E_V2DImode,
16418 : E_V2DFmode) != 0
16419 : || !(
16420 : #line 28015 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16421 : (TARGET_XOP) &&
16422 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16423 : (TARGET_SSE2)))
16424 : return -1;
16425 : return 9165; /* xop_vpermil2v2df3 */
16426 :
16427 : default:
16428 : return -1;
16429 : }
16430 :
16431 : case 154:
16432 : if (pnum_clobbers == NULL)
16433 : return -1;
16434 : x5 = XVECEXP (x3, 0, 1);
16435 : if (GET_CODE (x5) != MEM)
16436 : return -1;
16437 : x8 = XEXP (x5, 0);
16438 : if (GET_CODE (x8) != UNSPEC
16439 : || XVECLEN (x8, 0) != 3
16440 : || XINT (x8, 1) != 155)
16441 : return -1;
16442 : x6 = XVECEXP (x3, 0, 2);
16443 : if (GET_CODE (x6) != MEM
16444 : || GET_MODE (x6) != E_BLKmode)
16445 : return -1;
16446 : x9 = XEXP (x6, 0);
16447 : if (GET_CODE (x9) != SCRATCH)
16448 : return -1;
16449 : x10 = XVECEXP (x8, 0, 2);
16450 : if (!const1248_operand (x10, E_SImode))
16451 : return -1;
16452 : x4 = XVECEXP (x3, 0, 0);
16453 : switch (GET_CODE (x4))
16454 : {
16455 : case REG:
16456 : case SUBREG:
16457 : operands[2] = x4;
16458 : operands[7] = x5;
16459 : x11 = XVECEXP (x8, 0, 0);
16460 : operands[3] = x11;
16461 : x12 = XVECEXP (x8, 0, 1);
16462 : operands[4] = x12;
16463 : operands[6] = x10;
16464 : x7 = XVECEXP (x3, 0, 3);
16465 : operands[5] = x7;
16466 : switch (GET_MODE (operands[0]))
16467 : {
16468 : case E_V2DImode:
16469 : switch (pattern1764 (x3,
16470 : E_V2DImode,
16471 : E_DImode))
16472 : {
16473 : case 0:
16474 : if (!(
16475 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16476 : (TARGET_AVX2) &&
16477 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16478 : (Pmode == SImode)))
16479 : return -1;
16480 : *pnum_clobbers = 1;
16481 : return 9774; /* *avx2_gathersiv2di */
16482 :
16483 : case 1:
16484 : if (!(
16485 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16486 : (TARGET_AVX2) &&
16487 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16488 : (Pmode == SImode)))
16489 : return -1;
16490 : *pnum_clobbers = 1;
16491 : return 9806; /* *avx2_gatherdiv2di */
16492 :
16493 : case 2:
16494 : if (!(
16495 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16496 : (TARGET_AVX2) &&
16497 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16498 : (Pmode == DImode)))
16499 : return -1;
16500 : *pnum_clobbers = 1;
16501 : return 9782; /* *avx2_gathersiv2di */
16502 :
16503 : case 3:
16504 : if (!(
16505 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16506 : (TARGET_AVX2) &&
16507 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16508 : (Pmode == DImode)))
16509 : return -1;
16510 : *pnum_clobbers = 1;
16511 : return 9814; /* *avx2_gatherdiv2di */
16512 :
16513 : default:
16514 : return -1;
16515 : }
16516 :
16517 : case E_V2DFmode:
16518 : switch (pattern1764 (x3,
16519 : E_V2DFmode,
16520 : E_DFmode))
16521 : {
16522 : case 0:
16523 : if (!(
16524 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16525 : (TARGET_AVX2) &&
16526 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16527 : (Pmode == SImode)))
16528 : return -1;
16529 : *pnum_clobbers = 1;
16530 : return 9775; /* *avx2_gathersiv2df */
16531 :
16532 : case 1:
16533 : if (!(
16534 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16535 : (TARGET_AVX2) &&
16536 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16537 : (Pmode == SImode)))
16538 : return -1;
16539 : *pnum_clobbers = 1;
16540 : return 9807; /* *avx2_gatherdiv2df */
16541 :
16542 : case 2:
16543 : if (!(
16544 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16545 : (TARGET_AVX2) &&
16546 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16547 : (Pmode == DImode)))
16548 : return -1;
16549 : *pnum_clobbers = 1;
16550 : return 9783; /* *avx2_gathersiv2df */
16551 :
16552 : case 3:
16553 : if (!(
16554 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16555 : (TARGET_AVX2) &&
16556 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16557 : (Pmode == DImode)))
16558 : return -1;
16559 : *pnum_clobbers = 1;
16560 : return 9815; /* *avx2_gatherdiv2df */
16561 :
16562 : default:
16563 : return -1;
16564 : }
16565 :
16566 : case E_V4DImode:
16567 : switch (pattern1766 (x3,
16568 : E_V4DImode,
16569 : E_DImode))
16570 : {
16571 : case 0:
16572 : if (!(
16573 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16574 : (TARGET_AVX2) &&
16575 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16576 : (Pmode == SImode)))
16577 : return -1;
16578 : *pnum_clobbers = 1;
16579 : return 9776; /* *avx2_gathersiv4di */
16580 :
16581 : case 1:
16582 : if (!(
16583 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16584 : (TARGET_AVX2) &&
16585 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16586 : (Pmode == SImode)))
16587 : return -1;
16588 : *pnum_clobbers = 1;
16589 : return 9808; /* *avx2_gatherdiv4di */
16590 :
16591 : case 2:
16592 : if (!(
16593 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16594 : (TARGET_AVX2) &&
16595 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16596 : (Pmode == DImode)))
16597 : return -1;
16598 : *pnum_clobbers = 1;
16599 : return 9784; /* *avx2_gathersiv4di */
16600 :
16601 : case 3:
16602 : if (!(
16603 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16604 : (TARGET_AVX2) &&
16605 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16606 : (Pmode == DImode)))
16607 : return -1;
16608 : *pnum_clobbers = 1;
16609 : return 9816; /* *avx2_gatherdiv4di */
16610 :
16611 : default:
16612 : return -1;
16613 : }
16614 :
16615 : case E_V4DFmode:
16616 : switch (pattern1766 (x3,
16617 : E_V4DFmode,
16618 : E_DFmode))
16619 : {
16620 : case 0:
16621 : if (!(
16622 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16623 : (TARGET_AVX2) &&
16624 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16625 : (Pmode == SImode)))
16626 : return -1;
16627 : *pnum_clobbers = 1;
16628 : return 9777; /* *avx2_gathersiv4df */
16629 :
16630 : case 1:
16631 : if (!(
16632 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16633 : (TARGET_AVX2) &&
16634 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16635 : (Pmode == SImode)))
16636 : return -1;
16637 : *pnum_clobbers = 1;
16638 : return 9809; /* *avx2_gatherdiv4df */
16639 :
16640 : case 2:
16641 : if (!(
16642 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16643 : (TARGET_AVX2) &&
16644 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16645 : (Pmode == DImode)))
16646 : return -1;
16647 : *pnum_clobbers = 1;
16648 : return 9785; /* *avx2_gathersiv4df */
16649 :
16650 : case 3:
16651 : if (!(
16652 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16653 : (TARGET_AVX2) &&
16654 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16655 : (Pmode == DImode)))
16656 : return -1;
16657 : *pnum_clobbers = 1;
16658 : return 9817; /* *avx2_gatherdiv4df */
16659 :
16660 : default:
16661 : return -1;
16662 : }
16663 :
16664 : case E_V4SImode:
16665 : switch (pattern1764 (x3,
16666 : E_V4SImode,
16667 : E_SImode))
16668 : {
16669 : case 0:
16670 : if (!(
16671 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16672 : (TARGET_AVX2) &&
16673 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16674 : (Pmode == SImode)))
16675 : return -1;
16676 : *pnum_clobbers = 1;
16677 : return 9778; /* *avx2_gathersiv4si */
16678 :
16679 : case 1:
16680 : if (!(
16681 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16682 : (TARGET_AVX2) &&
16683 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16684 : (Pmode == SImode)))
16685 : return -1;
16686 : *pnum_clobbers = 1;
16687 : return 9810; /* *avx2_gatherdiv4si */
16688 :
16689 : case 2:
16690 : if (!(
16691 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16692 : (TARGET_AVX2) &&
16693 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16694 : (Pmode == DImode)))
16695 : return -1;
16696 : *pnum_clobbers = 1;
16697 : return 9786; /* *avx2_gathersiv4si */
16698 :
16699 : case 3:
16700 : if (!(
16701 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16702 : (TARGET_AVX2) &&
16703 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16704 : (Pmode == DImode)))
16705 : return -1;
16706 : *pnum_clobbers = 1;
16707 : return 9818; /* *avx2_gatherdiv4si */
16708 :
16709 : default:
16710 : return -1;
16711 : }
16712 :
16713 : case E_V4SFmode:
16714 : switch (pattern1764 (x3,
16715 : E_V4SFmode,
16716 : E_SFmode))
16717 : {
16718 : case 0:
16719 : if (!(
16720 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16721 : (TARGET_AVX2) &&
16722 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16723 : (Pmode == SImode)))
16724 : return -1;
16725 : *pnum_clobbers = 1;
16726 : return 9779; /* *avx2_gathersiv4sf */
16727 :
16728 : case 1:
16729 : if (!(
16730 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16731 : (TARGET_AVX2) &&
16732 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16733 : (Pmode == SImode)))
16734 : return -1;
16735 : *pnum_clobbers = 1;
16736 : return 9811; /* *avx2_gatherdiv4sf */
16737 :
16738 : case 2:
16739 : if (!(
16740 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16741 : (TARGET_AVX2) &&
16742 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16743 : (Pmode == DImode)))
16744 : return -1;
16745 : *pnum_clobbers = 1;
16746 : return 9787; /* *avx2_gathersiv4sf */
16747 :
16748 : case 3:
16749 : if (!(
16750 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_AVX2) &&
16752 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16753 : (Pmode == DImode)))
16754 : return -1;
16755 : *pnum_clobbers = 1;
16756 : return 9819; /* *avx2_gatherdiv4sf */
16757 :
16758 : default:
16759 : return -1;
16760 : }
16761 :
16762 : case E_V8SImode:
16763 : if (!register_operand (operands[0], E_V8SImode)
16764 : || GET_MODE (x3) != E_V8SImode
16765 : || !vsib_mem_operator (operands[7], E_SImode))
16766 : return -1;
16767 : switch (GET_MODE (operands[2]))
16768 : {
16769 : case E_V8SImode:
16770 : if (!register_operand (operands[2], E_V8SImode)
16771 : || !register_operand (operands[4], E_V8SImode))
16772 : return -1;
16773 : switch (pattern1843 (x8,
16774 : E_V8SImode))
16775 : {
16776 : case 0:
16777 : if (!(
16778 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16779 : (TARGET_AVX2) &&
16780 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16781 : (Pmode == SImode)))
16782 : return -1;
16783 : *pnum_clobbers = 1;
16784 : return 9780; /* *avx2_gathersiv8si */
16785 :
16786 : case 1:
16787 : if (!(
16788 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16789 : (TARGET_AVX2) &&
16790 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16791 : (Pmode == DImode)))
16792 : return -1;
16793 : *pnum_clobbers = 1;
16794 : return 9788; /* *avx2_gathersiv8si */
16795 :
16796 : default:
16797 : return -1;
16798 : }
16799 :
16800 : case E_V4SImode:
16801 : switch (pattern1844 (x8,
16802 : E_V4SImode,
16803 : E_V4DImode))
16804 : {
16805 : case 0:
16806 : if (!(
16807 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16808 : (TARGET_AVX2) &&
16809 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16810 : (Pmode == SImode)))
16811 : return -1;
16812 : *pnum_clobbers = 1;
16813 : return 9812; /* *avx2_gatherdiv8si */
16814 :
16815 : case 1:
16816 : if (!(
16817 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16818 : (TARGET_AVX2) &&
16819 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16820 : (Pmode == DImode)))
16821 : return -1;
16822 : *pnum_clobbers = 1;
16823 : return 9820; /* *avx2_gatherdiv8si */
16824 :
16825 : default:
16826 : return -1;
16827 : }
16828 :
16829 : default:
16830 : return -1;
16831 : }
16832 :
16833 : case E_V8SFmode:
16834 : if (!register_operand (operands[0], E_V8SFmode)
16835 : || GET_MODE (x3) != E_V8SFmode
16836 : || !vsib_mem_operator (operands[7], E_SFmode))
16837 : return -1;
16838 : switch (GET_MODE (operands[2]))
16839 : {
16840 : case E_V8SFmode:
16841 : switch (pattern1844 (x8,
16842 : E_V8SFmode,
16843 : E_V8SImode))
16844 : {
16845 : case 0:
16846 : if (!(
16847 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16848 : (TARGET_AVX2) &&
16849 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16850 : (Pmode == SImode)))
16851 : return -1;
16852 : *pnum_clobbers = 1;
16853 : return 9781; /* *avx2_gathersiv8sf */
16854 :
16855 : case 1:
16856 : if (!(
16857 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16858 : (TARGET_AVX2) &&
16859 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16860 : (Pmode == DImode)))
16861 : return -1;
16862 : *pnum_clobbers = 1;
16863 : return 9789; /* *avx2_gathersiv8sf */
16864 :
16865 : default:
16866 : return -1;
16867 : }
16868 :
16869 : case E_V4SFmode:
16870 : switch (pattern1844 (x8,
16871 : E_V4SFmode,
16872 : E_V4DImode))
16873 : {
16874 : case 0:
16875 : if (!(
16876 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16877 : (TARGET_AVX2) &&
16878 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16879 : (Pmode == SImode)))
16880 : return -1;
16881 : *pnum_clobbers = 1;
16882 : return 9813; /* *avx2_gatherdiv8sf */
16883 :
16884 : case 1:
16885 : if (!(
16886 : #line 30402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16887 : (TARGET_AVX2) &&
16888 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16889 : (Pmode == DImode)))
16890 : return -1;
16891 : *pnum_clobbers = 1;
16892 : return 9821; /* *avx2_gatherdiv8sf */
16893 :
16894 : default:
16895 : return -1;
16896 : }
16897 :
16898 : default:
16899 : return -1;
16900 : }
16901 :
16902 : default:
16903 : return -1;
16904 : }
16905 :
16906 : case PC:
16907 : operands[6] = x5;
16908 : x11 = XVECEXP (x8, 0, 0);
16909 : operands[2] = x11;
16910 : x12 = XVECEXP (x8, 0, 1);
16911 : operands[3] = x12;
16912 : operands[5] = x10;
16913 : x7 = XVECEXP (x3, 0, 3);
16914 : operands[4] = x7;
16915 : switch (GET_MODE (operands[0]))
16916 : {
16917 : case E_V2DImode:
16918 : switch (pattern1725 (x3,
16919 : E_V2DImode,
16920 : E_DImode))
16921 : {
16922 : case 0:
16923 : if (!(
16924 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16925 : (TARGET_AVX2) &&
16926 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16927 : (Pmode == SImode)))
16928 : return -1;
16929 : *pnum_clobbers = 1;
16930 : return 9790; /* *avx2_gathersiv2di_2 */
16931 :
16932 : case 1:
16933 : if (!(
16934 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16935 : (TARGET_AVX2) &&
16936 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16937 : (Pmode == SImode)))
16938 : return -1;
16939 : *pnum_clobbers = 1;
16940 : return 9822; /* *avx2_gatherdiv2di_2 */
16941 :
16942 : case 2:
16943 : if (!(
16944 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16945 : (TARGET_AVX2) &&
16946 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16947 : (Pmode == DImode)))
16948 : return -1;
16949 : *pnum_clobbers = 1;
16950 : return 9798; /* *avx2_gathersiv2di_2 */
16951 :
16952 : case 3:
16953 : if (!(
16954 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16955 : (TARGET_AVX2) &&
16956 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16957 : (Pmode == DImode)))
16958 : return -1;
16959 : *pnum_clobbers = 1;
16960 : return 9830; /* *avx2_gatherdiv2di_2 */
16961 :
16962 : default:
16963 : return -1;
16964 : }
16965 :
16966 : case E_V2DFmode:
16967 : switch (pattern1725 (x3,
16968 : E_V2DFmode,
16969 : E_DFmode))
16970 : {
16971 : case 0:
16972 : if (!(
16973 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16974 : (TARGET_AVX2) &&
16975 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16976 : (Pmode == SImode)))
16977 : return -1;
16978 : *pnum_clobbers = 1;
16979 : return 9791; /* *avx2_gathersiv2df_2 */
16980 :
16981 : case 1:
16982 : if (!(
16983 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16984 : (TARGET_AVX2) &&
16985 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16986 : (Pmode == SImode)))
16987 : return -1;
16988 : *pnum_clobbers = 1;
16989 : return 9823; /* *avx2_gatherdiv2df_2 */
16990 :
16991 : case 2:
16992 : if (!(
16993 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16994 : (TARGET_AVX2) &&
16995 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
16996 : (Pmode == DImode)))
16997 : return -1;
16998 : *pnum_clobbers = 1;
16999 : return 9799; /* *avx2_gathersiv2df_2 */
17000 :
17001 : case 3:
17002 : if (!(
17003 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17004 : (TARGET_AVX2) &&
17005 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17006 : (Pmode == DImode)))
17007 : return -1;
17008 : *pnum_clobbers = 1;
17009 : return 9831; /* *avx2_gatherdiv2df_2 */
17010 :
17011 : default:
17012 : return -1;
17013 : }
17014 :
17015 : case E_V4DImode:
17016 : switch (pattern1727 (x3,
17017 : E_V4DImode,
17018 : E_DImode))
17019 : {
17020 : case 0:
17021 : if (!(
17022 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17023 : (TARGET_AVX2) &&
17024 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17025 : (Pmode == SImode)))
17026 : return -1;
17027 : *pnum_clobbers = 1;
17028 : return 9792; /* *avx2_gathersiv4di_2 */
17029 :
17030 : case 1:
17031 : if (!(
17032 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17033 : (TARGET_AVX2) &&
17034 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17035 : (Pmode == SImode)))
17036 : return -1;
17037 : *pnum_clobbers = 1;
17038 : return 9824; /* *avx2_gatherdiv4di_2 */
17039 :
17040 : case 2:
17041 : if (!(
17042 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17043 : (TARGET_AVX2) &&
17044 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17045 : (Pmode == DImode)))
17046 : return -1;
17047 : *pnum_clobbers = 1;
17048 : return 9800; /* *avx2_gathersiv4di_2 */
17049 :
17050 : case 3:
17051 : if (!(
17052 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17053 : (TARGET_AVX2) &&
17054 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17055 : (Pmode == DImode)))
17056 : return -1;
17057 : *pnum_clobbers = 1;
17058 : return 9832; /* *avx2_gatherdiv4di_2 */
17059 :
17060 : default:
17061 : return -1;
17062 : }
17063 :
17064 : case E_V4DFmode:
17065 : switch (pattern1727 (x3,
17066 : E_V4DFmode,
17067 : E_DFmode))
17068 : {
17069 : case 0:
17070 : if (!(
17071 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17072 : (TARGET_AVX2) &&
17073 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17074 : (Pmode == SImode)))
17075 : return -1;
17076 : *pnum_clobbers = 1;
17077 : return 9793; /* *avx2_gathersiv4df_2 */
17078 :
17079 : case 1:
17080 : if (!(
17081 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17082 : (TARGET_AVX2) &&
17083 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17084 : (Pmode == SImode)))
17085 : return -1;
17086 : *pnum_clobbers = 1;
17087 : return 9825; /* *avx2_gatherdiv4df_2 */
17088 :
17089 : case 2:
17090 : if (!(
17091 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17092 : (TARGET_AVX2) &&
17093 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17094 : (Pmode == DImode)))
17095 : return -1;
17096 : *pnum_clobbers = 1;
17097 : return 9801; /* *avx2_gathersiv4df_2 */
17098 :
17099 : case 3:
17100 : if (!(
17101 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17102 : (TARGET_AVX2) &&
17103 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17104 : (Pmode == DImode)))
17105 : return -1;
17106 : *pnum_clobbers = 1;
17107 : return 9833; /* *avx2_gatherdiv4df_2 */
17108 :
17109 : default:
17110 : return -1;
17111 : }
17112 :
17113 : case E_V4SImode:
17114 : switch (pattern1725 (x3,
17115 : E_V4SImode,
17116 : E_SImode))
17117 : {
17118 : case 0:
17119 : if (!(
17120 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17121 : (TARGET_AVX2) &&
17122 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17123 : (Pmode == SImode)))
17124 : return -1;
17125 : *pnum_clobbers = 1;
17126 : return 9794; /* *avx2_gathersiv4si_2 */
17127 :
17128 : case 1:
17129 : if (!(
17130 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17131 : (TARGET_AVX2) &&
17132 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17133 : (Pmode == SImode)))
17134 : return -1;
17135 : *pnum_clobbers = 1;
17136 : return 9826; /* *avx2_gatherdiv4si_2 */
17137 :
17138 : case 2:
17139 : if (!(
17140 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17141 : (TARGET_AVX2) &&
17142 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17143 : (Pmode == DImode)))
17144 : return -1;
17145 : *pnum_clobbers = 1;
17146 : return 9802; /* *avx2_gathersiv4si_2 */
17147 :
17148 : case 3:
17149 : if (!(
17150 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17151 : (TARGET_AVX2) &&
17152 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17153 : (Pmode == DImode)))
17154 : return -1;
17155 : *pnum_clobbers = 1;
17156 : return 9834; /* *avx2_gatherdiv4si_2 */
17157 :
17158 : default:
17159 : return -1;
17160 : }
17161 :
17162 : case E_V4SFmode:
17163 : switch (pattern1725 (x3,
17164 : E_V4SFmode,
17165 : E_SFmode))
17166 : {
17167 : case 0:
17168 : if (!(
17169 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17170 : (TARGET_AVX2) &&
17171 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17172 : (Pmode == SImode)))
17173 : return -1;
17174 : *pnum_clobbers = 1;
17175 : return 9795; /* *avx2_gathersiv4sf_2 */
17176 :
17177 : case 1:
17178 : if (!(
17179 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17180 : (TARGET_AVX2) &&
17181 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17182 : (Pmode == SImode)))
17183 : return -1;
17184 : *pnum_clobbers = 1;
17185 : return 9827; /* *avx2_gatherdiv4sf_2 */
17186 :
17187 : case 2:
17188 : if (!(
17189 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17190 : (TARGET_AVX2) &&
17191 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17192 : (Pmode == DImode)))
17193 : return -1;
17194 : *pnum_clobbers = 1;
17195 : return 9803; /* *avx2_gathersiv4sf_2 */
17196 :
17197 : case 3:
17198 : if (!(
17199 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17200 : (TARGET_AVX2) &&
17201 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17202 : (Pmode == DImode)))
17203 : return -1;
17204 : *pnum_clobbers = 1;
17205 : return 9835; /* *avx2_gatherdiv4sf_2 */
17206 :
17207 : default:
17208 : return -1;
17209 : }
17210 :
17211 : case E_V8SImode:
17212 : switch (pattern1728 (x3,
17213 : E_SImode,
17214 : E_V8SImode))
17215 : {
17216 : case 0:
17217 : switch (pattern1812 (
17218 : E_SImode))
17219 : {
17220 : case 0:
17221 : if (!(
17222 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17223 : (TARGET_AVX2) &&
17224 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17225 : (Pmode == SImode)))
17226 : return -1;
17227 : *pnum_clobbers = 1;
17228 : return 9796; /* *avx2_gathersiv8si_2 */
17229 :
17230 : case 1:
17231 : if (!(
17232 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17233 : (TARGET_AVX2) &&
17234 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17235 : (Pmode == SImode)))
17236 : return -1;
17237 : *pnum_clobbers = 1;
17238 : return 9828; /* *avx2_gatherdiv8si_2 */
17239 :
17240 : default:
17241 : return -1;
17242 : }
17243 :
17244 : case 1:
17245 : switch (pattern1812 (
17246 : E_DImode))
17247 : {
17248 : case 0:
17249 : if (!(
17250 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17251 : (TARGET_AVX2) &&
17252 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17253 : (Pmode == DImode)))
17254 : return -1;
17255 : *pnum_clobbers = 1;
17256 : return 9804; /* *avx2_gathersiv8si_2 */
17257 :
17258 : case 1:
17259 : if (!(
17260 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17261 : (TARGET_AVX2) &&
17262 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17263 : (Pmode == DImode)))
17264 : return -1;
17265 : *pnum_clobbers = 1;
17266 : return 9836; /* *avx2_gatherdiv8si_2 */
17267 :
17268 : default:
17269 : return -1;
17270 : }
17271 :
17272 : default:
17273 : return -1;
17274 : }
17275 :
17276 : case E_V8SFmode:
17277 : switch (pattern1728 (x3,
17278 : E_SFmode,
17279 : E_V8SFmode))
17280 : {
17281 : case 0:
17282 : switch (pattern1813 (
17283 : E_SImode))
17284 : {
17285 : case 0:
17286 : if (!(
17287 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17288 : (TARGET_AVX2) &&
17289 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17290 : (Pmode == SImode)))
17291 : return -1;
17292 : *pnum_clobbers = 1;
17293 : return 9797; /* *avx2_gathersiv8sf_2 */
17294 :
17295 : case 1:
17296 : if (!(
17297 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17298 : (TARGET_AVX2) &&
17299 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17300 : (Pmode == SImode)))
17301 : return -1;
17302 : *pnum_clobbers = 1;
17303 : return 9829; /* *avx2_gatherdiv8sf_2 */
17304 :
17305 : default:
17306 : return -1;
17307 : }
17308 :
17309 : case 1:
17310 : switch (pattern1813 (
17311 : E_DImode))
17312 : {
17313 : case 0:
17314 : if (!(
17315 : #line 30360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17316 : (TARGET_AVX2) &&
17317 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17318 : (Pmode == DImode)))
17319 : return -1;
17320 : *pnum_clobbers = 1;
17321 : return 9805; /* *avx2_gathersiv8sf_2 */
17322 :
17323 : case 1:
17324 : if (!(
17325 : #line 30423 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17326 : (TARGET_AVX2) &&
17327 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
17328 : (Pmode == DImode)))
17329 : return -1;
17330 : *pnum_clobbers = 1;
17331 : return 9837; /* *avx2_gatherdiv8sf_2 */
17332 :
17333 : default:
17334 : return -1;
17335 : }
17336 :
17337 : default:
17338 : return -1;
17339 : }
17340 :
17341 : default:
17342 : return -1;
17343 : }
17344 :
17345 : default:
17346 : return -1;
17347 : }
17348 :
17349 : case 227:
17350 : if (GET_MODE (x3) != E_V4SImode
17351 : || pattern176 (x3) != 0)
17352 : return -1;
17353 : x7 = XVECEXP (x3, 0, 3);
17354 : operands[4] = x7;
17355 : if (!const_0_to_255_operand (operands[4], E_SImode)
17356 : || !
17357 : #line 31121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17358 : (TARGET_SM3))
17359 : return -1;
17360 : return 10197; /* vsm3rnds2 */
17361 :
17362 : default:
17363 : return -1;
17364 : }
17365 : }
17366 :
17367 : int
17368 : recog_313 (rtx x1 ATTRIBUTE_UNUSED,
17369 : rtx_insn *insn ATTRIBUTE_UNUSED,
17370 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17371 : {
17372 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17373 : rtx x2, x3, x4, x5;
17374 : int res ATTRIBUTE_UNUSED;
17375 : x2 = XEXP (x1, 1);
17376 : x3 = XEXP (x2, 0);
17377 : switch (GET_CODE (x3))
17378 : {
17379 : case REG:
17380 : case SUBREG:
17381 : case MEM:
17382 : case VEC_DUPLICATE:
17383 : operands[1] = x3;
17384 : x4 = XEXP (x2, 1);
17385 : operands[2] = x4;
17386 : switch (GET_CODE (operands[2]))
17387 : {
17388 : case REG:
17389 : case SUBREG:
17390 : case MEM:
17391 : case VEC_DUPLICATE:
17392 : switch (GET_MODE (operands[0]))
17393 : {
17394 : case E_V16BFmode:
17395 : if (pattern26 (x2,
17396 : E_V16BFmode) != 0
17397 : || !(
17398 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17399 : (TARGET_SSE && 1
17400 : && (!false || 16 != 16)
17401 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17402 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17403 : (TARGET_AVX)))
17404 : return -1;
17405 : return 3791; /* *xorv16bf3 */
17406 :
17407 : case E_V8BFmode:
17408 : if (pattern26 (x2,
17409 : E_V8BFmode) != 0
17410 : || !(
17411 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17412 : (TARGET_SSE && 1
17413 : && (!false || 16 != 16)
17414 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17415 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17416 : (TARGET_SSE2)))
17417 : return -1;
17418 : return 3794; /* *xorv8bf3 */
17419 :
17420 : case E_V16HFmode:
17421 : if (pattern26 (x2,
17422 : E_V16HFmode) != 0
17423 : || !(
17424 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17425 : (TARGET_SSE && 1
17426 : && (!false || 16 != 16)
17427 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17428 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17429 : (TARGET_AVX)))
17430 : return -1;
17431 : return 3797; /* *xorv16hf3 */
17432 :
17433 : case E_V8HFmode:
17434 : if (pattern26 (x2,
17435 : E_V8HFmode) != 0
17436 : || !(
17437 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17438 : (TARGET_SSE && 1
17439 : && (!false || 16 != 16)
17440 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17441 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17442 : (TARGET_SSE2)))
17443 : return -1;
17444 : return 3800; /* *xorv8hf3 */
17445 :
17446 : case E_V8SFmode:
17447 : if (pattern26 (x2,
17448 : E_V8SFmode) != 0
17449 : || !(
17450 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17451 : (TARGET_SSE && 1
17452 : && (!false || 32 != 16)
17453 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17454 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17455 : (TARGET_AVX)))
17456 : return -1;
17457 : return 3805; /* *xorv8sf3 */
17458 :
17459 : case E_V4SFmode:
17460 : if (pattern26 (x2,
17461 : E_V4SFmode) != 0
17462 : || !
17463 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17464 : (TARGET_SSE && 1
17465 : && (!false || 32 != 16)
17466 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
17467 : return -1;
17468 : return 3811; /* *xorv4sf3 */
17469 :
17470 : case E_V4DFmode:
17471 : if (pattern26 (x2,
17472 : E_V4DFmode) != 0
17473 : || !(
17474 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17475 : (TARGET_SSE && 1
17476 : && (!false || 64 != 16)
17477 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17478 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17479 : (TARGET_AVX)))
17480 : return -1;
17481 : return 3817; /* *xorv4df3 */
17482 :
17483 : case E_V2DFmode:
17484 : if (pattern26 (x2,
17485 : E_V2DFmode) != 0
17486 : || !(
17487 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17488 : (TARGET_SSE && 1
17489 : && (!false || 64 != 16)
17490 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17491 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17492 : (TARGET_SSE2)))
17493 : return -1;
17494 : return 3823; /* *xorv2df3 */
17495 :
17496 : case E_V32BFmode:
17497 : if (pattern3 (x2,
17498 : E_V32BFmode) != 0
17499 : || !
17500 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17501 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
17502 : && (!false || 16 != 16)))
17503 : return -1;
17504 : return 3827; /* *xorv32bf3 */
17505 :
17506 : case E_V32HFmode:
17507 : if (pattern3 (x2,
17508 : E_V32HFmode) != 0
17509 : || !
17510 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17511 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
17512 : && (!false || 16 != 16)))
17513 : return -1;
17514 : return 3830; /* *xorv32hf3 */
17515 :
17516 : case E_V16SFmode:
17517 : if (pattern3 (x2,
17518 : E_V16SFmode) != 0
17519 : || !
17520 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17521 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
17522 : && (!false || 32 != 16)))
17523 : return -1;
17524 : return 3835; /* *xorv16sf3 */
17525 :
17526 : case E_V8DFmode:
17527 : if (pattern3 (x2,
17528 : E_V8DFmode) != 0
17529 : || !
17530 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17531 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
17532 : && (!false || 64 != 16)))
17533 : return -1;
17534 : return 3841; /* *xorv8df3 */
17535 :
17536 : case E_V16SImode:
17537 : if (pattern189 (x2,
17538 : E_V16SImode) != 0
17539 : || !(
17540 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17541 : (TARGET_SSE && 1
17542 : && ix86_binary_operator_ok (XOR, V16SImode, operands)) &&
17543 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17544 : (TARGET_AVX512F)))
17545 : return -1;
17546 : return 8083; /* *xorv16si3 */
17547 :
17548 : case E_V8SImode:
17549 : if (pattern189 (x2,
17550 : E_V8SImode) != 0
17551 : || !(
17552 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17553 : (TARGET_SSE && 1
17554 : && ix86_binary_operator_ok (XOR, V8SImode, operands)) &&
17555 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17556 : (TARGET_AVX)))
17557 : return -1;
17558 : return 8089; /* *xorv8si3 */
17559 :
17560 : case E_V4SImode:
17561 : if (pattern189 (x2,
17562 : E_V4SImode) != 0
17563 : || !
17564 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17565 : (TARGET_SSE && 1
17566 : && ix86_binary_operator_ok (XOR, V4SImode, operands)))
17567 : return -1;
17568 : return 8095; /* *xorv4si3 */
17569 :
17570 : case E_V8DImode:
17571 : if (pattern189 (x2,
17572 : E_V8DImode) != 0
17573 : || !(
17574 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17575 : (TARGET_SSE && 1
17576 : && ix86_binary_operator_ok (XOR, V8DImode, operands)) &&
17577 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17578 : (TARGET_AVX512F)))
17579 : return -1;
17580 : return 8101; /* *xorv8di3 */
17581 :
17582 : case E_V4DImode:
17583 : if (pattern189 (x2,
17584 : E_V4DImode) != 0
17585 : || !(
17586 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17587 : (TARGET_SSE && 1
17588 : && ix86_binary_operator_ok (XOR, V4DImode, operands)) &&
17589 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17590 : (TARGET_AVX)))
17591 : return -1;
17592 : return 8107; /* *xorv4di3 */
17593 :
17594 : case E_V2DImode:
17595 : if (pattern189 (x2,
17596 : E_V2DImode) != 0
17597 : || !
17598 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17599 : (TARGET_SSE && 1
17600 : && ix86_binary_operator_ok (XOR, V2DImode, operands)))
17601 : return -1;
17602 : return 8113; /* *xorv2di3 */
17603 :
17604 : case E_V64QImode:
17605 : if (pattern26 (x2,
17606 : E_V64QImode) != 0
17607 : || !(
17608 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17609 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17610 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17611 : (TARGET_AVX512F)))
17612 : return -1;
17613 : return 8117; /* *xorv64qi3 */
17614 :
17615 : case E_V32QImode:
17616 : if (pattern26 (x2,
17617 : E_V32QImode) != 0
17618 : || !(
17619 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17620 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17621 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17622 : (TARGET_AVX)))
17623 : return -1;
17624 : return 8120; /* *xorv32qi3 */
17625 :
17626 : case E_V16QImode:
17627 : if (pattern26 (x2,
17628 : E_V16QImode) != 0
17629 : || !
17630 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17631 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
17632 : return -1;
17633 : return 8123; /* *xorv16qi3 */
17634 :
17635 : case E_V32HImode:
17636 : if (pattern26 (x2,
17637 : E_V32HImode) != 0
17638 : || !(
17639 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17640 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17641 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17642 : (TARGET_AVX512F)))
17643 : return -1;
17644 : return 8126; /* *xorv32hi3 */
17645 :
17646 : case E_V16HImode:
17647 : if (pattern26 (x2,
17648 : E_V16HImode) != 0
17649 : || !(
17650 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17651 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17652 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17653 : (TARGET_AVX)))
17654 : return -1;
17655 : return 8129; /* *xorv16hi3 */
17656 :
17657 : case E_V8HImode:
17658 : if (pattern26 (x2,
17659 : E_V8HImode) != 0
17660 : || !
17661 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17662 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
17663 : return -1;
17664 : return 8132; /* *xorv8hi3 */
17665 :
17666 : case E_V1TImode:
17667 : if (pattern682 (x2,
17668 : E_V1TImode) != 0
17669 : || !
17670 : #line 19396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17671 : (TARGET_SSE2))
17672 : return -1;
17673 : return 8135; /* xorv1ti3 */
17674 :
17675 : default:
17676 : return -1;
17677 : }
17678 :
17679 : case CONST_VECTOR:
17680 : switch (GET_MODE (operands[0]))
17681 : {
17682 : case E_V16SImode:
17683 : if (pattern937 (x2,
17684 : E_V16SImode) != 0
17685 : || !(
17686 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17687 : (TARGET_AVX512F
17688 : && (!false
17689 : || SImode == SImode
17690 : || SImode == DImode)) &&
17691 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17692 : (TARGET_AVX512F)))
17693 : return -1;
17694 : return 8031; /* *one_cmplv16si2 */
17695 :
17696 : case E_V8DImode:
17697 : if (pattern937 (x2,
17698 : E_V8DImode) != 0
17699 : || !(
17700 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17701 : (TARGET_AVX512F
17702 : && (!false
17703 : || DImode == SImode
17704 : || DImode == DImode)) &&
17705 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17706 : (TARGET_AVX512F)))
17707 : return -1;
17708 : return 8033; /* *one_cmplv8di2 */
17709 :
17710 : case E_V64QImode:
17711 : if (pattern937 (x2,
17712 : E_V64QImode) != 0
17713 : || !(
17714 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17715 : (TARGET_AVX512F
17716 : && (!false
17717 : || QImode == SImode
17718 : || QImode == DImode)) &&
17719 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17720 : (TARGET_AVX512BW)))
17721 : return -1;
17722 : return 8035; /* *one_cmplv64qi2 */
17723 :
17724 : case E_V32QImode:
17725 : if (pattern937 (x2,
17726 : E_V32QImode) != 0
17727 : || !(
17728 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17729 : (TARGET_AVX512F
17730 : && (!false
17731 : || QImode == SImode
17732 : || QImode == DImode)) &&
17733 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17734 : (TARGET_AVX)))
17735 : return -1;
17736 : return 8036; /* *one_cmplv32qi2 */
17737 :
17738 : case E_V16QImode:
17739 : if (pattern937 (x2,
17740 : E_V16QImode) != 0
17741 : || !
17742 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17743 : (TARGET_AVX512F
17744 : && (!false
17745 : || QImode == SImode
17746 : || QImode == DImode)))
17747 : return -1;
17748 : return 8037; /* *one_cmplv16qi2 */
17749 :
17750 : case E_V32HImode:
17751 : if (pattern937 (x2,
17752 : E_V32HImode) != 0
17753 : || !(
17754 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17755 : (TARGET_AVX512F
17756 : && (!false
17757 : || HImode == SImode
17758 : || HImode == DImode)) &&
17759 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17760 : (TARGET_AVX512BW)))
17761 : return -1;
17762 : return 8038; /* *one_cmplv32hi2 */
17763 :
17764 : case E_V16HImode:
17765 : if (pattern937 (x2,
17766 : E_V16HImode) != 0
17767 : || !(
17768 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17769 : (TARGET_AVX512F
17770 : && (!false
17771 : || HImode == SImode
17772 : || HImode == DImode)) &&
17773 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17774 : (TARGET_AVX)))
17775 : return -1;
17776 : return 8039; /* *one_cmplv16hi2 */
17777 :
17778 : case E_V8HImode:
17779 : if (pattern937 (x2,
17780 : E_V8HImode) != 0
17781 : || !
17782 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17783 : (TARGET_AVX512F
17784 : && (!false
17785 : || HImode == SImode
17786 : || HImode == DImode)))
17787 : return -1;
17788 : return 8040; /* *one_cmplv8hi2 */
17789 :
17790 : case E_V8SImode:
17791 : if (pattern937 (x2,
17792 : E_V8SImode) != 0
17793 : || !(
17794 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17795 : (TARGET_AVX512F
17796 : && (!false
17797 : || SImode == SImode
17798 : || SImode == DImode)) &&
17799 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17800 : (TARGET_AVX)))
17801 : return -1;
17802 : return 8041; /* *one_cmplv8si2 */
17803 :
17804 : case E_V4SImode:
17805 : if (pattern937 (x2,
17806 : E_V4SImode) != 0
17807 : || !
17808 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17809 : (TARGET_AVX512F
17810 : && (!false
17811 : || SImode == SImode
17812 : || SImode == DImode)))
17813 : return -1;
17814 : return 8043; /* *one_cmplv4si2 */
17815 :
17816 : case E_V4DImode:
17817 : if (pattern937 (x2,
17818 : E_V4DImode) != 0
17819 : || !(
17820 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17821 : (TARGET_AVX512F
17822 : && (!false
17823 : || DImode == SImode
17824 : || DImode == DImode)) &&
17825 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17826 : (TARGET_AVX)))
17827 : return -1;
17828 : return 8045; /* *one_cmplv4di2 */
17829 :
17830 : case E_V2DImode:
17831 : if (pattern937 (x2,
17832 : E_V2DImode) != 0
17833 : || !
17834 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17835 : (TARGET_AVX512F
17836 : && (!false
17837 : || DImode == SImode
17838 : || DImode == DImode)))
17839 : return -1;
17840 : return 8047; /* *one_cmplv2di2 */
17841 :
17842 : default:
17843 : return -1;
17844 : }
17845 :
17846 : default:
17847 : return -1;
17848 : }
17849 :
17850 : case AND:
17851 : x5 = XEXP (x3, 0);
17852 : switch (GET_CODE (x5))
17853 : {
17854 : case REG:
17855 : case SUBREG:
17856 : case MEM:
17857 : case NOT:
17858 : switch (pattern537 (x2))
17859 : {
17860 : case 0:
17861 : if (!(
17862 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17863 : ((64 == 64 || TARGET_AVX512VL
17864 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17865 : && ix86_pre_reload_split ()
17866 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17867 : STRIP_UNARY (operands[4]))
17868 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17869 : STRIP_UNARY (operands[4]))
17870 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17871 : STRIP_UNARY (operands[3]))
17872 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17873 : STRIP_UNARY (operands[3])))) &&
17874 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17875 : (TARGET_AVX512F)))
17876 : return -1;
17877 : return 5546; /* *avx512bw_vpternlogv64qi_1 */
17878 :
17879 : case 1:
17880 : if (!(
17881 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17882 : ((32 == 64 || TARGET_AVX512VL
17883 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17884 : && ix86_pre_reload_split ()
17885 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17886 : STRIP_UNARY (operands[4]))
17887 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17888 : STRIP_UNARY (operands[4]))
17889 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17890 : STRIP_UNARY (operands[3]))
17891 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17892 : STRIP_UNARY (operands[3])))) &&
17893 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17894 : (TARGET_AVX)))
17895 : return -1;
17896 : return 5573; /* *avx512vl_vpternlogv32qi_1 */
17897 :
17898 : case 2:
17899 : if (!
17900 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17901 : ((16 == 64 || TARGET_AVX512VL
17902 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17903 : && ix86_pre_reload_split ()
17904 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17905 : STRIP_UNARY (operands[4]))
17906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17907 : STRIP_UNARY (operands[4]))
17908 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17909 : STRIP_UNARY (operands[3]))
17910 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17911 : STRIP_UNARY (operands[3])))))
17912 : return -1;
17913 : return 5600; /* *avx512vl_vpternlogv16qi_1 */
17914 :
17915 : case 3:
17916 : if (!(
17917 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17918 : ((64 == 64 || TARGET_AVX512VL
17919 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17920 : && ix86_pre_reload_split ()
17921 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17922 : STRIP_UNARY (operands[4]))
17923 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17924 : STRIP_UNARY (operands[4]))
17925 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17926 : STRIP_UNARY (operands[3]))
17927 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17928 : STRIP_UNARY (operands[3])))) &&
17929 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17930 : (TARGET_AVX512F)))
17931 : return -1;
17932 : return 5627; /* *avx512bw_vpternlogv32hi_1 */
17933 :
17934 : case 4:
17935 : if (!(
17936 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17937 : ((32 == 64 || TARGET_AVX512VL
17938 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17939 : && ix86_pre_reload_split ()
17940 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17941 : STRIP_UNARY (operands[4]))
17942 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17943 : STRIP_UNARY (operands[4]))
17944 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17945 : STRIP_UNARY (operands[3]))
17946 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17947 : STRIP_UNARY (operands[3])))) &&
17948 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17949 : (TARGET_AVX)))
17950 : return -1;
17951 : return 5654; /* *avx512vl_vpternlogv16hi_1 */
17952 :
17953 : case 5:
17954 : if (!
17955 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17956 : ((16 == 64 || TARGET_AVX512VL
17957 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17958 : && ix86_pre_reload_split ()
17959 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17960 : STRIP_UNARY (operands[4]))
17961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17962 : STRIP_UNARY (operands[4]))
17963 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17964 : STRIP_UNARY (operands[3]))
17965 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17966 : STRIP_UNARY (operands[3])))))
17967 : return -1;
17968 : return 5681; /* *avx512vl_vpternlogv8hi_1 */
17969 :
17970 : case 6:
17971 : if (!(
17972 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17973 : ((64 == 64 || TARGET_AVX512VL
17974 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17975 : && ix86_pre_reload_split ()
17976 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17977 : STRIP_UNARY (operands[4]))
17978 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17979 : STRIP_UNARY (operands[4]))
17980 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17981 : STRIP_UNARY (operands[3]))
17982 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17983 : STRIP_UNARY (operands[3])))) &&
17984 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17985 : (TARGET_AVX512F)))
17986 : return -1;
17987 : return 5708; /* *avx512f_vpternlogv16si_1 */
17988 :
17989 : case 7:
17990 : if (!(
17991 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17992 : ((32 == 64 || TARGET_AVX512VL
17993 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17994 : && ix86_pre_reload_split ()
17995 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17996 : STRIP_UNARY (operands[4]))
17997 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17998 : STRIP_UNARY (operands[4]))
17999 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18000 : STRIP_UNARY (operands[3]))
18001 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18002 : STRIP_UNARY (operands[3])))) &&
18003 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18004 : (TARGET_AVX)))
18005 : return -1;
18006 : return 5735; /* *avx512vl_vpternlogv8si_1 */
18007 :
18008 : case 8:
18009 : if (!
18010 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18011 : ((16 == 64 || TARGET_AVX512VL
18012 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18013 : && ix86_pre_reload_split ()
18014 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18015 : STRIP_UNARY (operands[4]))
18016 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18017 : STRIP_UNARY (operands[4]))
18018 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18019 : STRIP_UNARY (operands[3]))
18020 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18021 : STRIP_UNARY (operands[3])))))
18022 : return -1;
18023 : return 5762; /* *avx512vl_vpternlogv4si_1 */
18024 :
18025 : case 9:
18026 : if (!(
18027 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18028 : ((64 == 64 || TARGET_AVX512VL
18029 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18030 : && ix86_pre_reload_split ()
18031 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18032 : STRIP_UNARY (operands[4]))
18033 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18034 : STRIP_UNARY (operands[4]))
18035 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18036 : STRIP_UNARY (operands[3]))
18037 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18038 : STRIP_UNARY (operands[3])))) &&
18039 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18040 : (TARGET_AVX512F)))
18041 : return -1;
18042 : return 5789; /* *avx512f_vpternlogv8di_1 */
18043 :
18044 : case 10:
18045 : if (!(
18046 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18047 : ((32 == 64 || TARGET_AVX512VL
18048 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18049 : && ix86_pre_reload_split ()
18050 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18051 : STRIP_UNARY (operands[4]))
18052 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18053 : STRIP_UNARY (operands[4]))
18054 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18055 : STRIP_UNARY (operands[3]))
18056 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18057 : STRIP_UNARY (operands[3])))) &&
18058 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18059 : (TARGET_AVX)))
18060 : return -1;
18061 : return 5816; /* *avx512vl_vpternlogv4di_1 */
18062 :
18063 : case 11:
18064 : if (!
18065 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18066 : ((16 == 64 || TARGET_AVX512VL
18067 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18068 : && ix86_pre_reload_split ()
18069 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18070 : STRIP_UNARY (operands[4]))
18071 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18072 : STRIP_UNARY (operands[4]))
18073 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18074 : STRIP_UNARY (operands[3]))
18075 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18076 : STRIP_UNARY (operands[3])))))
18077 : return -1;
18078 : return 5843; /* *avx512vl_vpternlogv2di_1 */
18079 :
18080 : case 12:
18081 : if (!(
18082 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18083 : ((64 == 64 || TARGET_AVX512VL
18084 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18085 : && ix86_pre_reload_split ()
18086 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18087 : STRIP_UNARY (operands[4]))
18088 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18089 : STRIP_UNARY (operands[4]))
18090 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18091 : STRIP_UNARY (operands[3]))
18092 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18093 : STRIP_UNARY (operands[3])))) &&
18094 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18095 : (TARGET_AVX512F)))
18096 : return -1;
18097 : return 5549; /* *avx512bw_vpternlogv64qi_1 */
18098 :
18099 : case 13:
18100 : if (!(
18101 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18102 : ((32 == 64 || TARGET_AVX512VL
18103 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18104 : && ix86_pre_reload_split ()
18105 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18106 : STRIP_UNARY (operands[4]))
18107 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18108 : STRIP_UNARY (operands[4]))
18109 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18110 : STRIP_UNARY (operands[3]))
18111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18112 : STRIP_UNARY (operands[3])))) &&
18113 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18114 : (TARGET_AVX)))
18115 : return -1;
18116 : return 5576; /* *avx512vl_vpternlogv32qi_1 */
18117 :
18118 : case 14:
18119 : if (!
18120 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18121 : ((16 == 64 || TARGET_AVX512VL
18122 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18123 : && ix86_pre_reload_split ()
18124 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18125 : STRIP_UNARY (operands[4]))
18126 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18127 : STRIP_UNARY (operands[4]))
18128 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18129 : STRIP_UNARY (operands[3]))
18130 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18131 : STRIP_UNARY (operands[3])))))
18132 : return -1;
18133 : return 5603; /* *avx512vl_vpternlogv16qi_1 */
18134 :
18135 : case 15:
18136 : if (!(
18137 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18138 : ((64 == 64 || TARGET_AVX512VL
18139 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18140 : && ix86_pre_reload_split ()
18141 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18142 : STRIP_UNARY (operands[4]))
18143 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18144 : STRIP_UNARY (operands[4]))
18145 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18146 : STRIP_UNARY (operands[3]))
18147 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18148 : STRIP_UNARY (operands[3])))) &&
18149 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18150 : (TARGET_AVX512F)))
18151 : return -1;
18152 : return 5630; /* *avx512bw_vpternlogv32hi_1 */
18153 :
18154 : case 16:
18155 : if (!(
18156 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18157 : ((32 == 64 || TARGET_AVX512VL
18158 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18159 : && ix86_pre_reload_split ()
18160 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18161 : STRIP_UNARY (operands[4]))
18162 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18163 : STRIP_UNARY (operands[4]))
18164 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18165 : STRIP_UNARY (operands[3]))
18166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18167 : STRIP_UNARY (operands[3])))) &&
18168 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18169 : (TARGET_AVX)))
18170 : return -1;
18171 : return 5657; /* *avx512vl_vpternlogv16hi_1 */
18172 :
18173 : case 17:
18174 : if (!
18175 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18176 : ((16 == 64 || TARGET_AVX512VL
18177 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18178 : && ix86_pre_reload_split ()
18179 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18180 : STRIP_UNARY (operands[4]))
18181 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18182 : STRIP_UNARY (operands[4]))
18183 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18184 : STRIP_UNARY (operands[3]))
18185 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18186 : STRIP_UNARY (operands[3])))))
18187 : return -1;
18188 : return 5684; /* *avx512vl_vpternlogv8hi_1 */
18189 :
18190 : case 18:
18191 : if (!(
18192 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18193 : ((64 == 64 || TARGET_AVX512VL
18194 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18195 : && ix86_pre_reload_split ()
18196 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18197 : STRIP_UNARY (operands[4]))
18198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18199 : STRIP_UNARY (operands[4]))
18200 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18201 : STRIP_UNARY (operands[3]))
18202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18203 : STRIP_UNARY (operands[3])))) &&
18204 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18205 : (TARGET_AVX512F)))
18206 : return -1;
18207 : return 5711; /* *avx512f_vpternlogv16si_1 */
18208 :
18209 : case 19:
18210 : if (!(
18211 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18212 : ((32 == 64 || TARGET_AVX512VL
18213 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18214 : && ix86_pre_reload_split ()
18215 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18216 : STRIP_UNARY (operands[4]))
18217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18218 : STRIP_UNARY (operands[4]))
18219 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18220 : STRIP_UNARY (operands[3]))
18221 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18222 : STRIP_UNARY (operands[3])))) &&
18223 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18224 : (TARGET_AVX)))
18225 : return -1;
18226 : return 5738; /* *avx512vl_vpternlogv8si_1 */
18227 :
18228 : case 20:
18229 : if (!
18230 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18231 : ((16 == 64 || TARGET_AVX512VL
18232 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18233 : && ix86_pre_reload_split ()
18234 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18235 : STRIP_UNARY (operands[4]))
18236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18237 : STRIP_UNARY (operands[4]))
18238 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18239 : STRIP_UNARY (operands[3]))
18240 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18241 : STRIP_UNARY (operands[3])))))
18242 : return -1;
18243 : return 5765; /* *avx512vl_vpternlogv4si_1 */
18244 :
18245 : case 21:
18246 : if (!(
18247 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18248 : ((64 == 64 || TARGET_AVX512VL
18249 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18250 : && ix86_pre_reload_split ()
18251 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18252 : STRIP_UNARY (operands[4]))
18253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18254 : STRIP_UNARY (operands[4]))
18255 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18256 : STRIP_UNARY (operands[3]))
18257 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18258 : STRIP_UNARY (operands[3])))) &&
18259 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18260 : (TARGET_AVX512F)))
18261 : return -1;
18262 : return 5792; /* *avx512f_vpternlogv8di_1 */
18263 :
18264 : case 22:
18265 : if (!(
18266 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18267 : ((32 == 64 || TARGET_AVX512VL
18268 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18269 : && ix86_pre_reload_split ()
18270 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18271 : STRIP_UNARY (operands[4]))
18272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18273 : STRIP_UNARY (operands[4]))
18274 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18275 : STRIP_UNARY (operands[3]))
18276 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18277 : STRIP_UNARY (operands[3])))) &&
18278 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18279 : (TARGET_AVX)))
18280 : return -1;
18281 : return 5819; /* *avx512vl_vpternlogv4di_1 */
18282 :
18283 : case 23:
18284 : if (!
18285 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18286 : ((16 == 64 || TARGET_AVX512VL
18287 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18288 : && ix86_pre_reload_split ()
18289 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18290 : STRIP_UNARY (operands[4]))
18291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18292 : STRIP_UNARY (operands[4]))
18293 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18294 : STRIP_UNARY (operands[3]))
18295 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18296 : STRIP_UNARY (operands[3])))))
18297 : return -1;
18298 : return 5846; /* *avx512vl_vpternlogv2di_1 */
18299 :
18300 : case 24:
18301 : if (!(
18302 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18303 : ((64 == 64 || TARGET_AVX512VL
18304 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18305 : && ix86_pre_reload_split ()
18306 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18307 : STRIP_UNARY (operands[4]))
18308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18309 : STRIP_UNARY (operands[4]))
18310 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18311 : STRIP_UNARY (operands[3]))
18312 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18313 : STRIP_UNARY (operands[3])))) &&
18314 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18315 : (TARGET_AVX512F)))
18316 : return -1;
18317 : return 5552; /* *avx512bw_vpternlogv64qi_1 */
18318 :
18319 : case 25:
18320 : if (!(
18321 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18322 : ((32 == 64 || TARGET_AVX512VL
18323 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18324 : && ix86_pre_reload_split ()
18325 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18326 : STRIP_UNARY (operands[4]))
18327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18328 : STRIP_UNARY (operands[4]))
18329 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18330 : STRIP_UNARY (operands[3]))
18331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18332 : STRIP_UNARY (operands[3])))) &&
18333 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18334 : (TARGET_AVX)))
18335 : return -1;
18336 : return 5579; /* *avx512vl_vpternlogv32qi_1 */
18337 :
18338 : case 26:
18339 : if (!
18340 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18341 : ((16 == 64 || TARGET_AVX512VL
18342 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18343 : && ix86_pre_reload_split ()
18344 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18345 : STRIP_UNARY (operands[4]))
18346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18347 : STRIP_UNARY (operands[4]))
18348 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18349 : STRIP_UNARY (operands[3]))
18350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18351 : STRIP_UNARY (operands[3])))))
18352 : return -1;
18353 : return 5606; /* *avx512vl_vpternlogv16qi_1 */
18354 :
18355 : case 27:
18356 : if (!(
18357 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18358 : ((64 == 64 || TARGET_AVX512VL
18359 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18360 : && ix86_pre_reload_split ()
18361 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18362 : STRIP_UNARY (operands[4]))
18363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18364 : STRIP_UNARY (operands[4]))
18365 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18366 : STRIP_UNARY (operands[3]))
18367 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18368 : STRIP_UNARY (operands[3])))) &&
18369 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18370 : (TARGET_AVX512F)))
18371 : return -1;
18372 : return 5633; /* *avx512bw_vpternlogv32hi_1 */
18373 :
18374 : case 28:
18375 : if (!(
18376 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18377 : ((32 == 64 || TARGET_AVX512VL
18378 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18379 : && ix86_pre_reload_split ()
18380 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18381 : STRIP_UNARY (operands[4]))
18382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18383 : STRIP_UNARY (operands[4]))
18384 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18385 : STRIP_UNARY (operands[3]))
18386 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18387 : STRIP_UNARY (operands[3])))) &&
18388 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18389 : (TARGET_AVX)))
18390 : return -1;
18391 : return 5660; /* *avx512vl_vpternlogv16hi_1 */
18392 :
18393 : case 29:
18394 : if (!
18395 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18396 : ((16 == 64 || TARGET_AVX512VL
18397 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18398 : && ix86_pre_reload_split ()
18399 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18400 : STRIP_UNARY (operands[4]))
18401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18402 : STRIP_UNARY (operands[4]))
18403 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18404 : STRIP_UNARY (operands[3]))
18405 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18406 : STRIP_UNARY (operands[3])))))
18407 : return -1;
18408 : return 5687; /* *avx512vl_vpternlogv8hi_1 */
18409 :
18410 : case 30:
18411 : if (!(
18412 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18413 : ((64 == 64 || TARGET_AVX512VL
18414 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18415 : && ix86_pre_reload_split ()
18416 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18417 : STRIP_UNARY (operands[4]))
18418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18419 : STRIP_UNARY (operands[4]))
18420 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18421 : STRIP_UNARY (operands[3]))
18422 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18423 : STRIP_UNARY (operands[3])))) &&
18424 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18425 : (TARGET_AVX512F)))
18426 : return -1;
18427 : return 5714; /* *avx512f_vpternlogv16si_1 */
18428 :
18429 : case 31:
18430 : if (!(
18431 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18432 : ((32 == 64 || TARGET_AVX512VL
18433 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18434 : && ix86_pre_reload_split ()
18435 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18436 : STRIP_UNARY (operands[4]))
18437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18438 : STRIP_UNARY (operands[4]))
18439 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18440 : STRIP_UNARY (operands[3]))
18441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18442 : STRIP_UNARY (operands[3])))) &&
18443 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18444 : (TARGET_AVX)))
18445 : return -1;
18446 : return 5741; /* *avx512vl_vpternlogv8si_1 */
18447 :
18448 : case 32:
18449 : if (!
18450 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18451 : ((16 == 64 || TARGET_AVX512VL
18452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18453 : && ix86_pre_reload_split ()
18454 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18455 : STRIP_UNARY (operands[4]))
18456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18457 : STRIP_UNARY (operands[4]))
18458 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18459 : STRIP_UNARY (operands[3]))
18460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18461 : STRIP_UNARY (operands[3])))))
18462 : return -1;
18463 : return 5768; /* *avx512vl_vpternlogv4si_1 */
18464 :
18465 : case 33:
18466 : if (!(
18467 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18468 : ((64 == 64 || TARGET_AVX512VL
18469 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18470 : && ix86_pre_reload_split ()
18471 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18472 : STRIP_UNARY (operands[4]))
18473 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18474 : STRIP_UNARY (operands[4]))
18475 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18476 : STRIP_UNARY (operands[3]))
18477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18478 : STRIP_UNARY (operands[3])))) &&
18479 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18480 : (TARGET_AVX512F)))
18481 : return -1;
18482 : return 5795; /* *avx512f_vpternlogv8di_1 */
18483 :
18484 : case 34:
18485 : if (!(
18486 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18487 : ((32 == 64 || TARGET_AVX512VL
18488 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18489 : && ix86_pre_reload_split ()
18490 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18491 : STRIP_UNARY (operands[4]))
18492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18493 : STRIP_UNARY (operands[4]))
18494 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18495 : STRIP_UNARY (operands[3]))
18496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18497 : STRIP_UNARY (operands[3])))) &&
18498 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18499 : (TARGET_AVX)))
18500 : return -1;
18501 : return 5822; /* *avx512vl_vpternlogv4di_1 */
18502 :
18503 : case 35:
18504 : if (!
18505 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18506 : ((16 == 64 || TARGET_AVX512VL
18507 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18508 : && ix86_pre_reload_split ()
18509 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18510 : STRIP_UNARY (operands[4]))
18511 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18512 : STRIP_UNARY (operands[4]))
18513 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18514 : STRIP_UNARY (operands[3]))
18515 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18516 : STRIP_UNARY (operands[3])))))
18517 : return -1;
18518 : return 5849; /* *avx512vl_vpternlogv2di_1 */
18519 :
18520 : case 36:
18521 : if (!(
18522 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18523 : ((64 == 64 || TARGET_AVX512VL
18524 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18525 : && ix86_pre_reload_split ()) &&
18526 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18527 : (TARGET_AVX512F)))
18528 : return -1;
18529 : return 6842; /* *avx512bw_vpternlogv64qi_3 */
18530 :
18531 : case 37:
18532 : if (!(
18533 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18534 : ((32 == 64 || TARGET_AVX512VL
18535 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18536 : && ix86_pre_reload_split ()) &&
18537 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18538 : (TARGET_AVX)))
18539 : return -1;
18540 : return 6851; /* *avx512vl_vpternlogv32qi_3 */
18541 :
18542 : case 38:
18543 : if (!
18544 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18545 : ((16 == 64 || TARGET_AVX512VL
18546 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18547 : && ix86_pre_reload_split ()))
18548 : return -1;
18549 : return 6860; /* *avx512vl_vpternlogv16qi_3 */
18550 :
18551 : case 39:
18552 : if (!(
18553 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18554 : ((64 == 64 || TARGET_AVX512VL
18555 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18556 : && ix86_pre_reload_split ()) &&
18557 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18558 : (TARGET_AVX512F)))
18559 : return -1;
18560 : return 6869; /* *avx512bw_vpternlogv32hi_3 */
18561 :
18562 : case 40:
18563 : if (!(
18564 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18565 : ((32 == 64 || TARGET_AVX512VL
18566 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18567 : && ix86_pre_reload_split ()) &&
18568 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18569 : (TARGET_AVX)))
18570 : return -1;
18571 : return 6878; /* *avx512vl_vpternlogv16hi_3 */
18572 :
18573 : case 41:
18574 : if (!
18575 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18576 : ((16 == 64 || TARGET_AVX512VL
18577 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18578 : && ix86_pre_reload_split ()))
18579 : return -1;
18580 : return 6887; /* *avx512vl_vpternlogv8hi_3 */
18581 :
18582 : case 42:
18583 : if (!(
18584 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18585 : ((64 == 64 || TARGET_AVX512VL
18586 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18587 : && ix86_pre_reload_split ()) &&
18588 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18589 : (TARGET_AVX512F)))
18590 : return -1;
18591 : return 6896; /* *avx512f_vpternlogv16si_3 */
18592 :
18593 : case 43:
18594 : if (!(
18595 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18596 : ((32 == 64 || TARGET_AVX512VL
18597 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18598 : && ix86_pre_reload_split ()) &&
18599 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18600 : (TARGET_AVX)))
18601 : return -1;
18602 : return 6905; /* *avx512vl_vpternlogv8si_3 */
18603 :
18604 : case 44:
18605 : if (!
18606 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18607 : ((16 == 64 || TARGET_AVX512VL
18608 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18609 : && ix86_pre_reload_split ()))
18610 : return -1;
18611 : return 6914; /* *avx512vl_vpternlogv4si_3 */
18612 :
18613 : case 45:
18614 : if (!(
18615 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18616 : ((64 == 64 || TARGET_AVX512VL
18617 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18618 : && ix86_pre_reload_split ()) &&
18619 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18620 : (TARGET_AVX512F)))
18621 : return -1;
18622 : return 6923; /* *avx512f_vpternlogv8di_3 */
18623 :
18624 : case 46:
18625 : if (!(
18626 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18627 : ((32 == 64 || TARGET_AVX512VL
18628 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18629 : && ix86_pre_reload_split ()) &&
18630 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18631 : (TARGET_AVX)))
18632 : return -1;
18633 : return 6932; /* *avx512vl_vpternlogv4di_3 */
18634 :
18635 : case 47:
18636 : if (!
18637 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18638 : ((16 == 64 || TARGET_AVX512VL
18639 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18640 : && ix86_pre_reload_split ()))
18641 : return -1;
18642 : return 6941; /* *avx512vl_vpternlogv2di_3 */
18643 :
18644 : default:
18645 : return -1;
18646 : }
18647 :
18648 : case AND:
18649 : switch (pattern539 (x2))
18650 : {
18651 : case 0:
18652 : if (!(
18653 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18654 : ((64 == 64 || TARGET_AVX512VL
18655 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18656 : && ix86_pre_reload_split ()
18657 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18658 : STRIP_UNARY (operands[4]))
18659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18660 : STRIP_UNARY (operands[4]))
18661 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18662 : STRIP_UNARY (operands[3]))
18663 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18664 : STRIP_UNARY (operands[3])))) &&
18665 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18666 : (TARGET_AVX512F)))
18667 : return -1;
18668 : return 6194; /* *avx512bw_vpternlogv64qi_2 */
18669 :
18670 : case 1:
18671 : if (!(
18672 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18673 : ((32 == 64 || TARGET_AVX512VL
18674 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18675 : && ix86_pre_reload_split ()
18676 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18677 : STRIP_UNARY (operands[4]))
18678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18679 : STRIP_UNARY (operands[4]))
18680 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18681 : STRIP_UNARY (operands[3]))
18682 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18683 : STRIP_UNARY (operands[3])))) &&
18684 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18685 : (TARGET_AVX)))
18686 : return -1;
18687 : return 6221; /* *avx512vl_vpternlogv32qi_2 */
18688 :
18689 : case 2:
18690 : if (!
18691 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18692 : ((16 == 64 || TARGET_AVX512VL
18693 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18694 : && ix86_pre_reload_split ()
18695 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18696 : STRIP_UNARY (operands[4]))
18697 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18698 : STRIP_UNARY (operands[4]))
18699 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18700 : STRIP_UNARY (operands[3]))
18701 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18702 : STRIP_UNARY (operands[3])))))
18703 : return -1;
18704 : return 6248; /* *avx512vl_vpternlogv16qi_2 */
18705 :
18706 : case 3:
18707 : if (!(
18708 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18709 : ((64 == 64 || TARGET_AVX512VL
18710 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18711 : && ix86_pre_reload_split ()
18712 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18713 : STRIP_UNARY (operands[4]))
18714 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18715 : STRIP_UNARY (operands[4]))
18716 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18717 : STRIP_UNARY (operands[3]))
18718 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18719 : STRIP_UNARY (operands[3])))) &&
18720 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18721 : (TARGET_AVX512F)))
18722 : return -1;
18723 : return 6275; /* *avx512bw_vpternlogv32hi_2 */
18724 :
18725 : case 4:
18726 : if (!(
18727 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18728 : ((32 == 64 || TARGET_AVX512VL
18729 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18730 : && ix86_pre_reload_split ()
18731 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18732 : STRIP_UNARY (operands[4]))
18733 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18734 : STRIP_UNARY (operands[4]))
18735 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18736 : STRIP_UNARY (operands[3]))
18737 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18738 : STRIP_UNARY (operands[3])))) &&
18739 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18740 : (TARGET_AVX)))
18741 : return -1;
18742 : return 6302; /* *avx512vl_vpternlogv16hi_2 */
18743 :
18744 : case 5:
18745 : if (!
18746 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18747 : ((16 == 64 || TARGET_AVX512VL
18748 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18749 : && ix86_pre_reload_split ()
18750 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18751 : STRIP_UNARY (operands[4]))
18752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18753 : STRIP_UNARY (operands[4]))
18754 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18755 : STRIP_UNARY (operands[3]))
18756 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18757 : STRIP_UNARY (operands[3])))))
18758 : return -1;
18759 : return 6329; /* *avx512vl_vpternlogv8hi_2 */
18760 :
18761 : case 6:
18762 : if (!(
18763 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18764 : ((64 == 64 || TARGET_AVX512VL
18765 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18766 : && ix86_pre_reload_split ()
18767 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18768 : STRIP_UNARY (operands[4]))
18769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18770 : STRIP_UNARY (operands[4]))
18771 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18772 : STRIP_UNARY (operands[3]))
18773 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18774 : STRIP_UNARY (operands[3])))) &&
18775 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18776 : (TARGET_AVX512F)))
18777 : return -1;
18778 : return 6356; /* *avx512f_vpternlogv16si_2 */
18779 :
18780 : case 7:
18781 : if (!(
18782 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18783 : ((32 == 64 || TARGET_AVX512VL
18784 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18785 : && ix86_pre_reload_split ()
18786 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18787 : STRIP_UNARY (operands[4]))
18788 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18789 : STRIP_UNARY (operands[4]))
18790 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18791 : STRIP_UNARY (operands[3]))
18792 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18793 : STRIP_UNARY (operands[3])))) &&
18794 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18795 : (TARGET_AVX)))
18796 : return -1;
18797 : return 6383; /* *avx512vl_vpternlogv8si_2 */
18798 :
18799 : case 8:
18800 : if (!
18801 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18802 : ((16 == 64 || TARGET_AVX512VL
18803 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18804 : && ix86_pre_reload_split ()
18805 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18806 : STRIP_UNARY (operands[4]))
18807 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18808 : STRIP_UNARY (operands[4]))
18809 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18810 : STRIP_UNARY (operands[3]))
18811 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18812 : STRIP_UNARY (operands[3])))))
18813 : return -1;
18814 : return 6410; /* *avx512vl_vpternlogv4si_2 */
18815 :
18816 : case 9:
18817 : if (!(
18818 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18819 : ((64 == 64 || TARGET_AVX512VL
18820 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18821 : && ix86_pre_reload_split ()
18822 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18823 : STRIP_UNARY (operands[4]))
18824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18825 : STRIP_UNARY (operands[4]))
18826 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18827 : STRIP_UNARY (operands[3]))
18828 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18829 : STRIP_UNARY (operands[3])))) &&
18830 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18831 : (TARGET_AVX512F)))
18832 : return -1;
18833 : return 6437; /* *avx512f_vpternlogv8di_2 */
18834 :
18835 : case 10:
18836 : if (!(
18837 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18838 : ((32 == 64 || TARGET_AVX512VL
18839 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18840 : && ix86_pre_reload_split ()
18841 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18842 : STRIP_UNARY (operands[4]))
18843 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18844 : STRIP_UNARY (operands[4]))
18845 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18846 : STRIP_UNARY (operands[3]))
18847 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18848 : STRIP_UNARY (operands[3])))) &&
18849 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18850 : (TARGET_AVX)))
18851 : return -1;
18852 : return 6464; /* *avx512vl_vpternlogv4di_2 */
18853 :
18854 : case 11:
18855 : if (!
18856 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18857 : ((16 == 64 || TARGET_AVX512VL
18858 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18859 : && ix86_pre_reload_split ()
18860 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18861 : STRIP_UNARY (operands[4]))
18862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18863 : STRIP_UNARY (operands[4]))
18864 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18865 : STRIP_UNARY (operands[3]))
18866 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18867 : STRIP_UNARY (operands[3])))))
18868 : return -1;
18869 : return 6491; /* *avx512vl_vpternlogv2di_2 */
18870 :
18871 : default:
18872 : return -1;
18873 : }
18874 :
18875 : case IOR:
18876 : switch (pattern539 (x2))
18877 : {
18878 : case 0:
18879 : if (!(
18880 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18881 : ((64 == 64 || TARGET_AVX512VL
18882 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18883 : && ix86_pre_reload_split ()
18884 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18885 : STRIP_UNARY (operands[4]))
18886 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18887 : STRIP_UNARY (operands[4]))
18888 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18889 : STRIP_UNARY (operands[3]))
18890 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18891 : STRIP_UNARY (operands[3])))) &&
18892 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18893 : (TARGET_AVX512F)))
18894 : return -1;
18895 : return 6197; /* *avx512bw_vpternlogv64qi_2 */
18896 :
18897 : case 1:
18898 : if (!(
18899 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18900 : ((32 == 64 || TARGET_AVX512VL
18901 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18902 : && ix86_pre_reload_split ()
18903 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18904 : STRIP_UNARY (operands[4]))
18905 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18906 : STRIP_UNARY (operands[4]))
18907 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18908 : STRIP_UNARY (operands[3]))
18909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18910 : STRIP_UNARY (operands[3])))) &&
18911 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18912 : (TARGET_AVX)))
18913 : return -1;
18914 : return 6224; /* *avx512vl_vpternlogv32qi_2 */
18915 :
18916 : case 2:
18917 : if (!
18918 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18919 : ((16 == 64 || TARGET_AVX512VL
18920 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18921 : && ix86_pre_reload_split ()
18922 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18923 : STRIP_UNARY (operands[4]))
18924 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18925 : STRIP_UNARY (operands[4]))
18926 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18927 : STRIP_UNARY (operands[3]))
18928 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18929 : STRIP_UNARY (operands[3])))))
18930 : return -1;
18931 : return 6251; /* *avx512vl_vpternlogv16qi_2 */
18932 :
18933 : case 3:
18934 : if (!(
18935 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18936 : ((64 == 64 || TARGET_AVX512VL
18937 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18938 : && ix86_pre_reload_split ()
18939 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18940 : STRIP_UNARY (operands[4]))
18941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18942 : STRIP_UNARY (operands[4]))
18943 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18944 : STRIP_UNARY (operands[3]))
18945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18946 : STRIP_UNARY (operands[3])))) &&
18947 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18948 : (TARGET_AVX512F)))
18949 : return -1;
18950 : return 6278; /* *avx512bw_vpternlogv32hi_2 */
18951 :
18952 : case 4:
18953 : if (!(
18954 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18955 : ((32 == 64 || TARGET_AVX512VL
18956 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18957 : && ix86_pre_reload_split ()
18958 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18959 : STRIP_UNARY (operands[4]))
18960 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18961 : STRIP_UNARY (operands[4]))
18962 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18963 : STRIP_UNARY (operands[3]))
18964 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18965 : STRIP_UNARY (operands[3])))) &&
18966 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18967 : (TARGET_AVX)))
18968 : return -1;
18969 : return 6305; /* *avx512vl_vpternlogv16hi_2 */
18970 :
18971 : case 5:
18972 : if (!
18973 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18974 : ((16 == 64 || TARGET_AVX512VL
18975 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18976 : && ix86_pre_reload_split ()
18977 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18978 : STRIP_UNARY (operands[4]))
18979 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18980 : STRIP_UNARY (operands[4]))
18981 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18982 : STRIP_UNARY (operands[3]))
18983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18984 : STRIP_UNARY (operands[3])))))
18985 : return -1;
18986 : return 6332; /* *avx512vl_vpternlogv8hi_2 */
18987 :
18988 : case 6:
18989 : if (!(
18990 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18991 : ((64 == 64 || TARGET_AVX512VL
18992 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18993 : && ix86_pre_reload_split ()
18994 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18995 : STRIP_UNARY (operands[4]))
18996 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18997 : STRIP_UNARY (operands[4]))
18998 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18999 : STRIP_UNARY (operands[3]))
19000 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19001 : STRIP_UNARY (operands[3])))) &&
19002 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : (TARGET_AVX512F)))
19004 : return -1;
19005 : return 6359; /* *avx512f_vpternlogv16si_2 */
19006 :
19007 : case 7:
19008 : if (!(
19009 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19010 : ((32 == 64 || TARGET_AVX512VL
19011 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19012 : && ix86_pre_reload_split ()
19013 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19014 : STRIP_UNARY (operands[4]))
19015 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19016 : STRIP_UNARY (operands[4]))
19017 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19018 : STRIP_UNARY (operands[3]))
19019 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19020 : STRIP_UNARY (operands[3])))) &&
19021 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19022 : (TARGET_AVX)))
19023 : return -1;
19024 : return 6386; /* *avx512vl_vpternlogv8si_2 */
19025 :
19026 : case 8:
19027 : if (!
19028 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19029 : ((16 == 64 || TARGET_AVX512VL
19030 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19031 : && ix86_pre_reload_split ()
19032 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19033 : STRIP_UNARY (operands[4]))
19034 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19035 : STRIP_UNARY (operands[4]))
19036 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19037 : STRIP_UNARY (operands[3]))
19038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19039 : STRIP_UNARY (operands[3])))))
19040 : return -1;
19041 : return 6413; /* *avx512vl_vpternlogv4si_2 */
19042 :
19043 : case 9:
19044 : if (!(
19045 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19046 : ((64 == 64 || TARGET_AVX512VL
19047 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19048 : && ix86_pre_reload_split ()
19049 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19050 : STRIP_UNARY (operands[4]))
19051 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19052 : STRIP_UNARY (operands[4]))
19053 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19054 : STRIP_UNARY (operands[3]))
19055 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19056 : STRIP_UNARY (operands[3])))) &&
19057 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19058 : (TARGET_AVX512F)))
19059 : return -1;
19060 : return 6440; /* *avx512f_vpternlogv8di_2 */
19061 :
19062 : case 10:
19063 : if (!(
19064 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19065 : ((32 == 64 || TARGET_AVX512VL
19066 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19067 : && ix86_pre_reload_split ()
19068 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19069 : STRIP_UNARY (operands[4]))
19070 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19071 : STRIP_UNARY (operands[4]))
19072 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19073 : STRIP_UNARY (operands[3]))
19074 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19075 : STRIP_UNARY (operands[3])))) &&
19076 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19077 : (TARGET_AVX)))
19078 : return -1;
19079 : return 6467; /* *avx512vl_vpternlogv4di_2 */
19080 :
19081 : case 11:
19082 : if (!
19083 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19084 : ((16 == 64 || TARGET_AVX512VL
19085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19086 : && ix86_pre_reload_split ()
19087 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19088 : STRIP_UNARY (operands[4]))
19089 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19090 : STRIP_UNARY (operands[4]))
19091 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19092 : STRIP_UNARY (operands[3]))
19093 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19094 : STRIP_UNARY (operands[3])))))
19095 : return -1;
19096 : return 6494; /* *avx512vl_vpternlogv2di_2 */
19097 :
19098 : default:
19099 : return -1;
19100 : }
19101 :
19102 : case XOR:
19103 : switch (pattern539 (x2))
19104 : {
19105 : case 0:
19106 : if (!(
19107 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19108 : ((64 == 64 || TARGET_AVX512VL
19109 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19110 : && ix86_pre_reload_split ()
19111 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19112 : STRIP_UNARY (operands[4]))
19113 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19114 : STRIP_UNARY (operands[4]))
19115 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19116 : STRIP_UNARY (operands[3]))
19117 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19118 : STRIP_UNARY (operands[3])))) &&
19119 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19120 : (TARGET_AVX512F)))
19121 : return -1;
19122 : return 6200; /* *avx512bw_vpternlogv64qi_2 */
19123 :
19124 : case 1:
19125 : if (!(
19126 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19127 : ((32 == 64 || TARGET_AVX512VL
19128 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19129 : && ix86_pre_reload_split ()
19130 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19131 : STRIP_UNARY (operands[4]))
19132 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19133 : STRIP_UNARY (operands[4]))
19134 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19135 : STRIP_UNARY (operands[3]))
19136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19137 : STRIP_UNARY (operands[3])))) &&
19138 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19139 : (TARGET_AVX)))
19140 : return -1;
19141 : return 6227; /* *avx512vl_vpternlogv32qi_2 */
19142 :
19143 : case 2:
19144 : if (!
19145 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19146 : ((16 == 64 || TARGET_AVX512VL
19147 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19148 : && ix86_pre_reload_split ()
19149 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19150 : STRIP_UNARY (operands[4]))
19151 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19152 : STRIP_UNARY (operands[4]))
19153 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19154 : STRIP_UNARY (operands[3]))
19155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19156 : STRIP_UNARY (operands[3])))))
19157 : return -1;
19158 : return 6254; /* *avx512vl_vpternlogv16qi_2 */
19159 :
19160 : case 3:
19161 : if (!(
19162 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19163 : ((64 == 64 || TARGET_AVX512VL
19164 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19165 : && ix86_pre_reload_split ()
19166 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19167 : STRIP_UNARY (operands[4]))
19168 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19169 : STRIP_UNARY (operands[4]))
19170 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19171 : STRIP_UNARY (operands[3]))
19172 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19173 : STRIP_UNARY (operands[3])))) &&
19174 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19175 : (TARGET_AVX512F)))
19176 : return -1;
19177 : return 6281; /* *avx512bw_vpternlogv32hi_2 */
19178 :
19179 : case 4:
19180 : if (!(
19181 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19182 : ((32 == 64 || TARGET_AVX512VL
19183 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19184 : && ix86_pre_reload_split ()
19185 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19186 : STRIP_UNARY (operands[4]))
19187 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19188 : STRIP_UNARY (operands[4]))
19189 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19190 : STRIP_UNARY (operands[3]))
19191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19192 : STRIP_UNARY (operands[3])))) &&
19193 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19194 : (TARGET_AVX)))
19195 : return -1;
19196 : return 6308; /* *avx512vl_vpternlogv16hi_2 */
19197 :
19198 : case 5:
19199 : if (!
19200 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19201 : ((16 == 64 || TARGET_AVX512VL
19202 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19203 : && ix86_pre_reload_split ()
19204 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19205 : STRIP_UNARY (operands[4]))
19206 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19207 : STRIP_UNARY (operands[4]))
19208 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19209 : STRIP_UNARY (operands[3]))
19210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19211 : STRIP_UNARY (operands[3])))))
19212 : return -1;
19213 : return 6335; /* *avx512vl_vpternlogv8hi_2 */
19214 :
19215 : case 6:
19216 : if (!(
19217 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19218 : ((64 == 64 || TARGET_AVX512VL
19219 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19220 : && ix86_pre_reload_split ()
19221 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19222 : STRIP_UNARY (operands[4]))
19223 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19224 : STRIP_UNARY (operands[4]))
19225 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19226 : STRIP_UNARY (operands[3]))
19227 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19228 : STRIP_UNARY (operands[3])))) &&
19229 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19230 : (TARGET_AVX512F)))
19231 : return -1;
19232 : return 6362; /* *avx512f_vpternlogv16si_2 */
19233 :
19234 : case 7:
19235 : if (!(
19236 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19237 : ((32 == 64 || TARGET_AVX512VL
19238 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19239 : && ix86_pre_reload_split ()
19240 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19241 : STRIP_UNARY (operands[4]))
19242 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19243 : STRIP_UNARY (operands[4]))
19244 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19245 : STRIP_UNARY (operands[3]))
19246 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19247 : STRIP_UNARY (operands[3])))) &&
19248 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19249 : (TARGET_AVX)))
19250 : return -1;
19251 : return 6389; /* *avx512vl_vpternlogv8si_2 */
19252 :
19253 : case 8:
19254 : if (!
19255 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19256 : ((16 == 64 || TARGET_AVX512VL
19257 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19258 : && ix86_pre_reload_split ()
19259 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19260 : STRIP_UNARY (operands[4]))
19261 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19262 : STRIP_UNARY (operands[4]))
19263 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19264 : STRIP_UNARY (operands[3]))
19265 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19266 : STRIP_UNARY (operands[3])))))
19267 : return -1;
19268 : return 6416; /* *avx512vl_vpternlogv4si_2 */
19269 :
19270 : case 9:
19271 : if (!(
19272 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19273 : ((64 == 64 || TARGET_AVX512VL
19274 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19275 : && ix86_pre_reload_split ()
19276 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19277 : STRIP_UNARY (operands[4]))
19278 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19279 : STRIP_UNARY (operands[4]))
19280 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19281 : STRIP_UNARY (operands[3]))
19282 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19283 : STRIP_UNARY (operands[3])))) &&
19284 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19285 : (TARGET_AVX512F)))
19286 : return -1;
19287 : return 6443; /* *avx512f_vpternlogv8di_2 */
19288 :
19289 : case 10:
19290 : if (!(
19291 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19292 : ((32 == 64 || TARGET_AVX512VL
19293 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19294 : && ix86_pre_reload_split ()
19295 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19296 : STRIP_UNARY (operands[4]))
19297 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19298 : STRIP_UNARY (operands[4]))
19299 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19300 : STRIP_UNARY (operands[3]))
19301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19302 : STRIP_UNARY (operands[3])))) &&
19303 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19304 : (TARGET_AVX)))
19305 : return -1;
19306 : return 6470; /* *avx512vl_vpternlogv4di_2 */
19307 :
19308 : case 11:
19309 : if (!
19310 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19311 : ((16 == 64 || TARGET_AVX512VL
19312 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19313 : && ix86_pre_reload_split ()
19314 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19315 : STRIP_UNARY (operands[4]))
19316 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19317 : STRIP_UNARY (operands[4]))
19318 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19319 : STRIP_UNARY (operands[3]))
19320 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19321 : STRIP_UNARY (operands[3])))))
19322 : return -1;
19323 : return 6497; /* *avx512vl_vpternlogv2di_2 */
19324 :
19325 : default:
19326 : return -1;
19327 : }
19328 :
19329 : default:
19330 : return -1;
19331 : }
19332 :
19333 : case IOR:
19334 : return recog_312 (x1, insn, pnum_clobbers);
19335 :
19336 : case XOR:
19337 : return recog_311 (x1, insn, pnum_clobbers);
19338 :
19339 : default:
19340 : return -1;
19341 : }
19342 : }
19343 :
19344 : int
19345 : recog_326 (rtx x1 ATTRIBUTE_UNUSED,
19346 : rtx_insn *insn ATTRIBUTE_UNUSED,
19347 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19348 : {
19349 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19350 : rtx x2, x3, x4, x5, x6, x7, x8;
19351 : int res ATTRIBUTE_UNUSED;
19352 : x2 = XEXP (x1, 0);
19353 : operands[0] = x2;
19354 : x3 = XEXP (x1, 1);
19355 : x4 = XEXP (x3, 0);
19356 : switch (GET_CODE (x4))
19357 : {
19358 : case UNSPEC:
19359 : return recog_188 (x1, insn, pnum_clobbers);
19360 :
19361 : case VEC_MERGE:
19362 : return recog_185 (x1, insn, pnum_clobbers);
19363 :
19364 : case PLUS:
19365 : return recog_208 (x1, insn, pnum_clobbers);
19366 :
19367 : case MINUS:
19368 : return recog_198 (x1, insn, pnum_clobbers);
19369 :
19370 : case VEC_DUPLICATE:
19371 : return recog_183 (x1, insn, pnum_clobbers);
19372 :
19373 : case MULT:
19374 : return recog_190 (x1, insn, pnum_clobbers);
19375 :
19376 : case DIV:
19377 : return recog_207 (x1, insn, pnum_clobbers);
19378 :
19379 : case SQRT:
19380 : return recog_202 (x1, insn, pnum_clobbers);
19381 :
19382 : case SMAX:
19383 : return recog_200 (x1, insn, pnum_clobbers);
19384 :
19385 : case SMIN:
19386 : return recog_201 (x1, insn, pnum_clobbers);
19387 :
19388 : case CONST_INT:
19389 : case CONST_DOUBLE:
19390 : case CONST_VECTOR:
19391 : case REG:
19392 : case SUBREG:
19393 : case MEM:
19394 : return recog_182 (x1, insn, pnum_clobbers);
19395 :
19396 : case NE:
19397 : case EQ:
19398 : case GE:
19399 : case GT:
19400 : case LE:
19401 : case LT:
19402 : case LTGT:
19403 : case UNORDERED:
19404 : case ORDERED:
19405 : case UNEQ:
19406 : case UNGE:
19407 : case UNGT:
19408 : case UNLE:
19409 : case UNLT:
19410 : operands[3] = x4;
19411 : x5 = XEXP (x3, 2);
19412 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
19413 : return -1;
19414 : x6 = XEXP (x4, 0);
19415 : operands[1] = x6;
19416 : x7 = XEXP (x4, 1);
19417 : operands[2] = x7;
19418 : x8 = XEXP (x3, 1);
19419 : if (!rtx_equal_p (x8, operands[1]))
19420 : return -1;
19421 : switch (GET_MODE (operands[0]))
19422 : {
19423 : case E_V4SFmode:
19424 : if (pattern1021 (x3,
19425 : E_V4SFmode) != 0
19426 : || !
19427 : #line 4651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19428 : (TARGET_SSE))
19429 : return -1;
19430 : return 3330; /* sse_vmmaskcmpv4sf3 */
19431 :
19432 : case E_V2DFmode:
19433 : if (pattern1021 (x3,
19434 : E_V2DFmode) != 0
19435 : || !(
19436 : #line 4651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19437 : (TARGET_SSE) &&
19438 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19439 : (TARGET_SSE2)))
19440 : return -1;
19441 : return 3331; /* sse2_vmmaskcmpv2df3 */
19442 :
19443 : default:
19444 : return -1;
19445 : }
19446 :
19447 : case AND:
19448 : return recog_195 (x1, insn, pnum_clobbers);
19449 :
19450 : case IOR:
19451 : return recog_209 (x1, insn, pnum_clobbers);
19452 :
19453 : case XOR:
19454 : return recog_199 (x1, insn, pnum_clobbers);
19455 :
19456 : case FMA:
19457 : return recog_186 (x1, insn, pnum_clobbers);
19458 :
19459 : case FLOAT:
19460 : return recog_204 (x1, insn, pnum_clobbers);
19461 :
19462 : case UNSIGNED_FLOAT:
19463 : return recog_203 (x1, insn, pnum_clobbers);
19464 :
19465 : case FIX:
19466 : return recog_206 (x1, insn, pnum_clobbers);
19467 :
19468 : case UNSIGNED_FIX:
19469 : return recog_205 (x1, insn, pnum_clobbers);
19470 :
19471 : case FLOAT_EXTEND:
19472 : return recog_193 (x1, insn, pnum_clobbers);
19473 :
19474 : case FLOAT_TRUNCATE:
19475 : x6 = XEXP (x4, 0);
19476 : operands[1] = x6;
19477 : x8 = XEXP (x3, 1);
19478 : operands[2] = x8;
19479 : x5 = XEXP (x3, 2);
19480 : operands[3] = x5;
19481 : switch (GET_MODE (operands[0]))
19482 : {
19483 : case E_V8HFmode:
19484 : if (pattern142 (x3,
19485 : E_V8HFmode,
19486 : E_QImode) != 0)
19487 : return -1;
19488 : switch (GET_MODE (operands[1]))
19489 : {
19490 : case E_V8DFmode:
19491 : if (!vector_operand (operands[1], E_V8DFmode)
19492 : || !(
19493 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19494 : (TARGET_AVX512F) &&
19495 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19496 : (TARGET_AVX512FP16)))
19497 : return -1;
19498 : return 4788; /* avx512fp16_vcvtpd2ph_v8df_mask */
19499 :
19500 : case E_V8SFmode:
19501 : if (!vector_operand (operands[1], E_V8SFmode)
19502 : || !(
19503 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19504 : (TARGET_AVX512F) && (
19505 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19506 : (TARGET_AVX512FP16) &&
19507 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19508 : (TARGET_AVX512VL))))
19509 : return -1;
19510 : return 4796; /* avx512fp16_vcvtps2ph_v8sf_mask */
19511 :
19512 : default:
19513 : return -1;
19514 : }
19515 :
19516 : case E_V16HFmode:
19517 : if (pattern141 (x3,
19518 : E_V16HFmode,
19519 : E_HImode,
19520 : E_V16SFmode) != 0
19521 : || !(
19522 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19523 : (TARGET_AVX512F) &&
19524 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19525 : (TARGET_AVX512FP16)))
19526 : return -1;
19527 : return 4792; /* avx512fp16_vcvtps2ph_v16sf_mask */
19528 :
19529 : case E_V8SFmode:
19530 : if (pattern141 (x3,
19531 : E_V8SFmode,
19532 : E_QImode,
19533 : E_V8DFmode) != 0
19534 : || !
19535 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19536 : (TARGET_AVX512F))
19537 : return -1;
19538 : return 5199; /* avx512f_cvtpd2ps512_mask */
19539 :
19540 : case E_V4SFmode:
19541 : if (pattern155 (x3,
19542 : E_V4SFmode,
19543 : E_V4DFmode,
19544 : E_QImode) != 0
19545 : || !(
19546 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19547 : (TARGET_AVX512F) &&
19548 : #line 10485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19549 : (TARGET_AVX && TARGET_AVX512VL)))
19550 : return -1;
19551 : return 5202; /* avx_cvtpd2ps256_mask */
19552 :
19553 : case E_V16BFmode:
19554 : if (pattern155 (x3,
19555 : E_V16BFmode,
19556 : E_V16SFmode,
19557 : E_HImode) != 0
19558 : || !(
19559 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19560 : (TARGET_AVX512F) &&
19561 : #line 32246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19562 : (TARGET_AVX512BF16)))
19563 : return -1;
19564 : return 10452; /* avx512f_cvtneps2bf16_v16sf_mask */
19565 :
19566 : case E_V8BFmode:
19567 : if (pattern155 (x3,
19568 : E_V8BFmode,
19569 : E_V8SFmode,
19570 : E_QImode) != 0
19571 : || !(
19572 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19573 : (TARGET_AVX512F) && (
19574 : #line 32246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19575 : (TARGET_AVX512BF16) &&
19576 : #line 32174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19577 : (TARGET_AVX512VL))))
19578 : return -1;
19579 : return 10454; /* avx512f_cvtneps2bf16_v8sf_mask */
19580 :
19581 : default:
19582 : return -1;
19583 : }
19584 :
19585 : case VEC_SELECT:
19586 : return recog_184 (x1, insn, pnum_clobbers);
19587 :
19588 : case SS_TRUNCATE:
19589 : switch (pattern146 (x3))
19590 : {
19591 : case 0:
19592 : if (!
19593 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19594 : (TARGET_AVX512F))
19595 : return -1;
19596 : return 7283; /* avx512f_ss_truncatev16siv16qi2_mask */
19597 :
19598 : case 1:
19599 : if (!(
19600 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19601 : (TARGET_AVX512VL) &&
19602 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19603 : (TARGET_AVX512BW)))
19604 : return -1;
19605 : return 7319; /* avx512vl_ss_truncatev16hiv16qi2_mask */
19606 :
19607 : case 2:
19608 : if (!
19609 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19610 : (TARGET_AVX512F))
19611 : return -1;
19612 : return 7286; /* avx512f_ss_truncatev16siv16hi2_mask */
19613 :
19614 : case 3:
19615 : if (!
19616 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19617 : (TARGET_AVX512F))
19618 : return -1;
19619 : return 7289; /* avx512f_ss_truncatev8div8si2_mask */
19620 :
19621 : case 4:
19622 : if (!
19623 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19624 : (TARGET_AVX512F))
19625 : return -1;
19626 : return 7292; /* avx512f_ss_truncatev8div8hi2_mask */
19627 :
19628 : case 5:
19629 : if (!
19630 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19631 : (TARGET_AVX512VL))
19632 : return -1;
19633 : return 7316; /* avx512vl_ss_truncatev8siv8hi2_mask */
19634 :
19635 : case 6:
19636 : if (!
19637 : #line 15609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19638 : (TARGET_AVX512BW))
19639 : return -1;
19640 : return 7299; /* avx512bw_ss_truncatev32hiv32qi2_mask */
19641 :
19642 : case 7:
19643 : if (!
19644 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19645 : (TARGET_AVX512VL))
19646 : return -1;
19647 : return 7313; /* avx512vl_ss_truncatev4div4si2_mask */
19648 :
19649 : default:
19650 : return -1;
19651 : }
19652 :
19653 : case TRUNCATE:
19654 : return recog_194 (x1, insn, pnum_clobbers);
19655 :
19656 : case US_TRUNCATE:
19657 : switch (pattern146 (x3))
19658 : {
19659 : case 0:
19660 : if (!
19661 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19662 : (TARGET_AVX512F))
19663 : return -1;
19664 : return 7285; /* avx512f_us_truncatev16siv16qi2_mask */
19665 :
19666 : case 1:
19667 : if (!(
19668 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19669 : (TARGET_AVX512VL) &&
19670 : #line 15626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19671 : (TARGET_AVX512BW)))
19672 : return -1;
19673 : return 7321; /* avx512vl_us_truncatev16hiv16qi2_mask */
19674 :
19675 : case 2:
19676 : if (!
19677 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19678 : (TARGET_AVX512F))
19679 : return -1;
19680 : return 7288; /* avx512f_us_truncatev16siv16hi2_mask */
19681 :
19682 : case 3:
19683 : if (!
19684 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19685 : (TARGET_AVX512F))
19686 : return -1;
19687 : return 7291; /* avx512f_us_truncatev8div8si2_mask */
19688 :
19689 : case 4:
19690 : if (!
19691 : #line 15537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19692 : (TARGET_AVX512F))
19693 : return -1;
19694 : return 7294; /* avx512f_us_truncatev8div8hi2_mask */
19695 :
19696 : case 5:
19697 : if (!
19698 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19699 : (TARGET_AVX512VL))
19700 : return -1;
19701 : return 7318; /* avx512vl_us_truncatev8siv8hi2_mask */
19702 :
19703 : case 6:
19704 : if (!
19705 : #line 15609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19706 : (TARGET_AVX512BW))
19707 : return -1;
19708 : return 7301; /* avx512bw_us_truncatev32hiv32qi2_mask */
19709 :
19710 : case 7:
19711 : if (!
19712 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19713 : (TARGET_AVX512VL))
19714 : return -1;
19715 : return 7315; /* avx512vl_us_truncatev4div4si2_mask */
19716 :
19717 : default:
19718 : return -1;
19719 : }
19720 :
19721 : case SS_PLUS:
19722 : switch (pattern147 (x3))
19723 : {
19724 : case 0:
19725 : if (!(
19726 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19727 : (TARGET_AVX512F) && (
19728 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19729 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19730 : && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) &&
19731 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19732 : (TARGET_AVX512BW))))
19733 : return -1;
19734 : return 7578; /* *avx512bw_ssaddv64qi3_mask */
19735 :
19736 : case 1:
19737 : if (!(
19738 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19739 : (TARGET_AVX512F) && (
19740 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19741 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19742 : && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) &&
19743 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19744 : (TARGET_AVX2))))
19745 : return -1;
19746 : return 7586; /* *avx2_ssaddv32qi3_mask */
19747 :
19748 : case 2:
19749 : if (!(
19750 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19751 : (TARGET_AVX512F) &&
19752 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19753 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19754 : && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands))))
19755 : return -1;
19756 : return 7594; /* *sse2_ssaddv16qi3_mask */
19757 :
19758 : case 3:
19759 : if (!(
19760 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19761 : (TARGET_AVX512F) && (
19762 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19763 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19764 : && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) &&
19765 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19766 : (TARGET_AVX512BW))))
19767 : return -1;
19768 : return 7602; /* *avx512bw_ssaddv32hi3_mask */
19769 :
19770 : case 4:
19771 : if (!(
19772 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19773 : (TARGET_AVX512F) && (
19774 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19775 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19776 : && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) &&
19777 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19778 : (TARGET_AVX2))))
19779 : return -1;
19780 : return 7610; /* *avx2_ssaddv16hi3_mask */
19781 :
19782 : case 5:
19783 : if (!(
19784 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19785 : (TARGET_AVX512F) &&
19786 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19787 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19788 : && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands))))
19789 : return -1;
19790 : return 7618; /* *sse2_ssaddv8hi3_mask */
19791 :
19792 : default:
19793 : return -1;
19794 : }
19795 :
19796 : case US_PLUS:
19797 : switch (pattern147 (x3))
19798 : {
19799 : case 0:
19800 : if (!(
19801 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19802 : (TARGET_AVX512F) && (
19803 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19804 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19805 : && ix86_binary_operator_ok (US_PLUS, V64QImode, operands)) &&
19806 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19807 : (TARGET_AVX512BW))))
19808 : return -1;
19809 : return 7580; /* *avx512bw_usaddv64qi3_mask */
19810 :
19811 : case 1:
19812 : if (!(
19813 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19814 : (TARGET_AVX512F) && (
19815 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19816 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19817 : && ix86_binary_operator_ok (US_PLUS, V32QImode, operands)) &&
19818 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19819 : (TARGET_AVX2))))
19820 : return -1;
19821 : return 7588; /* *avx2_usaddv32qi3_mask */
19822 :
19823 : case 2:
19824 : if (!(
19825 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19826 : (TARGET_AVX512F) &&
19827 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19828 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19829 : && ix86_binary_operator_ok (US_PLUS, V16QImode, operands))))
19830 : return -1;
19831 : return 7596; /* *sse2_usaddv16qi3_mask */
19832 :
19833 : case 3:
19834 : if (!(
19835 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19836 : (TARGET_AVX512F) && (
19837 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19838 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19839 : && ix86_binary_operator_ok (US_PLUS, V32HImode, operands)) &&
19840 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19841 : (TARGET_AVX512BW))))
19842 : return -1;
19843 : return 7604; /* *avx512bw_usaddv32hi3_mask */
19844 :
19845 : case 4:
19846 : if (!(
19847 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19848 : (TARGET_AVX512F) && (
19849 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19850 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19851 : && ix86_binary_operator_ok (US_PLUS, V16HImode, operands)) &&
19852 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19853 : (TARGET_AVX2))))
19854 : return -1;
19855 : return 7612; /* *avx2_usaddv16hi3_mask */
19856 :
19857 : case 5:
19858 : if (!(
19859 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19860 : (TARGET_AVX512F) &&
19861 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19862 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19863 : && ix86_binary_operator_ok (US_PLUS, V8HImode, operands))))
19864 : return -1;
19865 : return 7620; /* *sse2_usaddv8hi3_mask */
19866 :
19867 : default:
19868 : return -1;
19869 : }
19870 :
19871 : case SS_MINUS:
19872 : switch (pattern147 (x3))
19873 : {
19874 : case 0:
19875 : if (!(
19876 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19877 : (TARGET_AVX512F) && (
19878 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19879 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19880 : && ix86_binary_operator_ok (SS_MINUS, V64QImode, operands)) &&
19881 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19882 : (TARGET_AVX512BW))))
19883 : return -1;
19884 : return 7582; /* *avx512bw_sssubv64qi3_mask */
19885 :
19886 : case 1:
19887 : if (!(
19888 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19889 : (TARGET_AVX512F) && (
19890 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19891 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19892 : && ix86_binary_operator_ok (SS_MINUS, V32QImode, operands)) &&
19893 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19894 : (TARGET_AVX2))))
19895 : return -1;
19896 : return 7590; /* *avx2_sssubv32qi3_mask */
19897 :
19898 : case 2:
19899 : if (!(
19900 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19901 : (TARGET_AVX512F) &&
19902 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19903 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19904 : && ix86_binary_operator_ok (SS_MINUS, V16QImode, operands))))
19905 : return -1;
19906 : return 7598; /* *sse2_sssubv16qi3_mask */
19907 :
19908 : case 3:
19909 : if (!(
19910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19911 : (TARGET_AVX512F) && (
19912 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19913 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19914 : && ix86_binary_operator_ok (SS_MINUS, V32HImode, operands)) &&
19915 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19916 : (TARGET_AVX512BW))))
19917 : return -1;
19918 : return 7606; /* *avx512bw_sssubv32hi3_mask */
19919 :
19920 : case 4:
19921 : if (!(
19922 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19923 : (TARGET_AVX512F) && (
19924 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19925 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19926 : && ix86_binary_operator_ok (SS_MINUS, V16HImode, operands)) &&
19927 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19928 : (TARGET_AVX2))))
19929 : return -1;
19930 : return 7614; /* *avx2_sssubv16hi3_mask */
19931 :
19932 : case 5:
19933 : if (!(
19934 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19935 : (TARGET_AVX512F) &&
19936 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19937 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19938 : && ix86_binary_operator_ok (SS_MINUS, V8HImode, operands))))
19939 : return -1;
19940 : return 7622; /* *sse2_sssubv8hi3_mask */
19941 :
19942 : default:
19943 : return -1;
19944 : }
19945 :
19946 : case US_MINUS:
19947 : switch (pattern147 (x3))
19948 : {
19949 : case 0:
19950 : if (!(
19951 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19952 : (TARGET_AVX512F) && (
19953 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19954 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19955 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)) &&
19956 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19957 : (TARGET_AVX512BW))))
19958 : return -1;
19959 : return 7584; /* *avx512bw_ussubv64qi3_mask */
19960 :
19961 : case 1:
19962 : if (!(
19963 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19964 : (TARGET_AVX512F) && (
19965 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19966 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19967 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)) &&
19968 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19969 : (TARGET_AVX2))))
19970 : return -1;
19971 : return 7592; /* *avx2_ussubv32qi3_mask */
19972 :
19973 : case 2:
19974 : if (!(
19975 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19976 : (TARGET_AVX512F) &&
19977 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19978 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19979 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands))))
19980 : return -1;
19981 : return 7600; /* *sse2_ussubv16qi3_mask */
19982 :
19983 : case 3:
19984 : if (!(
19985 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19986 : (TARGET_AVX512F) && (
19987 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19988 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
19989 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)) &&
19990 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19991 : (TARGET_AVX512BW))))
19992 : return -1;
19993 : return 7608; /* *avx512bw_ussubv32hi3_mask */
19994 :
19995 : case 4:
19996 : if (!(
19997 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
19998 : (TARGET_AVX512F) && (
19999 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20000 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
20001 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)) &&
20002 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20003 : (TARGET_AVX2))))
20004 : return -1;
20005 : return 7616; /* *avx2_ussubv16hi3_mask */
20006 :
20007 : case 5:
20008 : if (!(
20009 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20010 : (TARGET_AVX512F) &&
20011 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20012 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW
20013 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands))))
20014 : return -1;
20015 : return 7624; /* *sse2_ussubv8hi3_mask */
20016 :
20017 : default:
20018 : return -1;
20019 : }
20020 :
20021 : case ASHIFTRT:
20022 : return recog_189 (x1, insn, pnum_clobbers);
20023 :
20024 : case ASHIFT:
20025 : return recog_192 (x1, insn, pnum_clobbers);
20026 :
20027 : case LSHIFTRT:
20028 : return recog_191 (x1, insn, pnum_clobbers);
20029 :
20030 : case ROTATE:
20031 : switch (pattern150 (x3))
20032 : {
20033 : case 0:
20034 : if (!
20035 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20036 : (TARGET_AVX512F))
20037 : return -1;
20038 : return 7778; /* avx512f_rolvv16si_mask */
20039 :
20040 : case 1:
20041 : if (!(
20042 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20043 : (TARGET_AVX512F) && (
20044 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20045 : (TARGET_AVX512F) &&
20046 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20047 : (TARGET_AVX512VL))))
20048 : return -1;
20049 : return 7782; /* avx512vl_rolvv8si_mask */
20050 :
20051 : case 2:
20052 : if (!(
20053 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20054 : (TARGET_AVX512F) && (
20055 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20056 : (TARGET_AVX512F) &&
20057 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20058 : (TARGET_AVX512VL))))
20059 : return -1;
20060 : return 7786; /* avx512vl_rolvv4si_mask */
20061 :
20062 : case 3:
20063 : if (!
20064 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20065 : (TARGET_AVX512F))
20066 : return -1;
20067 : return 7790; /* avx512f_rolvv8di_mask */
20068 :
20069 : case 4:
20070 : if (!(
20071 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20072 : (TARGET_AVX512F) && (
20073 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20074 : (TARGET_AVX512F) &&
20075 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20076 : (TARGET_AVX512VL))))
20077 : return -1;
20078 : return 7794; /* avx512vl_rolvv4di_mask */
20079 :
20080 : case 5:
20081 : if (!(
20082 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20083 : (TARGET_AVX512F) && (
20084 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20085 : (TARGET_AVX512F) &&
20086 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20087 : (TARGET_AVX512VL))))
20088 : return -1;
20089 : return 7798; /* avx512vl_rolvv2di_mask */
20090 :
20091 : case 6:
20092 : if (!
20093 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20094 : (TARGET_AVX512F))
20095 : return -1;
20096 : return 7802; /* avx512f_rolv16si_mask */
20097 :
20098 : case 7:
20099 : if (!(
20100 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20101 : (TARGET_AVX512F) && (
20102 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20103 : (TARGET_AVX512F) &&
20104 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20105 : (TARGET_AVX512VL))))
20106 : return -1;
20107 : return 7806; /* avx512vl_rolv8si_mask */
20108 :
20109 : case 8:
20110 : if (!(
20111 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20112 : (TARGET_AVX512F) && (
20113 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20114 : (TARGET_AVX512F) &&
20115 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20116 : (TARGET_AVX512VL))))
20117 : return -1;
20118 : return 7810; /* avx512vl_rolv4si_mask */
20119 :
20120 : case 9:
20121 : if (!
20122 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20123 : (TARGET_AVX512F))
20124 : return -1;
20125 : return 7814; /* avx512f_rolv8di_mask */
20126 :
20127 : case 10:
20128 : if (!(
20129 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20130 : (TARGET_AVX512F) && (
20131 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20132 : (TARGET_AVX512F) &&
20133 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20134 : (TARGET_AVX512VL))))
20135 : return -1;
20136 : return 7818; /* avx512vl_rolv4di_mask */
20137 :
20138 : case 11:
20139 : if (!(
20140 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20141 : (TARGET_AVX512F) && (
20142 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20143 : (TARGET_AVX512F) &&
20144 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20145 : (TARGET_AVX512VL))))
20146 : return -1;
20147 : return 7822; /* avx512vl_rolv2di_mask */
20148 :
20149 : default:
20150 : return -1;
20151 : }
20152 :
20153 : case ROTATERT:
20154 : switch (pattern150 (x3))
20155 : {
20156 : case 0:
20157 : if (!
20158 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20159 : (TARGET_AVX512F))
20160 : return -1;
20161 : return 7780; /* avx512f_rorvv16si_mask */
20162 :
20163 : case 1:
20164 : if (!(
20165 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20166 : (TARGET_AVX512F) && (
20167 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20168 : (TARGET_AVX512F) &&
20169 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20170 : (TARGET_AVX512VL))))
20171 : return -1;
20172 : return 7784; /* avx512vl_rorvv8si_mask */
20173 :
20174 : case 2:
20175 : if (!(
20176 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20177 : (TARGET_AVX512F) && (
20178 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20179 : (TARGET_AVX512F) &&
20180 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20181 : (TARGET_AVX512VL))))
20182 : return -1;
20183 : return 7788; /* avx512vl_rorvv4si_mask */
20184 :
20185 : case 3:
20186 : if (!
20187 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20188 : (TARGET_AVX512F))
20189 : return -1;
20190 : return 7792; /* avx512f_rorvv8di_mask */
20191 :
20192 : case 4:
20193 : if (!(
20194 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20195 : (TARGET_AVX512F) && (
20196 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20197 : (TARGET_AVX512F) &&
20198 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20199 : (TARGET_AVX512VL))))
20200 : return -1;
20201 : return 7796; /* avx512vl_rorvv4di_mask */
20202 :
20203 : case 5:
20204 : if (!(
20205 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20206 : (TARGET_AVX512F) && (
20207 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20208 : (TARGET_AVX512F) &&
20209 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20210 : (TARGET_AVX512VL))))
20211 : return -1;
20212 : return 7800; /* avx512vl_rorvv2di_mask */
20213 :
20214 : case 6:
20215 : if (!
20216 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20217 : (TARGET_AVX512F))
20218 : return -1;
20219 : return 7804; /* avx512f_rorv16si_mask */
20220 :
20221 : case 7:
20222 : if (!(
20223 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20224 : (TARGET_AVX512F) && (
20225 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20226 : (TARGET_AVX512F) &&
20227 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20228 : (TARGET_AVX512VL))))
20229 : return -1;
20230 : return 7808; /* avx512vl_rorv8si_mask */
20231 :
20232 : case 8:
20233 : if (!(
20234 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20235 : (TARGET_AVX512F) && (
20236 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20237 : (TARGET_AVX512F) &&
20238 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20239 : (TARGET_AVX512VL))))
20240 : return -1;
20241 : return 7812; /* avx512vl_rorv4si_mask */
20242 :
20243 : case 9:
20244 : if (!
20245 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20246 : (TARGET_AVX512F))
20247 : return -1;
20248 : return 7816; /* avx512f_rorv8di_mask */
20249 :
20250 : case 10:
20251 : if (!(
20252 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20253 : (TARGET_AVX512F) && (
20254 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20255 : (TARGET_AVX512F) &&
20256 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20257 : (TARGET_AVX512VL))))
20258 : return -1;
20259 : return 7820; /* avx512vl_rorv4di_mask */
20260 :
20261 : case 11:
20262 : if (!(
20263 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20264 : (TARGET_AVX512F) && (
20265 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20266 : (TARGET_AVX512F) &&
20267 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20268 : (TARGET_AVX512VL))))
20269 : return -1;
20270 : return 7824; /* avx512vl_rorv2di_mask */
20271 :
20272 : default:
20273 : return -1;
20274 : }
20275 :
20276 : case UMAX:
20277 : switch (pattern151 (x3))
20278 : {
20279 : case 0:
20280 : if (!(
20281 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20282 : (TARGET_AVX512F) &&
20283 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20284 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20285 : return -1;
20286 : return 7842; /* *avx512f_umaxv16si3_mask */
20287 :
20288 : case 1:
20289 : if (!(
20290 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20291 : (TARGET_AVX512F) && (
20292 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20293 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20294 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20295 : (TARGET_AVX512VL))))
20296 : return -1;
20297 : return 7850; /* *avx512f_umaxv8si3_mask */
20298 :
20299 : case 2:
20300 : if (nonimmediate_operand (operands[1], E_V4SImode)
20301 : && nonimmediate_operand (operands[2], E_V4SImode)
20302 : && (
20303 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20304 : (TARGET_AVX512F) && (
20305 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20306 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20307 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20308 : (TARGET_AVX512VL))))
20309 : return 7858; /* *avx512f_umaxv4si3_mask */
20310 : if (!vector_operand (operands[1], E_V4SImode)
20311 : || !vector_operand (operands[2], E_V4SImode)
20312 : || !(
20313 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20314 : (TARGET_AVX512F) &&
20315 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20316 : (TARGET_SSE4_1
20317 : && (16 == 64 || TARGET_AVX512VL)
20318 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20319 : return -1;
20320 : return 7948; /* *sse4_1_umaxv4si3_mask */
20321 :
20322 : case 3:
20323 : if (!(
20324 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20325 : (TARGET_AVX512F) &&
20326 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20327 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20328 : return -1;
20329 : return 7866; /* *avx512f_umaxv8di3_mask */
20330 :
20331 : case 4:
20332 : if (!(
20333 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20334 : (TARGET_AVX512F) && (
20335 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20336 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20337 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20338 : (TARGET_AVX512VL))))
20339 : return -1;
20340 : return 7874; /* *avx512f_umaxv4di3_mask */
20341 :
20342 : case 5:
20343 : if (!(
20344 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20345 : (TARGET_AVX512F) && (
20346 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20347 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20348 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20349 : (TARGET_AVX512VL))))
20350 : return -1;
20351 : return 7882; /* *avx512f_umaxv2di3_mask */
20352 :
20353 : case 6:
20354 : if (!(
20355 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20356 : (TARGET_AVX512F) &&
20357 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20358 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20359 : return -1;
20360 : return 7890; /* *avx512bw_umaxv64qi3_mask */
20361 :
20362 : case 7:
20363 : if (!(
20364 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20365 : (TARGET_AVX512F) && (
20366 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20367 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20368 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20369 : (TARGET_AVX512VL))))
20370 : return -1;
20371 : return 7898; /* *avx512bw_umaxv16qi3_mask */
20372 :
20373 : case 8:
20374 : if (!(
20375 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20376 : (TARGET_AVX512F) && (
20377 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20378 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20379 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20380 : (TARGET_AVX512VL))))
20381 : return -1;
20382 : return 7906; /* *avx512bw_umaxv32qi3_mask */
20383 :
20384 : case 9:
20385 : if (!(
20386 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20387 : (TARGET_AVX512F) &&
20388 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20389 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20390 : return -1;
20391 : return 7914; /* *avx512bw_umaxv32hi3_mask */
20392 :
20393 : case 10:
20394 : if (!(
20395 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20396 : (TARGET_AVX512F) && (
20397 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20398 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20399 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20400 : (TARGET_AVX512VL))))
20401 : return -1;
20402 : return 7922; /* *avx512bw_umaxv16hi3_mask */
20403 :
20404 : case 11:
20405 : if (nonimmediate_operand (operands[1], E_V8HImode)
20406 : && nonimmediate_operand (operands[2], E_V8HImode)
20407 : && (
20408 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20409 : (TARGET_AVX512F) && (
20410 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20411 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20412 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20413 : (TARGET_AVX512VL))))
20414 : return 7930; /* *avx512bw_umaxv8hi3_mask */
20415 : if (!vector_operand (operands[1], E_V8HImode)
20416 : || !vector_operand (operands[2], E_V8HImode)
20417 : || !(
20418 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20419 : (TARGET_AVX512F) &&
20420 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20421 : (TARGET_SSE4_1
20422 : && (16 == 64 || TARGET_AVX512VL)
20423 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20424 : return -1;
20425 : return 7944; /* *sse4_1_umaxv8hi3_mask */
20426 :
20427 : default:
20428 : return -1;
20429 : }
20430 :
20431 : case UMIN:
20432 : switch (pattern151 (x3))
20433 : {
20434 : case 0:
20435 : if (!(
20436 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20437 : (TARGET_AVX512F) &&
20438 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20439 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20440 : return -1;
20441 : return 7844; /* *avx512f_uminv16si3_mask */
20442 :
20443 : case 1:
20444 : if (!(
20445 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20446 : (TARGET_AVX512F) && (
20447 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20448 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20449 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20450 : (TARGET_AVX512VL))))
20451 : return -1;
20452 : return 7852; /* *avx512f_uminv8si3_mask */
20453 :
20454 : case 2:
20455 : if (nonimmediate_operand (operands[1], E_V4SImode)
20456 : && nonimmediate_operand (operands[2], E_V4SImode)
20457 : && (
20458 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20459 : (TARGET_AVX512F) && (
20460 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20461 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20462 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20463 : (TARGET_AVX512VL))))
20464 : return 7860; /* *avx512f_uminv4si3_mask */
20465 : if (!vector_operand (operands[1], E_V4SImode)
20466 : || !vector_operand (operands[2], E_V4SImode)
20467 : || !(
20468 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20469 : (TARGET_AVX512F) &&
20470 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20471 : (TARGET_SSE4_1
20472 : && (16 == 64 || TARGET_AVX512VL)
20473 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20474 : return -1;
20475 : return 7950; /* *sse4_1_uminv4si3_mask */
20476 :
20477 : case 3:
20478 : if (!(
20479 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20480 : (TARGET_AVX512F) &&
20481 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20482 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20483 : return -1;
20484 : return 7868; /* *avx512f_uminv8di3_mask */
20485 :
20486 : case 4:
20487 : if (!(
20488 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20489 : (TARGET_AVX512F) && (
20490 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20491 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20492 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20493 : (TARGET_AVX512VL))))
20494 : return -1;
20495 : return 7876; /* *avx512f_uminv4di3_mask */
20496 :
20497 : case 5:
20498 : if (!(
20499 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20500 : (TARGET_AVX512F) && (
20501 : #line 18151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20502 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20503 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20504 : (TARGET_AVX512VL))))
20505 : return -1;
20506 : return 7884; /* *avx512f_uminv2di3_mask */
20507 :
20508 : case 6:
20509 : if (!(
20510 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20511 : (TARGET_AVX512F) &&
20512 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20513 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20514 : return -1;
20515 : return 7892; /* *avx512bw_uminv64qi3_mask */
20516 :
20517 : case 7:
20518 : if (!(
20519 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20520 : (TARGET_AVX512F) && (
20521 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20522 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20523 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20524 : (TARGET_AVX512VL))))
20525 : return -1;
20526 : return 7900; /* *avx512bw_uminv16qi3_mask */
20527 :
20528 : case 8:
20529 : if (!(
20530 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20531 : (TARGET_AVX512F) && (
20532 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20533 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20534 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20535 : (TARGET_AVX512VL))))
20536 : return -1;
20537 : return 7908; /* *avx512bw_uminv32qi3_mask */
20538 :
20539 : case 9:
20540 : if (!(
20541 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20542 : (TARGET_AVX512F) &&
20543 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20544 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20545 : return -1;
20546 : return 7916; /* *avx512bw_uminv32hi3_mask */
20547 :
20548 : case 10:
20549 : if (!(
20550 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20551 : (TARGET_AVX512F) && (
20552 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20553 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20554 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20555 : (TARGET_AVX512VL))))
20556 : return -1;
20557 : return 7924; /* *avx512bw_uminv16hi3_mask */
20558 :
20559 : case 11:
20560 : if (nonimmediate_operand (operands[1], E_V8HImode)
20561 : && nonimmediate_operand (operands[2], E_V8HImode)
20562 : && (
20563 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20564 : (TARGET_AVX512F) && (
20565 : #line 18163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20566 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
20567 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20568 : (TARGET_AVX512VL))))
20569 : return 7932; /* *avx512bw_uminv8hi3_mask */
20570 : if (!vector_operand (operands[1], E_V8HImode)
20571 : || !vector_operand (operands[2], E_V8HImode)
20572 : || !(
20573 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20574 : (TARGET_AVX512F) &&
20575 : #line 18342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20576 : (TARGET_SSE4_1
20577 : && (16 == 64 || TARGET_AVX512VL)
20578 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
20579 : return -1;
20580 : return 7946; /* *sse4_1_uminv8hi3_mask */
20581 :
20582 : default:
20583 : return -1;
20584 : }
20585 :
20586 : case VEC_CONCAT:
20587 : return recog_187 (x1, insn, pnum_clobbers);
20588 :
20589 : case ABS:
20590 : switch (pattern154 (x3))
20591 : {
20592 : case 0:
20593 : if (!
20594 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20595 : (TARGET_AVX512F))
20596 : return -1;
20597 : return 8734; /* absv16si2_mask */
20598 :
20599 : case 1:
20600 : if (!(
20601 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20602 : (TARGET_AVX512F) &&
20603 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20604 : (TARGET_AVX512VL)))
20605 : return -1;
20606 : return 8735; /* absv8si2_mask */
20607 :
20608 : case 2:
20609 : if (!(
20610 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20611 : (TARGET_AVX512F) &&
20612 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20613 : (TARGET_AVX512VL)))
20614 : return -1;
20615 : return 8736; /* absv4si2_mask */
20616 :
20617 : case 3:
20618 : if (!
20619 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20620 : (TARGET_AVX512F))
20621 : return -1;
20622 : return 8737; /* absv8di2_mask */
20623 :
20624 : case 4:
20625 : if (!(
20626 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20627 : (TARGET_AVX512F) &&
20628 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20629 : (TARGET_AVX512VL)))
20630 : return -1;
20631 : return 8738; /* absv4di2_mask */
20632 :
20633 : case 5:
20634 : if (!(
20635 : #line 23903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20636 : (TARGET_AVX512F) &&
20637 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20638 : (TARGET_AVX512VL)))
20639 : return -1;
20640 : return 8739; /* absv2di2_mask */
20641 :
20642 : case 6:
20643 : if (!
20644 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20645 : (TARGET_AVX512BW))
20646 : return -1;
20647 : return 8740; /* absv64qi2_mask */
20648 :
20649 : case 7:
20650 : if (!(
20651 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20652 : (TARGET_AVX512BW) &&
20653 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20654 : (TARGET_AVX512VL)))
20655 : return -1;
20656 : return 8741; /* absv16qi2_mask */
20657 :
20658 : case 8:
20659 : if (!(
20660 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20661 : (TARGET_AVX512BW) &&
20662 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20663 : (TARGET_AVX512VL)))
20664 : return -1;
20665 : return 8742; /* absv32qi2_mask */
20666 :
20667 : case 9:
20668 : if (!
20669 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20670 : (TARGET_AVX512BW))
20671 : return -1;
20672 : return 8743; /* absv32hi2_mask */
20673 :
20674 : case 10:
20675 : if (!(
20676 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20677 : (TARGET_AVX512BW) &&
20678 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20679 : (TARGET_AVX512VL)))
20680 : return -1;
20681 : return 8744; /* absv16hi2_mask */
20682 :
20683 : case 11:
20684 : if (!(
20685 : #line 23917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20686 : (TARGET_AVX512BW) &&
20687 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20688 : (TARGET_AVX512VL)))
20689 : return -1;
20690 : return 8745; /* absv8hi2_mask */
20691 :
20692 : default:
20693 : return -1;
20694 : }
20695 :
20696 : case SIGN_EXTEND:
20697 : return recog_197 (x1, insn, pnum_clobbers);
20698 :
20699 : case ZERO_EXTEND:
20700 : return recog_196 (x1, insn, pnum_clobbers);
20701 :
20702 : case CLZ:
20703 : x6 = XEXP (x4, 0);
20704 : operands[1] = x6;
20705 : x8 = XEXP (x3, 1);
20706 : operands[2] = x8;
20707 : x5 = XEXP (x3, 2);
20708 : operands[3] = x5;
20709 : switch (GET_MODE (operands[0]))
20710 : {
20711 : case E_V16SImode:
20712 : if (pattern152 (x3,
20713 : E_V16SImode,
20714 : E_HImode) != 0
20715 : || !(
20716 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20717 : (TARGET_AVX512F) &&
20718 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20719 : (TARGET_AVX512CD)))
20720 : return -1;
20721 : return 10165; /* clzv16si2_mask */
20722 :
20723 : case E_V8SImode:
20724 : if (pattern152 (x3,
20725 : E_V8SImode,
20726 : E_QImode) != 0
20727 : || !(
20728 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20729 : (TARGET_AVX512F) && (
20730 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20731 : (TARGET_AVX512CD) &&
20732 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20733 : (TARGET_AVX512VL))))
20734 : return -1;
20735 : return 10167; /* clzv8si2_mask */
20736 :
20737 : case E_V4SImode:
20738 : if (pattern152 (x3,
20739 : E_V4SImode,
20740 : E_QImode) != 0
20741 : || !(
20742 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20743 : (TARGET_AVX512F) && (
20744 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20745 : (TARGET_AVX512CD) &&
20746 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20747 : (TARGET_AVX512VL))))
20748 : return -1;
20749 : return 10169; /* clzv4si2_mask */
20750 :
20751 : case E_V8DImode:
20752 : if (pattern152 (x3,
20753 : E_V8DImode,
20754 : E_QImode) != 0
20755 : || !(
20756 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20757 : (TARGET_AVX512F) &&
20758 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20759 : (TARGET_AVX512CD)))
20760 : return -1;
20761 : return 10171; /* clzv8di2_mask */
20762 :
20763 : case E_V4DImode:
20764 : if (pattern152 (x3,
20765 : E_V4DImode,
20766 : E_QImode) != 0
20767 : || !(
20768 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20769 : (TARGET_AVX512F) && (
20770 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20771 : (TARGET_AVX512CD) &&
20772 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20773 : (TARGET_AVX512VL))))
20774 : return -1;
20775 : return 10173; /* clzv4di2_mask */
20776 :
20777 : case E_V2DImode:
20778 : if (pattern152 (x3,
20779 : E_V2DImode,
20780 : E_QImode) != 0
20781 : || !(
20782 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20783 : (TARGET_AVX512F) && (
20784 : #line 30989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20785 : (TARGET_AVX512CD) &&
20786 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20787 : (TARGET_AVX512VL))))
20788 : return -1;
20789 : return 10175; /* clzv2di2_mask */
20790 :
20791 : default:
20792 : return -1;
20793 : }
20794 :
20795 : case POPCOUNT:
20796 : switch (pattern154 (x3))
20797 : {
20798 : case 0:
20799 : if (!(
20800 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20801 : (TARGET_AVX512F) &&
20802 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20803 : (TARGET_AVX512VPOPCNTDQ)))
20804 : return -1;
20805 : return 10238; /* vpopcountv16si_mask */
20806 :
20807 : case 1:
20808 : if (!(
20809 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20810 : (TARGET_AVX512F) && (
20811 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20812 : (TARGET_AVX512VPOPCNTDQ) &&
20813 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20814 : (TARGET_AVX512VL))))
20815 : return -1;
20816 : return 10240; /* vpopcountv8si_mask */
20817 :
20818 : case 2:
20819 : if (!(
20820 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20821 : (TARGET_AVX512F) && (
20822 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20823 : (TARGET_AVX512VPOPCNTDQ) &&
20824 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20825 : (TARGET_AVX512VL))))
20826 : return -1;
20827 : return 10242; /* vpopcountv4si_mask */
20828 :
20829 : case 3:
20830 : if (!(
20831 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20832 : (TARGET_AVX512F) &&
20833 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20834 : (TARGET_AVX512VPOPCNTDQ)))
20835 : return -1;
20836 : return 10244; /* vpopcountv8di_mask */
20837 :
20838 : case 4:
20839 : if (!(
20840 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20841 : (TARGET_AVX512F) && (
20842 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20843 : (TARGET_AVX512VPOPCNTDQ) &&
20844 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20845 : (TARGET_AVX512VL))))
20846 : return -1;
20847 : return 10246; /* vpopcountv4di_mask */
20848 :
20849 : case 5:
20850 : if (!(
20851 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20852 : (TARGET_AVX512F) && (
20853 : #line 31346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20854 : (TARGET_AVX512VPOPCNTDQ) &&
20855 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20856 : (TARGET_AVX512VL))))
20857 : return -1;
20858 : return 10248; /* vpopcountv2di_mask */
20859 :
20860 : case 6:
20861 : if (!(
20862 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20863 : (TARGET_AVX512F) &&
20864 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20865 : (TARGET_AVX512BITALG)))
20866 : return -1;
20867 : return 10258; /* vpopcountv64qi_mask */
20868 :
20869 : case 7:
20870 : if (!(
20871 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20872 : (TARGET_AVX512F) && (
20873 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20874 : (TARGET_AVX512BITALG) &&
20875 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20876 : (TARGET_AVX512VL))))
20877 : return -1;
20878 : return 10260; /* vpopcountv16qi_mask */
20879 :
20880 : case 8:
20881 : if (!(
20882 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20883 : (TARGET_AVX512F) && (
20884 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20885 : (TARGET_AVX512BITALG) &&
20886 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20887 : (TARGET_AVX512VL))))
20888 : return -1;
20889 : return 10262; /* vpopcountv32qi_mask */
20890 :
20891 : case 9:
20892 : if (!(
20893 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20894 : (TARGET_AVX512F) &&
20895 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20896 : (TARGET_AVX512BITALG)))
20897 : return -1;
20898 : return 10264; /* vpopcountv32hi_mask */
20899 :
20900 : case 10:
20901 : if (!(
20902 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20903 : (TARGET_AVX512F) && (
20904 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20905 : (TARGET_AVX512BITALG) &&
20906 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20907 : (TARGET_AVX512VL))))
20908 : return -1;
20909 : return 10266; /* vpopcountv16hi_mask */
20910 :
20911 : case 11:
20912 : if (!(
20913 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
20914 : (TARGET_AVX512F) && (
20915 : #line 31396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20916 : (TARGET_AVX512BITALG) &&
20917 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20918 : (TARGET_AVX512VL))))
20919 : return -1;
20920 : return 10268; /* vpopcountv8hi_mask */
20921 :
20922 : default:
20923 : return -1;
20924 : }
20925 :
20926 : default:
20927 : return -1;
20928 : }
20929 : }
20930 :
20931 : int
20932 : recog_344 (rtx x1 ATTRIBUTE_UNUSED,
20933 : rtx_insn *insn ATTRIBUTE_UNUSED,
20934 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20935 : {
20936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20937 : rtx x2, x3, x4;
20938 : int res ATTRIBUTE_UNUSED;
20939 : x2 = XEXP (x1, 0);
20940 : operands[0] = x2;
20941 : x3 = XEXP (x1, 1);
20942 : x4 = XEXP (x3, 0);
20943 : switch (GET_CODE (x4))
20944 : {
20945 : case REG:
20946 : case SUBREG:
20947 : case MEM:
20948 : case VEC_DUPLICATE:
20949 : switch (pattern191 (x3))
20950 : {
20951 : case 0:
20952 : if (!(
20953 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20954 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V32HFmode, operands)
20955 : && 1 && 1) &&
20956 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20957 : (TARGET_AVX512FP16)))
20958 : return -1;
20959 : return 2756; /* *subv32hf3 */
20960 :
20961 : case 1:
20962 : if (!(
20963 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20964 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16HFmode, operands)
20965 : && 1 && 1) &&
20966 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20967 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20968 : return -1;
20969 : return 2764; /* *subv16hf3 */
20970 :
20971 : case 2:
20972 : if (!(
20973 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20974 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8HFmode, operands)
20975 : && 1 && 1) &&
20976 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20977 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20978 : return -1;
20979 : return 2772; /* *subv8hf3 */
20980 :
20981 : case 3:
20982 : if (!(
20983 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20984 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands)
20985 : && 1 && 1) &&
20986 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20987 : (TARGET_AVX512F)))
20988 : return -1;
20989 : return 2780; /* *subv16sf3 */
20990 :
20991 : case 4:
20992 : if (!(
20993 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20994 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands)
20995 : && 1 && 1) &&
20996 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20997 : (TARGET_AVX)))
20998 : return -1;
20999 : return 2788; /* *subv8sf3 */
21000 :
21001 : case 5:
21002 : if (!
21003 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21004 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands)
21005 : && 1 && 1))
21006 : return -1;
21007 : return 2796; /* *subv4sf3 */
21008 :
21009 : case 6:
21010 : if (!(
21011 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21012 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands)
21013 : && 1 && 1) &&
21014 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21015 : (TARGET_AVX512F)))
21016 : return -1;
21017 : return 2804; /* *subv8df3 */
21018 :
21019 : case 7:
21020 : if (!(
21021 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21022 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands)
21023 : && 1 && 1) &&
21024 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21025 : (TARGET_AVX)))
21026 : return -1;
21027 : return 2812; /* *subv4df3 */
21028 :
21029 : case 8:
21030 : if (!(
21031 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21032 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands)
21033 : && 1 && 1) &&
21034 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21035 : (TARGET_SSE2)))
21036 : return -1;
21037 : return 2820; /* *subv2df3 */
21038 :
21039 : case 9:
21040 : if (!(
21041 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21042 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V64QImode, operands)) &&
21043 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21044 : (TARGET_AVX512BW)))
21045 : return -1;
21046 : return 7506; /* *subv64qi3 */
21047 :
21048 : case 10:
21049 : if (!(
21050 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21051 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32QImode, operands)) &&
21052 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21053 : (TARGET_AVX2)))
21054 : return -1;
21055 : return 7508; /* *subv32qi3 */
21056 :
21057 : case 11:
21058 : if (!
21059 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21060 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16QImode, operands)))
21061 : return -1;
21062 : return 7510; /* *subv16qi3 */
21063 :
21064 : case 12:
21065 : if (!(
21066 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21067 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32HImode, operands)) &&
21068 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21069 : (TARGET_AVX512BW)))
21070 : return -1;
21071 : return 7512; /* *subv32hi3 */
21072 :
21073 : case 13:
21074 : if (!(
21075 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21076 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16HImode, operands)) &&
21077 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21078 : (TARGET_AVX2)))
21079 : return -1;
21080 : return 7514; /* *subv16hi3 */
21081 :
21082 : case 14:
21083 : if (!
21084 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21085 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8HImode, operands)))
21086 : return -1;
21087 : return 7516; /* *subv8hi3 */
21088 :
21089 : case 15:
21090 : if (!(
21091 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21092 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16SImode, operands)) &&
21093 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21094 : (TARGET_AVX512F)))
21095 : return -1;
21096 : return 7518; /* *subv16si3 */
21097 :
21098 : case 16:
21099 : if (!(
21100 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21101 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8SImode, operands)) &&
21102 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21103 : (TARGET_AVX2)))
21104 : return -1;
21105 : return 7520; /* *subv8si3 */
21106 :
21107 : case 17:
21108 : if (!
21109 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21110 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4SImode, operands)))
21111 : return -1;
21112 : return 7522; /* *subv4si3 */
21113 :
21114 : case 18:
21115 : if (!(
21116 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21117 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8DImode, operands)) &&
21118 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21119 : (TARGET_AVX512F)))
21120 : return -1;
21121 : return 7524; /* *subv8di3 */
21122 :
21123 : case 19:
21124 : if (!(
21125 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21126 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4DImode, operands)) &&
21127 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21128 : (TARGET_AVX2)))
21129 : return -1;
21130 : return 7526; /* *subv4di3 */
21131 :
21132 : case 20:
21133 : if (!
21134 : #line 16679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21135 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V2DImode, operands)))
21136 : return -1;
21137 : return 7528; /* *subv2di3 */
21138 :
21139 : case 21:
21140 : if (!
21141 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21142 : (TARGET_AVX10_2))
21143 : return -1;
21144 : return 10710; /* avx10_2_subbf16_v32bf */
21145 :
21146 : case 22:
21147 : if (!
21148 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21149 : (TARGET_AVX10_2))
21150 : return -1;
21151 : return 10718; /* avx10_2_subbf16_v16bf */
21152 :
21153 : case 23:
21154 : if (!
21155 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21156 : (TARGET_AVX10_2))
21157 : return -1;
21158 : return 10726; /* avx10_2_subbf16_v8bf */
21159 :
21160 : case 24:
21161 : if (!(
21162 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21163 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21164 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21165 : (TARGET_AVX512BW)))
21166 : return -1;
21167 : return 7565; /* *subv64qi3_one */
21168 :
21169 : case 25:
21170 : if (!(
21171 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21172 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21173 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21174 : (TARGET_AVX2)))
21175 : return -1;
21176 : return 7566; /* *subv32qi3_one */
21177 :
21178 : case 26:
21179 : if (!
21180 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21181 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21182 : return -1;
21183 : return 7567; /* *subv16qi3_one */
21184 :
21185 : case 27:
21186 : if (!(
21187 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21188 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21189 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21190 : (TARGET_AVX512BW)))
21191 : return -1;
21192 : return 7568; /* *subv32hi3_one */
21193 :
21194 : case 28:
21195 : if (!(
21196 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21197 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21198 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21199 : (TARGET_AVX2)))
21200 : return -1;
21201 : return 7569; /* *subv16hi3_one */
21202 :
21203 : case 29:
21204 : if (!
21205 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21206 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21207 : return -1;
21208 : return 7570; /* *subv8hi3_one */
21209 :
21210 : case 30:
21211 : if (!(
21212 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21213 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21214 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21215 : (TARGET_AVX512F)))
21216 : return -1;
21217 : return 7571; /* *subv16si3_one */
21218 :
21219 : case 31:
21220 : if (!(
21221 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21222 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21223 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21224 : (TARGET_AVX2)))
21225 : return -1;
21226 : return 7572; /* *subv8si3_one */
21227 :
21228 : case 32:
21229 : if (!
21230 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21231 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21232 : return -1;
21233 : return 7573; /* *subv4si3_one */
21234 :
21235 : case 33:
21236 : if (!(
21237 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21238 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21239 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21240 : (TARGET_AVX512F)))
21241 : return -1;
21242 : return 7574; /* *subv8di3_one */
21243 :
21244 : case 34:
21245 : if (!(
21246 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21247 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
21248 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21249 : (TARGET_AVX2)))
21250 : return -1;
21251 : return 7575; /* *subv4di3_one */
21252 :
21253 : case 35:
21254 : if (!
21255 : #line 16738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21256 : (TARGET_SSE2 && ix86_pre_reload_split ()))
21257 : return -1;
21258 : return 7576; /* *subv2di3_one */
21259 :
21260 : default:
21261 : return -1;
21262 : }
21263 :
21264 : case VEC_SELECT:
21265 : switch (pattern198 (x3))
21266 : {
21267 : case 0:
21268 : if (!
21269 : #line 23090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21270 : (TARGET_AVX2))
21271 : return -1;
21272 : return 8664; /* avx2_phsubwv16hi3 */
21273 :
21274 : case 1:
21275 : if (!
21276 : #line 23114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21277 : (TARGET_SSSE3))
21278 : return -1;
21279 : return 8668; /* ssse3_phsubwv8hi3 */
21280 :
21281 : case 2:
21282 : if (!
21283 : #line 23183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21284 : (TARGET_AVX2))
21285 : return -1;
21286 : return 8675; /* avx2_phsubdv8si3 */
21287 :
21288 : case 3:
21289 : if (!
21290 : #line 23205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21291 : (TARGET_SSSE3))
21292 : return -1;
21293 : return 8677; /* ssse3_phsubdv4si3 */
21294 :
21295 : default:
21296 : return -1;
21297 : }
21298 :
21299 : case SIGN_EXTEND:
21300 : switch (pattern200 (x3,
21301 : SIGN_EXTEND))
21302 : {
21303 : case 0:
21304 : if (!
21305 : #line 27284 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21306 : (TARGET_XOP))
21307 : return -1;
21308 : return 9110; /* xop_phsubbw */
21309 :
21310 : case 1:
21311 : if (!
21312 : #line 27305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21313 : (TARGET_XOP))
21314 : return -1;
21315 : return 9111; /* xop_phsubwd */
21316 :
21317 : case 2:
21318 : if (!
21319 : #line 27324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21320 : (TARGET_XOP))
21321 : return -1;
21322 : return 9112; /* xop_phsubdq */
21323 :
21324 : default:
21325 : return -1;
21326 : }
21327 :
21328 : default:
21329 : return -1;
21330 : }
21331 : }
21332 :
21333 : int
21334 : recog_356 (rtx x1 ATTRIBUTE_UNUSED,
21335 : rtx_insn *insn ATTRIBUTE_UNUSED,
21336 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21337 : {
21338 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21339 : rtx x2, x3, x4, x5;
21340 : int res ATTRIBUTE_UNUSED;
21341 : x2 = XEXP (x1, 0);
21342 : operands[0] = x2;
21343 : x3 = XEXP (x1, 1);
21344 : x4 = XEXP (x3, 0);
21345 : operands[1] = x4;
21346 : x5 = XEXP (x3, 1);
21347 : operands[2] = x5;
21348 : switch (GET_MODE (operands[0]))
21349 : {
21350 : case E_V32HFmode:
21351 : if (pattern518 (x3,
21352 : E_V32HFmode) != 0
21353 : || !(
21354 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21355 : (TARGET_SSE && 1 && 1) &&
21356 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21357 : (TARGET_AVX512FP16)))
21358 : return -1;
21359 : return 2920; /* avx512fp16_divv32hf3 */
21360 :
21361 : case E_V16HFmode:
21362 : if (pattern518 (x3,
21363 : E_V16HFmode) != 0
21364 : || !(
21365 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21366 : (TARGET_SSE && 1 && 1) &&
21367 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21368 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21369 : return -1;
21370 : return 2924; /* avx512fp16_divv16hf3 */
21371 :
21372 : case E_V8HFmode:
21373 : if (pattern518 (x3,
21374 : E_V8HFmode) != 0
21375 : || !(
21376 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21377 : (TARGET_SSE && 1 && 1) &&
21378 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21379 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21380 : return -1;
21381 : return 2926; /* avx512fp16_divv8hf3 */
21382 :
21383 : case E_V16SFmode:
21384 : if (pattern518 (x3,
21385 : E_V16SFmode) != 0
21386 : || !(
21387 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21388 : (TARGET_SSE && 1 && 1) &&
21389 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21390 : (TARGET_AVX512F)))
21391 : return -1;
21392 : return 2928; /* avx512f_divv16sf3 */
21393 :
21394 : case E_V8SFmode:
21395 : if (pattern518 (x3,
21396 : E_V8SFmode) != 0
21397 : || !(
21398 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21399 : (TARGET_SSE && 1 && 1) &&
21400 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21401 : (TARGET_AVX)))
21402 : return -1;
21403 : return 2932; /* avx_divv8sf3 */
21404 :
21405 : case E_V4SFmode:
21406 : if (pattern518 (x3,
21407 : E_V4SFmode) != 0
21408 : || !
21409 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21410 : (TARGET_SSE && 1 && 1))
21411 : return -1;
21412 : return 2934; /* sse_divv4sf3 */
21413 :
21414 : case E_V8DFmode:
21415 : if (pattern518 (x3,
21416 : E_V8DFmode) != 0
21417 : || !(
21418 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21419 : (TARGET_SSE && 1 && 1) &&
21420 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21421 : (TARGET_AVX512F)))
21422 : return -1;
21423 : return 2936; /* avx512f_divv8df3 */
21424 :
21425 : case E_V4DFmode:
21426 : if (pattern518 (x3,
21427 : E_V4DFmode) != 0
21428 : || !(
21429 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21430 : (TARGET_SSE && 1 && 1) &&
21431 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21432 : (TARGET_AVX)))
21433 : return -1;
21434 : return 2940; /* avx_divv4df3 */
21435 :
21436 : case E_V2DFmode:
21437 : if (pattern518 (x3,
21438 : E_V2DFmode) != 0
21439 : || !(
21440 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21441 : (TARGET_SSE && 1 && 1) &&
21442 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21443 : (TARGET_SSE2)))
21444 : return -1;
21445 : return 2942; /* sse2_divv2df3 */
21446 :
21447 : case E_V32BFmode:
21448 : if (pattern12 (x3,
21449 : E_V32BFmode) != 0
21450 : || !
21451 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21452 : (TARGET_AVX10_2))
21453 : return -1;
21454 : return 10714; /* avx10_2_divbf16_v32bf */
21455 :
21456 : case E_V16BFmode:
21457 : if (pattern12 (x3,
21458 : E_V16BFmode) != 0
21459 : || !
21460 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21461 : (TARGET_AVX10_2))
21462 : return -1;
21463 : return 10722; /* avx10_2_divbf16_v16bf */
21464 :
21465 : case E_V8BFmode:
21466 : if (pattern12 (x3,
21467 : E_V8BFmode) != 0
21468 : || !
21469 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21470 : (TARGET_AVX10_2))
21471 : return -1;
21472 : return 10730; /* avx10_2_divbf16_v8bf */
21473 :
21474 : default:
21475 : return -1;
21476 : }
21477 : }
21478 :
21479 : int
21480 : recog_362 (rtx x1 ATTRIBUTE_UNUSED,
21481 : rtx_insn *insn ATTRIBUTE_UNUSED,
21482 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21483 : {
21484 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21485 : rtx x2, x3;
21486 : int res ATTRIBUTE_UNUSED;
21487 : switch (pattern8 (x1, pnum_clobbers))
21488 : {
21489 : case 0:
21490 : if (!(
21491 : #line 28056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21492 : (TARGET_CMOVE
21493 : && ix86_pre_reload_split ()) &&
21494 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21495 : (TARGET_64BIT)))
21496 : return -1;
21497 : *pnum_clobbers = 1;
21498 : return 1869; /* *umaxti3_doubleword */
21499 :
21500 : case 1:
21501 : if (!
21502 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21503 : (TARGET_CMOVE
21504 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
21505 : && ix86_pre_reload_split ()))
21506 : return -1;
21507 : *pnum_clobbers = 1;
21508 : return 1873; /* *umaxqi3_1 */
21509 :
21510 : case 2:
21511 : if (!
21512 : #line 28114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21513 : (TARGET_CMOVE
21514 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
21515 : && ix86_pre_reload_split ()))
21516 : return -1;
21517 : *pnum_clobbers = 1;
21518 : return 1877; /* *umaxhi3_1 */
21519 :
21520 : case 3:
21521 : if (!
21522 : #line 3769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21523 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21524 : return -1;
21525 : return 2234; /* umaxv4hi3 */
21526 :
21527 : case 4:
21528 : if (!
21529 : #line 3769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21530 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
21531 : return -1;
21532 : return 2236; /* umaxv2si3 */
21533 :
21534 : case 5:
21535 : if (!
21536 : #line 3794 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21537 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
21538 : && (TARGET_SSE || TARGET_3DNOW_A)
21539 : && ix86_binary_operator_ok (UMAX, V8QImode, operands)))
21540 : return -1;
21541 : return 2238; /* *mmx_umaxv8qi3 */
21542 :
21543 : case 6:
21544 : if (!
21545 : #line 3818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21546 : (TARGET_SSE2))
21547 : return -1;
21548 : return 2240; /* umaxv4qi3 */
21549 :
21550 : case 7:
21551 : if (!
21552 : #line 3818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21553 : (TARGET_SSE2))
21554 : return -1;
21555 : return 2242; /* umaxv2qi3 */
21556 :
21557 : case 8:
21558 : if (!
21559 : #line 3831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21560 : (TARGET_SSE4_1))
21561 : return -1;
21562 : return 2244; /* umaxv2hi3 */
21563 :
21564 : case 9:
21565 : x2 = XEXP (x1, 1);
21566 : x3 = XEXP (x2, 1);
21567 : if (rtx_equal_p (x3, operands[1])
21568 : &&
21569 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21570 : (TARGET_CMOVE
21571 : && ix86_pre_reload_split ()))
21572 : {
21573 : *pnum_clobbers = 1;
21574 : return 1887; /* *plus_within_umaxhi3_1 */
21575 : }
21576 : if (!rtx_equal_p (x3, operands[2])
21577 : || !
21578 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21579 : (TARGET_CMOVE
21580 : && ix86_pre_reload_split ()))
21581 : return -1;
21582 : *pnum_clobbers = 1;
21583 : return 1888; /* *plus_within_umaxhi3_2 */
21584 :
21585 : case 10:
21586 : if (!
21587 : #line 28328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21588 : (TARGET_CMOVE
21589 : && ix86_pre_reload_split ()))
21590 : return -1;
21591 : *pnum_clobbers = 1;
21592 : return 1899; /* *minus_within_umaxhi3 */
21593 :
21594 : default:
21595 : return -1;
21596 : }
21597 : }
21598 :
21599 : int
21600 : recog_370 (rtx x1 ATTRIBUTE_UNUSED,
21601 : rtx_insn *insn ATTRIBUTE_UNUSED,
21602 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21603 : {
21604 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21605 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21606 : int res ATTRIBUTE_UNUSED;
21607 : x2 = XVECEXP (x1, 0, 0);
21608 : x3 = XEXP (x2, 1);
21609 : x4 = XEXP (x3, 1);
21610 : if (GET_CODE (x4) != CONST_INT)
21611 : return -1;
21612 : x5 = XVECEXP (x1, 0, 1);
21613 : if (GET_CODE (x5) != CLOBBER)
21614 : return -1;
21615 : x6 = XEXP (x5, 0);
21616 : if (GET_CODE (x6) != REG
21617 : || REGNO (x6) != 17
21618 : || GET_MODE (x6) != E_CCmode)
21619 : return -1;
21620 : x7 = XEXP (x3, 0);
21621 : operands[1] = x7;
21622 : if (XWINT (x4, 0) == 1L)
21623 : {
21624 : x8 = XEXP (x2, 0);
21625 : if (GET_CODE (x8) == SUBREG)
21626 : {
21627 : switch (pattern1326 (x2))
21628 : {
21629 : case 0:
21630 : if (
21631 : #line 20322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21632 : (TARGET_USE_BT && ix86_pre_reload_split ()))
21633 : return 1464; /* *btsi_setcqi */
21634 : break;
21635 :
21636 : case 1:
21637 : if ((
21638 : #line 20322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21639 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
21640 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21641 : (TARGET_64BIT)))
21642 : return 1465; /* *btdi_setcqi */
21643 : break;
21644 :
21645 : default:
21646 : break;
21647 : }
21648 : }
21649 : x9 = XEXP (x3, 2);
21650 : if (GET_CODE (x9) == SUBREG)
21651 : {
21652 : switch (pattern1327 (x2))
21653 : {
21654 : case 0:
21655 : if (
21656 : #line 20403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21657 : (TARGET_USE_BT
21658 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
21659 : == GET_MODE_BITSIZE (SImode)-1
21660 : && ix86_pre_reload_split ()))
21661 : return 1472; /* *btsi_setcsi_mask */
21662 : break;
21663 :
21664 : case 1:
21665 : if ((
21666 : #line 20403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21667 : (TARGET_USE_BT
21668 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
21669 : == GET_MODE_BITSIZE (DImode)-1
21670 : && ix86_pre_reload_split ()) &&
21671 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21672 : (TARGET_64BIT)))
21673 : return 1473; /* *btdi_setcdi_mask */
21674 : break;
21675 :
21676 : default:
21677 : break;
21678 : }
21679 : }
21680 : }
21681 : x8 = XEXP (x2, 0);
21682 : operands[0] = x8;
21683 : operands[2] = x4;
21684 : if (!const_0_to_255_operand (operands[2], E_QImode))
21685 : return -1;
21686 : x9 = XEXP (x3, 2);
21687 : operands[3] = x9;
21688 : if (!const_0_to_255_operand (operands[3], E_QImode))
21689 : return -1;
21690 : switch (pattern410 (x3))
21691 : {
21692 : case 0:
21693 : if (!
21694 : #line 23178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21695 : (TARGET_TBM))
21696 : return -1;
21697 : return 1636; /* tbm_bextri_si */
21698 :
21699 : case 1:
21700 : if (!(
21701 : #line 23178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21702 : (TARGET_TBM) &&
21703 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21704 : (TARGET_64BIT)))
21705 : return -1;
21706 : return 1637; /* tbm_bextri_di */
21707 :
21708 : default:
21709 : return -1;
21710 : }
21711 : }
21712 :
21713 : int
21714 : recog_372 (rtx x1 ATTRIBUTE_UNUSED,
21715 : rtx_insn *insn ATTRIBUTE_UNUSED,
21716 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21717 : {
21718 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21719 : rtx x2, x3, x4, x5, x6, x7;
21720 : int res ATTRIBUTE_UNUSED;
21721 : x2 = XVECEXP (x1, 0, 1);
21722 : x3 = XEXP (x2, 1);
21723 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21724 : return -1;
21725 : x4 = XVECEXP (x1, 0, 0);
21726 : x5 = XEXP (x4, 0);
21727 : operands[0] = x5;
21728 : x6 = XEXP (x4, 1);
21729 : x7 = XVECEXP (x6, 0, 0);
21730 : operands[1] = x7;
21731 : switch (pattern1161 (x1))
21732 : {
21733 : case 0:
21734 : if (!(
21735 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21736 : (ptr_mode == SImode) &&
21737 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21738 : (word_mode == SImode)))
21739 : return -1;
21740 : *pnum_clobbers = 1;
21741 : return 1918; /* stack_protect_set_1_si_si */
21742 :
21743 : case 1:
21744 : if (!(
21745 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21746 : (ptr_mode == SImode) &&
21747 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21748 : (word_mode == DImode)))
21749 : return -1;
21750 : *pnum_clobbers = 1;
21751 : return 1920; /* stack_protect_set_1_si_di */
21752 :
21753 : case 2:
21754 : if (!(
21755 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21756 : (ptr_mode == DImode) &&
21757 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21758 : (word_mode == SImode)))
21759 : return -1;
21760 : *pnum_clobbers = 1;
21761 : return 1919; /* stack_protect_set_1_di_si */
21762 :
21763 : case 3:
21764 : if (!(
21765 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21766 : (ptr_mode == DImode) &&
21767 : #line 1434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21768 : (word_mode == DImode)))
21769 : return -1;
21770 : *pnum_clobbers = 1;
21771 : return 1921; /* stack_protect_set_1_di_di */
21772 :
21773 : default:
21774 : return -1;
21775 : }
21776 : }
21777 :
21778 : int
21779 : recog_375 (rtx x1 ATTRIBUTE_UNUSED,
21780 : rtx_insn *insn ATTRIBUTE_UNUSED,
21781 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21782 : {
21783 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21784 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21785 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
21786 : rtx x18;
21787 : int res ATTRIBUTE_UNUSED;
21788 : x2 = XVECEXP (x1, 0, 0);
21789 : x3 = XEXP (x2, 1);
21790 : switch (XINT (x3, 1))
21791 : {
21792 : case 106:
21793 : if (GET_MODE (x3) != E_TImode)
21794 : return -1;
21795 : x4 = XVECEXP (x1, 0, 1);
21796 : if (GET_CODE (x4) != UNSPEC
21797 : || XVECLEN (x4, 0) != 1
21798 : || XINT (x4, 1) != 109
21799 : || GET_MODE (x4) != E_DImode)
21800 : return -1;
21801 : x5 = XVECEXP (x4, 0, 0);
21802 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21803 : return -1;
21804 : x6 = XEXP (x2, 0);
21805 : operands[0] = x6;
21806 : if (!push_operand (operands[0], E_TImode))
21807 : return -1;
21808 : x7 = XVECEXP (x3, 0, 0);
21809 : operands[1] = x7;
21810 : if (!register_operand (operands[1], E_DImode))
21811 : return -1;
21812 : x8 = XVECEXP (x3, 0, 1);
21813 : operands[2] = x8;
21814 : if (!register_operand (operands[2], E_DImode)
21815 : || !
21816 : #line 3993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21817 : (TARGET_APX_PUSH2POP2 && TARGET_APX_PPX))
21818 : return -1;
21819 : return 167; /* push2p_di */
21820 :
21821 : case 41:
21822 : x8 = XVECEXP (x3, 0, 1);
21823 : if (GET_CODE (x8) != CONST_INT)
21824 : return -1;
21825 : x6 = XEXP (x2, 0);
21826 : if (GET_CODE (x6) != REG
21827 : || REGNO (x6) != 17)
21828 : return -1;
21829 : x7 = XVECEXP (x3, 0, 0);
21830 : switch (GET_CODE (x7))
21831 : {
21832 : case REG:
21833 : case SUBREG:
21834 : case MEM:
21835 : operands[1] = x7;
21836 : if (XWINT (x8, 0) == 0L)
21837 : {
21838 : res = recog_373 (x1, insn, pnum_clobbers);
21839 : if (res >= 0)
21840 : return res;
21841 : }
21842 : x4 = XVECEXP (x1, 0, 1);
21843 : if (GET_CODE (x4) != SET)
21844 : return -1;
21845 : x9 = XEXP (x4, 1);
21846 : if (GET_CODE (x9) != NEG
21847 : || GET_MODE (x6) != E_CCOmode
21848 : || GET_MODE (x3) != E_CCOmode)
21849 : return -1;
21850 : operands[2] = x8;
21851 : x10 = XEXP (x4, 0);
21852 : operands[0] = x10;
21853 : x11 = XEXP (x9, 0);
21854 : if (!rtx_equal_p (x11, operands[1]))
21855 : return -1;
21856 : switch (GET_MODE (operands[1]))
21857 : {
21858 : case E_QImode:
21859 : if (pattern1683 (x9,
21860 : E_QImode) != 0
21861 : || !
21862 : #line 15467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21863 : (ix86_unary_operator_ok (NEG, QImode, operands)
21864 : && mode_signbit_p (QImode, operands[2])))
21865 : return -1;
21866 : return 1023; /* *negvqi3 */
21867 :
21868 : case E_HImode:
21869 : if (pattern1683 (x9,
21870 : E_HImode) != 0
21871 : || !
21872 : #line 15467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21873 : (ix86_unary_operator_ok (NEG, HImode, operands)
21874 : && mode_signbit_p (HImode, operands[2])))
21875 : return -1;
21876 : return 1024; /* *negvhi3 */
21877 :
21878 : case E_SImode:
21879 : if (pattern1683 (x9,
21880 : E_SImode) != 0
21881 : || !
21882 : #line 15467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21883 : (ix86_unary_operator_ok (NEG, SImode, operands)
21884 : && mode_signbit_p (SImode, operands[2])))
21885 : return -1;
21886 : return 1025; /* *negvsi3 */
21887 :
21888 : case E_DImode:
21889 : if (pattern1683 (x9,
21890 : E_DImode) != 0
21891 : || !(
21892 : #line 15467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21893 : (ix86_unary_operator_ok (NEG, DImode, operands)
21894 : && mode_signbit_p (DImode, operands[2])) &&
21895 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21896 : (TARGET_64BIT)))
21897 : return -1;
21898 : return 1026; /* *negvdi3 */
21899 :
21900 : default:
21901 : return -1;
21902 : }
21903 :
21904 : case AND:
21905 : x12 = XEXP (x7, 1);
21906 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
21907 : || XWINT (x8, 0) != 0L)
21908 : return -1;
21909 : x4 = XVECEXP (x1, 0, 1);
21910 : if (GET_CODE (x4) != SET
21911 : || GET_MODE (x6) != E_CCCmode
21912 : || GET_MODE (x3) != E_CCCmode)
21913 : return -1;
21914 : x13 = XEXP (x7, 0);
21915 : operands[1] = x13;
21916 : x10 = XEXP (x4, 0);
21917 : operands[0] = x10;
21918 : x9 = XEXP (x4, 1);
21919 : switch (GET_CODE (x9))
21920 : {
21921 : case LSHIFTRT:
21922 : switch (pattern1639 (x1))
21923 : {
21924 : case 0:
21925 : return 1419; /* lshrsi3_carry */
21926 :
21927 : case 1:
21928 : if (!
21929 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21930 : (TARGET_64BIT))
21931 : return -1;
21932 : return 1421; /* lshrdi3_carry */
21933 :
21934 : default:
21935 : return -1;
21936 : }
21937 :
21938 : case ASHIFTRT:
21939 : switch (pattern1639 (x1))
21940 : {
21941 : case 0:
21942 : return 1420; /* ashrsi3_carry */
21943 :
21944 : case 1:
21945 : if (!
21946 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21947 : (TARGET_64BIT))
21948 : return -1;
21949 : return 1422; /* ashrdi3_carry */
21950 :
21951 : default:
21952 : return -1;
21953 : }
21954 :
21955 : default:
21956 : return -1;
21957 : }
21958 :
21959 : default:
21960 : return -1;
21961 : }
21962 :
21963 : case 99:
21964 : if (pattern350 (x1) != 0)
21965 : return -1;
21966 : x7 = XVECEXP (x3, 0, 0);
21967 : operands[1] = x7;
21968 : x8 = XVECEXP (x3, 0, 1);
21969 : operands[2] = x8;
21970 : switch (GET_MODE (operands[0]))
21971 : {
21972 : case E_SImode:
21973 : if (pattern1429 (x3,
21974 : E_SImode) != 0
21975 : || !
21976 : #line 22760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21977 : (TARGET_BMI))
21978 : return -1;
21979 : return 1598; /* bmi_bextr_si */
21980 :
21981 : case E_DImode:
21982 : if (pattern1429 (x3,
21983 : E_DImode) != 0
21984 : || !(
21985 : #line 22760 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21986 : (TARGET_BMI) &&
21987 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21988 : (TARGET_64BIT)))
21989 : return -1;
21990 : return 1599; /* bmi_bextr_di */
21991 :
21992 : default:
21993 : return -1;
21994 : }
21995 :
21996 : case 67:
21997 : if (GET_MODE (x3) != E_XFmode)
21998 : return -1;
21999 : x4 = XVECEXP (x1, 0, 1);
22000 : if (GET_CODE (x4) != CLOBBER)
22001 : return -1;
22002 : x6 = XEXP (x2, 0);
22003 : operands[0] = x6;
22004 : if (!register_operand (operands[0], E_XFmode))
22005 : return -1;
22006 : x7 = XVECEXP (x3, 0, 0);
22007 : operands[2] = x7;
22008 : if (!register_operand (operands[2], E_XFmode))
22009 : return -1;
22010 : x8 = XVECEXP (x3, 0, 1);
22011 : operands[1] = x8;
22012 : if (!register_operand (operands[1], E_XFmode))
22013 : return -1;
22014 : x10 = XEXP (x4, 0);
22015 : operands[3] = x10;
22016 : if (!scratch_operand (operands[3], E_XFmode)
22017 : || !
22018 : #line 25185 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22019 : (TARGET_USE_FANCY_MATH_387
22020 : && flag_unsafe_math_optimizations))
22021 : return -1;
22022 : return 1753; /* atan2xf3 */
22023 :
22024 : case 68:
22025 : if (pattern556 (x1) != 0
22026 : || !
22027 : #line 25489 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22028 : (TARGET_USE_FANCY_MATH_387
22029 : && flag_unsafe_math_optimizations))
22030 : return -1;
22031 : return 1754; /* fyl2xxf3_i387 */
22032 :
22033 : case 69:
22034 : if (pattern556 (x1) != 0
22035 : || !
22036 : #line 25587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22037 : (TARGET_USE_FANCY_MATH_387
22038 : && flag_unsafe_math_optimizations))
22039 : return -1;
22040 : return 1755; /* fyl2xp1xf3_i387 */
22041 :
22042 : case 85:
22043 : if (GET_MODE (x3) != E_XFmode)
22044 : return -1;
22045 : x4 = XVECEXP (x1, 0, 1);
22046 : if (GET_CODE (x4) != SET)
22047 : return -1;
22048 : x9 = XEXP (x4, 1);
22049 : if (pattern827 (x9,
22050 : E_XFmode,
22051 : 86,
22052 : 2,
22053 : UNSPEC) != 0)
22054 : return -1;
22055 : x6 = XEXP (x2, 0);
22056 : operands[0] = x6;
22057 : if (!register_operand (operands[0], E_XFmode)
22058 : || pattern1430 (x1) != 0
22059 : || !
22060 : #line 25725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22061 : (TARGET_USE_FANCY_MATH_387
22062 : && flag_unsafe_math_optimizations))
22063 : return -1;
22064 : return 1758; /* fscalexf4_i387 */
22065 :
22066 : case 94:
22067 : if (GET_MODE (x3) != E_CCZmode)
22068 : return -1;
22069 : x4 = XVECEXP (x1, 0, 1);
22070 : if (GET_CODE (x4) != CLOBBER)
22071 : return -1;
22072 : x6 = XEXP (x2, 0);
22073 : operands[0] = x6;
22074 : if (!flags_reg_operand (operands[0], E_CCZmode))
22075 : return -1;
22076 : x7 = XVECEXP (x3, 0, 0);
22077 : operands[1] = x7;
22078 : x8 = XVECEXP (x3, 0, 1);
22079 : operands[2] = x8;
22080 : x10 = XEXP (x4, 0);
22081 : operands[3] = x10;
22082 : switch (GET_MODE (operands[1]))
22083 : {
22084 : case E_SImode:
22085 : if (!memory_operand (operands[1], E_SImode)
22086 : || !memory_operand (operands[2], E_SImode)
22087 : || !scratch_operand (operands[3], E_SImode)
22088 : || !
22089 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22090 : (ptr_mode == SImode))
22091 : return -1;
22092 : return 1934; /* stack_protect_test_1_si */
22093 :
22094 : case E_DImode:
22095 : if (!memory_operand (operands[1], E_DImode)
22096 : || !memory_operand (operands[2], E_DImode)
22097 : || !scratch_operand (operands[3], E_DImode)
22098 : || !
22099 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22100 : (ptr_mode == DImode))
22101 : return -1;
22102 : return 1935; /* stack_protect_test_1_di */
22103 :
22104 : default:
22105 : return -1;
22106 : }
22107 :
22108 : case 64:
22109 : if (pattern557 (x1) != 0
22110 : || !
22111 : #line 914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22112 : (TARGET_3DNOW))
22113 : return -1;
22114 : return 2111; /* mmx_ieee_maxv2sf3 */
22115 :
22116 : case 63:
22117 : if (pattern557 (x1) != 0
22118 : || !
22119 : #line 914 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22120 : (TARGET_3DNOW))
22121 : return -1;
22122 : return 2112; /* mmx_ieee_minv2sf3 */
22123 :
22124 : case 161:
22125 : x6 = XEXP (x2, 0);
22126 : if (GET_CODE (x6) != MEM)
22127 : return -1;
22128 : operands[5] = x6;
22129 : x14 = XEXP (x6, 0);
22130 : if (GET_CODE (x14) != UNSPEC
22131 : || XVECLEN (x14, 0) != 4
22132 : || XINT (x14, 1) != 155)
22133 : return -1;
22134 : x4 = XVECEXP (x1, 0, 1);
22135 : if (GET_CODE (x4) != CLOBBER)
22136 : return -1;
22137 : x15 = XVECEXP (x14, 0, 0);
22138 : operands[0] = x15;
22139 : x16 = XVECEXP (x14, 0, 1);
22140 : operands[2] = x16;
22141 : x17 = XVECEXP (x14, 0, 2);
22142 : operands[4] = x17;
22143 : if (!const1248_operand (operands[4], E_SImode))
22144 : return -1;
22145 : x18 = XVECEXP (x14, 0, 3);
22146 : operands[6] = x18;
22147 : x8 = XVECEXP (x3, 0, 1);
22148 : operands[3] = x8;
22149 : x10 = XEXP (x4, 0);
22150 : operands[1] = x10;
22151 : x7 = XVECEXP (x3, 0, 0);
22152 : if (!rtx_equal_p (x7, operands[6]))
22153 : return -1;
22154 : switch (GET_MODE (operands[5]))
22155 : {
22156 : case E_V16SImode:
22157 : if (!vsib_mem_operator (operands[5], E_V16SImode)
22158 : || GET_MODE (x3) != E_V16SImode)
22159 : return -1;
22160 : switch (GET_MODE (x14))
22161 : {
22162 : case E_SImode:
22163 : switch (pattern1795 (
22164 : E_SImode))
22165 : {
22166 : case 0:
22167 : if (!(
22168 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22169 : (TARGET_AVX512F) &&
22170 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22171 : (Pmode == SImode)))
22172 : return -1;
22173 : return 9942; /* *avx512f_scattersiv16si */
22174 :
22175 : case 1:
22176 : if (!(
22177 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22178 : (TARGET_AVX512F) &&
22179 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22180 : (Pmode == SImode)))
22181 : return -1;
22182 : return 9966; /* *avx512f_scatterdiv16si */
22183 :
22184 : default:
22185 : return -1;
22186 : }
22187 :
22188 : case E_DImode:
22189 : switch (pattern1795 (
22190 : E_DImode))
22191 : {
22192 : case 0:
22193 : if (!(
22194 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22195 : (TARGET_AVX512F) &&
22196 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22197 : (Pmode == DImode)))
22198 : return -1;
22199 : return 9954; /* *avx512f_scattersiv16si */
22200 :
22201 : case 1:
22202 : if (!(
22203 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22204 : (TARGET_AVX512F) &&
22205 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22206 : (Pmode == DImode)))
22207 : return -1;
22208 : return 9978; /* *avx512f_scatterdiv16si */
22209 :
22210 : default:
22211 : return -1;
22212 : }
22213 :
22214 : default:
22215 : return -1;
22216 : }
22217 :
22218 : case E_V16SFmode:
22219 : if (!vsib_mem_operator (operands[5], E_V16SFmode)
22220 : || GET_MODE (x3) != E_V16SFmode)
22221 : return -1;
22222 : switch (GET_MODE (x14))
22223 : {
22224 : case E_SImode:
22225 : switch (pattern1796 (
22226 : E_SImode))
22227 : {
22228 : case 0:
22229 : if (!(
22230 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22231 : (TARGET_AVX512F) &&
22232 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22233 : (Pmode == SImode)))
22234 : return -1;
22235 : return 9943; /* *avx512f_scattersiv16sf */
22236 :
22237 : case 1:
22238 : if (!(
22239 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22240 : (TARGET_AVX512F) &&
22241 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22242 : (Pmode == SImode)))
22243 : return -1;
22244 : return 9967; /* *avx512f_scatterdiv16sf */
22245 :
22246 : default:
22247 : return -1;
22248 : }
22249 :
22250 : case E_DImode:
22251 : switch (pattern1796 (
22252 : E_DImode))
22253 : {
22254 : case 0:
22255 : if (!(
22256 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22257 : (TARGET_AVX512F) &&
22258 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22259 : (Pmode == DImode)))
22260 : return -1;
22261 : return 9955; /* *avx512f_scattersiv16sf */
22262 :
22263 : case 1:
22264 : if (!(
22265 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22266 : (TARGET_AVX512F) &&
22267 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22268 : (Pmode == DImode)))
22269 : return -1;
22270 : return 9979; /* *avx512f_scatterdiv16sf */
22271 :
22272 : default:
22273 : return -1;
22274 : }
22275 :
22276 : default:
22277 : return -1;
22278 : }
22279 :
22280 : case E_V8DImode:
22281 : switch (pattern1732 (x2,
22282 : E_V8DImode))
22283 : {
22284 : case 0:
22285 : if (!(
22286 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22287 : (TARGET_AVX512F) &&
22288 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22289 : (Pmode == SImode)))
22290 : return -1;
22291 : return 9944; /* *avx512f_scattersiv8di */
22292 :
22293 : case 1:
22294 : if (!(
22295 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22296 : (TARGET_AVX512F) &&
22297 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22298 : (Pmode == SImode)))
22299 : return -1;
22300 : return 9968; /* *avx512f_scatterdiv8di */
22301 :
22302 : case 2:
22303 : if (!(
22304 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22305 : (TARGET_AVX512F) &&
22306 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22307 : (Pmode == DImode)))
22308 : return -1;
22309 : return 9956; /* *avx512f_scattersiv8di */
22310 :
22311 : case 3:
22312 : if (!(
22313 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22314 : (TARGET_AVX512F) &&
22315 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22316 : (Pmode == DImode)))
22317 : return -1;
22318 : return 9980; /* *avx512f_scatterdiv8di */
22319 :
22320 : default:
22321 : return -1;
22322 : }
22323 :
22324 : case E_V8DFmode:
22325 : switch (pattern1732 (x2,
22326 : E_V8DFmode))
22327 : {
22328 : case 0:
22329 : if (!(
22330 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22331 : (TARGET_AVX512F) &&
22332 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22333 : (Pmode == SImode)))
22334 : return -1;
22335 : return 9945; /* *avx512f_scattersiv8df */
22336 :
22337 : case 1:
22338 : if (!(
22339 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22340 : (TARGET_AVX512F) &&
22341 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22342 : (Pmode == SImode)))
22343 : return -1;
22344 : return 9969; /* *avx512f_scatterdiv8df */
22345 :
22346 : case 2:
22347 : if (!(
22348 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22349 : (TARGET_AVX512F) &&
22350 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22351 : (Pmode == DImode)))
22352 : return -1;
22353 : return 9957; /* *avx512f_scattersiv8df */
22354 :
22355 : case 3:
22356 : if (!(
22357 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22358 : (TARGET_AVX512F) &&
22359 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22360 : (Pmode == DImode)))
22361 : return -1;
22362 : return 9981; /* *avx512f_scatterdiv8df */
22363 :
22364 : default:
22365 : return -1;
22366 : }
22367 :
22368 : case E_V8SImode:
22369 : switch (pattern1733 (x2,
22370 : E_V8SImode))
22371 : {
22372 : case 0:
22373 : switch (pattern1848 (
22374 : E_SImode))
22375 : {
22376 : case 0:
22377 : if (!(
22378 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22379 : (TARGET_AVX512F) && ((((
22380 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22381 : (TARGET_AVX512VL) &&
22382 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22383 : (Pmode == SImode)) &&
22384 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22385 : (Pmode == SImode)) &&
22386 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22387 : (TARGET_AVX512VL)) &&
22388 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22389 : (TARGET_AVX512VL))))
22390 : return -1;
22391 : return 9946; /* *avx512f_scattersiv8si */
22392 :
22393 : case 1:
22394 : if (!(
22395 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22396 : (TARGET_AVX512F) && (((
22397 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22398 : (TARGET_AVX512VL) &&
22399 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22400 : (Pmode == SImode)) &&
22401 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22402 : (Pmode == SImode)) &&
22403 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22404 : (TARGET_AVX512VL))))
22405 : return -1;
22406 : return 9970; /* *avx512f_scatterdiv8si */
22407 :
22408 : default:
22409 : return -1;
22410 : }
22411 :
22412 : case 1:
22413 : switch (pattern1848 (
22414 : E_DImode))
22415 : {
22416 : case 0:
22417 : if (!(
22418 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22419 : (TARGET_AVX512F) && ((((
22420 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22421 : (TARGET_AVX512VL) &&
22422 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22423 : (Pmode == DImode)) &&
22424 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22425 : (Pmode == DImode)) &&
22426 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22427 : (TARGET_AVX512VL)) &&
22428 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22429 : (TARGET_AVX512VL))))
22430 : return -1;
22431 : return 9958; /* *avx512f_scattersiv8si */
22432 :
22433 : case 1:
22434 : if (!(
22435 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22436 : (TARGET_AVX512F) && (((
22437 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22438 : (TARGET_AVX512VL) &&
22439 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22440 : (Pmode == DImode)) &&
22441 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22442 : (Pmode == DImode)) &&
22443 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22444 : (TARGET_AVX512VL))))
22445 : return -1;
22446 : return 9982; /* *avx512f_scatterdiv8si */
22447 :
22448 : default:
22449 : return -1;
22450 : }
22451 :
22452 : default:
22453 : return -1;
22454 : }
22455 :
22456 : case E_V8SFmode:
22457 : switch (pattern1733 (x2,
22458 : E_V8SFmode))
22459 : {
22460 : case 0:
22461 : switch (pattern1849 (
22462 : E_SImode))
22463 : {
22464 : case 0:
22465 : if (!(
22466 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22467 : (TARGET_AVX512F) && ((((
22468 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22469 : (TARGET_AVX512VL) &&
22470 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22471 : (Pmode == SImode)) &&
22472 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22473 : (Pmode == SImode)) &&
22474 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22475 : (TARGET_AVX512VL)) &&
22476 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22477 : (TARGET_AVX512VL))))
22478 : return -1;
22479 : return 9947; /* *avx512f_scattersiv8sf */
22480 :
22481 : case 1:
22482 : if (!(
22483 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22484 : (TARGET_AVX512F) && (((
22485 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22486 : (TARGET_AVX512VL) &&
22487 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22488 : (Pmode == SImode)) &&
22489 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22490 : (Pmode == SImode)) &&
22491 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22492 : (TARGET_AVX512VL))))
22493 : return -1;
22494 : return 9971; /* *avx512f_scatterdiv8sf */
22495 :
22496 : default:
22497 : return -1;
22498 : }
22499 :
22500 : case 1:
22501 : switch (pattern1849 (
22502 : E_DImode))
22503 : {
22504 : case 0:
22505 : if (!(
22506 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22507 : (TARGET_AVX512F) && ((((
22508 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22509 : (TARGET_AVX512VL) &&
22510 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22511 : (Pmode == DImode)) &&
22512 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22513 : (Pmode == DImode)) &&
22514 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22515 : (TARGET_AVX512VL)) &&
22516 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22517 : (TARGET_AVX512VL))))
22518 : return -1;
22519 : return 9959; /* *avx512f_scattersiv8sf */
22520 :
22521 : case 1:
22522 : if (!(
22523 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22524 : (TARGET_AVX512F) && (((
22525 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22526 : (TARGET_AVX512VL) &&
22527 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22528 : (Pmode == DImode)) &&
22529 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22530 : (Pmode == DImode)) &&
22531 : #line 989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22532 : (TARGET_AVX512VL))))
22533 : return -1;
22534 : return 9983; /* *avx512f_scatterdiv8sf */
22535 :
22536 : default:
22537 : return -1;
22538 : }
22539 :
22540 : default:
22541 : return -1;
22542 : }
22543 :
22544 : case E_V4DImode:
22545 : switch (pattern1735 (x2,
22546 : E_V4DImode))
22547 : {
22548 : case 0:
22549 : if (!(
22550 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22551 : (TARGET_AVX512F) && ((((
22552 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22553 : (TARGET_AVX512VL) &&
22554 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22555 : (Pmode == SImode)) &&
22556 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22557 : (Pmode == SImode)) &&
22558 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22559 : (TARGET_AVX512VL)) &&
22560 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22561 : (TARGET_AVX512VL))))
22562 : return -1;
22563 : return 9948; /* *avx512f_scattersiv4di */
22564 :
22565 : case 1:
22566 : if (!(
22567 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22568 : (TARGET_AVX512F) && (((
22569 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22570 : (TARGET_AVX512VL) &&
22571 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22572 : (Pmode == SImode)) &&
22573 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22574 : (Pmode == SImode)) &&
22575 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22576 : (TARGET_AVX512VL))))
22577 : return -1;
22578 : return 9972; /* *avx512f_scatterdiv4di */
22579 :
22580 : case 2:
22581 : if (!(
22582 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22583 : (TARGET_AVX512F) && ((((
22584 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22585 : (TARGET_AVX512VL) &&
22586 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22587 : (Pmode == DImode)) &&
22588 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22589 : (Pmode == DImode)) &&
22590 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22591 : (TARGET_AVX512VL)) &&
22592 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22593 : (TARGET_AVX512VL))))
22594 : return -1;
22595 : return 9960; /* *avx512f_scattersiv4di */
22596 :
22597 : case 3:
22598 : if (!(
22599 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22600 : (TARGET_AVX512F) && (((
22601 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22602 : (TARGET_AVX512VL) &&
22603 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22604 : (Pmode == DImode)) &&
22605 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22606 : (Pmode == DImode)) &&
22607 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22608 : (TARGET_AVX512VL))))
22609 : return -1;
22610 : return 9984; /* *avx512f_scatterdiv4di */
22611 :
22612 : default:
22613 : return -1;
22614 : }
22615 :
22616 : case E_V4DFmode:
22617 : switch (pattern1735 (x2,
22618 : E_V4DFmode))
22619 : {
22620 : case 0:
22621 : if (!(
22622 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22623 : (TARGET_AVX512F) && ((((
22624 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22625 : (TARGET_AVX512VL) &&
22626 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22627 : (Pmode == SImode)) &&
22628 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22629 : (Pmode == SImode)) &&
22630 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22631 : (TARGET_AVX512VL)) &&
22632 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22633 : (TARGET_AVX512VL))))
22634 : return -1;
22635 : return 9949; /* *avx512f_scattersiv4df */
22636 :
22637 : case 1:
22638 : if (!(
22639 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22640 : (TARGET_AVX512F) && (((
22641 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22642 : (TARGET_AVX512VL) &&
22643 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22644 : (Pmode == SImode)) &&
22645 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22646 : (Pmode == SImode)) &&
22647 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22648 : (TARGET_AVX512VL))))
22649 : return -1;
22650 : return 9973; /* *avx512f_scatterdiv4df */
22651 :
22652 : case 2:
22653 : if (!(
22654 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22655 : (TARGET_AVX512F) && ((((
22656 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22657 : (TARGET_AVX512VL) &&
22658 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22659 : (Pmode == DImode)) &&
22660 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22661 : (Pmode == DImode)) &&
22662 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22663 : (TARGET_AVX512VL)) &&
22664 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22665 : (TARGET_AVX512VL))))
22666 : return -1;
22667 : return 9961; /* *avx512f_scattersiv4df */
22668 :
22669 : case 3:
22670 : if (!(
22671 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22672 : (TARGET_AVX512F) && (((
22673 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22674 : (TARGET_AVX512VL) &&
22675 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22676 : (Pmode == DImode)) &&
22677 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22678 : (Pmode == DImode)) &&
22679 : #line 990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22680 : (TARGET_AVX512VL))))
22681 : return -1;
22682 : return 9985; /* *avx512f_scatterdiv4df */
22683 :
22684 : default:
22685 : return -1;
22686 : }
22687 :
22688 : case E_V4SImode:
22689 : switch (pattern1737 (x2,
22690 : E_V4SImode))
22691 : {
22692 : case 0:
22693 : if (!(
22694 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22695 : (TARGET_AVX512F) && ((((
22696 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22697 : (TARGET_AVX512VL) &&
22698 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22699 : (Pmode == SImode)) &&
22700 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22701 : (Pmode == SImode)) &&
22702 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22703 : (TARGET_AVX512VL)) &&
22704 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22705 : (TARGET_AVX512VL))))
22706 : return -1;
22707 : return 9950; /* *avx512f_scattersiv4si */
22708 :
22709 : case 1:
22710 : if (!(
22711 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22712 : (TARGET_AVX512F) && (((
22713 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22714 : (TARGET_AVX512VL) &&
22715 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22716 : (Pmode == SImode)) &&
22717 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22718 : (Pmode == SImode)) &&
22719 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22720 : (TARGET_AVX512VL))))
22721 : return -1;
22722 : return 9974; /* *avx512f_scatterdiv4si */
22723 :
22724 : case 2:
22725 : if (!(
22726 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22727 : (TARGET_AVX512F) && ((((
22728 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22729 : (TARGET_AVX512VL) &&
22730 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22731 : (Pmode == DImode)) &&
22732 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22733 : (Pmode == DImode)) &&
22734 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22735 : (TARGET_AVX512VL)) &&
22736 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22737 : (TARGET_AVX512VL))))
22738 : return -1;
22739 : return 9962; /* *avx512f_scattersiv4si */
22740 :
22741 : case 3:
22742 : if (!(
22743 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22744 : (TARGET_AVX512F) && (((
22745 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22746 : (TARGET_AVX512VL) &&
22747 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22748 : (Pmode == DImode)) &&
22749 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22750 : (Pmode == DImode)) &&
22751 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22752 : (TARGET_AVX512VL))))
22753 : return -1;
22754 : return 9986; /* *avx512f_scatterdiv4si */
22755 :
22756 : default:
22757 : return -1;
22758 : }
22759 :
22760 : case E_V4SFmode:
22761 : switch (pattern1737 (x2,
22762 : E_V4SFmode))
22763 : {
22764 : case 0:
22765 : if (!(
22766 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22767 : (TARGET_AVX512F) && ((((
22768 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22769 : (TARGET_AVX512VL) &&
22770 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22771 : (Pmode == SImode)) &&
22772 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22773 : (Pmode == SImode)) &&
22774 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22775 : (TARGET_AVX512VL)) &&
22776 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22777 : (TARGET_AVX512VL))))
22778 : return -1;
22779 : return 9951; /* *avx512f_scattersiv4sf */
22780 :
22781 : case 1:
22782 : if (!(
22783 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22784 : (TARGET_AVX512F) && (((
22785 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22786 : (TARGET_AVX512VL) &&
22787 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22788 : (Pmode == SImode)) &&
22789 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22790 : (Pmode == SImode)) &&
22791 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22792 : (TARGET_AVX512VL))))
22793 : return -1;
22794 : return 9975; /* *avx512f_scatterdiv4sf */
22795 :
22796 : case 2:
22797 : if (!(
22798 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22799 : (TARGET_AVX512F) && ((((
22800 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22801 : (TARGET_AVX512VL) &&
22802 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22803 : (Pmode == DImode)) &&
22804 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22805 : (Pmode == DImode)) &&
22806 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22807 : (TARGET_AVX512VL)) &&
22808 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22809 : (TARGET_AVX512VL))))
22810 : return -1;
22811 : return 9963; /* *avx512f_scattersiv4sf */
22812 :
22813 : case 3:
22814 : if (!(
22815 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22816 : (TARGET_AVX512F) && (((
22817 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22818 : (TARGET_AVX512VL) &&
22819 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22820 : (Pmode == DImode)) &&
22821 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22822 : (Pmode == DImode)) &&
22823 : #line 991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22824 : (TARGET_AVX512VL))))
22825 : return -1;
22826 : return 9987; /* *avx512f_scatterdiv4sf */
22827 :
22828 : default:
22829 : return -1;
22830 : }
22831 :
22832 : case E_V2DImode:
22833 : switch (pattern1737 (x2,
22834 : E_V2DImode))
22835 : {
22836 : case 0:
22837 : if (!(
22838 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22839 : (TARGET_AVX512F) && ((((
22840 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22841 : (TARGET_AVX512VL) &&
22842 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22843 : (Pmode == SImode)) &&
22844 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22845 : (Pmode == SImode)) &&
22846 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22847 : (TARGET_AVX512VL)) &&
22848 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22849 : (TARGET_AVX512VL))))
22850 : return -1;
22851 : return 9952; /* *avx512f_scattersiv2di */
22852 :
22853 : case 1:
22854 : if (!(
22855 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22856 : (TARGET_AVX512F) && (((
22857 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22858 : (TARGET_AVX512VL) &&
22859 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22860 : (Pmode == SImode)) &&
22861 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22862 : (Pmode == SImode)) &&
22863 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22864 : (TARGET_AVX512VL))))
22865 : return -1;
22866 : return 9976; /* *avx512f_scatterdiv2di */
22867 :
22868 : case 2:
22869 : if (!(
22870 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22871 : (TARGET_AVX512F) && ((((
22872 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22873 : (TARGET_AVX512VL) &&
22874 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22875 : (Pmode == DImode)) &&
22876 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22877 : (Pmode == DImode)) &&
22878 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22879 : (TARGET_AVX512VL)) &&
22880 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22881 : (TARGET_AVX512VL))))
22882 : return -1;
22883 : return 9964; /* *avx512f_scattersiv2di */
22884 :
22885 : case 3:
22886 : if (!(
22887 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22888 : (TARGET_AVX512F) && (((
22889 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22890 : (TARGET_AVX512VL) &&
22891 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22892 : (Pmode == DImode)) &&
22893 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22894 : (Pmode == DImode)) &&
22895 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22896 : (TARGET_AVX512VL))))
22897 : return -1;
22898 : return 9988; /* *avx512f_scatterdiv2di */
22899 :
22900 : default:
22901 : return -1;
22902 : }
22903 :
22904 : case E_V2DFmode:
22905 : switch (pattern1737 (x2,
22906 : E_V2DFmode))
22907 : {
22908 : case 0:
22909 : if (!(
22910 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22911 : (TARGET_AVX512F) && ((((
22912 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22913 : (TARGET_AVX512VL) &&
22914 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22915 : (Pmode == SImode)) &&
22916 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22917 : (Pmode == SImode)) &&
22918 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22919 : (TARGET_AVX512VL)) &&
22920 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22921 : (TARGET_AVX512VL))))
22922 : return -1;
22923 : return 9953; /* *avx512f_scattersiv2df */
22924 :
22925 : case 1:
22926 : if (!(
22927 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22928 : (TARGET_AVX512F) && (((
22929 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22930 : (TARGET_AVX512VL) &&
22931 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22932 : (Pmode == SImode)) &&
22933 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22934 : (Pmode == SImode)) &&
22935 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22936 : (TARGET_AVX512VL))))
22937 : return -1;
22938 : return 9977; /* *avx512f_scatterdiv2df */
22939 :
22940 : case 2:
22941 : if (!(
22942 : #line 30646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22943 : (TARGET_AVX512F) && ((((
22944 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22945 : (TARGET_AVX512VL) &&
22946 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22947 : (Pmode == DImode)) &&
22948 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22949 : (Pmode == DImode)) &&
22950 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22951 : (TARGET_AVX512VL)) &&
22952 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22953 : (TARGET_AVX512VL))))
22954 : return -1;
22955 : return 9965; /* *avx512f_scattersiv2df */
22956 :
22957 : case 3:
22958 : if (!(
22959 : #line 30686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22960 : (TARGET_AVX512F) && (((
22961 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22962 : (TARGET_AVX512VL) &&
22963 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22964 : (Pmode == DImode)) &&
22965 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22966 : (Pmode == DImode)) &&
22967 : #line 992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22968 : (TARGET_AVX512VL))))
22969 : return -1;
22970 : return 9989; /* *avx512f_scatterdiv2df */
22971 :
22972 : default:
22973 : return -1;
22974 : }
22975 :
22976 : default:
22977 : return -1;
22978 : }
22979 :
22980 : default:
22981 : return -1;
22982 : }
22983 : }
22984 :
22985 : int
22986 : recog_406 (rtx x1 ATTRIBUTE_UNUSED,
22987 : rtx_insn *insn ATTRIBUTE_UNUSED,
22988 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22989 : {
22990 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22991 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22992 : rtx x10;
22993 : int res ATTRIBUTE_UNUSED;
22994 : x2 = XVECEXP (x1, 0, 0);
22995 : x3 = XEXP (x2, 0);
22996 : operands[0] = x3;
22997 : x4 = XEXP (x2, 1);
22998 : x5 = XEXP (x4, 0);
22999 : switch (GET_CODE (x5))
23000 : {
23001 : case REG:
23002 : case SUBREG:
23003 : case MEM:
23004 : x6 = XVECEXP (x1, 0, 1);
23005 : switch (GET_CODE (x6))
23006 : {
23007 : case CLOBBER:
23008 : x7 = XEXP (x6, 0);
23009 : if (GET_CODE (x7) != REG
23010 : || REGNO (x7) != 17
23011 : || GET_MODE (x7) != E_CCmode)
23012 : return -1;
23013 : operands[1] = x5;
23014 : x8 = XEXP (x4, 1);
23015 : operands[2] = x8;
23016 : switch (GET_MODE (operands[0]))
23017 : {
23018 : case E_HImode:
23019 : if (!register_operand (operands[0], E_HImode)
23020 : || GET_MODE (x4) != E_HImode
23021 : || !nonimmediate_operand (operands[1], E_HImode)
23022 : || !general_operand (operands[2], E_HImode)
23023 : || !(
23024 : #line 11360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23025 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23026 : && true) &&
23027 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23028 : (TARGET_HIMODE_MATH)))
23029 : return -1;
23030 : return 619; /* *mulhi3_1 */
23031 :
23032 : case E_SImode:
23033 : if (pattern1336 (x4,
23034 : E_SImode) != 0
23035 : || !
23036 : #line 11360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23037 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23038 : && true))
23039 : return -1;
23040 : return 621; /* *mulsi3_1 */
23041 :
23042 : case E_DImode:
23043 : if (pattern1336 (x4,
23044 : E_DImode) != 0
23045 : || !(
23046 : #line 11360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23047 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23048 : && true) &&
23049 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23050 : (TARGET_64BIT)))
23051 : return -1;
23052 : return 623; /* *muldi3_1 */
23053 :
23054 : case E_QImode:
23055 : if (pattern214 (x4,
23056 : E_QImode) != 0
23057 : || !
23058 : #line 11457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23059 : (TARGET_QIMODE_MATH
23060 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23061 : && true))
23062 : return -1;
23063 : return 631; /* *mulqi3_1 */
23064 :
23065 : default:
23066 : return -1;
23067 : }
23068 :
23069 : case SET:
23070 : x9 = XEXP (x6, 1);
23071 : if (GET_CODE (x9) != UMUL_HIGHPART)
23072 : return -1;
23073 : switch (pattern596 (x1))
23074 : {
23075 : case 0:
23076 : if (!(
23077 : #line 11731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23078 : (TARGET_BMI2) &&
23079 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23080 : (!TARGET_64BIT)))
23081 : return -1;
23082 : return 643; /* *bmi2_umulsidi3_1 */
23083 :
23084 : case 1:
23085 : if (!(
23086 : #line 11731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23087 : (TARGET_BMI2) &&
23088 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23089 : (TARGET_64BIT)))
23090 : return -1;
23091 : return 644; /* *bmi2_umulditi3_1 */
23092 :
23093 : default:
23094 : return -1;
23095 : }
23096 :
23097 : case UNSPEC:
23098 : if (XVECLEN (x6, 0) != 1
23099 : || XINT (x6, 1) != 111)
23100 : return -1;
23101 : x10 = XVECEXP (x6, 0, 0);
23102 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
23103 : || !register_operand (operands[0], E_V2SFmode)
23104 : || GET_MODE (x4) != E_V2SFmode)
23105 : return -1;
23106 : operands[1] = x5;
23107 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
23108 : return -1;
23109 : x8 = XEXP (x4, 1);
23110 : operands[2] = x8;
23111 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
23112 : || !
23113 : #line 819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23114 : (TARGET_3DNOW && ix86_binary_operator_ok (MULT, V2SFmode, operands)))
23115 : return -1;
23116 : return 2108; /* *mmx_mulv2sf3 */
23117 :
23118 : default:
23119 : return -1;
23120 : }
23121 :
23122 : case ZERO_EXTEND:
23123 : switch (pattern567 (x1,
23124 : ZERO_EXTEND))
23125 : {
23126 : case 0:
23127 : if (!(
23128 : #line 11770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23129 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23130 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23131 : (!TARGET_64BIT)))
23132 : return -1;
23133 : return 645; /* *umulsidi3_1 */
23134 :
23135 : case 1:
23136 : if (!(
23137 : #line 11770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23138 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
23139 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23140 : (TARGET_64BIT)))
23141 : return -1;
23142 : return 646; /* *umulditi3_1 */
23143 :
23144 : case 2:
23145 : if (!
23146 : #line 11836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23147 : (TARGET_QIMODE_MATH
23148 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23149 : && true))
23150 : return -1;
23151 : return 654; /* *umulqihi3_1 */
23152 :
23153 : default:
23154 : return -1;
23155 : }
23156 :
23157 : case SIGN_EXTEND:
23158 : switch (pattern567 (x1,
23159 : SIGN_EXTEND))
23160 : {
23161 : case 0:
23162 : if (!(
23163 : #line 11816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23164 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23165 : && true) &&
23166 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23167 : (!TARGET_64BIT)))
23168 : return -1;
23169 : return 648; /* *mulsidi3_1 */
23170 :
23171 : case 1:
23172 : if (!(
23173 : #line 1230 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23174 : (TARGET_64BIT) && (
23175 : #line 11816 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23176 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
23177 : && true) &&
23178 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23179 : (TARGET_64BIT))))
23180 : return -1;
23181 : return 650; /* *mulditi3_1 */
23182 :
23183 : case 2:
23184 : if (!
23185 : #line 11836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23186 : (TARGET_QIMODE_MATH
23187 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
23188 : && true))
23189 : return -1;
23190 : return 652; /* *mulqihi3_1 */
23191 :
23192 : default:
23193 : return -1;
23194 : }
23195 :
23196 : default:
23197 : return -1;
23198 : }
23199 : }
23200 :
23201 : int
23202 : recog_413 (rtx x1 ATTRIBUTE_UNUSED,
23203 : rtx_insn *insn ATTRIBUTE_UNUSED,
23204 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23205 : {
23206 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23207 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23208 : rtx x10, x11, x12, x13;
23209 : int res ATTRIBUTE_UNUSED;
23210 : x2 = XVECEXP (x1, 0, 0);
23211 : x3 = XEXP (x2, 1);
23212 : x4 = XEXP (x3, 0);
23213 : switch (GET_CODE (x4))
23214 : {
23215 : case REG:
23216 : case SUBREG:
23217 : case MEM:
23218 : operands[1] = x4;
23219 : switch (pattern574 (x1))
23220 : {
23221 : case 0:
23222 : if (
23223 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23224 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23225 : return 755; /* *xorqi_1_slp */
23226 : break;
23227 :
23228 : case 1:
23229 : if (
23230 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23231 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23232 : return 758; /* *xorhi_1_slp */
23233 : break;
23234 :
23235 : case 2:
23236 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
23237 : && (
23238 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23239 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
23240 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23241 : (!TARGET_64BIT)))
23242 : return 848; /* *xordi3_doubleword */
23243 : if (x86_64_general_operand (operands[2], E_DImode)
23244 : && (
23245 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23246 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)
23247 : && true) &&
23248 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23249 : (TARGET_64BIT)))
23250 : return 862; /* *xordi_1 */
23251 : if (const_int_operand (operands[2], E_DImode)
23252 : &&
23253 : #line 14478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23254 : (TARGET_64BIT && TARGET_USE_BT
23255 : && ix86_binary_operator_ok (XOR, DImode, operands)
23256 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
23257 : return 867; /* *xordi_1_btc */
23258 : break;
23259 :
23260 : case 3:
23261 : if ((
23262 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23263 : (ix86_binary_operator_ok (XOR, TImode, operands, TARGET_APX_NDD)) &&
23264 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23265 : (TARGET_64BIT)))
23266 : return 850; /* *xorti3_doubleword */
23267 : break;
23268 :
23269 : case 4:
23270 : if (
23271 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23272 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)
23273 : && true))
23274 : return 854; /* *xorhi_1 */
23275 : break;
23276 :
23277 : case 5:
23278 : if (
23279 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23280 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)
23281 : && true))
23282 : return 858; /* *xorsi_1 */
23283 : break;
23284 :
23285 : case 6:
23286 : if (
23287 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23288 : (ix86_binary_operator_ok (XOR, V4QImode, operands)))
23289 : return 2339; /* *xorv4qi3 */
23290 : break;
23291 :
23292 : case 7:
23293 : if (
23294 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23295 : (ix86_binary_operator_ok (XOR, V2QImode, operands)))
23296 : return 2342; /* *xorv2qi3 */
23297 : break;
23298 :
23299 : case 8:
23300 : if (
23301 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23302 : (ix86_binary_operator_ok (XOR, V2HImode, operands)))
23303 : return 2345; /* *xorv2hi3 */
23304 : break;
23305 :
23306 : case 9:
23307 : if (
23308 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23309 : (TARGET_AVX512F))
23310 : return 2643; /* kxorqi */
23311 : break;
23312 :
23313 : case 10:
23314 : if (
23315 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23316 : (TARGET_AVX512F))
23317 : return 2646; /* kxorhi */
23318 : break;
23319 :
23320 : case 11:
23321 : if ((
23322 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23323 : (TARGET_AVX512F) &&
23324 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23325 : (TARGET_AVX512BW)))
23326 : return 2649; /* kxorsi */
23327 : break;
23328 :
23329 : case 12:
23330 : if ((
23331 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23332 : (TARGET_AVX512F) &&
23333 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23334 : (TARGET_AVX512BW)))
23335 : return 2652; /* kxordi */
23336 : break;
23337 :
23338 : default:
23339 : break;
23340 : }
23341 : x5 = XVECEXP (x1, 0, 1);
23342 : if (GET_CODE (x5) != CLOBBER
23343 : || pattern575 (x1) != 0)
23344 : return -1;
23345 : if (GET_CODE (x4) == SUBREG
23346 : && known_eq (SUBREG_BYTE (x4), 0)
23347 : && GET_MODE (x4) == E_QImode)
23348 : {
23349 : res = recog_412 (x1, insn, pnum_clobbers);
23350 : if (res >= 0)
23351 : return res;
23352 : }
23353 : x6 = XEXP (x2, 0);
23354 : operands[0] = x6;
23355 : if (!nonimmediate_operand (operands[0], E_QImode))
23356 : return -1;
23357 : operands[1] = x4;
23358 : if (!nonimmediate_operand (operands[1], E_QImode))
23359 : return -1;
23360 : x7 = XEXP (x3, 1);
23361 : operands[2] = x7;
23362 : if (!general_operand (operands[2], E_QImode)
23363 : || !
23364 : #line 14619 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23365 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)
23366 : && true))
23367 : return -1;
23368 : return 898; /* *xorqi_1 */
23369 :
23370 : case AND:
23371 : x8 = XEXP (x4, 0);
23372 : if (GET_CODE (x8) != XOR)
23373 : return -1;
23374 : x5 = XVECEXP (x1, 0, 1);
23375 : if (pattern357 (x5) != 0)
23376 : return -1;
23377 : switch (pattern1063 (x2))
23378 : {
23379 : case 0:
23380 : if (!
23381 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23382 : (TARGET_BMI && ix86_pre_reload_split ()))
23383 : return -1;
23384 : return 868; /* *xor2andn */
23385 :
23386 : case 1:
23387 : if (!
23388 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23389 : (TARGET_BMI && ix86_pre_reload_split ()))
23390 : return -1;
23391 : return 869; /* *xor2andn */
23392 :
23393 : case 2:
23394 : if (!(
23395 : #line 14508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23396 : (TARGET_BMI && ix86_pre_reload_split ()) &&
23397 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23398 : (TARGET_64BIT)))
23399 : return -1;
23400 : return 870; /* *xor2andn */
23401 :
23402 : default:
23403 : return -1;
23404 : }
23405 :
23406 : case ZERO_EXTEND:
23407 : if (GET_MODE (x4) != E_DImode
23408 : || pattern576 (x1) != 0)
23409 : return -1;
23410 : x8 = XEXP (x4, 0);
23411 : switch (GET_CODE (x8))
23412 : {
23413 : case REG:
23414 : case SUBREG:
23415 : case MEM:
23416 : operands[1] = x8;
23417 : if (!nonimmediate_operand (operands[1], E_SImode))
23418 : return -1;
23419 : x7 = XEXP (x3, 1);
23420 : operands[2] = x7;
23421 : if (!x86_64_zext_immediate_operand (operands[2], E_DImode)
23422 : || !
23423 : #line 14601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23424 : (TARGET_64BIT
23425 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
23426 : return -1;
23427 : return 894; /* *xorsi_1_zext_imm */
23428 :
23429 : case MINUS:
23430 : if (GET_MODE (x8) != E_SImode)
23431 : return -1;
23432 : x9 = XEXP (x8, 0);
23433 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
23434 : return -1;
23435 : x10 = XEXP (x8, 1);
23436 : if (GET_CODE (x10) != SUBREG
23437 : || maybe_ne (SUBREG_BYTE (x10), 0)
23438 : || GET_MODE (x10) != E_SImode)
23439 : return -1;
23440 : x11 = XEXP (x10, 0);
23441 : if (GET_CODE (x11) != CLZ
23442 : || GET_MODE (x11) != E_DImode)
23443 : return -1;
23444 : x7 = XEXP (x3, 1);
23445 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
23446 : return -1;
23447 : x12 = XEXP (x11, 0);
23448 : operands[1] = x12;
23449 : if (!nonimmediate_operand (operands[1], E_DImode)
23450 : || !
23451 : #line 22333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23452 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
23453 : return -1;
23454 : return 1561; /* *bsr_rex64u_2 */
23455 :
23456 : default:
23457 : return -1;
23458 : }
23459 :
23460 : case ASHIFT:
23461 : switch (pattern376 (x1,
23462 : 1))
23463 : {
23464 : case 0:
23465 : x13 = XEXP (x4, 1);
23466 : operands[2] = x13;
23467 : if (register_operand (operands[2], E_QImode))
23468 : {
23469 : switch (pattern951 (x3))
23470 : {
23471 : case 0:
23472 : if (
23473 : #line 19763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23474 : (TARGET_USE_BT))
23475 : return 1424; /* *btcsi */
23476 : break;
23477 :
23478 : case 1:
23479 : if ((
23480 : #line 19763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23481 : (TARGET_USE_BT) &&
23482 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23483 : (TARGET_64BIT)))
23484 : return 1426; /* *btcdi */
23485 : break;
23486 :
23487 : default:
23488 : break;
23489 : }
23490 : }
23491 : if (GET_CODE (x13) != SUBREG)
23492 : return -1;
23493 : switch (pattern1339 (x3))
23494 : {
23495 : case 0:
23496 : if (!
23497 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23498 : (TARGET_USE_BT
23499 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
23500 : == GET_MODE_BITSIZE (SImode)-1
23501 : && ix86_pre_reload_split ()))
23502 : return -1;
23503 : return 1428; /* *btcsi_mask */
23504 :
23505 : case 1:
23506 : if (!(
23507 : #line 19783 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23508 : (TARGET_USE_BT
23509 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
23510 : == GET_MODE_BITSIZE (DImode)-1
23511 : && ix86_pre_reload_split ()) &&
23512 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23513 : (TARGET_64BIT)))
23514 : return -1;
23515 : return 1430; /* *btcdi_mask */
23516 :
23517 : default:
23518 : return -1;
23519 : }
23520 :
23521 : case 1:
23522 : if (!
23523 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23524 : (TARGET_USE_BT
23525 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
23526 : == GET_MODE_BITSIZE (SImode)-1
23527 : && ix86_pre_reload_split ()))
23528 : return -1;
23529 : return 1432; /* *btcsi_mask_1 */
23530 :
23531 : case 2:
23532 : if (!(
23533 : #line 19811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23534 : (TARGET_USE_BT
23535 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
23536 : == GET_MODE_BITSIZE (DImode)-1
23537 : && ix86_pre_reload_split ()) &&
23538 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23539 : (TARGET_64BIT)))
23540 : return -1;
23541 : return 1434; /* *btcdi_mask_1 */
23542 :
23543 : default:
23544 : return -1;
23545 : }
23546 :
23547 : case SIGN_EXTEND:
23548 : if (GET_MODE (x4) != E_DImode)
23549 : return -1;
23550 : x8 = XEXP (x4, 0);
23551 : if (GET_CODE (x8) != MINUS
23552 : || GET_MODE (x8) != E_SImode)
23553 : return -1;
23554 : x9 = XEXP (x8, 0);
23555 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
23556 : return -1;
23557 : x10 = XEXP (x8, 1);
23558 : if (GET_CODE (x10) != SUBREG
23559 : || maybe_ne (SUBREG_BYTE (x10), 0)
23560 : || GET_MODE (x10) != E_SImode)
23561 : return -1;
23562 : x11 = XEXP (x10, 0);
23563 : if (GET_CODE (x11) != CLZ
23564 : || GET_MODE (x11) != E_DImode)
23565 : return -1;
23566 : x7 = XEXP (x3, 1);
23567 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
23568 : return -1;
23569 : x5 = XVECEXP (x1, 0, 1);
23570 : if (pattern237 (x5,
23571 : E_CCmode,
23572 : 17) != 0)
23573 : return -1;
23574 : x6 = XEXP (x2, 0);
23575 : operands[0] = x6;
23576 : if (!register_operand (operands[0], E_DImode)
23577 : || GET_MODE (x3) != E_DImode)
23578 : return -1;
23579 : x12 = XEXP (x11, 0);
23580 : operands[1] = x12;
23581 : if (!nonimmediate_operand (operands[1], E_DImode)
23582 : || !
23583 : #line 22333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23584 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
23585 : return -1;
23586 : return 1560; /* *bsr_rex64_2 */
23587 :
23588 : case PLUS:
23589 : x13 = XEXP (x4, 1);
23590 : if (GET_CODE (x13) != CONST_INT
23591 : || pattern351 (x1) != 0)
23592 : return -1;
23593 : x7 = XEXP (x3, 1);
23594 : if (!rtx_equal_p (x7, operands[1]))
23595 : return -1;
23596 : switch (XWINT (x13, 0))
23597 : {
23598 : case -1L:
23599 : switch (GET_MODE (operands[0]))
23600 : {
23601 : case E_SImode:
23602 : if (pattern939 (x3,
23603 : E_SImode) != 0
23604 : || !
23605 : #line 22889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23606 : (TARGET_BMI))
23607 : return -1;
23608 : return 1610; /* *bmi_blsmsk_si */
23609 :
23610 : case E_DImode:
23611 : if (pattern939 (x3,
23612 : E_DImode) != 0
23613 : || !(
23614 : #line 22889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23615 : (TARGET_BMI) &&
23616 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23617 : (TARGET_64BIT)))
23618 : return -1;
23619 : return 1611; /* *bmi_blsmsk_di */
23620 :
23621 : default:
23622 : return -1;
23623 : }
23624 :
23625 : case 1L:
23626 : switch (GET_MODE (operands[0]))
23627 : {
23628 : case E_SImode:
23629 : if (pattern939 (x3,
23630 : E_SImode) != 0
23631 : || !
23632 : #line 23235 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23633 : (TARGET_TBM))
23634 : return -1;
23635 : return 1644; /* *tbm_blcmsk_si */
23636 :
23637 : case E_DImode:
23638 : if (pattern939 (x3,
23639 : E_DImode) != 0
23640 : || !(
23641 : #line 23235 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23642 : (TARGET_TBM) &&
23643 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23644 : (TARGET_64BIT)))
23645 : return -1;
23646 : return 1645; /* *tbm_blcmsk_di */
23647 :
23648 : default:
23649 : return -1;
23650 : }
23651 :
23652 : default:
23653 : return -1;
23654 : }
23655 :
23656 : default:
23657 : return -1;
23658 : }
23659 : }
23660 :
23661 : int
23662 : recog_425 (rtx x1 ATTRIBUTE_UNUSED,
23663 : rtx_insn *insn ATTRIBUTE_UNUSED,
23664 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23665 : {
23666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23667 : rtx x2, x3, x4, x5, x6, x7;
23668 : int res ATTRIBUTE_UNUSED;
23669 : x2 = XVECEXP (x1, 0, 0);
23670 : x3 = XEXP (x2, 1);
23671 : x4 = XEXP (x3, 0);
23672 : if (GET_CODE (x4) != ZERO_EXTEND)
23673 : return -1;
23674 : x5 = XVECEXP (x1, 0, 1);
23675 : if (pattern386 (x5,
23676 : 175,
23677 : 0) != 0)
23678 : return -1;
23679 : x6 = XEXP (x2, 0);
23680 : operands[0] = x6;
23681 : x7 = XEXP (x4, 0);
23682 : operands[1] = x7;
23683 : switch (GET_MODE (operands[0]))
23684 : {
23685 : case E_V8DImode:
23686 : if (pattern1260 (x3,
23687 : E_V8DImode,
23688 : E_QImode,
23689 : E_DImode) != 0
23690 : || !
23691 : #line 29059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23692 : (TARGET_AVX512CD))
23693 : return -1;
23694 : return 9450; /* avx512cd_maskb_vec_dupv8di */
23695 :
23696 : case E_V4DImode:
23697 : if (pattern1260 (x3,
23698 : E_V4DImode,
23699 : E_QImode,
23700 : E_DImode) != 0
23701 : || !(
23702 : #line 29059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23703 : (TARGET_AVX512CD) &&
23704 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23705 : (TARGET_AVX512VL)))
23706 : return -1;
23707 : return 9451; /* avx512cd_maskb_vec_dupv4di */
23708 :
23709 : case E_V2DImode:
23710 : if (pattern1260 (x3,
23711 : E_V2DImode,
23712 : E_QImode,
23713 : E_DImode) != 0
23714 : || !(
23715 : #line 29059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23716 : (TARGET_AVX512CD) &&
23717 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23718 : (TARGET_AVX512VL)))
23719 : return -1;
23720 : return 9452; /* avx512cd_maskb_vec_dupv2di */
23721 :
23722 : case E_V16SImode:
23723 : if (pattern1260 (x3,
23724 : E_V16SImode,
23725 : E_HImode,
23726 : E_SImode) != 0
23727 : || !
23728 : #line 29071 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23729 : (TARGET_AVX512CD))
23730 : return -1;
23731 : return 9453; /* avx512cd_maskw_vec_dupv16si */
23732 :
23733 : case E_V8SImode:
23734 : if (pattern1260 (x3,
23735 : E_V8SImode,
23736 : E_HImode,
23737 : E_SImode) != 0
23738 : || !(
23739 : #line 29071 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23740 : (TARGET_AVX512CD) &&
23741 : #line 664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23742 : (TARGET_AVX512VL)))
23743 : return -1;
23744 : return 9454; /* avx512cd_maskw_vec_dupv8si */
23745 :
23746 : case E_V4SImode:
23747 : if (pattern1260 (x3,
23748 : E_V4SImode,
23749 : E_HImode,
23750 : E_SImode) != 0
23751 : || !(
23752 : #line 29071 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23753 : (TARGET_AVX512CD) &&
23754 : #line 664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23755 : (TARGET_AVX512VL)))
23756 : return -1;
23757 : return 9455; /* avx512cd_maskw_vec_dupv4si */
23758 :
23759 : default:
23760 : return -1;
23761 : }
23762 : }
23763 :
23764 : int
23765 : recog_427 (rtx x1 ATTRIBUTE_UNUSED,
23766 : rtx_insn *insn ATTRIBUTE_UNUSED,
23767 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23768 : {
23769 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23770 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23771 : int res ATTRIBUTE_UNUSED;
23772 : x2 = XVECEXP (x1, 0, 0);
23773 : x3 = XEXP (x2, 0);
23774 : operands[0] = x3;
23775 : x4 = XEXP (x2, 1);
23776 : operands[1] = x4;
23777 : x5 = XVECEXP (x1, 0, 1);
23778 : x6 = XVECEXP (x5, 0, 0);
23779 : operands[2] = x6;
23780 : switch (GET_MODE (operands[0]))
23781 : {
23782 : case E_V64QImode:
23783 : if (register_operand (operands[0], E_V64QImode)
23784 : && int_float_vector_all_ones_operand (operands[1], E_V64QImode)
23785 : && register_operand (operands[2], E_V64QImode)
23786 : && (
23787 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23788 : (TARGET_AVX512VL || 64 == 64) &&
23789 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23790 : (TARGET_AVX512F)))
23791 : return 2476; /* *vmovv64qi_constm1_pternlog_false_dep */
23792 : break;
23793 :
23794 : case E_V32QImode:
23795 : if (register_operand (operands[0], E_V32QImode)
23796 : && int_float_vector_all_ones_operand (operands[1], E_V32QImode)
23797 : && register_operand (operands[2], E_V32QImode)
23798 : && (
23799 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23800 : (TARGET_AVX512VL || 32 == 64) &&
23801 : #line 287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23802 : (TARGET_AVX)))
23803 : return 2477; /* *vmovv32qi_constm1_pternlog_false_dep */
23804 : break;
23805 :
23806 : case E_V16QImode:
23807 : if (register_operand (operands[0], E_V16QImode)
23808 : && int_float_vector_all_ones_operand (operands[1], E_V16QImode)
23809 : && register_operand (operands[2], E_V16QImode)
23810 : &&
23811 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23812 : (TARGET_AVX512VL || 16 == 64))
23813 : return 2478; /* *vmovv16qi_constm1_pternlog_false_dep */
23814 : break;
23815 :
23816 : case E_V32HImode:
23817 : if (register_operand (operands[0], E_V32HImode)
23818 : && int_float_vector_all_ones_operand (operands[1], E_V32HImode)
23819 : && register_operand (operands[2], E_V32HImode)
23820 : && (
23821 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23822 : (TARGET_AVX512VL || 64 == 64) &&
23823 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23824 : (TARGET_AVX512F)))
23825 : return 2479; /* *vmovv32hi_constm1_pternlog_false_dep */
23826 : break;
23827 :
23828 : case E_V16HImode:
23829 : if (register_operand (operands[0], E_V16HImode)
23830 : && int_float_vector_all_ones_operand (operands[1], E_V16HImode)
23831 : && register_operand (operands[2], E_V16HImode)
23832 : && (
23833 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23834 : (TARGET_AVX512VL || 32 == 64) &&
23835 : #line 288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23836 : (TARGET_AVX)))
23837 : return 2480; /* *vmovv16hi_constm1_pternlog_false_dep */
23838 : break;
23839 :
23840 : case E_V8HImode:
23841 : if (register_operand (operands[0], E_V8HImode)
23842 : && int_float_vector_all_ones_operand (operands[1], E_V8HImode)
23843 : && register_operand (operands[2], E_V8HImode)
23844 : &&
23845 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23846 : (TARGET_AVX512VL || 16 == 64))
23847 : return 2481; /* *vmovv8hi_constm1_pternlog_false_dep */
23848 : break;
23849 :
23850 : case E_V16SImode:
23851 : if (register_operand (operands[0], E_V16SImode)
23852 : && int_float_vector_all_ones_operand (operands[1], E_V16SImode)
23853 : && register_operand (operands[2], E_V16SImode)
23854 : && (
23855 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23856 : (TARGET_AVX512VL || 64 == 64) &&
23857 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23858 : (TARGET_AVX512F)))
23859 : return 2482; /* *vmovv16si_constm1_pternlog_false_dep */
23860 : break;
23861 :
23862 : case E_V8SImode:
23863 : if (register_operand (operands[0], E_V8SImode)
23864 : && int_float_vector_all_ones_operand (operands[1], E_V8SImode)
23865 : && register_operand (operands[2], E_V8SImode)
23866 : && (
23867 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23868 : (TARGET_AVX512VL || 32 == 64) &&
23869 : #line 289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23870 : (TARGET_AVX)))
23871 : return 2483; /* *vmovv8si_constm1_pternlog_false_dep */
23872 : break;
23873 :
23874 : case E_V4SImode:
23875 : if (register_operand (operands[0], E_V4SImode)
23876 : && int_float_vector_all_ones_operand (operands[1], E_V4SImode)
23877 : && register_operand (operands[2], E_V4SImode)
23878 : &&
23879 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23880 : (TARGET_AVX512VL || 16 == 64))
23881 : return 2484; /* *vmovv4si_constm1_pternlog_false_dep */
23882 : break;
23883 :
23884 : case E_V8DImode:
23885 : if (register_operand (operands[0], E_V8DImode)
23886 : && int_float_vector_all_ones_operand (operands[1], E_V8DImode)
23887 : && register_operand (operands[2], E_V8DImode)
23888 : && (
23889 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23890 : (TARGET_AVX512VL || 64 == 64) &&
23891 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23892 : (TARGET_AVX512F)))
23893 : return 2485; /* *vmovv8di_constm1_pternlog_false_dep */
23894 : break;
23895 :
23896 : case E_V4DImode:
23897 : if (register_operand (operands[0], E_V4DImode)
23898 : && int_float_vector_all_ones_operand (operands[1], E_V4DImode)
23899 : && register_operand (operands[2], E_V4DImode)
23900 : && (
23901 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23902 : (TARGET_AVX512VL || 32 == 64) &&
23903 : #line 290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23904 : (TARGET_AVX)))
23905 : return 2486; /* *vmovv4di_constm1_pternlog_false_dep */
23906 : break;
23907 :
23908 : case E_V2DImode:
23909 : if (register_operand (operands[0], E_V2DImode)
23910 : && int_float_vector_all_ones_operand (operands[1], E_V2DImode)
23911 : && register_operand (operands[2], E_V2DImode)
23912 : &&
23913 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23914 : (TARGET_AVX512VL || 16 == 64))
23915 : return 2487; /* *vmovv2di_constm1_pternlog_false_dep */
23916 : break;
23917 :
23918 : case E_V4TImode:
23919 : if (register_operand (operands[0], E_V4TImode)
23920 : && int_float_vector_all_ones_operand (operands[1], E_V4TImode)
23921 : && register_operand (operands[2], E_V4TImode)
23922 : && (
23923 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23924 : (TARGET_AVX512VL || 64 == 64) &&
23925 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23926 : (TARGET_AVX512F)))
23927 : return 2488; /* *vmovv4ti_constm1_pternlog_false_dep */
23928 : break;
23929 :
23930 : case E_V2TImode:
23931 : if (register_operand (operands[0], E_V2TImode)
23932 : && int_float_vector_all_ones_operand (operands[1], E_V2TImode)
23933 : && register_operand (operands[2], E_V2TImode)
23934 : && (
23935 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23936 : (TARGET_AVX512VL || 32 == 64) &&
23937 : #line 291 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23938 : (TARGET_AVX)))
23939 : return 2489; /* *vmovv2ti_constm1_pternlog_false_dep */
23940 : break;
23941 :
23942 : case E_V1TImode:
23943 : if (register_operand (operands[0], E_V1TImode)
23944 : && int_float_vector_all_ones_operand (operands[1], E_V1TImode)
23945 : && register_operand (operands[2], E_V1TImode)
23946 : &&
23947 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23948 : (TARGET_AVX512VL || 16 == 64))
23949 : return 2490; /* *vmovv1ti_constm1_pternlog_false_dep */
23950 : break;
23951 :
23952 : case E_V32HFmode:
23953 : if (register_operand (operands[0], E_V32HFmode)
23954 : && int_float_vector_all_ones_operand (operands[1], E_V32HFmode)
23955 : && register_operand (operands[2], E_V32HFmode)
23956 : && (
23957 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23958 : (TARGET_AVX512VL || 64 == 64) &&
23959 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23960 : (TARGET_AVX512F)))
23961 : return 2491; /* *vmovv32hf_constm1_pternlog_false_dep */
23962 : break;
23963 :
23964 : case E_V16HFmode:
23965 : if (register_operand (operands[0], E_V16HFmode)
23966 : && int_float_vector_all_ones_operand (operands[1], E_V16HFmode)
23967 : && register_operand (operands[2], E_V16HFmode)
23968 : && (
23969 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23970 : (TARGET_AVX512VL || 32 == 64) &&
23971 : #line 292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23972 : (TARGET_AVX)))
23973 : return 2492; /* *vmovv16hf_constm1_pternlog_false_dep */
23974 : break;
23975 :
23976 : case E_V8HFmode:
23977 : if (register_operand (operands[0], E_V8HFmode)
23978 : && int_float_vector_all_ones_operand (operands[1], E_V8HFmode)
23979 : && register_operand (operands[2], E_V8HFmode)
23980 : &&
23981 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23982 : (TARGET_AVX512VL || 16 == 64))
23983 : return 2493; /* *vmovv8hf_constm1_pternlog_false_dep */
23984 : break;
23985 :
23986 : case E_V32BFmode:
23987 : if (register_operand (operands[0], E_V32BFmode)
23988 : && int_float_vector_all_ones_operand (operands[1], E_V32BFmode)
23989 : && register_operand (operands[2], E_V32BFmode)
23990 : && (
23991 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23992 : (TARGET_AVX512VL || 64 == 64) &&
23993 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23994 : (TARGET_AVX512F)))
23995 : return 2494; /* *vmovv32bf_constm1_pternlog_false_dep */
23996 : break;
23997 :
23998 : case E_V16BFmode:
23999 : if (register_operand (operands[0], E_V16BFmode)
24000 : && int_float_vector_all_ones_operand (operands[1], E_V16BFmode)
24001 : && register_operand (operands[2], E_V16BFmode)
24002 : && (
24003 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24004 : (TARGET_AVX512VL || 32 == 64) &&
24005 : #line 293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24006 : (TARGET_AVX)))
24007 : return 2495; /* *vmovv16bf_constm1_pternlog_false_dep */
24008 : break;
24009 :
24010 : case E_V8BFmode:
24011 : if (register_operand (operands[0], E_V8BFmode)
24012 : && int_float_vector_all_ones_operand (operands[1], E_V8BFmode)
24013 : && register_operand (operands[2], E_V8BFmode)
24014 : &&
24015 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24016 : (TARGET_AVX512VL || 16 == 64))
24017 : return 2496; /* *vmovv8bf_constm1_pternlog_false_dep */
24018 : break;
24019 :
24020 : case E_V16SFmode:
24021 : if (register_operand (operands[0], E_V16SFmode)
24022 : && int_float_vector_all_ones_operand (operands[1], E_V16SFmode)
24023 : && register_operand (operands[2], E_V16SFmode)
24024 : && (
24025 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24026 : (TARGET_AVX512VL || 64 == 64) &&
24027 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24028 : (TARGET_AVX512F)))
24029 : return 2497; /* *vmovv16sf_constm1_pternlog_false_dep */
24030 : break;
24031 :
24032 : case E_V8SFmode:
24033 : if (register_operand (operands[0], E_V8SFmode)
24034 : && int_float_vector_all_ones_operand (operands[1], E_V8SFmode)
24035 : && register_operand (operands[2], E_V8SFmode)
24036 : && (
24037 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24038 : (TARGET_AVX512VL || 32 == 64) &&
24039 : #line 294 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24040 : (TARGET_AVX)))
24041 : return 2498; /* *vmovv8sf_constm1_pternlog_false_dep */
24042 : break;
24043 :
24044 : case E_V4SFmode:
24045 : if (register_operand (operands[0], E_V4SFmode)
24046 : && int_float_vector_all_ones_operand (operands[1], E_V4SFmode)
24047 : && register_operand (operands[2], E_V4SFmode)
24048 : &&
24049 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24050 : (TARGET_AVX512VL || 16 == 64))
24051 : return 2499; /* *vmovv4sf_constm1_pternlog_false_dep */
24052 : break;
24053 :
24054 : case E_V8DFmode:
24055 : if (register_operand (operands[0], E_V8DFmode)
24056 : && int_float_vector_all_ones_operand (operands[1], E_V8DFmode)
24057 : && register_operand (operands[2], E_V8DFmode)
24058 : && (
24059 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24060 : (TARGET_AVX512VL || 64 == 64) &&
24061 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24062 : (TARGET_AVX512F)))
24063 : return 2500; /* *vmovv8df_constm1_pternlog_false_dep */
24064 : break;
24065 :
24066 : case E_V4DFmode:
24067 : if (register_operand (operands[0], E_V4DFmode)
24068 : && int_float_vector_all_ones_operand (operands[1], E_V4DFmode)
24069 : && register_operand (operands[2], E_V4DFmode)
24070 : && (
24071 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24072 : (TARGET_AVX512VL || 32 == 64) &&
24073 : #line 295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24074 : (TARGET_AVX)))
24075 : return 2501; /* *vmovv4df_constm1_pternlog_false_dep */
24076 : break;
24077 :
24078 : case E_V2DFmode:
24079 : if (register_operand (operands[0], E_V2DFmode)
24080 : && int_float_vector_all_ones_operand (operands[1], E_V2DFmode)
24081 : && register_operand (operands[2], E_V2DFmode)
24082 : &&
24083 : #line 1553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24084 : (TARGET_AVX512VL || 16 == 64))
24085 : return 2502; /* *vmovv2df_constm1_pternlog_false_dep */
24086 : break;
24087 :
24088 : default:
24089 : break;
24090 : }
24091 : switch (GET_CODE (x4))
24092 : {
24093 : case VEC_MERGE:
24094 : x7 = XEXP (x4, 0);
24095 : operands[2] = x7;
24096 : x8 = XEXP (x4, 1);
24097 : operands[3] = x8;
24098 : x9 = XEXP (x4, 2);
24099 : operands[1] = x9;
24100 : operands[4] = x6;
24101 : switch (GET_MODE (operands[0]))
24102 : {
24103 : case E_V16SImode:
24104 : if (pattern1342 (x4,
24105 : E_V16SImode,
24106 : E_HImode) != 0
24107 : || !
24108 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24109 : (TARGET_AVX512F && !TARGET_AVX512DQ))
24110 : return -1;
24111 : return 5251; /* *avx512f_cvtmask2dv16si_pternlog_false_dep */
24112 :
24113 : case E_V8SImode:
24114 : if (pattern1342 (x4,
24115 : E_V8SImode,
24116 : E_QImode) != 0
24117 : || !(
24118 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24119 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
24120 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24121 : (TARGET_AVX512VL)))
24122 : return -1;
24123 : return 5252; /* *avx512vl_cvtmask2dv8si_pternlog_false_dep */
24124 :
24125 : case E_V4SImode:
24126 : if (pattern1342 (x4,
24127 : E_V4SImode,
24128 : E_QImode) != 0
24129 : || !(
24130 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24131 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
24132 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24133 : (TARGET_AVX512VL)))
24134 : return -1;
24135 : return 5253; /* *avx512vl_cvtmask2dv4si_pternlog_false_dep */
24136 :
24137 : case E_V8DImode:
24138 : if (pattern1342 (x4,
24139 : E_V8DImode,
24140 : E_QImode) != 0
24141 : || !
24142 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24143 : (TARGET_AVX512F && !TARGET_AVX512DQ))
24144 : return -1;
24145 : return 5254; /* *avx512f_cvtmask2qv8di_pternlog_false_dep */
24146 :
24147 : case E_V4DImode:
24148 : if (pattern1342 (x4,
24149 : E_V4DImode,
24150 : E_QImode) != 0
24151 : || !(
24152 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24153 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
24154 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24155 : (TARGET_AVX512VL)))
24156 : return -1;
24157 : return 5255; /* *avx512vl_cvtmask2qv4di_pternlog_false_dep */
24158 :
24159 : case E_V2DImode:
24160 : if (pattern1342 (x4,
24161 : E_V2DImode,
24162 : E_QImode) != 0
24163 : || !(
24164 : #line 10749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24165 : (TARGET_AVX512F && !TARGET_AVX512DQ) &&
24166 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24167 : (TARGET_AVX512VL)))
24168 : return -1;
24169 : return 5256; /* *avx512vl_cvtmask2qv2di_pternlog_false_dep */
24170 :
24171 : default:
24172 : return -1;
24173 : }
24174 :
24175 : case XOR:
24176 : x7 = XEXP (x4, 0);
24177 : operands[1] = x7;
24178 : x8 = XEXP (x4, 1);
24179 : operands[2] = x8;
24180 : operands[3] = x6;
24181 : switch (GET_MODE (operands[0]))
24182 : {
24183 : case E_V16SImode:
24184 : if (pattern1261 (x4,
24185 : E_V16SImode) != 0
24186 : || !
24187 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24188 : (TARGET_AVX512F))
24189 : return -1;
24190 : return 8049; /* *one_cmplv16si2_pternlog_false_dep */
24191 :
24192 : case E_V8DImode:
24193 : if (pattern1261 (x4,
24194 : E_V8DImode) != 0
24195 : || !
24196 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24197 : (TARGET_AVX512F))
24198 : return -1;
24199 : return 8050; /* *one_cmplv8di2_pternlog_false_dep */
24200 :
24201 : case E_V64QImode:
24202 : if (pattern1261 (x4,
24203 : E_V64QImode) != 0
24204 : || !(
24205 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24206 : (TARGET_AVX512F) &&
24207 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24208 : (TARGET_AVX512BW)))
24209 : return -1;
24210 : return 8051; /* *one_cmplv64qi2_pternlog_false_dep */
24211 :
24212 : case E_V32QImode:
24213 : if (pattern1261 (x4,
24214 : E_V32QImode) != 0
24215 : || !(
24216 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24217 : (TARGET_AVX512F) &&
24218 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24219 : (TARGET_AVX)))
24220 : return -1;
24221 : return 8052; /* *one_cmplv32qi2_pternlog_false_dep */
24222 :
24223 : case E_V16QImode:
24224 : if (pattern1261 (x4,
24225 : E_V16QImode) != 0
24226 : || !
24227 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24228 : (TARGET_AVX512F))
24229 : return -1;
24230 : return 8053; /* *one_cmplv16qi2_pternlog_false_dep */
24231 :
24232 : case E_V32HImode:
24233 : if (pattern1261 (x4,
24234 : E_V32HImode) != 0
24235 : || !(
24236 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24237 : (TARGET_AVX512F) &&
24238 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24239 : (TARGET_AVX512BW)))
24240 : return -1;
24241 : return 8054; /* *one_cmplv32hi2_pternlog_false_dep */
24242 :
24243 : case E_V16HImode:
24244 : if (pattern1261 (x4,
24245 : E_V16HImode) != 0
24246 : || !(
24247 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24248 : (TARGET_AVX512F) &&
24249 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24250 : (TARGET_AVX)))
24251 : return -1;
24252 : return 8055; /* *one_cmplv16hi2_pternlog_false_dep */
24253 :
24254 : case E_V8HImode:
24255 : if (pattern1261 (x4,
24256 : E_V8HImode) != 0
24257 : || !
24258 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24259 : (TARGET_AVX512F))
24260 : return -1;
24261 : return 8056; /* *one_cmplv8hi2_pternlog_false_dep */
24262 :
24263 : case E_V8SImode:
24264 : if (pattern1261 (x4,
24265 : E_V8SImode) != 0
24266 : || !(
24267 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24268 : (TARGET_AVX512F) &&
24269 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24270 : (TARGET_AVX)))
24271 : return -1;
24272 : return 8057; /* *one_cmplv8si2_pternlog_false_dep */
24273 :
24274 : case E_V4SImode:
24275 : if (pattern1261 (x4,
24276 : E_V4SImode) != 0
24277 : || !
24278 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24279 : (TARGET_AVX512F))
24280 : return -1;
24281 : return 8058; /* *one_cmplv4si2_pternlog_false_dep */
24282 :
24283 : case E_V4DImode:
24284 : if (pattern1261 (x4,
24285 : E_V4DImode) != 0
24286 : || !(
24287 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24288 : (TARGET_AVX512F) &&
24289 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24290 : (TARGET_AVX)))
24291 : return -1;
24292 : return 8059; /* *one_cmplv4di2_pternlog_false_dep */
24293 :
24294 : case E_V2DImode:
24295 : if (pattern1261 (x4,
24296 : E_V2DImode) != 0
24297 : || !
24298 : #line 18889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24299 : (TARGET_AVX512F))
24300 : return -1;
24301 : return 8060; /* *one_cmplv2di2_pternlog_false_dep */
24302 :
24303 : default:
24304 : return -1;
24305 : }
24306 :
24307 : default:
24308 : return -1;
24309 : }
24310 : }
24311 :
24312 : rtx_insn *
24313 : split_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24314 : {
24315 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24316 : rtx x2;
24317 : rtx_insn *res ATTRIBUTE_UNUSED;
24318 : switch (GET_MODE (operands[0]))
24319 : {
24320 : case E_DFmode:
24321 : if (!push_operand (operands[0], E_DFmode))
24322 : return NULL;
24323 : x2 = XEXP (x1, 1);
24324 : if (GET_MODE (x2) != E_DFmode
24325 : || !fp_register_operand (operands[1], E_SFmode))
24326 : return NULL;
24327 : if ((
24328 : #line 5369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24329 : (reload_completed) &&
24330 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24331 : (Pmode == SImode)))
24332 : return gen_split_70 (insn, operands);
24333 : if (!(
24334 : #line 5369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24335 : (reload_completed) &&
24336 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24337 : (Pmode == DImode)))
24338 : return NULL;
24339 : return gen_split_71 (insn, operands);
24340 :
24341 : case E_XFmode:
24342 : if (!push_operand (operands[0], E_XFmode))
24343 : return NULL;
24344 : x2 = XEXP (x1, 1);
24345 : if (GET_MODE (x2) != E_XFmode)
24346 : return NULL;
24347 : switch (GET_MODE (operands[1]))
24348 : {
24349 : case E_SFmode:
24350 : if (!fp_register_operand (operands[1], E_SFmode))
24351 : return NULL;
24352 : if ((
24353 : #line 5376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24354 : (reload_completed) &&
24355 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24356 : (Pmode == SImode)))
24357 : return gen_split_72 (insn, operands);
24358 : if (!(
24359 : #line 5376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24360 : (reload_completed) &&
24361 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24362 : (Pmode == DImode)))
24363 : return NULL;
24364 : return gen_split_73 (insn, operands);
24365 :
24366 : case E_DFmode:
24367 : if (!fp_register_operand (operands[1], E_DFmode))
24368 : return NULL;
24369 : if ((
24370 : #line 5376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24371 : (reload_completed) &&
24372 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24373 : (Pmode == SImode)))
24374 : return gen_split_74 (insn, operands);
24375 : if (!(
24376 : #line 5376 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24377 : (reload_completed) &&
24378 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24379 : (Pmode == DImode)))
24380 : return NULL;
24381 : return gen_split_75 (insn, operands);
24382 :
24383 : default:
24384 : return NULL;
24385 : }
24386 :
24387 : default:
24388 : return NULL;
24389 : }
24390 : }
24391 :
24392 : rtx_insn *
24393 : split_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24394 : {
24395 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24396 : rtx x2, x3, x4, x5, x6;
24397 : rtx_insn *res ATTRIBUTE_UNUSED;
24398 : x2 = XEXP (x1, 1);
24399 : if (GET_CODE (x2) == LTU)
24400 : {
24401 : switch (pattern45 (x1))
24402 : {
24403 : case 0:
24404 : if ((
24405 : #line 10613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24406 : (ix86_pre_reload_split ()) &&
24407 : #line 10615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24408 : ( 1)))
24409 : return gen_split_202 (insn, operands);
24410 : break;
24411 :
24412 : case 1:
24413 : if ((
24414 : #line 10613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24415 : (ix86_pre_reload_split ()) &&
24416 : #line 10615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24417 : ( 1)))
24418 : return gen_split_203 (insn, operands);
24419 : break;
24420 :
24421 : default:
24422 : break;
24423 : }
24424 : }
24425 : operands[1] = x2;
24426 : if (!add_comparison_operator (operands[1], E_QImode))
24427 : return NULL;
24428 : x3 = XEXP (x2, 0);
24429 : if (GET_CODE (x3) != NOT)
24430 : return NULL;
24431 : x4 = XEXP (x1, 0);
24432 : operands[0] = x4;
24433 : if (!nonimmediate_operand (operands[0], E_QImode))
24434 : return NULL;
24435 : x5 = XEXP (x3, 0);
24436 : operands[2] = x5;
24437 : x6 = XEXP (x2, 1);
24438 : operands[3] = x6;
24439 : switch (GET_MODE (x3))
24440 : {
24441 : case E_QImode:
24442 : if (!register_operand (operands[2], E_QImode)
24443 : || !nonimmediate_operand (operands[3], E_QImode))
24444 : return NULL;
24445 : return gen_split_850 (insn, operands);
24446 :
24447 : case E_HImode:
24448 : if (!register_operand (operands[2], E_HImode)
24449 : || !nonimmediate_operand (operands[3], E_HImode))
24450 : return NULL;
24451 : return gen_split_851 (insn, operands);
24452 :
24453 : case E_SImode:
24454 : if (!register_operand (operands[2], E_SImode)
24455 : || !nonimmediate_operand (operands[3], E_SImode))
24456 : return NULL;
24457 : return gen_split_852 (insn, operands);
24458 :
24459 : case E_DImode:
24460 : if (!register_operand (operands[2], E_DImode)
24461 : || !nonimmediate_operand (operands[3], E_DImode)
24462 : || !
24463 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24464 : (TARGET_64BIT))
24465 : return NULL;
24466 : return gen_split_853 (insn, operands);
24467 :
24468 : default:
24469 : return NULL;
24470 : }
24471 : }
24472 :
24473 : rtx_insn *
24474 : split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24475 : {
24476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24477 : rtx x2, x3, x4, x5, x6, x7;
24478 : rtx_insn *res ATTRIBUTE_UNUSED;
24479 : x2 = XEXP (x1, 0);
24480 : operands[0] = x2;
24481 : x3 = XEXP (x1, 1);
24482 : x4 = XEXP (x3, 0);
24483 : switch (GET_CODE (x4))
24484 : {
24485 : case AND:
24486 : switch (pattern76 (x3))
24487 : {
24488 : case 0:
24489 : if (!(
24490 : #line 3769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24491 : (TARGET_64BIT
24492 : && CONST_WIDE_INT_P (operands[3])
24493 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24494 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
24495 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0) &&
24496 : #line 3775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24497 : ( reload_completed)))
24498 : return NULL;
24499 : return gen_split_29 (insn, operands);
24500 :
24501 : case 1:
24502 : if (!(
24503 : #line 3791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24504 : (TARGET_64BIT
24505 : && CONST_WIDE_INT_P (operands[3])
24506 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24507 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
24508 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1) &&
24509 : #line 3797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24510 : ( reload_completed)))
24511 : return NULL;
24512 : return gen_split_32 (insn, operands);
24513 :
24514 : case 2:
24515 : if (!(
24516 : #line 3813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24517 : (!TARGET_64BIT
24518 : && CONST_INT_P (operands[3])
24519 : && UINTVAL (operands[3]) == 0xffffffff00000000ll) &&
24520 : #line 3817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24521 : ( reload_completed)))
24522 : return NULL;
24523 : return gen_split_35 (insn, operands);
24524 :
24525 : default:
24526 : return NULL;
24527 : }
24528 :
24529 : case ASHIFT:
24530 : x5 = XEXP (x4, 1);
24531 : operands[2] = x5;
24532 : x6 = XEXP (x4, 0);
24533 : switch (GET_CODE (x6))
24534 : {
24535 : case REG:
24536 : case SUBREG:
24537 : case MEM:
24538 : x7 = XEXP (x3, 1);
24539 : switch (GET_CODE (x7))
24540 : {
24541 : case CONST_INT:
24542 : case CONST_WIDE_INT:
24543 : operands[3] = x7;
24544 : operands[1] = x6;
24545 : switch (GET_MODE (operands[0]))
24546 : {
24547 : case E_QImode:
24548 : if (pattern616 (x3,
24549 : E_QImode) != 0
24550 : || !(
24551 : #line 8239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24552 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24553 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24554 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24555 : #line 8243 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24556 : ( reload_completed)))
24557 : return NULL;
24558 : return gen_split_166 (insn, operands);
24559 :
24560 : case E_HImode:
24561 : if (pattern616 (x3,
24562 : E_HImode) != 0
24563 : || !(
24564 : #line 8239 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24565 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24566 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24567 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24568 : #line 8243 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24569 : ( reload_completed)))
24570 : return NULL;
24571 : return gen_split_168 (insn, operands);
24572 :
24573 : case E_SImode:
24574 : if (pattern616 (x3,
24575 : E_SImode) != 0
24576 : || !(
24577 : #line 8263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24578 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24579 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24580 : #line 8266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24581 : ( reload_completed)))
24582 : return NULL;
24583 : return gen_split_170 (insn, operands);
24584 :
24585 : case E_DImode:
24586 : if (GET_MODE (x3) != E_DImode
24587 : || GET_MODE (x4) != E_DImode)
24588 : return NULL;
24589 : if (register_operand (operands[0], E_DImode)
24590 : && register_no_SP_operand (operands[1], E_DImode)
24591 : && const_0_to_3_operand (operands[2], E_VOIDmode)
24592 : && const_int_operand (operands[3], E_VOIDmode)
24593 : && ((
24594 : #line 8263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24595 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24596 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24597 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24598 : (TARGET_64BIT)) &&
24599 : #line 8266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24600 : ( reload_completed)))
24601 : return gen_split_172 (insn, operands);
24602 : if (!nonimmediate_operand (operands[0], E_DImode)
24603 : || !register_operand (operands[1], E_DImode)
24604 : || !const_int_operand (operands[2], E_QImode)
24605 : || !const_scalar_int_operand (operands[3], E_DImode)
24606 : || !((
24607 : #line 15021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24608 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
24609 : && (DImode == DImode
24610 : ? CONST_INT_P (operands[3])
24611 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24612 : : CONST_INT_P (operands[3])
24613 : ? INTVAL (operands[3]) >= 0
24614 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24615 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24616 : && !(CONST_INT_P (operands[3])
24617 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24618 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24619 : 0)),
24620 : VOIDmode))) &&
24621 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24622 : (!TARGET_64BIT)) &&
24623 : #line 15035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24624 : ( reload_completed)))
24625 : return NULL;
24626 : return gen_split_473 (insn, operands);
24627 :
24628 : case E_TImode:
24629 : if (pattern617 (x3,
24630 : E_TImode) != 0
24631 : || !((
24632 : #line 15021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24633 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
24634 : && (TImode == DImode
24635 : ? CONST_INT_P (operands[3])
24636 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24637 : : CONST_INT_P (operands[3])
24638 : ? INTVAL (operands[3]) >= 0
24639 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24640 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24641 : && !(CONST_INT_P (operands[3])
24642 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24643 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24644 : 0)),
24645 : VOIDmode))) &&
24646 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24647 : (TARGET_64BIT)) &&
24648 : #line 15035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24649 : ( reload_completed)))
24650 : return NULL;
24651 : return gen_split_476 (insn, operands);
24652 :
24653 : default:
24654 : return NULL;
24655 : }
24656 :
24657 : case ZERO_EXTEND:
24658 : operands[1] = x6;
24659 : switch (pattern958 (x3))
24660 : {
24661 : case 0:
24662 : if (!((
24663 : #line 14944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24664 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24665 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24666 : (!TARGET_64BIT)) &&
24667 : #line 14946 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24668 : ( reload_completed)))
24669 : return NULL;
24670 : return gen_split_437 (insn, operands);
24671 :
24672 : case 1:
24673 : if (!((
24674 : #line 14944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24675 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24676 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24677 : (TARGET_64BIT)) &&
24678 : #line 14946 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24679 : ( reload_completed)))
24680 : return NULL;
24681 : return gen_split_440 (insn, operands);
24682 :
24683 : default:
24684 : return NULL;
24685 : }
24686 :
24687 : case LSHIFTRT:
24688 : operands[4] = x6;
24689 : switch (pattern844 (x3))
24690 : {
24691 : case 0:
24692 : if (!(
24693 : #line 16451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24694 : (TARGET_64BIT && TARGET_APX_NF
24695 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
24696 : && ix86_pre_reload_split ()) &&
24697 : #line 16455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24698 : ( 1)))
24699 : return NULL;
24700 : return gen_split_568 (insn, operands);
24701 :
24702 : case 1:
24703 : if (!(
24704 : #line 16691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24705 : (TARGET_APX_NF
24706 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
24707 : && ix86_pre_reload_split ()) &&
24708 : #line 16695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24709 : ( 1)))
24710 : return NULL;
24711 : return gen_split_572 (insn, operands);
24712 :
24713 : default:
24714 : return NULL;
24715 : }
24716 :
24717 : default:
24718 : return NULL;
24719 : }
24720 :
24721 : case SIGN_EXTEND:
24722 : switch (pattern725 (x3))
24723 : {
24724 : case 0:
24725 : if (!((
24726 : #line 14980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24727 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24728 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24729 : (!TARGET_64BIT)) &&
24730 : #line 14982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24731 : ( reload_completed)))
24732 : return NULL;
24733 : return gen_split_449 (insn, operands);
24734 :
24735 : case 1:
24736 : if (!((
24737 : #line 14980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24738 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24739 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24740 : (TARGET_64BIT)) &&
24741 : #line 14982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24742 : ( reload_completed)))
24743 : return NULL;
24744 : return gen_split_455 (insn, operands);
24745 :
24746 : case 2:
24747 : if (!((
24748 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24749 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24750 : && (DImode == DImode
24751 : ? CONST_INT_P (operands[3])
24752 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24753 : : CONST_INT_P (operands[3])
24754 : ? INTVAL (operands[3]) >= 0
24755 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24756 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24757 : && !(CONST_INT_P (operands[3])
24758 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24759 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24760 : 0)),
24761 : VOIDmode))) &&
24762 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24763 : (!TARGET_64BIT)) &&
24764 : #line 15067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24765 : ( reload_completed)))
24766 : return NULL;
24767 : return gen_split_479 (insn, operands);
24768 :
24769 : case 3:
24770 : if (!((
24771 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24772 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24773 : && (TImode == DImode
24774 : ? CONST_INT_P (operands[3])
24775 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24776 : : CONST_INT_P (operands[3])
24777 : ? INTVAL (operands[3]) >= 0
24778 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24779 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24780 : && !(CONST_INT_P (operands[3])
24781 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24782 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24783 : 0)),
24784 : VOIDmode))) &&
24785 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24786 : (TARGET_64BIT)) &&
24787 : #line 15067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24788 : ( reload_completed)))
24789 : return NULL;
24790 : return gen_split_485 (insn, operands);
24791 :
24792 : default:
24793 : return NULL;
24794 : }
24795 :
24796 : case ZERO_EXTEND:
24797 : switch (pattern725 (x3))
24798 : {
24799 : case 0:
24800 : if (!((
24801 : #line 14980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24802 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24803 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24804 : (!TARGET_64BIT)) &&
24805 : #line 14982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24806 : ( reload_completed)))
24807 : return NULL;
24808 : return gen_split_452 (insn, operands);
24809 :
24810 : case 1:
24811 : if (!((
24812 : #line 14980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24813 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24814 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24815 : (TARGET_64BIT)) &&
24816 : #line 14982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24817 : ( reload_completed)))
24818 : return NULL;
24819 : return gen_split_458 (insn, operands);
24820 :
24821 : case 2:
24822 : if (!((
24823 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24824 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24825 : && (DImode == DImode
24826 : ? CONST_INT_P (operands[3])
24827 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24828 : : CONST_INT_P (operands[3])
24829 : ? INTVAL (operands[3]) >= 0
24830 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24831 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24832 : && !(CONST_INT_P (operands[3])
24833 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24834 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24835 : 0)),
24836 : VOIDmode))) &&
24837 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24838 : (!TARGET_64BIT)) &&
24839 : #line 15067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24840 : ( reload_completed)))
24841 : return NULL;
24842 : return gen_split_482 (insn, operands);
24843 :
24844 : case 3:
24845 : if (!((
24846 : #line 15053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24847 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24848 : && (TImode == DImode
24849 : ? CONST_INT_P (operands[3])
24850 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24851 : : CONST_INT_P (operands[3])
24852 : ? INTVAL (operands[3]) >= 0
24853 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24854 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24855 : && !(CONST_INT_P (operands[3])
24856 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24857 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24858 : 0)),
24859 : VOIDmode))) &&
24860 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24861 : (TARGET_64BIT)) &&
24862 : #line 15067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24863 : ( reload_completed)))
24864 : return NULL;
24865 : return gen_split_488 (insn, operands);
24866 :
24867 : default:
24868 : return NULL;
24869 : }
24870 :
24871 : default:
24872 : return NULL;
24873 : }
24874 :
24875 : case ZERO_EXTEND:
24876 : switch (pattern407 (x3))
24877 : {
24878 : case 0:
24879 : if (!((
24880 : #line 14961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24881 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24882 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24883 : (!TARGET_64BIT)) &&
24884 : #line 14963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24885 : ( reload_completed)))
24886 : return NULL;
24887 : return gen_split_443 (insn, operands);
24888 :
24889 : case 1:
24890 : if (!((
24891 : #line 14961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24892 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24893 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24894 : (TARGET_64BIT)) &&
24895 : #line 14963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24896 : ( reload_completed)))
24897 : return NULL;
24898 : return gen_split_446 (insn, operands);
24899 :
24900 : case 2:
24901 : if (!((
24902 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24903 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24904 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24905 : (!TARGET_64BIT)) &&
24906 : #line 15007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24907 : ( reload_completed)))
24908 : return NULL;
24909 : return gen_split_461 (insn, operands);
24910 :
24911 : case 3:
24912 : if (!((
24913 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24914 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24915 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24916 : (TARGET_64BIT)) &&
24917 : #line 15007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24918 : ( reload_completed)))
24919 : return NULL;
24920 : return gen_split_467 (insn, operands);
24921 :
24922 : case 4:
24923 : if (!((
24924 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24925 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24926 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24927 : (!TARGET_64BIT)) &&
24928 : #line 15007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24929 : ( reload_completed)))
24930 : return NULL;
24931 : return gen_split_464 (insn, operands);
24932 :
24933 : case 5:
24934 : if (!((
24935 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24936 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24937 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24938 : (TARGET_64BIT)) &&
24939 : #line 15007 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24940 : ( reload_completed)))
24941 : return NULL;
24942 : return gen_split_470 (insn, operands);
24943 :
24944 : case 6:
24945 : if (!((
24946 : #line 15082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24947 : (DImode == DImode
24948 : ? CONST_INT_P (operands[2])
24949 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24950 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24951 : : CONST_WIDE_INT_P (operands[2])
24952 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24953 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24954 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24955 : 1)),
24956 : VOIDmode)) &&
24957 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24958 : (!TARGET_64BIT)) &&
24959 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24960 : ( reload_completed)))
24961 : return NULL;
24962 : return gen_split_491 (insn, operands);
24963 :
24964 : case 7:
24965 : if (!((
24966 : #line 15082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24967 : (TImode == DImode
24968 : ? CONST_INT_P (operands[2])
24969 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24970 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24971 : : CONST_WIDE_INT_P (operands[2])
24972 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24973 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24974 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24975 : 1)),
24976 : VOIDmode)) &&
24977 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24978 : (TARGET_64BIT)) &&
24979 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24980 : ( reload_completed)))
24981 : return NULL;
24982 : return gen_split_494 (insn, operands);
24983 :
24984 : default:
24985 : return NULL;
24986 : }
24987 :
24988 : case LSHIFTRT:
24989 : x7 = XEXP (x3, 1);
24990 : if (GET_CODE (x7) != ASHIFT)
24991 : return NULL;
24992 : x6 = XEXP (x4, 0);
24993 : operands[4] = x6;
24994 : x5 = XEXP (x4, 1);
24995 : operands[2] = x5;
24996 : switch (pattern844 (x3))
24997 : {
24998 : case 0:
24999 : if (!(
25000 : #line 17809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25001 : (TARGET_64BIT && TARGET_APX_NF
25002 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
25003 : && ix86_pre_reload_split ()) &&
25004 : #line 17813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25005 : ( 1)))
25006 : return NULL;
25007 : return gen_split_615 (insn, operands);
25008 :
25009 : case 1:
25010 : if (!(
25011 : #line 18048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25012 : (TARGET_APX_NF
25013 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
25014 : && ix86_pre_reload_split ()) &&
25015 : #line 18052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25016 : ( 1)))
25017 : return NULL;
25018 : return gen_split_619 (insn, operands);
25019 :
25020 : default:
25021 : return NULL;
25022 : }
25023 :
25024 : default:
25025 : return NULL;
25026 : }
25027 : }
25028 :
25029 : rtx_insn *
25030 : split_19 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25031 : {
25032 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25033 : rtx x2, x3;
25034 : rtx_insn *res ATTRIBUTE_UNUSED;
25035 : x2 = XVECEXP (x1, 0, 0);
25036 : switch (pattern1188 (x2))
25037 : {
25038 : case 0:
25039 : switch (GET_MODE (operands[0]))
25040 : {
25041 : case E_DImode:
25042 : x3 = XEXP (x2, 1);
25043 : if (GET_MODE (x3) != E_DImode)
25044 : return NULL;
25045 : if (nonimmediate_operand (operands[0], E_DImode)
25046 : && nonimmediate_operand (operands[1], E_DImode)
25047 : && x86_64_hilo_general_operand (operands[2], E_DImode)
25048 : && ((
25049 : #line 6622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25050 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
25051 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25052 : (!TARGET_64BIT)) &&
25053 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25054 : ( reload_completed)))
25055 : return gen_split_104 (insn, operands);
25056 : if (!register_operand (operands[0], E_DImode)
25057 : || !register_operand (operands[1], E_DImode)
25058 : || !x86_64_nonmemory_operand (operands[2], E_DImode))
25059 : return NULL;
25060 : if ((
25061 : #line 7236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25062 : (reload_completed && ix86_avoid_lea_for_add (insn, operands)) &&
25063 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25064 : (TARGET_64BIT)))
25065 : return gen_split_129 (insn, operands);
25066 : if (!(
25067 : #line 7262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25068 : (reload_completed && ix86_lea_for_add_ok (insn, operands)) &&
25069 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25070 : (TARGET_64BIT)))
25071 : return NULL;
25072 : return gen_split_134 (insn, operands);
25073 :
25074 : case E_TImode:
25075 : x3 = XEXP (x2, 1);
25076 : if (pattern568 (x3,
25077 : E_TImode) != 0
25078 : || !((
25079 : #line 6622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25080 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
25081 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25082 : (TARGET_64BIT)) &&
25083 : #line 6624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25084 : ( reload_completed)))
25085 : return NULL;
25086 : return gen_split_105 (insn, operands);
25087 :
25088 : case E_SImode:
25089 : x3 = XEXP (x2, 1);
25090 : if (pattern1433 (x3,
25091 : E_SImode) != 0)
25092 : return NULL;
25093 : if (
25094 : #line 7236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25095 : (reload_completed && ix86_avoid_lea_for_add (insn, operands)))
25096 : return gen_split_128 (insn, operands);
25097 : if (!
25098 : #line 7262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25099 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
25100 : return NULL;
25101 : return gen_split_133 (insn, operands);
25102 :
25103 : case E_QImode:
25104 : x3 = XEXP (x2, 1);
25105 : if (pattern1344 (x3,
25106 : E_QImode) != 0
25107 : || !
25108 : #line 7262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25109 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
25110 : return NULL;
25111 : return gen_split_131 (insn, operands);
25112 :
25113 : case E_HImode:
25114 : if (!register_operand (operands[0], E_HImode))
25115 : return NULL;
25116 : x3 = XEXP (x2, 1);
25117 : if (GET_MODE (x3) != E_HImode
25118 : || !register_operand (operands[1], E_HImode)
25119 : || !nonmemory_operand (operands[2], E_HImode)
25120 : || !
25121 : #line 7262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25122 : (reload_completed && ix86_lea_for_add_ok (insn, operands)))
25123 : return NULL;
25124 : return gen_split_132 (insn, operands);
25125 :
25126 : default:
25127 : return NULL;
25128 : }
25129 :
25130 : case 1:
25131 : if (!(
25132 : #line 7135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25133 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25134 : #line 7158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25135 : ( reload_completed
25136 : && !(rtx_equal_p (operands[0], operands[1])
25137 : || rtx_equal_p (operands[0], operands[2])))))
25138 : return NULL;
25139 : return gen_split_120 (insn, operands);
25140 :
25141 : case 2:
25142 : if (!(
25143 : #line 7135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25144 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25145 : #line 7158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25146 : ( reload_completed
25147 : && !(rtx_equal_p (operands[0], operands[1])
25148 : || rtx_equal_p (operands[0], operands[2])))))
25149 : return NULL;
25150 : return gen_split_121 (insn, operands);
25151 :
25152 : default:
25153 : return NULL;
25154 : }
25155 : }
25156 :
25157 : rtx_insn *
25158 : split_25 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25159 : {
25160 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25161 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25162 : rtx x10;
25163 : rtx_insn *res ATTRIBUTE_UNUSED;
25164 : x2 = XVECEXP (x1, 0, 1);
25165 : if (pattern237 (x2,
25166 : E_CCmode,
25167 : 17) != 0)
25168 : return NULL;
25169 : x3 = XVECEXP (x1, 0, 0);
25170 : x4 = XEXP (x3, 1);
25171 : x5 = XEXP (x4, 0);
25172 : switch (GET_CODE (x5))
25173 : {
25174 : case CONST_INT:
25175 : case CONST_WIDE_INT:
25176 : case CONST_POLY_INT:
25177 : case CONST_FIXED:
25178 : case CONST_DOUBLE:
25179 : case CONST_VECTOR:
25180 : case CONST:
25181 : case REG:
25182 : case SUBREG:
25183 : case MEM:
25184 : case LABEL_REF:
25185 : case SYMBOL_REF:
25186 : case HIGH:
25187 : operands[1] = x5;
25188 : switch (pattern1188 (x3))
25189 : {
25190 : case 0:
25191 : switch (GET_MODE (operands[0]))
25192 : {
25193 : case E_DImode:
25194 : if (nonimmediate_operand (operands[0], E_DImode)
25195 : && GET_MODE (x4) == E_DImode
25196 : && nonimmediate_operand (operands[1], E_DImode))
25197 : {
25198 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
25199 : && ((
25200 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25201 : (ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)) &&
25202 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25203 : (!TARGET_64BIT)) &&
25204 : #line 13279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25205 : ( reload_completed)))
25206 : return gen_split_289 (insn, operands);
25207 : if (const_int_operand (operands[2], E_DImode)
25208 : && (
25209 : #line 13361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25210 : (TARGET_64BIT && TARGET_USE_BT
25211 : && ix86_binary_operator_ok (AND, DImode, operands)
25212 : && IN_RANGE (exact_log2 (~INTVAL (operands[2])), 31, 63)) &&
25213 : #line 13365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25214 : ( reload_completed)))
25215 : return gen_split_291 (insn, operands);
25216 : }
25217 : break;
25218 :
25219 : case E_TImode:
25220 : if (pattern568 (x4,
25221 : E_TImode) == 0
25222 : && ((
25223 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25224 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
25225 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25226 : (TARGET_64BIT)) &&
25227 : #line 13279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25228 : ( reload_completed)))
25229 : return gen_split_290 (insn, operands);
25230 : break;
25231 :
25232 : case E_HImode:
25233 : if (pattern1366 (x4,
25234 : E_HImode) == 0
25235 : &&
25236 : #line 13631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25237 : (reload_completed
25238 : && (!REG_P (operands[1])
25239 : || REGNO (operands[0]) != REGNO (operands[1]))
25240 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25241 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25242 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))))
25243 : return gen_split_317 (insn, operands);
25244 : break;
25245 :
25246 : case E_SImode:
25247 : if (pattern1366 (x4,
25248 : E_SImode) == 0
25249 : &&
25250 : #line 13631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25251 : (reload_completed
25252 : && (!REG_P (operands[1])
25253 : || REGNO (operands[0]) != REGNO (operands[1]))
25254 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25255 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25256 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))))
25257 : return gen_split_318 (insn, operands);
25258 : break;
25259 :
25260 : default:
25261 : break;
25262 : }
25263 : break;
25264 :
25265 : case 1:
25266 : if ((
25267 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25268 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25269 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25270 : ( reload_completed
25271 : && !(rtx_equal_p (operands[0], operands[1])
25272 : || rtx_equal_p (operands[0], operands[2])))))
25273 : return gen_split_293 (insn, operands);
25274 : break;
25275 :
25276 : case 2:
25277 : if ((
25278 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25279 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25280 : #line 13557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25281 : ( reload_completed
25282 : && !(rtx_equal_p (operands[0], operands[1])
25283 : || rtx_equal_p (operands[0], operands[2])))))
25284 : return gen_split_296 (insn, operands);
25285 : break;
25286 :
25287 : default:
25288 : break;
25289 : }
25290 : x6 = XEXP (x4, 1);
25291 : if (GET_CODE (x6) == CONST_INT)
25292 : {
25293 : res = split_21 (x1, insn);
25294 : if (res != NULL_RTX)
25295 : return res;
25296 : }
25297 : if (GET_CODE (x5) == SUBREG
25298 : && known_eq (SUBREG_BYTE (x5), 0))
25299 : {
25300 : res = split_22 (x1, insn);
25301 : if (res != NULL_RTX)
25302 : return res;
25303 : }
25304 : if (GET_CODE (x6) != CONST_INT)
25305 : return NULL;
25306 : operands[2] = x6;
25307 : if (const_int_operand (operands[2], E_DImode))
25308 : {
25309 : x7 = XEXP (x3, 0);
25310 : operands[0] = x7;
25311 : if (register_operand (operands[0], E_DImode)
25312 : && GET_MODE (x4) == E_DImode)
25313 : {
25314 : operands[1] = x5;
25315 : if (nonimmediate_operand (operands[1], E_DImode)
25316 : && (
25317 : #line 13631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25318 : (reload_completed
25319 : && (!REG_P (operands[1])
25320 : || REGNO (operands[0]) != REGNO (operands[1]))
25321 : && (UINTVAL (operands[2]) == GET_MODE_MASK (SImode)
25322 : || UINTVAL (operands[2]) == GET_MODE_MASK (HImode)
25323 : || UINTVAL (operands[2]) == GET_MODE_MASK (QImode))) &&
25324 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25325 : (TARGET_64BIT)))
25326 : return gen_split_319 (insn, operands);
25327 : }
25328 : }
25329 : x7 = XEXP (x3, 0);
25330 : operands[0] = x7;
25331 : if (GET_MODE (x4) != E_DImode)
25332 : return NULL;
25333 : if (rtx_equal_p (x5, operands[0]))
25334 : {
25335 : switch (XWINT (x6, 0))
25336 : {
25337 : case -65536L:
25338 : if (register_operand (operands[0], E_DImode)
25339 : && (
25340 : #line 13666 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25341 : ((TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)
25342 : || optimize_function_for_size_p (cfun)) &&
25343 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25344 : (TARGET_64BIT)))
25345 : return gen_split_321 (insn, operands);
25346 : break;
25347 :
25348 : case -256L:
25349 : if (any_QIreg_operand (operands[0], E_DImode)
25350 : && (
25351 : #line 13676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25352 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25353 : && reload_completed) &&
25354 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25355 : (TARGET_64BIT)))
25356 : return gen_split_324 (insn, operands);
25357 : break;
25358 :
25359 : case -65281L:
25360 : if (QIreg_operand (operands[0], E_DImode)
25361 : && (
25362 : #line 13686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25363 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25364 : && reload_completed) &&
25365 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25366 : (TARGET_64BIT)))
25367 : return gen_split_327 (insn, operands);
25368 : break;
25369 :
25370 : default:
25371 : break;
25372 : }
25373 : }
25374 : operands[1] = x5;
25375 : if (register_operand (operands[1], E_DImode)
25376 : && QIreg_operand (operands[0], E_DImode))
25377 : {
25378 : operands[2] = x6;
25379 : if (const_int_operand (operands[2], E_DImode)
25380 : && (
25381 : #line 14070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25382 : (reload_completed
25383 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25384 : && !(~INTVAL (operands[2]) & ~(255 << 8))
25385 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))) &&
25386 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25387 : (TARGET_64BIT)))
25388 : return gen_split_375 (insn, operands);
25389 : }
25390 : if (general_operand (operands[1], E_DImode)
25391 : && any_QIreg_operand (operands[0], E_DImode))
25392 : {
25393 : operands[2] = x6;
25394 : if (const_int_operand (operands[2], E_DImode)
25395 : && (
25396 : #line 14099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25397 : (reload_completed
25398 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25399 : && !(~INTVAL (operands[2]) & ~255)
25400 : && !(INTVAL (operands[2]) & 128)
25401 : && !(TARGET_APX_NDD
25402 : && !rtx_equal_p (operands[0], operands[1]))) &&
25403 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25404 : (TARGET_64BIT)))
25405 : return gen_split_378 (insn, operands);
25406 : }
25407 : if (GET_CODE (x5) != SUBREG
25408 : || maybe_ne (SUBREG_BYTE (x5), 0)
25409 : || GET_MODE (x5) != E_DImode
25410 : || XWINT (x6, 0) != 63L
25411 : || !register_operand (operands[0], E_DImode))
25412 : return NULL;
25413 : x8 = XEXP (x5, 0);
25414 : if (GET_MODE (x8) != E_SImode)
25415 : return NULL;
25416 : switch (GET_CODE (x8))
25417 : {
25418 : case CTZ:
25419 : x9 = XEXP (x8, 0);
25420 : operands[1] = x9;
25421 : if (!nonimmediate_operand (operands[1], E_SImode)
25422 : || !(
25423 : #line 22133 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25424 : (TARGET_BMI && TARGET_64BIT) &&
25425 : #line 22135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25426 : ( (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
25427 : && epilogue_completed
25428 : && optimize_function_for_speed_p (cfun)
25429 : && !reg_mentioned_p (operands[0], operands[1]))))
25430 : return NULL;
25431 : return gen_split_879 (insn, operands);
25432 :
25433 : case CLZ:
25434 : x9 = XEXP (x8, 0);
25435 : operands[1] = x9;
25436 : if (!nonimmediate_operand (operands[1], E_SImode)
25437 : || !(
25438 : #line 22582 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25439 : (TARGET_LZCNT && TARGET_64BIT) &&
25440 : #line 22584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25441 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25442 : && optimize_function_for_speed_p (cfun)
25443 : && !reg_mentioned_p (operands[0], operands[1]))))
25444 : return NULL;
25445 : return gen_split_896 (insn, operands);
25446 :
25447 : case POPCOUNT:
25448 : x9 = XEXP (x8, 0);
25449 : operands[1] = x9;
25450 : if (!nonimmediate_operand (operands[1], E_SImode)
25451 : || !(
25452 : #line 23409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25453 : (TARGET_POPCNT && TARGET_64BIT) &&
25454 : #line 23417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25455 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25456 : && optimize_function_for_speed_p (cfun)
25457 : && !reg_mentioned_p (operands[0], operands[1]))))
25458 : return NULL;
25459 : return gen_split_920 (insn, operands);
25460 :
25461 : default:
25462 : return NULL;
25463 : }
25464 :
25465 : case NOT:
25466 : x7 = XEXP (x3, 0);
25467 : operands[0] = x7;
25468 : x8 = XEXP (x5, 0);
25469 : switch (GET_CODE (x8))
25470 : {
25471 : case REG:
25472 : case SUBREG:
25473 : operands[1] = x8;
25474 : x6 = XEXP (x4, 1);
25475 : operands[2] = x6;
25476 : switch (GET_MODE (operands[0]))
25477 : {
25478 : case E_DImode:
25479 : if (pattern1443 (x4,
25480 : E_DImode) == 0)
25481 : {
25482 : if (((
25483 : #line 14121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25484 : (TARGET_BMI) &&
25485 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25486 : (!TARGET_64BIT)) &&
25487 : #line 14123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25488 : ( reload_completed)))
25489 : return gen_split_379 (insn, operands);
25490 : if (((
25491 : #line 14139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25492 : (!TARGET_BMI
25493 : && ix86_pre_reload_split ()) &&
25494 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25495 : (!TARGET_64BIT)) &&
25496 : #line 14142 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25497 : ( 1)))
25498 : return gen_split_381 (insn, operands);
25499 : }
25500 : break;
25501 :
25502 : case E_TImode:
25503 : if (pattern1443 (x4,
25504 : E_TImode) == 0)
25505 : {
25506 : if (((
25507 : #line 14121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25508 : (TARGET_BMI) &&
25509 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25510 : (TARGET_64BIT)) &&
25511 : #line 14123 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25512 : ( reload_completed)))
25513 : return gen_split_380 (insn, operands);
25514 : if (((
25515 : #line 14139 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25516 : (!TARGET_BMI
25517 : && ix86_pre_reload_split ()) &&
25518 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25519 : (TARGET_64BIT)) &&
25520 : #line 14142 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25521 : ( 1)))
25522 : return gen_split_382 (insn, operands);
25523 : }
25524 : break;
25525 :
25526 : case E_SImode:
25527 : if (pattern1443 (x4,
25528 : E_SImode) == 0
25529 : &&
25530 : #line 14207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25531 : (reload_completed
25532 : && optimize_insn_for_size_p () && optimize_size > 1
25533 : && REGNO (operands[0]) == REGNO (operands[1])
25534 : && LEGACY_INT_REG_P (operands[0])
25535 : && !REX_INT_REG_P (operands[2])
25536 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
25537 : return gen_split_383 (insn, operands);
25538 : break;
25539 :
25540 : default:
25541 : break;
25542 : }
25543 : if (GET_CODE (x8) != SUBREG
25544 : || maybe_ne (SUBREG_BYTE (x8), 0)
25545 : || GET_MODE (x8) != E_QImode)
25546 : return NULL;
25547 : x9 = XEXP (x8, 0);
25548 : if (GET_CODE (x9) != LSHIFTRT
25549 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25550 : return NULL;
25551 : switch (pattern1538 (x4))
25552 : {
25553 : case 0:
25554 : if (!(
25555 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25556 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25557 : #line 20344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25558 : ( 1)))
25559 : return NULL;
25560 : return gen_split_842 (insn, operands);
25561 :
25562 : case 1:
25563 : if (!((
25564 : #line 20342 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25565 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25566 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25567 : (TARGET_64BIT)) &&
25568 : #line 20344 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25569 : ( 1)))
25570 : return NULL;
25571 : return gen_split_843 (insn, operands);
25572 :
25573 : default:
25574 : return NULL;
25575 : }
25576 :
25577 : case LSHIFTRT:
25578 : x6 = XEXP (x4, 1);
25579 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25580 : return NULL;
25581 : switch (pattern1257 (x4))
25582 : {
25583 : case 0:
25584 : if (!(
25585 : #line 20360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25586 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25587 : #line 20362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25588 : ( 1)))
25589 : return NULL;
25590 : return gen_split_844 (insn, operands);
25591 :
25592 : case 1:
25593 : if (!((
25594 : #line 20360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25595 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25596 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25597 : (TARGET_64BIT)) &&
25598 : #line 20362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25599 : ( 1)))
25600 : return NULL;
25601 : return gen_split_845 (insn, operands);
25602 :
25603 : default:
25604 : return NULL;
25605 : }
25606 :
25607 : default:
25608 : return NULL;
25609 : }
25610 :
25611 : case ROTATE:
25612 : switch (pattern1071 (x3,
25613 : -2))
25614 : {
25615 : case 0:
25616 : if (!(
25617 : #line 19852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25618 : (TARGET_USE_BT
25619 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25620 : == GET_MODE_BITSIZE (SImode)-1
25621 : && ix86_pre_reload_split ()) &&
25622 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25623 : ( 1)))
25624 : return NULL;
25625 : return gen_split_810 (insn, operands);
25626 :
25627 : case 1:
25628 : if (!((
25629 : #line 19852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25630 : (TARGET_USE_BT
25631 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25632 : == GET_MODE_BITSIZE (DImode)-1
25633 : && ix86_pre_reload_split ()) &&
25634 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25635 : (TARGET_64BIT)) &&
25636 : #line 19857 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25637 : ( 1)))
25638 : return NULL;
25639 : return gen_split_811 (insn, operands);
25640 :
25641 : case 2:
25642 : if (!(
25643 : #line 19880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25644 : (TARGET_USE_BT
25645 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (SImode)-1))
25646 : == GET_MODE_BITSIZE (SImode)-1
25647 : && ix86_pre_reload_split ()) &&
25648 : #line 19885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25649 : ( 1)))
25650 : return NULL;
25651 : return gen_split_812 (insn, operands);
25652 :
25653 : case 3:
25654 : if (!((
25655 : #line 19880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25656 : (TARGET_USE_BT
25657 : && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (DImode)-1))
25658 : == GET_MODE_BITSIZE (DImode)-1
25659 : && ix86_pre_reload_split ()) &&
25660 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25661 : (TARGET_64BIT)) &&
25662 : #line 19885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25663 : ( 1)))
25664 : return NULL;
25665 : return gen_split_813 (insn, operands);
25666 :
25667 : default:
25668 : return NULL;
25669 : }
25670 :
25671 : case NEG:
25672 : switch (pattern955 (x3))
25673 : {
25674 : case 0:
25675 : if (!(
25676 : #line 22787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25677 : (TARGET_BMI) &&
25678 : #line 22789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25679 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25680 : && epilogue_completed
25681 : && optimize_function_for_speed_p (cfun)
25682 : && !reg_mentioned_p (operands[0], operands[1]))))
25683 : return NULL;
25684 : return gen_split_906 (insn, operands);
25685 :
25686 : case 1:
25687 : if (!((
25688 : #line 22787 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25689 : (TARGET_BMI) &&
25690 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25691 : (TARGET_64BIT)) &&
25692 : #line 22789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25693 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25694 : && epilogue_completed
25695 : && optimize_function_for_speed_p (cfun)
25696 : && !reg_mentioned_p (operands[0], operands[1]))))
25697 : return NULL;
25698 : return gen_split_907 (insn, operands);
25699 :
25700 : default:
25701 : return NULL;
25702 : }
25703 :
25704 : case PLUS:
25705 : x10 = XEXP (x5, 1);
25706 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
25707 : return NULL;
25708 : switch (pattern955 (x3))
25709 : {
25710 : case 0:
25711 : if (!(
25712 : #line 22932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25713 : (TARGET_BMI) &&
25714 : #line 22934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25715 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25716 : && epilogue_completed
25717 : && optimize_function_for_speed_p (cfun)
25718 : && !reg_mentioned_p (operands[0], operands[1]))))
25719 : return NULL;
25720 : return gen_split_912 (insn, operands);
25721 :
25722 : case 1:
25723 : if (!((
25724 : #line 22932 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25725 : (TARGET_BMI) &&
25726 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25727 : (TARGET_64BIT)) &&
25728 : #line 22934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25729 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
25730 : && epilogue_completed
25731 : && optimize_function_for_speed_p (cfun)
25732 : && !reg_mentioned_p (operands[0], operands[1]))))
25733 : return NULL;
25734 : return gen_split_913 (insn, operands);
25735 :
25736 : default:
25737 : return NULL;
25738 : }
25739 :
25740 : default:
25741 : return NULL;
25742 : }
25743 : }
25744 :
25745 : rtx_insn *
25746 : split_36 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25747 : {
25748 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25749 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25750 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
25751 : rtx x18, x19, x20, x21;
25752 : rtx_insn *res ATTRIBUTE_UNUSED;
25753 : x2 = XVECEXP (x1, 0, 0);
25754 : switch (GET_CODE (x2))
25755 : {
25756 : case SET:
25757 : x3 = XEXP (x2, 1);
25758 : switch (GET_CODE (x3))
25759 : {
25760 : case CONST_INT:
25761 : case CONST_DOUBLE:
25762 : case CONST_VECTOR:
25763 : operands[1] = x3;
25764 : if (pattern346 (x1) == 0)
25765 : {
25766 : switch (GET_MODE (operands[0]))
25767 : {
25768 : case E_HImode:
25769 : if (memory_operand (operands[0], E_HImode)
25770 : && const0_operand (operands[1], E_HImode)
25771 : && (
25772 : #line 2475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25773 : (reload_completed) &&
25774 : #line 2477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25775 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25776 : return gen_split_14 (insn, operands);
25777 : if (nonimmediate_operand (operands[0], E_HImode)
25778 : && constm1_operand (operands[1], E_HImode)
25779 : && (
25780 : #line 2490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25781 : (reload_completed) &&
25782 : #line 2492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25783 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25784 : return gen_split_17 (insn, operands);
25785 : break;
25786 :
25787 : case E_SImode:
25788 : if (memory_operand (operands[0], E_SImode)
25789 : && const0_operand (operands[1], E_SImode)
25790 : && (
25791 : #line 2475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25792 : (reload_completed) &&
25793 : #line 2477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25794 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25795 : return gen_split_15 (insn, operands);
25796 : if (nonimmediate_operand (operands[0], E_SImode)
25797 : && constm1_operand (operands[1], E_SImode)
25798 : && (
25799 : #line 2490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25800 : (reload_completed) &&
25801 : #line 2492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25802 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25803 : return gen_split_18 (insn, operands);
25804 : break;
25805 :
25806 : case E_DImode:
25807 : if (memory_operand (operands[0], E_DImode)
25808 : && const0_operand (operands[1], E_DImode)
25809 : && ((
25810 : #line 2475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25811 : (reload_completed) &&
25812 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25813 : (TARGET_64BIT)) &&
25814 : #line 2477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25815 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25816 : return gen_split_16 (insn, operands);
25817 : if (nonimmediate_operand (operands[0], E_DImode)
25818 : && constm1_operand (operands[1], E_DImode)
25819 : && ((
25820 : #line 2490 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25821 : (reload_completed) &&
25822 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25823 : (TARGET_64BIT)) &&
25824 : #line 2492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25825 : ( !(optimize_insn_for_size_p () && optimize_size > 1))))
25826 : return gen_split_19 (insn, operands);
25827 : break;
25828 :
25829 : default:
25830 : break;
25831 : }
25832 : }
25833 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25834 : return NULL;
25835 : x4 = XEXP (x2, 0);
25836 : if (GET_CODE (x4) != ZERO_EXTRACT
25837 : || GET_MODE (x4) != E_HImode)
25838 : return NULL;
25839 : x5 = XEXP (x4, 1);
25840 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
25841 : return NULL;
25842 : x6 = XVECEXP (x1, 0, 1);
25843 : if (pattern237 (x6,
25844 : E_CCmode,
25845 : 17) != 0)
25846 : return NULL;
25847 : x7 = XEXP (x4, 0);
25848 : operands[0] = x7;
25849 : x8 = XEXP (x4, 2);
25850 : operands[1] = x8;
25851 : if (!register_operand (operands[1], E_QImode))
25852 : return NULL;
25853 : switch (GET_MODE (operands[0]))
25854 : {
25855 : case E_QImode:
25856 : if (nonimmediate_operand (operands[0], E_QImode)
25857 : && (
25858 : #line 19923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25859 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25860 : #line 19925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25861 : ( MEM_P (operands[0]))))
25862 : return gen_split_816 (insn, operands);
25863 : if (!register_operand (operands[0], E_QImode)
25864 : || !
25865 : #line 19947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25866 : (TARGET_USE_BT && ix86_pre_reload_split ()))
25867 : return NULL;
25868 : return gen_split_818 (insn, operands);
25869 :
25870 : case E_HImode:
25871 : if (nonimmediate_operand (operands[0], E_HImode)
25872 : && (
25873 : #line 19923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25874 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
25875 : #line 19925 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25876 : ( MEM_P (operands[0]))))
25877 : return gen_split_817 (insn, operands);
25878 : if (!register_operand (operands[0], E_HImode)
25879 : || !
25880 : #line 19947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25881 : (TARGET_USE_BT && ix86_pre_reload_split ()))
25882 : return NULL;
25883 : return gen_split_819 (insn, operands);
25884 :
25885 : default:
25886 : return NULL;
25887 : }
25888 :
25889 : case ASHIFTRT:
25890 : case LSHIFTRT:
25891 : case SIGN_EXTRACT:
25892 : case ZERO_EXTRACT:
25893 : x6 = XVECEXP (x1, 0, 1);
25894 : if (pattern237 (x6,
25895 : E_CCmode,
25896 : 17) != 0)
25897 : return NULL;
25898 : switch (GET_CODE (x3))
25899 : {
25900 : case SIGN_EXTRACT:
25901 : res = split_15 (x1, insn);
25902 : if (res != NULL_RTX)
25903 : return res;
25904 : break;
25905 :
25906 : case LSHIFTRT:
25907 : res = split_16 (x1, insn);
25908 : if (res != NULL_RTX)
25909 : return res;
25910 : break;
25911 :
25912 : case ASHIFTRT:
25913 : res = split_17 (x1, insn);
25914 : if (res != NULL_RTX)
25915 : return res;
25916 : break;
25917 :
25918 : case ZERO_EXTRACT:
25919 : res = split_18 (x1, insn);
25920 : if (res != NULL_RTX)
25921 : return res;
25922 : break;
25923 :
25924 : default:
25925 : break;
25926 : }
25927 : x4 = XEXP (x2, 0);
25928 : if (GET_CODE (x4) != ZERO_EXTRACT)
25929 : return NULL;
25930 : x5 = XEXP (x4, 1);
25931 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
25932 : return NULL;
25933 : x8 = XEXP (x4, 2);
25934 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
25935 : return NULL;
25936 : x7 = XEXP (x4, 0);
25937 : operands[0] = x7;
25938 : if (!int248_register_operand (operands[0], E_VOIDmode))
25939 : return NULL;
25940 : operands[3] = x3;
25941 : x9 = XEXP (x3, 0);
25942 : switch (GET_CODE (x9))
25943 : {
25944 : case AND:
25945 : switch (pattern1496 (x2))
25946 : {
25947 : case 0:
25948 : if (!(
25949 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25950 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25951 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25952 : ( reload_completed
25953 : && !(rtx_equal_p (operands[0], operands[1])
25954 : || rtx_equal_p (operands[0], operands[2])))))
25955 : return NULL;
25956 : return gen_split_364 (insn, operands);
25957 :
25958 : case 1:
25959 : if (!(
25960 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25961 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25962 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25963 : ( reload_completed
25964 : && !(rtx_equal_p (operands[0], operands[1])
25965 : || rtx_equal_p (operands[0], operands[2])))))
25966 : return NULL;
25967 : return gen_split_367 (insn, operands);
25968 :
25969 : case 2:
25970 : if (!((
25971 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25972 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25973 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25974 : (TARGET_64BIT)) &&
25975 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25976 : ( reload_completed
25977 : && !(rtx_equal_p (operands[0], operands[1])
25978 : || rtx_equal_p (operands[0], operands[2])))))
25979 : return NULL;
25980 : return gen_split_370 (insn, operands);
25981 :
25982 : default:
25983 : return NULL;
25984 : }
25985 :
25986 : case IOR:
25987 : switch (pattern1496 (x2))
25988 : {
25989 : case 0:
25990 : if (!(
25991 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25992 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
25993 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25994 : ( reload_completed
25995 : && !(rtx_equal_p (operands[0], operands[1])
25996 : || rtx_equal_p (operands[0], operands[2])))))
25997 : return NULL;
25998 : return gen_split_365 (insn, operands);
25999 :
26000 : case 1:
26001 : if (!(
26002 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26003 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26004 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26005 : ( reload_completed
26006 : && !(rtx_equal_p (operands[0], operands[1])
26007 : || rtx_equal_p (operands[0], operands[2])))))
26008 : return NULL;
26009 : return gen_split_368 (insn, operands);
26010 :
26011 : case 2:
26012 : if (!((
26013 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26014 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26015 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26016 : (TARGET_64BIT)) &&
26017 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26018 : ( reload_completed
26019 : && !(rtx_equal_p (operands[0], operands[1])
26020 : || rtx_equal_p (operands[0], operands[2])))))
26021 : return NULL;
26022 : return gen_split_371 (insn, operands);
26023 :
26024 : default:
26025 : return NULL;
26026 : }
26027 :
26028 : case XOR:
26029 : switch (pattern1496 (x2))
26030 : {
26031 : case 0:
26032 : if (!(
26033 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26034 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26035 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26036 : ( reload_completed
26037 : && !(rtx_equal_p (operands[0], operands[1])
26038 : || rtx_equal_p (operands[0], operands[2])))))
26039 : return NULL;
26040 : return gen_split_366 (insn, operands);
26041 :
26042 : case 1:
26043 : if (!(
26044 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26045 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26046 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26047 : ( reload_completed
26048 : && !(rtx_equal_p (operands[0], operands[1])
26049 : || rtx_equal_p (operands[0], operands[2])))))
26050 : return NULL;
26051 : return gen_split_369 (insn, operands);
26052 :
26053 : case 2:
26054 : if (!((
26055 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26056 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
26057 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26058 : (TARGET_64BIT)) &&
26059 : #line 14041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26060 : ( reload_completed
26061 : && !(rtx_equal_p (operands[0], operands[1])
26062 : || rtx_equal_p (operands[0], operands[2])))))
26063 : return NULL;
26064 : return gen_split_372 (insn, operands);
26065 :
26066 : default:
26067 : return NULL;
26068 : }
26069 :
26070 : default:
26071 : return NULL;
26072 : }
26073 :
26074 : case ZERO_EXTEND:
26075 : return split_32 (x1, insn);
26076 :
26077 : case FIX:
26078 : x6 = XVECEXP (x1, 0, 1);
26079 : if (pattern357 (x6) != 0)
26080 : return NULL;
26081 : x4 = XEXP (x2, 0);
26082 : operands[0] = x4;
26083 : x9 = XEXP (x3, 0);
26084 : operands[1] = x9;
26085 : if (!register_operand (operands[1], E_VOIDmode))
26086 : return NULL;
26087 : switch (pattern554 (x3))
26088 : {
26089 : case 0:
26090 : if (!(
26091 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26092 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26093 : && !TARGET_FISTTP
26094 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26095 : && (TARGET_64BIT || HImode != DImode))
26096 : && ix86_pre_reload_split ()) &&
26097 : #line 6110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26098 : ( 1)))
26099 : return NULL;
26100 : return gen_split_82 (insn, operands);
26101 :
26102 : case 1:
26103 : if (!(
26104 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26105 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26106 : && !TARGET_FISTTP
26107 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26108 : && (TARGET_64BIT || SImode != DImode))
26109 : && ix86_pre_reload_split ()) &&
26110 : #line 6110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26111 : ( 1)))
26112 : return NULL;
26113 : return gen_split_83 (insn, operands);
26114 :
26115 : case 2:
26116 : if (!(
26117 : #line 6104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26118 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
26119 : && !TARGET_FISTTP
26120 : && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
26121 : && (TARGET_64BIT || DImode != DImode))
26122 : && ix86_pre_reload_split ()) &&
26123 : #line 6110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26124 : ( 1)))
26125 : return NULL;
26126 : return gen_split_84 (insn, operands);
26127 :
26128 : default:
26129 : return NULL;
26130 : }
26131 :
26132 : case MULT:
26133 : if (pattern346 (x1) != 0)
26134 : return NULL;
26135 : x9 = XEXP (x3, 0);
26136 : switch (GET_CODE (x9))
26137 : {
26138 : case REG:
26139 : if (!rtx_equal_p (x9, operands[0]))
26140 : return NULL;
26141 : x10 = XEXP (x3, 1);
26142 : operands[1] = x10;
26143 : switch (GET_MODE (operands[0]))
26144 : {
26145 : case E_SImode:
26146 : if (!general_reg_operand (operands[0], E_SImode)
26147 : || GET_MODE (x3) != E_SImode
26148 : || !const1248_operand (operands[1], E_SImode)
26149 : || !
26150 : #line 6535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26151 : (reload_completed))
26152 : return NULL;
26153 : return gen_split_100 (insn, operands);
26154 :
26155 : case E_DImode:
26156 : if (!general_reg_operand (operands[0], E_DImode)
26157 : || GET_MODE (x3) != E_DImode
26158 : || !const1248_operand (operands[1], E_DImode)
26159 : || !(
26160 : #line 6535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26161 : (reload_completed) &&
26162 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26163 : (TARGET_64BIT)))
26164 : return NULL;
26165 : return gen_split_101 (insn, operands);
26166 :
26167 : default:
26168 : return NULL;
26169 : }
26170 :
26171 : case ZERO_EXTEND:
26172 : x10 = XEXP (x3, 1);
26173 : if (GET_CODE (x10) != ZERO_EXTEND)
26174 : return NULL;
26175 : x11 = XEXP (x9, 0);
26176 : operands[1] = x11;
26177 : x12 = XEXP (x10, 0);
26178 : operands[2] = x12;
26179 : switch (GET_MODE (operands[0]))
26180 : {
26181 : case E_DImode:
26182 : if (pattern566 (x3,
26183 : E_SImode,
26184 : E_DImode) != 0
26185 : || !(
26186 : #line 11797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26187 : (TARGET_BMI2 && reload_completed
26188 : && REGNO (operands[1]) == DX_REG) &&
26189 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26190 : (!TARGET_64BIT)))
26191 : return NULL;
26192 : return gen_split_244 (insn, operands);
26193 :
26194 : case E_TImode:
26195 : if (pattern566 (x3,
26196 : E_DImode,
26197 : E_TImode) != 0
26198 : || !(
26199 : #line 11797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26200 : (TARGET_BMI2 && reload_completed
26201 : && REGNO (operands[1]) == DX_REG) &&
26202 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26203 : (TARGET_64BIT)))
26204 : return NULL;
26205 : return gen_split_245 (insn, operands);
26206 :
26207 : default:
26208 : return NULL;
26209 : }
26210 :
26211 : default:
26212 : return NULL;
26213 : }
26214 :
26215 : case PLUS:
26216 : return split_29 (x1, insn);
26217 :
26218 : case SUBREG:
26219 : return split_28 (x1, insn);
26220 :
26221 : case NE:
26222 : case EQ:
26223 : case GE:
26224 : case GT:
26225 : case LE:
26226 : case LT:
26227 : case LTGT:
26228 : case GEU:
26229 : case GTU:
26230 : case LEU:
26231 : case LTU:
26232 : case UNORDERED:
26233 : case ORDERED:
26234 : case UNEQ:
26235 : case UNGE:
26236 : case UNGT:
26237 : case UNLE:
26238 : case UNLT:
26239 : if (GET_CODE (x3) == EQ)
26240 : {
26241 : x9 = XEXP (x3, 0);
26242 : switch (GET_CODE (x9))
26243 : {
26244 : case PLUS:
26245 : switch (pattern730 (x1,
26246 : PLUS))
26247 : {
26248 : case 0:
26249 : if (((
26250 : #line 7919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26251 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
26252 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26253 : (!TARGET_64BIT)) &&
26254 : #line 7921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26255 : ( reload_completed)))
26256 : return gen_split_152 (insn, operands);
26257 : break;
26258 :
26259 : case 1:
26260 : if (((
26261 : #line 7919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26262 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
26263 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26264 : (TARGET_64BIT)) &&
26265 : #line 7921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26266 : ( reload_completed)))
26267 : return gen_split_153 (insn, operands);
26268 : break;
26269 :
26270 : case 2:
26271 : if (((
26272 : #line 7969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26273 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
26274 : && CONST_SCALAR_INT_P (operands[2])
26275 : && rtx_equal_p (operands[2], operands[3])) &&
26276 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26277 : (!TARGET_64BIT)) &&
26278 : #line 7973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26279 : ( reload_completed)))
26280 : return gen_split_154 (insn, operands);
26281 : break;
26282 :
26283 : case 3:
26284 : if (((
26285 : #line 7969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26286 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)
26287 : && CONST_SCALAR_INT_P (operands[2])
26288 : && rtx_equal_p (operands[2], operands[3])) &&
26289 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26290 : (TARGET_64BIT)) &&
26291 : #line 7973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26292 : ( reload_completed)))
26293 : return gen_split_155 (insn, operands);
26294 : break;
26295 :
26296 : default:
26297 : break;
26298 : }
26299 : break;
26300 :
26301 : case MINUS:
26302 : switch (pattern730 (x1,
26303 : MINUS))
26304 : {
26305 : case 0:
26306 : if (((
26307 : #line 8743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26308 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
26309 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26310 : (!TARGET_64BIT)) &&
26311 : #line 8745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26312 : ( reload_completed)))
26313 : return gen_split_192 (insn, operands);
26314 : break;
26315 :
26316 : case 1:
26317 : if (((
26318 : #line 8743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26319 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
26320 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26321 : (TARGET_64BIT)) &&
26322 : #line 8745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26323 : ( reload_completed)))
26324 : return gen_split_193 (insn, operands);
26325 : break;
26326 :
26327 : case 2:
26328 : if (((
26329 : #line 8791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26330 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26331 : && CONST_SCALAR_INT_P (operands[2])
26332 : && rtx_equal_p (operands[2], operands[3])) &&
26333 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26334 : (!TARGET_64BIT)) &&
26335 : #line 8795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26336 : ( reload_completed)))
26337 : return gen_split_194 (insn, operands);
26338 : break;
26339 :
26340 : case 3:
26341 : if (((
26342 : #line 8791 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26343 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26344 : && CONST_SCALAR_INT_P (operands[2])
26345 : && rtx_equal_p (operands[2], operands[3])) &&
26346 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26347 : (TARGET_64BIT)) &&
26348 : #line 8795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26349 : ( reload_completed)))
26350 : return gen_split_195 (insn, operands);
26351 : break;
26352 :
26353 : default:
26354 : break;
26355 : }
26356 : break;
26357 :
26358 : case ZERO_EXTRACT:
26359 : switch (pattern699 (x1))
26360 : {
26361 : case 0:
26362 : if ((
26363 : #line 20382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26364 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26365 : #line 20384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26366 : ( 1)))
26367 : return gen_split_846 (insn, operands);
26368 : break;
26369 :
26370 : case 1:
26371 : if (((
26372 : #line 20382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26373 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
26374 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26375 : (TARGET_64BIT)) &&
26376 : #line 20384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26377 : ( 1)))
26378 : return gen_split_847 (insn, operands);
26379 : break;
26380 :
26381 : default:
26382 : break;
26383 : }
26384 : break;
26385 :
26386 : default:
26387 : break;
26388 : }
26389 : }
26390 : operands[1] = x3;
26391 : switch (pattern373 (x1))
26392 : {
26393 : case 0:
26394 : if (!(
26395 : #line 20496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26396 : (!TARGET_PARTIAL_REG_STALL
26397 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26398 : #line 20499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26399 : ( reload_completed)))
26400 : return NULL;
26401 : return gen_split_856 (insn, operands);
26402 :
26403 : case 1:
26404 : if (!(
26405 : #line 20496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26406 : (!TARGET_PARTIAL_REG_STALL
26407 : && TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
26408 : #line 20499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26409 : ( reload_completed)))
26410 : return NULL;
26411 : return gen_split_857 (insn, operands);
26412 :
26413 : default:
26414 : return NULL;
26415 : }
26416 :
26417 : case MINUS:
26418 : x6 = XVECEXP (x1, 0, 1);
26419 : if (pattern237 (x6,
26420 : E_CCmode,
26421 : 17) != 0)
26422 : return NULL;
26423 : x9 = XEXP (x3, 0);
26424 : switch (GET_CODE (x9))
26425 : {
26426 : case CONST_INT:
26427 : case CONST_WIDE_INT:
26428 : case CONST_POLY_INT:
26429 : case CONST_FIXED:
26430 : case CONST_DOUBLE:
26431 : case CONST_VECTOR:
26432 : case CONST:
26433 : case REG:
26434 : case SUBREG:
26435 : case MEM:
26436 : case LABEL_REF:
26437 : case SYMBOL_REF:
26438 : case HIGH:
26439 : operands[1] = x9;
26440 : res = split_20 (x1, insn);
26441 : if (res != NULL_RTX)
26442 : return res;
26443 : if (GET_CODE (x9) != SUBREG)
26444 : return NULL;
26445 : switch (pattern1059 (x2))
26446 : {
26447 : case 0:
26448 : if (!(
26449 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26450 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26451 : #line 8496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26452 : ( reload_completed)))
26453 : return NULL;
26454 : return gen_split_183 (insn, operands);
26455 :
26456 : case 1:
26457 : if (!(
26458 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26459 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26460 : #line 8496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26461 : ( reload_completed)))
26462 : return NULL;
26463 : return gen_split_184 (insn, operands);
26464 :
26465 : case 2:
26466 : if (!((
26467 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26468 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
26469 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26470 : (TARGET_64BIT)) &&
26471 : #line 8496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26472 : ( reload_completed)))
26473 : return NULL;
26474 : return gen_split_185 (insn, operands);
26475 :
26476 : case 3:
26477 : if (!
26478 : #line 8589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26479 : ( reload_completed))
26480 : return NULL;
26481 : return gen_split_186 (insn, operands);
26482 :
26483 : case 4:
26484 : if (!
26485 : #line 8589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26486 : ( reload_completed))
26487 : return NULL;
26488 : return gen_split_187 (insn, operands);
26489 :
26490 : case 5:
26491 : if (!(
26492 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26493 : (TARGET_64BIT) &&
26494 : #line 8589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26495 : ( reload_completed)))
26496 : return NULL;
26497 : return gen_split_188 (insn, operands);
26498 :
26499 : default:
26500 : return NULL;
26501 : }
26502 :
26503 : case MINUS:
26504 : x13 = XEXP (x9, 1);
26505 : if (GET_CODE (x13) != EQ)
26506 : return NULL;
26507 : x14 = XEXP (x13, 1);
26508 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26509 : return NULL;
26510 : x4 = XEXP (x2, 0);
26511 : operands[0] = x4;
26512 : x11 = XEXP (x9, 0);
26513 : operands[1] = x11;
26514 : x15 = XEXP (x13, 0);
26515 : operands[3] = x15;
26516 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
26517 : return NULL;
26518 : x10 = XEXP (x3, 1);
26519 : operands[2] = x10;
26520 : switch (GET_MODE (operands[0]))
26521 : {
26522 : case E_QImode:
26523 : if (pattern1579 (x3,
26524 : E_QImode) != 0
26525 : || !(
26526 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26527 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
26528 : && ix86_pre_reload_split ()) &&
26529 : #line 10989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26530 : ( 1)))
26531 : return NULL;
26532 : return gen_split_224 (insn, operands);
26533 :
26534 : case E_HImode:
26535 : if (pattern1579 (x3,
26536 : E_HImode) != 0
26537 : || !(
26538 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26539 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
26540 : && ix86_pre_reload_split ()) &&
26541 : #line 10989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26542 : ( 1)))
26543 : return NULL;
26544 : return gen_split_225 (insn, operands);
26545 :
26546 : case E_SImode:
26547 : if (pattern1580 (x3,
26548 : E_SImode) != 0
26549 : || !(
26550 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26551 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26552 : && ix86_pre_reload_split ()) &&
26553 : #line 10989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26554 : ( 1)))
26555 : return NULL;
26556 : return gen_split_226 (insn, operands);
26557 :
26558 : case E_DImode:
26559 : if (pattern1580 (x3,
26560 : E_DImode) != 0
26561 : || !((
26562 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26563 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26564 : && ix86_pre_reload_split ()) &&
26565 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26566 : (TARGET_64BIT)) &&
26567 : #line 10989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26568 : ( 1)))
26569 : return NULL;
26570 : return gen_split_227 (insn, operands);
26571 :
26572 : default:
26573 : return NULL;
26574 : }
26575 :
26576 : default:
26577 : return NULL;
26578 : }
26579 :
26580 : case IF_THEN_ELSE:
26581 : x9 = XEXP (x3, 0);
26582 : if (!bt_comparison_operator (x9, E_VOIDmode))
26583 : return NULL;
26584 : x13 = XEXP (x9, 1);
26585 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26586 : return NULL;
26587 : switch (pattern705 (x1))
26588 : {
26589 : case 0:
26590 : x11 = XEXP (x9, 0);
26591 : operands[2] = x11;
26592 : x10 = XEXP (x3, 1);
26593 : if (GET_CODE (x10) != PLUS)
26594 : return NULL;
26595 : x16 = XEXP (x10, 1);
26596 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
26597 : return NULL;
26598 : x4 = XEXP (x2, 0);
26599 : operands[0] = x4;
26600 : operands[1] = x9;
26601 : switch (pattern1590 (x3))
26602 : {
26603 : case 0:
26604 : if (!(
26605 : #line 9059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26606 : (TARGET_CMOVE) &&
26607 : #line 9061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26608 : ( reload_completed)))
26609 : return NULL;
26610 : return gen_split_196 (insn, operands);
26611 :
26612 : case 1:
26613 : if (!(
26614 : #line 9059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26615 : (TARGET_CMOVE) &&
26616 : #line 9061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26617 : ( reload_completed)))
26618 : return NULL;
26619 : return gen_split_197 (insn, operands);
26620 :
26621 : case 2:
26622 : if (!((
26623 : #line 9059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26624 : (TARGET_CMOVE) &&
26625 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26626 : (TARGET_64BIT)) &&
26627 : #line 9061 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26628 : ( reload_completed)))
26629 : return NULL;
26630 : return gen_split_198 (insn, operands);
26631 :
26632 : default:
26633 : return NULL;
26634 : }
26635 :
26636 : case 1:
26637 : x11 = XEXP (x9, 0);
26638 : x17 = XEXP (x11, 1);
26639 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
26640 : return NULL;
26641 : switch (pattern1347 (x2))
26642 : {
26643 : case 0:
26644 : x18 = XEXP (x11, 2);
26645 : operands[2] = x18;
26646 : switch (pattern1542 (x2))
26647 : {
26648 : case 0:
26649 : if ((
26650 : #line 20152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26651 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26652 : && (CONST_INT_P (operands[2])
26653 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
26654 : && INTVAL (operands[2])
26655 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
26656 : : !memory_operand (operands[1], SImode))
26657 : && ix86_pre_reload_split ()) &&
26658 : #line 20160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26659 : ( 1)))
26660 : return gen_split_822 (insn, operands);
26661 : break;
26662 :
26663 : case 1:
26664 : if (((
26665 : #line 20152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26666 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26667 : && (CONST_INT_P (operands[2])
26668 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
26669 : && INTVAL (operands[2])
26670 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
26671 : : !memory_operand (operands[1], DImode))
26672 : && ix86_pre_reload_split ()) &&
26673 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26674 : (TARGET_64BIT)) &&
26675 : #line 20160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26676 : ( 1)))
26677 : return gen_split_823 (insn, operands);
26678 : break;
26679 :
26680 : case 2:
26681 : if ((
26682 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26683 : (TARGET_USE_BT && TARGET_CMOVE
26684 : && ix86_pre_reload_split ()) &&
26685 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26686 : ( 1)))
26687 : return gen_split_834 (insn, operands);
26688 : break;
26689 :
26690 : case 3:
26691 : if (((
26692 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26693 : (TARGET_USE_BT && TARGET_CMOVE
26694 : && ix86_pre_reload_split ()) &&
26695 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26696 : (TARGET_64BIT)) &&
26697 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26698 : ( 1)))
26699 : return gen_split_835 (insn, operands);
26700 : break;
26701 :
26702 : case 4:
26703 : if ((
26704 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26705 : (TARGET_USE_BT && TARGET_CMOVE
26706 : && ix86_pre_reload_split ()) &&
26707 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26708 : ( 1)))
26709 : return gen_split_836 (insn, operands);
26710 : break;
26711 :
26712 : case 5:
26713 : if (((
26714 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26715 : (TARGET_USE_BT && TARGET_CMOVE
26716 : && ix86_pre_reload_split ()) &&
26717 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26718 : (TARGET_64BIT)) &&
26719 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26720 : ( 1)))
26721 : return gen_split_837 (insn, operands);
26722 : break;
26723 :
26724 : case 6:
26725 : if (((
26726 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26727 : (TARGET_USE_BT && TARGET_CMOVE
26728 : && ix86_pre_reload_split ()) &&
26729 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26730 : (TARGET_64BIT)) &&
26731 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26732 : ( 1)))
26733 : return gen_split_838 (insn, operands);
26734 : break;
26735 :
26736 : case 7:
26737 : if (((
26738 : #line 20295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26739 : (TARGET_USE_BT && TARGET_CMOVE
26740 : && ix86_pre_reload_split ()) &&
26741 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26742 : (TARGET_64BIT)) &&
26743 : #line 20298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26744 : ( 1)))
26745 : return gen_split_839 (insn, operands);
26746 : break;
26747 :
26748 : default:
26749 : break;
26750 : }
26751 : if (GET_CODE (x18) != SUBREG)
26752 : return NULL;
26753 : switch (pattern1543 (x2))
26754 : {
26755 : case 0:
26756 : if (!(
26757 : #line 20228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26758 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26759 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26760 : == GET_MODE_BITSIZE (SImode)-1
26761 : && ix86_pre_reload_split ()) &&
26762 : #line 20233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26763 : ( 1)))
26764 : return NULL;
26765 : return gen_split_826 (insn, operands);
26766 :
26767 : case 1:
26768 : if (!((
26769 : #line 20228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26770 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26771 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26772 : == GET_MODE_BITSIZE (DImode)-1
26773 : && ix86_pre_reload_split ()) &&
26774 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26775 : (TARGET_64BIT)) &&
26776 : #line 20233 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26777 : ( 1)))
26778 : return NULL;
26779 : return gen_split_827 (insn, operands);
26780 :
26781 : default:
26782 : return NULL;
26783 : }
26784 :
26785 : case 1:
26786 : if (!(
26787 : #line 20191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26788 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26789 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
26790 : == GET_MODE_BITSIZE (SImode)-1
26791 : && ix86_pre_reload_split ()) &&
26792 : #line 20196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26793 : ( 1)))
26794 : return NULL;
26795 : return gen_split_824 (insn, operands);
26796 :
26797 : case 2:
26798 : if (!((
26799 : #line 20191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26800 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
26801 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
26802 : == GET_MODE_BITSIZE (DImode)-1
26803 : && ix86_pre_reload_split ()) &&
26804 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26805 : (TARGET_64BIT)) &&
26806 : #line 20196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26807 : ( 1)))
26808 : return NULL;
26809 : return gen_split_825 (insn, operands);
26810 :
26811 : default:
26812 : return NULL;
26813 : }
26814 :
26815 : default:
26816 : return NULL;
26817 : }
26818 :
26819 : case COMPARE:
26820 : return split_27 (x1, insn);
26821 :
26822 : case AND:
26823 : return split_25 (x1, insn);
26824 :
26825 : case IOR:
26826 : return split_26 (x1, insn);
26827 :
26828 : case XOR:
26829 : return split_24 (x1, insn);
26830 :
26831 : case NOT:
26832 : x9 = XEXP (x3, 0);
26833 : if (GET_CODE (x9) != XOR
26834 : || pattern347 (x1) != 0)
26835 : return NULL;
26836 : switch (GET_MODE (operands[0]))
26837 : {
26838 : case E_HImode:
26839 : if (!nonimmediate_operand (operands[0], E_HImode)
26840 : || pattern218 (x3,
26841 : E_HImode) != 0
26842 : || !(
26843 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26844 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)) &&
26845 : #line 14427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26846 : ( reload_completed)))
26847 : return NULL;
26848 : return gen_split_397 (insn, operands);
26849 :
26850 : case E_SImode:
26851 : if (!nonimmediate_operand (operands[0], E_SImode)
26852 : || pattern219 (x3,
26853 : E_SImode) != 0
26854 : || !(
26855 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26856 : (ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)) &&
26857 : #line 14427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26858 : ( reload_completed)))
26859 : return NULL;
26860 : return gen_split_398 (insn, operands);
26861 :
26862 : case E_DImode:
26863 : if (!nonimmediate_operand (operands[0], E_DImode)
26864 : || pattern219 (x3,
26865 : E_DImode) != 0
26866 : || !((
26867 : #line 14425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26868 : (ix86_binary_operator_ok (XOR, DImode, operands, TARGET_APX_NDD)) &&
26869 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26870 : (TARGET_64BIT)) &&
26871 : #line 14427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26872 : ( reload_completed)))
26873 : return NULL;
26874 : return gen_split_399 (insn, operands);
26875 :
26876 : case E_QImode:
26877 : if (!nonimmediate_operand (operands[0], E_QImode)
26878 : || pattern218 (x3,
26879 : E_QImode) != 0
26880 : || !(
26881 : #line 14656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26882 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)) &&
26883 : #line 14658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26884 : ( reload_completed)))
26885 : return NULL;
26886 : return gen_split_405 (insn, operands);
26887 :
26888 : default:
26889 : return NULL;
26890 : }
26891 :
26892 : case NEG:
26893 : return split_31 (x1, insn);
26894 :
26895 : case ABS:
26896 : return split_33 (x1, insn);
26897 :
26898 : case ASHIFT:
26899 : return split_30 (x1, insn);
26900 :
26901 : case ROTATE:
26902 : return split_35 (x1, insn);
26903 :
26904 : case ROTATERT:
26905 : return split_34 (x1, insn);
26906 :
26907 : case CTZ:
26908 : switch (pattern411 (x1))
26909 : {
26910 : case 0:
26911 : if (!
26912 : #line 22077 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26913 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26914 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26915 : && epilogue_completed
26916 : && optimize_function_for_speed_p (cfun)
26917 : && !reg_mentioned_p (operands[0], operands[1])))
26918 : return NULL;
26919 : return gen_split_877 (insn, operands);
26920 :
26921 : case 1:
26922 : if (!(
26923 : #line 22077 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26924 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26925 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26926 : && epilogue_completed
26927 : && optimize_function_for_speed_p (cfun)
26928 : && !reg_mentioned_p (operands[0], operands[1])) &&
26929 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26930 : (TARGET_64BIT)))
26931 : return NULL;
26932 : return gen_split_878 (insn, operands);
26933 :
26934 : default:
26935 : return NULL;
26936 : }
26937 :
26938 : case SIGN_EXTEND:
26939 : if (GET_MODE (x3) != E_DImode)
26940 : return NULL;
26941 : x6 = XVECEXP (x1, 0, 1);
26942 : if (pattern357 (x6) != 0)
26943 : return NULL;
26944 : x4 = XEXP (x2, 0);
26945 : operands[0] = x4;
26946 : if (!register_operand (operands[0], E_DImode))
26947 : return NULL;
26948 : x9 = XEXP (x3, 0);
26949 : if (GET_MODE (x9) != E_SImode)
26950 : return NULL;
26951 : switch (GET_CODE (x9))
26952 : {
26953 : case CTZ:
26954 : x11 = XEXP (x9, 0);
26955 : operands[1] = x11;
26956 : if (!nonimmediate_operand (operands[1], E_SImode)
26957 : || !
26958 : #line 22188 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26959 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
26960 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26961 : && epilogue_completed
26962 : && optimize_function_for_speed_p (cfun)
26963 : && !reg_mentioned_p (operands[0], operands[1])))
26964 : return NULL;
26965 : return gen_split_880 (insn, operands);
26966 :
26967 : case XOR:
26968 : x11 = XEXP (x9, 0);
26969 : if (GET_CODE (x11) != MINUS
26970 : || pattern1168 (x9) != 0)
26971 : return NULL;
26972 : x17 = XEXP (x11, 1);
26973 : x19 = XEXP (x17, 0);
26974 : operands[1] = x19;
26975 : if (!nonimmediate_operand (operands[1], E_SImode)
26976 : || !(
26977 : #line 22357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26978 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
26979 : #line 22359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26980 : ( 1)))
26981 : return NULL;
26982 : return gen_split_884 (insn, operands);
26983 :
26984 : default:
26985 : return NULL;
26986 : }
26987 :
26988 : case CLZ:
26989 : switch (pattern411 (x1))
26990 : {
26991 : case 0:
26992 : if (!(
26993 : #line 22529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26994 : (TARGET_LZCNT) &&
26995 : #line 22531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26996 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
26997 : && optimize_function_for_speed_p (cfun)
26998 : && !reg_mentioned_p (operands[0], operands[1]))))
26999 : return NULL;
27000 : return gen_split_894 (insn, operands);
27001 :
27002 : case 1:
27003 : if (!((
27004 : #line 22529 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27005 : (TARGET_LZCNT) &&
27006 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27007 : (TARGET_64BIT)) &&
27008 : #line 22531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27009 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27010 : && optimize_function_for_speed_p (cfun)
27011 : && !reg_mentioned_p (operands[0], operands[1]))))
27012 : return NULL;
27013 : return gen_split_895 (insn, operands);
27014 :
27015 : default:
27016 : return NULL;
27017 : }
27018 :
27019 : case UNSPEC:
27020 : if (XVECLEN (x3, 0) != 1)
27021 : return NULL;
27022 : x6 = XVECEXP (x1, 0, 1);
27023 : if (pattern237 (x6,
27024 : E_CCmode,
27025 : 17) != 0)
27026 : return NULL;
27027 : x4 = XEXP (x2, 0);
27028 : operands[0] = x4;
27029 : x20 = XVECEXP (x3, 0, 0);
27030 : operands[1] = x20;
27031 : switch (XINT (x3, 1))
27032 : {
27033 : case 98:
27034 : switch (pattern1349 (x3))
27035 : {
27036 : case 0:
27037 : if (!(
27038 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27039 : (TARGET_BMI) &&
27040 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27041 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27042 : && optimize_function_for_speed_p (cfun)
27043 : && !reg_mentioned_p (operands[0], operands[1]))))
27044 : return NULL;
27045 : return gen_split_902 (insn, operands);
27046 :
27047 : case 1:
27048 : if (!((((
27049 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27050 : (TARGET_64BIT) &&
27051 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27052 : (TARGET_BMI)) &&
27053 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27054 : (TARGET_64BIT)) &&
27055 : #line 22653 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27056 : (TARGET_BMI)) &&
27057 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27058 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27059 : && optimize_function_for_speed_p (cfun)
27060 : && !reg_mentioned_p (operands[0], operands[1]))))
27061 : return NULL;
27062 : return gen_split_904 (insn, operands);
27063 :
27064 : default:
27065 : return NULL;
27066 : }
27067 :
27068 : case 97:
27069 : switch (pattern1349 (x3))
27070 : {
27071 : case 0:
27072 : if (!(
27073 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27074 : (TARGET_LZCNT) &&
27075 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27076 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27077 : && optimize_function_for_speed_p (cfun)
27078 : && !reg_mentioned_p (operands[0], operands[1]))))
27079 : return NULL;
27080 : return gen_split_903 (insn, operands);
27081 :
27082 : case 1:
27083 : if (!((((
27084 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27085 : (TARGET_64BIT) &&
27086 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27087 : (TARGET_LZCNT)) &&
27088 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27089 : (TARGET_64BIT)) &&
27090 : #line 22654 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27091 : (TARGET_LZCNT)) &&
27092 : #line 22694 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27093 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27094 : && optimize_function_for_speed_p (cfun)
27095 : && !reg_mentioned_p (operands[0], operands[1]))))
27096 : return NULL;
27097 : return gen_split_905 (insn, operands);
27098 :
27099 : default:
27100 : return NULL;
27101 : }
27102 :
27103 : default:
27104 : return NULL;
27105 : }
27106 :
27107 : case POPCOUNT:
27108 : x6 = XVECEXP (x1, 0, 1);
27109 : if (pattern357 (x6) != 0)
27110 : return NULL;
27111 : x4 = XEXP (x2, 0);
27112 : operands[0] = x4;
27113 : x9 = XEXP (x3, 0);
27114 : switch (GET_CODE (x9))
27115 : {
27116 : case REG:
27117 : case SUBREG:
27118 : case MEM:
27119 : operands[1] = x9;
27120 : switch (pattern410 (x3))
27121 : {
27122 : case 0:
27123 : if (!(
27124 : #line 23338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27125 : (TARGET_POPCNT) &&
27126 : #line 23346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27127 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27128 : && optimize_function_for_speed_p (cfun)
27129 : && !reg_mentioned_p (operands[0], operands[1]))))
27130 : return NULL;
27131 : return gen_split_918 (insn, operands);
27132 :
27133 : case 1:
27134 : if (!((
27135 : #line 23338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27136 : (TARGET_POPCNT) &&
27137 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27138 : (TARGET_64BIT)) &&
27139 : #line 23346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27140 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
27141 : && optimize_function_for_speed_p (cfun)
27142 : && !reg_mentioned_p (operands[0], operands[1]))))
27143 : return NULL;
27144 : return gen_split_919 (insn, operands);
27145 :
27146 : default:
27147 : return NULL;
27148 : }
27149 :
27150 : case ZERO_EXTEND:
27151 : if (pattern1187 (x3,
27152 : E_HImode,
27153 : E_SImode) != 0
27154 : || !(
27155 : #line 23508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27156 : (TARGET_POPCNT
27157 : && ix86_pre_reload_split ()) &&
27158 : #line 23511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27159 : ( 1)))
27160 : return NULL;
27161 : return gen_split_922 (insn, operands);
27162 :
27163 : default:
27164 : return NULL;
27165 : }
27166 :
27167 : default:
27168 : return NULL;
27169 : }
27170 :
27171 : case SIMPLE_RETURN:
27172 : x6 = XVECEXP (x1, 0, 1);
27173 : if (GET_CODE (x6) != USE)
27174 : return NULL;
27175 : x21 = XEXP (x6, 0);
27176 : operands[0] = x21;
27177 : if (!const_int_operand (operands[0], E_SImode)
27178 : || !(
27179 : #line 21668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27180 : (reload_completed) &&
27181 : #line 21670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27182 : ( cfun->machine->function_return_type != indirect_branch_keep)))
27183 : return NULL;
27184 : return gen_split_872 (insn, operands);
27185 :
27186 : default:
27187 : return NULL;
27188 : }
27189 : }
27190 :
27191 : rtx_insn *
27192 : split_67 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27193 : {
27194 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27195 : rtx x2, x3, x4;
27196 : rtx_insn *res ATTRIBUTE_UNUSED;
27197 : x2 = XEXP (x1, 1);
27198 : x3 = XEXP (x2, 0);
27199 : x4 = XEXP (x3, 0);
27200 : switch (GET_CODE (x4))
27201 : {
27202 : case REG:
27203 : case SUBREG:
27204 : case MEM:
27205 : case NOT:
27206 : switch (pattern537 (x2))
27207 : {
27208 : case 0:
27209 : if (!((
27210 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27211 : ((64 == 64 || TARGET_AVX512VL
27212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27213 : && ix86_pre_reload_split ()
27214 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27215 : STRIP_UNARY (operands[4]))
27216 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27217 : STRIP_UNARY (operands[4]))
27218 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27219 : STRIP_UNARY (operands[3]))
27220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27221 : STRIP_UNARY (operands[3])))) &&
27222 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27223 : (TARGET_AVX512F)) &&
27224 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27225 : ( 1)))
27226 : return NULL;
27227 : return gen_split_1750 (insn, operands);
27228 :
27229 : case 1:
27230 : if (!((
27231 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27232 : ((32 == 64 || TARGET_AVX512VL
27233 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27234 : && ix86_pre_reload_split ()
27235 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27236 : STRIP_UNARY (operands[4]))
27237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27238 : STRIP_UNARY (operands[4]))
27239 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27240 : STRIP_UNARY (operands[3]))
27241 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27242 : STRIP_UNARY (operands[3])))) &&
27243 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27244 : (TARGET_AVX)) &&
27245 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27246 : ( 1)))
27247 : return NULL;
27248 : return gen_split_1777 (insn, operands);
27249 :
27250 : case 2:
27251 : if (!(
27252 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27253 : ((16 == 64 || TARGET_AVX512VL
27254 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27255 : && ix86_pre_reload_split ()
27256 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27257 : STRIP_UNARY (operands[4]))
27258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27259 : STRIP_UNARY (operands[4]))
27260 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27261 : STRIP_UNARY (operands[3]))
27262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27263 : STRIP_UNARY (operands[3])))) &&
27264 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27265 : ( 1)))
27266 : return NULL;
27267 : return gen_split_1804 (insn, operands);
27268 :
27269 : case 3:
27270 : if (!((
27271 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27272 : ((64 == 64 || TARGET_AVX512VL
27273 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27274 : && ix86_pre_reload_split ()
27275 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27276 : STRIP_UNARY (operands[4]))
27277 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27278 : STRIP_UNARY (operands[4]))
27279 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27280 : STRIP_UNARY (operands[3]))
27281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27282 : STRIP_UNARY (operands[3])))) &&
27283 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27284 : (TARGET_AVX512F)) &&
27285 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27286 : ( 1)))
27287 : return NULL;
27288 : return gen_split_1831 (insn, operands);
27289 :
27290 : case 4:
27291 : if (!((
27292 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27293 : ((32 == 64 || TARGET_AVX512VL
27294 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27295 : && ix86_pre_reload_split ()
27296 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27297 : STRIP_UNARY (operands[4]))
27298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27299 : STRIP_UNARY (operands[4]))
27300 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27301 : STRIP_UNARY (operands[3]))
27302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27303 : STRIP_UNARY (operands[3])))) &&
27304 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27305 : (TARGET_AVX)) &&
27306 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : ( 1)))
27308 : return NULL;
27309 : return gen_split_1858 (insn, operands);
27310 :
27311 : case 5:
27312 : if (!(
27313 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27314 : ((16 == 64 || TARGET_AVX512VL
27315 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27316 : && ix86_pre_reload_split ()
27317 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27318 : STRIP_UNARY (operands[4]))
27319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27320 : STRIP_UNARY (operands[4]))
27321 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27322 : STRIP_UNARY (operands[3]))
27323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27324 : STRIP_UNARY (operands[3])))) &&
27325 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27326 : ( 1)))
27327 : return NULL;
27328 : return gen_split_1885 (insn, operands);
27329 :
27330 : case 6:
27331 : if (!((
27332 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27333 : ((64 == 64 || TARGET_AVX512VL
27334 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27335 : && ix86_pre_reload_split ()
27336 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27337 : STRIP_UNARY (operands[4]))
27338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27339 : STRIP_UNARY (operands[4]))
27340 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27341 : STRIP_UNARY (operands[3]))
27342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27343 : STRIP_UNARY (operands[3])))) &&
27344 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27345 : (TARGET_AVX512F)) &&
27346 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27347 : ( 1)))
27348 : return NULL;
27349 : return gen_split_1912 (insn, operands);
27350 :
27351 : case 7:
27352 : if (!((
27353 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27354 : ((32 == 64 || TARGET_AVX512VL
27355 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27356 : && ix86_pre_reload_split ()
27357 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27358 : STRIP_UNARY (operands[4]))
27359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27360 : STRIP_UNARY (operands[4]))
27361 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27362 : STRIP_UNARY (operands[3]))
27363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27364 : STRIP_UNARY (operands[3])))) &&
27365 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27366 : (TARGET_AVX)) &&
27367 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27368 : ( 1)))
27369 : return NULL;
27370 : return gen_split_1939 (insn, operands);
27371 :
27372 : case 8:
27373 : if (!(
27374 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27375 : ((16 == 64 || TARGET_AVX512VL
27376 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27377 : && ix86_pre_reload_split ()
27378 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27379 : STRIP_UNARY (operands[4]))
27380 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27381 : STRIP_UNARY (operands[4]))
27382 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27383 : STRIP_UNARY (operands[3]))
27384 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27385 : STRIP_UNARY (operands[3])))) &&
27386 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27387 : ( 1)))
27388 : return NULL;
27389 : return gen_split_1966 (insn, operands);
27390 :
27391 : case 9:
27392 : if (!((
27393 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27394 : ((64 == 64 || TARGET_AVX512VL
27395 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27396 : && ix86_pre_reload_split ()
27397 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27398 : STRIP_UNARY (operands[4]))
27399 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27400 : STRIP_UNARY (operands[4]))
27401 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27402 : STRIP_UNARY (operands[3]))
27403 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27404 : STRIP_UNARY (operands[3])))) &&
27405 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27406 : (TARGET_AVX512F)) &&
27407 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27408 : ( 1)))
27409 : return NULL;
27410 : return gen_split_1993 (insn, operands);
27411 :
27412 : case 10:
27413 : if (!((
27414 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27415 : ((32 == 64 || TARGET_AVX512VL
27416 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27417 : && ix86_pre_reload_split ()
27418 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27419 : STRIP_UNARY (operands[4]))
27420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27421 : STRIP_UNARY (operands[4]))
27422 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27423 : STRIP_UNARY (operands[3]))
27424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27425 : STRIP_UNARY (operands[3])))) &&
27426 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27427 : (TARGET_AVX)) &&
27428 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27429 : ( 1)))
27430 : return NULL;
27431 : return gen_split_2020 (insn, operands);
27432 :
27433 : case 11:
27434 : if (!(
27435 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27436 : ((16 == 64 || TARGET_AVX512VL
27437 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27438 : && ix86_pre_reload_split ()
27439 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27440 : STRIP_UNARY (operands[4]))
27441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27442 : STRIP_UNARY (operands[4]))
27443 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27444 : STRIP_UNARY (operands[3]))
27445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27446 : STRIP_UNARY (operands[3])))) &&
27447 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27448 : ( 1)))
27449 : return NULL;
27450 : return gen_split_2047 (insn, operands);
27451 :
27452 : case 12:
27453 : if (!((
27454 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27455 : ((64 == 64 || TARGET_AVX512VL
27456 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27457 : && ix86_pre_reload_split ()
27458 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27459 : STRIP_UNARY (operands[4]))
27460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27461 : STRIP_UNARY (operands[4]))
27462 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27463 : STRIP_UNARY (operands[3]))
27464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27465 : STRIP_UNARY (operands[3])))) &&
27466 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27467 : (TARGET_AVX512F)) &&
27468 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27469 : ( 1)))
27470 : return NULL;
27471 : return gen_split_1753 (insn, operands);
27472 :
27473 : case 13:
27474 : if (!((
27475 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27476 : ((32 == 64 || TARGET_AVX512VL
27477 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27478 : && ix86_pre_reload_split ()
27479 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27480 : STRIP_UNARY (operands[4]))
27481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27482 : STRIP_UNARY (operands[4]))
27483 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27484 : STRIP_UNARY (operands[3]))
27485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27486 : STRIP_UNARY (operands[3])))) &&
27487 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27488 : (TARGET_AVX)) &&
27489 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27490 : ( 1)))
27491 : return NULL;
27492 : return gen_split_1780 (insn, operands);
27493 :
27494 : case 14:
27495 : if (!(
27496 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27497 : ((16 == 64 || TARGET_AVX512VL
27498 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27499 : && ix86_pre_reload_split ()
27500 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27501 : STRIP_UNARY (operands[4]))
27502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27503 : STRIP_UNARY (operands[4]))
27504 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27505 : STRIP_UNARY (operands[3]))
27506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27507 : STRIP_UNARY (operands[3])))) &&
27508 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27509 : ( 1)))
27510 : return NULL;
27511 : return gen_split_1807 (insn, operands);
27512 :
27513 : case 15:
27514 : if (!((
27515 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27516 : ((64 == 64 || TARGET_AVX512VL
27517 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27518 : && ix86_pre_reload_split ()
27519 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27520 : STRIP_UNARY (operands[4]))
27521 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27522 : STRIP_UNARY (operands[4]))
27523 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27524 : STRIP_UNARY (operands[3]))
27525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27526 : STRIP_UNARY (operands[3])))) &&
27527 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27528 : (TARGET_AVX512F)) &&
27529 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27530 : ( 1)))
27531 : return NULL;
27532 : return gen_split_1834 (insn, operands);
27533 :
27534 : case 16:
27535 : if (!((
27536 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27537 : ((32 == 64 || TARGET_AVX512VL
27538 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27539 : && ix86_pre_reload_split ()
27540 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27541 : STRIP_UNARY (operands[4]))
27542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27543 : STRIP_UNARY (operands[4]))
27544 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27545 : STRIP_UNARY (operands[3]))
27546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27547 : STRIP_UNARY (operands[3])))) &&
27548 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27549 : (TARGET_AVX)) &&
27550 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27551 : ( 1)))
27552 : return NULL;
27553 : return gen_split_1861 (insn, operands);
27554 :
27555 : case 17:
27556 : if (!(
27557 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27558 : ((16 == 64 || TARGET_AVX512VL
27559 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27560 : && ix86_pre_reload_split ()
27561 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27562 : STRIP_UNARY (operands[4]))
27563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27564 : STRIP_UNARY (operands[4]))
27565 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27566 : STRIP_UNARY (operands[3]))
27567 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27568 : STRIP_UNARY (operands[3])))) &&
27569 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27570 : ( 1)))
27571 : return NULL;
27572 : return gen_split_1888 (insn, operands);
27573 :
27574 : case 18:
27575 : if (!((
27576 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27577 : ((64 == 64 || TARGET_AVX512VL
27578 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27579 : && ix86_pre_reload_split ()
27580 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27581 : STRIP_UNARY (operands[4]))
27582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27583 : STRIP_UNARY (operands[4]))
27584 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27585 : STRIP_UNARY (operands[3]))
27586 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27587 : STRIP_UNARY (operands[3])))) &&
27588 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27589 : (TARGET_AVX512F)) &&
27590 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27591 : ( 1)))
27592 : return NULL;
27593 : return gen_split_1915 (insn, operands);
27594 :
27595 : case 19:
27596 : if (!((
27597 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27598 : ((32 == 64 || TARGET_AVX512VL
27599 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27600 : && ix86_pre_reload_split ()
27601 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27602 : STRIP_UNARY (operands[4]))
27603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27604 : STRIP_UNARY (operands[4]))
27605 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27606 : STRIP_UNARY (operands[3]))
27607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27608 : STRIP_UNARY (operands[3])))) &&
27609 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27610 : (TARGET_AVX)) &&
27611 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27612 : ( 1)))
27613 : return NULL;
27614 : return gen_split_1942 (insn, operands);
27615 :
27616 : case 20:
27617 : if (!(
27618 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27619 : ((16 == 64 || TARGET_AVX512VL
27620 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27621 : && ix86_pre_reload_split ()
27622 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27623 : STRIP_UNARY (operands[4]))
27624 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27625 : STRIP_UNARY (operands[4]))
27626 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27627 : STRIP_UNARY (operands[3]))
27628 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27629 : STRIP_UNARY (operands[3])))) &&
27630 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27631 : ( 1)))
27632 : return NULL;
27633 : return gen_split_1969 (insn, operands);
27634 :
27635 : case 21:
27636 : if (!((
27637 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27638 : ((64 == 64 || TARGET_AVX512VL
27639 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27640 : && ix86_pre_reload_split ()
27641 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27642 : STRIP_UNARY (operands[4]))
27643 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27644 : STRIP_UNARY (operands[4]))
27645 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27646 : STRIP_UNARY (operands[3]))
27647 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27648 : STRIP_UNARY (operands[3])))) &&
27649 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27650 : (TARGET_AVX512F)) &&
27651 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27652 : ( 1)))
27653 : return NULL;
27654 : return gen_split_1996 (insn, operands);
27655 :
27656 : case 22:
27657 : if (!((
27658 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27659 : ((32 == 64 || TARGET_AVX512VL
27660 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27661 : && ix86_pre_reload_split ()
27662 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27663 : STRIP_UNARY (operands[4]))
27664 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27665 : STRIP_UNARY (operands[4]))
27666 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27667 : STRIP_UNARY (operands[3]))
27668 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27669 : STRIP_UNARY (operands[3])))) &&
27670 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27671 : (TARGET_AVX)) &&
27672 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27673 : ( 1)))
27674 : return NULL;
27675 : return gen_split_2023 (insn, operands);
27676 :
27677 : case 23:
27678 : if (!(
27679 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27680 : ((16 == 64 || TARGET_AVX512VL
27681 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27682 : && ix86_pre_reload_split ()
27683 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27684 : STRIP_UNARY (operands[4]))
27685 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27686 : STRIP_UNARY (operands[4]))
27687 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27688 : STRIP_UNARY (operands[3]))
27689 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27690 : STRIP_UNARY (operands[3])))) &&
27691 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27692 : ( 1)))
27693 : return NULL;
27694 : return gen_split_2050 (insn, operands);
27695 :
27696 : case 24:
27697 : if (!((
27698 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27699 : ((64 == 64 || TARGET_AVX512VL
27700 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27701 : && ix86_pre_reload_split ()
27702 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27703 : STRIP_UNARY (operands[4]))
27704 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27705 : STRIP_UNARY (operands[4]))
27706 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27707 : STRIP_UNARY (operands[3]))
27708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27709 : STRIP_UNARY (operands[3])))) &&
27710 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27711 : (TARGET_AVX512F)) &&
27712 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27713 : ( 1)))
27714 : return NULL;
27715 : return gen_split_1756 (insn, operands);
27716 :
27717 : case 25:
27718 : if (!((
27719 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27720 : ((32 == 64 || TARGET_AVX512VL
27721 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27722 : && ix86_pre_reload_split ()
27723 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27724 : STRIP_UNARY (operands[4]))
27725 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27726 : STRIP_UNARY (operands[4]))
27727 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27728 : STRIP_UNARY (operands[3]))
27729 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27730 : STRIP_UNARY (operands[3])))) &&
27731 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27732 : (TARGET_AVX)) &&
27733 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27734 : ( 1)))
27735 : return NULL;
27736 : return gen_split_1783 (insn, operands);
27737 :
27738 : case 26:
27739 : if (!(
27740 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27741 : ((16 == 64 || TARGET_AVX512VL
27742 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27743 : && ix86_pre_reload_split ()
27744 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27745 : STRIP_UNARY (operands[4]))
27746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27747 : STRIP_UNARY (operands[4]))
27748 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27749 : STRIP_UNARY (operands[3]))
27750 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27751 : STRIP_UNARY (operands[3])))) &&
27752 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27753 : ( 1)))
27754 : return NULL;
27755 : return gen_split_1810 (insn, operands);
27756 :
27757 : case 27:
27758 : if (!((
27759 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27760 : ((64 == 64 || TARGET_AVX512VL
27761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27762 : && ix86_pre_reload_split ()
27763 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27764 : STRIP_UNARY (operands[4]))
27765 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27766 : STRIP_UNARY (operands[4]))
27767 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27768 : STRIP_UNARY (operands[3]))
27769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27770 : STRIP_UNARY (operands[3])))) &&
27771 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27772 : (TARGET_AVX512F)) &&
27773 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27774 : ( 1)))
27775 : return NULL;
27776 : return gen_split_1837 (insn, operands);
27777 :
27778 : case 28:
27779 : if (!((
27780 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27781 : ((32 == 64 || TARGET_AVX512VL
27782 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27783 : && ix86_pre_reload_split ()
27784 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27785 : STRIP_UNARY (operands[4]))
27786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27787 : STRIP_UNARY (operands[4]))
27788 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27789 : STRIP_UNARY (operands[3]))
27790 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27791 : STRIP_UNARY (operands[3])))) &&
27792 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27793 : (TARGET_AVX)) &&
27794 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27795 : ( 1)))
27796 : return NULL;
27797 : return gen_split_1864 (insn, operands);
27798 :
27799 : case 29:
27800 : if (!(
27801 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27802 : ((16 == 64 || TARGET_AVX512VL
27803 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27804 : && ix86_pre_reload_split ()
27805 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27806 : STRIP_UNARY (operands[4]))
27807 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27808 : STRIP_UNARY (operands[4]))
27809 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27810 : STRIP_UNARY (operands[3]))
27811 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27812 : STRIP_UNARY (operands[3])))) &&
27813 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27814 : ( 1)))
27815 : return NULL;
27816 : return gen_split_1891 (insn, operands);
27817 :
27818 : case 30:
27819 : if (!((
27820 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27821 : ((64 == 64 || TARGET_AVX512VL
27822 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27823 : && ix86_pre_reload_split ()
27824 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27825 : STRIP_UNARY (operands[4]))
27826 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27827 : STRIP_UNARY (operands[4]))
27828 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27829 : STRIP_UNARY (operands[3]))
27830 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27831 : STRIP_UNARY (operands[3])))) &&
27832 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27833 : (TARGET_AVX512F)) &&
27834 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27835 : ( 1)))
27836 : return NULL;
27837 : return gen_split_1918 (insn, operands);
27838 :
27839 : case 31:
27840 : if (!((
27841 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27842 : ((32 == 64 || TARGET_AVX512VL
27843 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27844 : && ix86_pre_reload_split ()
27845 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27846 : STRIP_UNARY (operands[4]))
27847 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27848 : STRIP_UNARY (operands[4]))
27849 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27850 : STRIP_UNARY (operands[3]))
27851 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27852 : STRIP_UNARY (operands[3])))) &&
27853 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27854 : (TARGET_AVX)) &&
27855 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27856 : ( 1)))
27857 : return NULL;
27858 : return gen_split_1945 (insn, operands);
27859 :
27860 : case 32:
27861 : if (!(
27862 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27863 : ((16 == 64 || TARGET_AVX512VL
27864 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27865 : && ix86_pre_reload_split ()
27866 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27867 : STRIP_UNARY (operands[4]))
27868 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27869 : STRIP_UNARY (operands[4]))
27870 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27871 : STRIP_UNARY (operands[3]))
27872 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27873 : STRIP_UNARY (operands[3])))) &&
27874 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27875 : ( 1)))
27876 : return NULL;
27877 : return gen_split_1972 (insn, operands);
27878 :
27879 : case 33:
27880 : if (!((
27881 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27882 : ((64 == 64 || TARGET_AVX512VL
27883 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27884 : && ix86_pre_reload_split ()
27885 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27886 : STRIP_UNARY (operands[4]))
27887 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27888 : STRIP_UNARY (operands[4]))
27889 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27890 : STRIP_UNARY (operands[3]))
27891 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27892 : STRIP_UNARY (operands[3])))) &&
27893 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27894 : (TARGET_AVX512F)) &&
27895 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27896 : ( 1)))
27897 : return NULL;
27898 : return gen_split_1999 (insn, operands);
27899 :
27900 : case 34:
27901 : if (!((
27902 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27903 : ((32 == 64 || TARGET_AVX512VL
27904 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27905 : && ix86_pre_reload_split ()
27906 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27907 : STRIP_UNARY (operands[4]))
27908 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27909 : STRIP_UNARY (operands[4]))
27910 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27911 : STRIP_UNARY (operands[3]))
27912 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27913 : STRIP_UNARY (operands[3])))) &&
27914 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27915 : (TARGET_AVX)) &&
27916 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27917 : ( 1)))
27918 : return NULL;
27919 : return gen_split_2026 (insn, operands);
27920 :
27921 : case 35:
27922 : if (!(
27923 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27924 : ((16 == 64 || TARGET_AVX512VL
27925 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27926 : && ix86_pre_reload_split ()
27927 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27928 : STRIP_UNARY (operands[4]))
27929 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27930 : STRIP_UNARY (operands[4]))
27931 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27932 : STRIP_UNARY (operands[3]))
27933 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27934 : STRIP_UNARY (operands[3])))) &&
27935 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27936 : ( 1)))
27937 : return NULL;
27938 : return gen_split_2053 (insn, operands);
27939 :
27940 : case 36:
27941 : if (!((
27942 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27943 : ((64 == 64 || TARGET_AVX512VL
27944 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27945 : && ix86_pre_reload_split ()) &&
27946 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27947 : (TARGET_AVX512F)) &&
27948 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27949 : ( 1)))
27950 : return NULL;
27951 : return gen_split_3040 (insn, operands);
27952 :
27953 : case 37:
27954 : if (!((
27955 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27956 : ((32 == 64 || TARGET_AVX512VL
27957 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27958 : && ix86_pre_reload_split ()) &&
27959 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27960 : (TARGET_AVX)) &&
27961 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27962 : ( 1)))
27963 : return NULL;
27964 : return gen_split_3049 (insn, operands);
27965 :
27966 : case 38:
27967 : if (!(
27968 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27969 : ((16 == 64 || TARGET_AVX512VL
27970 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27971 : && ix86_pre_reload_split ()) &&
27972 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27973 : ( 1)))
27974 : return NULL;
27975 : return gen_split_3058 (insn, operands);
27976 :
27977 : case 39:
27978 : if (!((
27979 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27980 : ((64 == 64 || TARGET_AVX512VL
27981 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27982 : && ix86_pre_reload_split ()) &&
27983 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27984 : (TARGET_AVX512F)) &&
27985 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27986 : ( 1)))
27987 : return NULL;
27988 : return gen_split_3067 (insn, operands);
27989 :
27990 : case 40:
27991 : if (!((
27992 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27993 : ((32 == 64 || TARGET_AVX512VL
27994 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27995 : && ix86_pre_reload_split ()) &&
27996 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27997 : (TARGET_AVX)) &&
27998 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27999 : ( 1)))
28000 : return NULL;
28001 : return gen_split_3076 (insn, operands);
28002 :
28003 : case 41:
28004 : if (!(
28005 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28006 : ((16 == 64 || TARGET_AVX512VL
28007 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28008 : && ix86_pre_reload_split ()) &&
28009 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28010 : ( 1)))
28011 : return NULL;
28012 : return gen_split_3085 (insn, operands);
28013 :
28014 : case 42:
28015 : if (!((
28016 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28017 : ((64 == 64 || TARGET_AVX512VL
28018 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28019 : && ix86_pre_reload_split ()) &&
28020 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28021 : (TARGET_AVX512F)) &&
28022 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28023 : ( 1)))
28024 : return NULL;
28025 : return gen_split_3094 (insn, operands);
28026 :
28027 : case 43:
28028 : if (!((
28029 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28030 : ((32 == 64 || TARGET_AVX512VL
28031 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28032 : && ix86_pre_reload_split ()) &&
28033 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28034 : (TARGET_AVX)) &&
28035 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28036 : ( 1)))
28037 : return NULL;
28038 : return gen_split_3103 (insn, operands);
28039 :
28040 : case 44:
28041 : if (!(
28042 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28043 : ((16 == 64 || TARGET_AVX512VL
28044 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28045 : && ix86_pre_reload_split ()) &&
28046 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28047 : ( 1)))
28048 : return NULL;
28049 : return gen_split_3112 (insn, operands);
28050 :
28051 : case 45:
28052 : if (!((
28053 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28054 : ((64 == 64 || TARGET_AVX512VL
28055 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28056 : && ix86_pre_reload_split ()) &&
28057 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28058 : (TARGET_AVX512F)) &&
28059 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28060 : ( 1)))
28061 : return NULL;
28062 : return gen_split_3121 (insn, operands);
28063 :
28064 : case 46:
28065 : if (!((
28066 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28067 : ((32 == 64 || TARGET_AVX512VL
28068 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28069 : && ix86_pre_reload_split ()) &&
28070 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28071 : (TARGET_AVX)) &&
28072 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28073 : ( 1)))
28074 : return NULL;
28075 : return gen_split_3130 (insn, operands);
28076 :
28077 : case 47:
28078 : if (!(
28079 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28080 : ((16 == 64 || TARGET_AVX512VL
28081 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28082 : && ix86_pre_reload_split ()) &&
28083 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28084 : ( 1)))
28085 : return NULL;
28086 : return gen_split_3139 (insn, operands);
28087 :
28088 : default:
28089 : return NULL;
28090 : }
28091 :
28092 : case AND:
28093 : switch (pattern539 (x2))
28094 : {
28095 : case 0:
28096 : if (!((
28097 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28098 : ((64 == 64 || TARGET_AVX512VL
28099 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28100 : && ix86_pre_reload_split ()
28101 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28102 : STRIP_UNARY (operands[4]))
28103 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28104 : STRIP_UNARY (operands[4]))
28105 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28106 : STRIP_UNARY (operands[3]))
28107 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28108 : STRIP_UNARY (operands[3])))) &&
28109 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28110 : (TARGET_AVX512F)) &&
28111 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28112 : ( 1)))
28113 : return NULL;
28114 : return gen_split_2398 (insn, operands);
28115 :
28116 : case 1:
28117 : if (!((
28118 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28119 : ((32 == 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 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28131 : (TARGET_AVX)) &&
28132 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28133 : ( 1)))
28134 : return NULL;
28135 : return gen_split_2425 (insn, operands);
28136 :
28137 : case 2:
28138 : if (!(
28139 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28140 : ((16 == 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 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28152 : ( 1)))
28153 : return NULL;
28154 : return gen_split_2452 (insn, operands);
28155 :
28156 : case 3:
28157 : if (!((
28158 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28159 : ((64 == 64 || TARGET_AVX512VL
28160 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28161 : && ix86_pre_reload_split ()
28162 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28163 : STRIP_UNARY (operands[4]))
28164 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28165 : STRIP_UNARY (operands[4]))
28166 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28167 : STRIP_UNARY (operands[3]))
28168 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28169 : STRIP_UNARY (operands[3])))) &&
28170 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28171 : (TARGET_AVX512F)) &&
28172 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ( 1)))
28174 : return NULL;
28175 : return gen_split_2479 (insn, operands);
28176 :
28177 : case 4:
28178 : if (!((
28179 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28180 : ((32 == 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 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28192 : (TARGET_AVX)) &&
28193 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28194 : ( 1)))
28195 : return NULL;
28196 : return gen_split_2506 (insn, operands);
28197 :
28198 : case 5:
28199 : if (!(
28200 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28201 : ((16 == 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 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28213 : ( 1)))
28214 : return NULL;
28215 : return gen_split_2533 (insn, operands);
28216 :
28217 : case 6:
28218 : if (!((
28219 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28220 : ((64 == 64 || TARGET_AVX512VL
28221 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28222 : && ix86_pre_reload_split ()
28223 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28224 : STRIP_UNARY (operands[4]))
28225 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28226 : STRIP_UNARY (operands[4]))
28227 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28228 : STRIP_UNARY (operands[3]))
28229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28230 : STRIP_UNARY (operands[3])))) &&
28231 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28232 : (TARGET_AVX512F)) &&
28233 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28234 : ( 1)))
28235 : return NULL;
28236 : return gen_split_2560 (insn, operands);
28237 :
28238 : case 7:
28239 : if (!((
28240 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28241 : ((32 == 64 || TARGET_AVX512VL
28242 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28243 : && ix86_pre_reload_split ()
28244 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28245 : STRIP_UNARY (operands[4]))
28246 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28247 : STRIP_UNARY (operands[4]))
28248 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28249 : STRIP_UNARY (operands[3]))
28250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28251 : STRIP_UNARY (operands[3])))) &&
28252 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28253 : (TARGET_AVX)) &&
28254 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28255 : ( 1)))
28256 : return NULL;
28257 : return gen_split_2587 (insn, operands);
28258 :
28259 : case 8:
28260 : if (!(
28261 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28262 : ((16 == 64 || TARGET_AVX512VL
28263 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28264 : && ix86_pre_reload_split ()
28265 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28266 : STRIP_UNARY (operands[4]))
28267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28268 : STRIP_UNARY (operands[4]))
28269 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28270 : STRIP_UNARY (operands[3]))
28271 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28272 : STRIP_UNARY (operands[3])))) &&
28273 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28274 : ( 1)))
28275 : return NULL;
28276 : return gen_split_2614 (insn, operands);
28277 :
28278 : case 9:
28279 : if (!((
28280 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28281 : ((64 == 64 || TARGET_AVX512VL
28282 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28283 : && ix86_pre_reload_split ()
28284 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28285 : STRIP_UNARY (operands[4]))
28286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28287 : STRIP_UNARY (operands[4]))
28288 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28289 : STRIP_UNARY (operands[3]))
28290 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28291 : STRIP_UNARY (operands[3])))) &&
28292 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28293 : (TARGET_AVX512F)) &&
28294 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28295 : ( 1)))
28296 : return NULL;
28297 : return gen_split_2641 (insn, operands);
28298 :
28299 : case 10:
28300 : if (!((
28301 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28302 : ((32 == 64 || TARGET_AVX512VL
28303 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28304 : && ix86_pre_reload_split ()
28305 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28306 : STRIP_UNARY (operands[4]))
28307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28308 : STRIP_UNARY (operands[4]))
28309 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28310 : STRIP_UNARY (operands[3]))
28311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28312 : STRIP_UNARY (operands[3])))) &&
28313 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28314 : (TARGET_AVX)) &&
28315 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28316 : ( 1)))
28317 : return NULL;
28318 : return gen_split_2668 (insn, operands);
28319 :
28320 : case 11:
28321 : if (!(
28322 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28323 : ((16 == 64 || TARGET_AVX512VL
28324 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28325 : && ix86_pre_reload_split ()
28326 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28327 : STRIP_UNARY (operands[4]))
28328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28329 : STRIP_UNARY (operands[4]))
28330 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28331 : STRIP_UNARY (operands[3]))
28332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28333 : STRIP_UNARY (operands[3])))) &&
28334 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28335 : ( 1)))
28336 : return NULL;
28337 : return gen_split_2695 (insn, operands);
28338 :
28339 : default:
28340 : return NULL;
28341 : }
28342 :
28343 : case IOR:
28344 : switch (pattern539 (x2))
28345 : {
28346 : case 0:
28347 : if (!((
28348 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28349 : ((64 == 64 || TARGET_AVX512VL
28350 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28351 : && ix86_pre_reload_split ()
28352 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28353 : STRIP_UNARY (operands[4]))
28354 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28355 : STRIP_UNARY (operands[4]))
28356 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28357 : STRIP_UNARY (operands[3]))
28358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28359 : STRIP_UNARY (operands[3])))) &&
28360 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28361 : (TARGET_AVX512F)) &&
28362 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28363 : ( 1)))
28364 : return NULL;
28365 : return gen_split_2401 (insn, operands);
28366 :
28367 : case 1:
28368 : if (!((
28369 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28370 : ((32 == 64 || TARGET_AVX512VL
28371 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28372 : && ix86_pre_reload_split ()
28373 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28374 : STRIP_UNARY (operands[4]))
28375 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28376 : STRIP_UNARY (operands[4]))
28377 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28378 : STRIP_UNARY (operands[3]))
28379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28380 : STRIP_UNARY (operands[3])))) &&
28381 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28382 : (TARGET_AVX)) &&
28383 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28384 : ( 1)))
28385 : return NULL;
28386 : return gen_split_2428 (insn, operands);
28387 :
28388 : case 2:
28389 : if (!(
28390 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28391 : ((16 == 64 || TARGET_AVX512VL
28392 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28393 : && ix86_pre_reload_split ()
28394 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28395 : STRIP_UNARY (operands[4]))
28396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28397 : STRIP_UNARY (operands[4]))
28398 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28399 : STRIP_UNARY (operands[3]))
28400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28401 : STRIP_UNARY (operands[3])))) &&
28402 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28403 : ( 1)))
28404 : return NULL;
28405 : return gen_split_2455 (insn, operands);
28406 :
28407 : case 3:
28408 : if (!((
28409 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28410 : ((64 == 64 || TARGET_AVX512VL
28411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28412 : && ix86_pre_reload_split ()
28413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28414 : STRIP_UNARY (operands[4]))
28415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28416 : STRIP_UNARY (operands[4]))
28417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28418 : STRIP_UNARY (operands[3]))
28419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28420 : STRIP_UNARY (operands[3])))) &&
28421 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28422 : (TARGET_AVX512F)) &&
28423 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28424 : ( 1)))
28425 : return NULL;
28426 : return gen_split_2482 (insn, operands);
28427 :
28428 : case 4:
28429 : if (!((
28430 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28431 : ((32 == 64 || TARGET_AVX512VL
28432 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28433 : && ix86_pre_reload_split ()
28434 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28435 : STRIP_UNARY (operands[4]))
28436 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28437 : STRIP_UNARY (operands[4]))
28438 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28439 : STRIP_UNARY (operands[3]))
28440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28441 : STRIP_UNARY (operands[3])))) &&
28442 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28443 : (TARGET_AVX)) &&
28444 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28445 : ( 1)))
28446 : return NULL;
28447 : return gen_split_2509 (insn, operands);
28448 :
28449 : case 5:
28450 : if (!(
28451 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28452 : ((16 == 64 || TARGET_AVX512VL
28453 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28454 : && ix86_pre_reload_split ()
28455 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28456 : STRIP_UNARY (operands[4]))
28457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28458 : STRIP_UNARY (operands[4]))
28459 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28460 : STRIP_UNARY (operands[3]))
28461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28462 : STRIP_UNARY (operands[3])))) &&
28463 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28464 : ( 1)))
28465 : return NULL;
28466 : return gen_split_2536 (insn, operands);
28467 :
28468 : case 6:
28469 : if (!((
28470 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28471 : ((64 == 64 || TARGET_AVX512VL
28472 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28473 : && ix86_pre_reload_split ()
28474 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28475 : STRIP_UNARY (operands[4]))
28476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28477 : STRIP_UNARY (operands[4]))
28478 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28479 : STRIP_UNARY (operands[3]))
28480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28481 : STRIP_UNARY (operands[3])))) &&
28482 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28483 : (TARGET_AVX512F)) &&
28484 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28485 : ( 1)))
28486 : return NULL;
28487 : return gen_split_2563 (insn, operands);
28488 :
28489 : case 7:
28490 : if (!((
28491 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28492 : ((32 == 64 || TARGET_AVX512VL
28493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28494 : && ix86_pre_reload_split ()
28495 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28496 : STRIP_UNARY (operands[4]))
28497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28498 : STRIP_UNARY (operands[4]))
28499 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28500 : STRIP_UNARY (operands[3]))
28501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28502 : STRIP_UNARY (operands[3])))) &&
28503 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28504 : (TARGET_AVX)) &&
28505 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28506 : ( 1)))
28507 : return NULL;
28508 : return gen_split_2590 (insn, operands);
28509 :
28510 : case 8:
28511 : if (!(
28512 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28513 : ((16 == 64 || TARGET_AVX512VL
28514 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28515 : && ix86_pre_reload_split ()
28516 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28517 : STRIP_UNARY (operands[4]))
28518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28519 : STRIP_UNARY (operands[4]))
28520 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28521 : STRIP_UNARY (operands[3]))
28522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28523 : STRIP_UNARY (operands[3])))) &&
28524 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28525 : ( 1)))
28526 : return NULL;
28527 : return gen_split_2617 (insn, operands);
28528 :
28529 : case 9:
28530 : if (!((
28531 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28532 : ((64 == 64 || TARGET_AVX512VL
28533 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28534 : && ix86_pre_reload_split ()
28535 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28536 : STRIP_UNARY (operands[4]))
28537 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28538 : STRIP_UNARY (operands[4]))
28539 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28540 : STRIP_UNARY (operands[3]))
28541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28542 : STRIP_UNARY (operands[3])))) &&
28543 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28544 : (TARGET_AVX512F)) &&
28545 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28546 : ( 1)))
28547 : return NULL;
28548 : return gen_split_2644 (insn, operands);
28549 :
28550 : case 10:
28551 : if (!((
28552 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28553 : ((32 == 64 || TARGET_AVX512VL
28554 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28555 : && ix86_pre_reload_split ()
28556 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28557 : STRIP_UNARY (operands[4]))
28558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28559 : STRIP_UNARY (operands[4]))
28560 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28561 : STRIP_UNARY (operands[3]))
28562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28563 : STRIP_UNARY (operands[3])))) &&
28564 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28565 : (TARGET_AVX)) &&
28566 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28567 : ( 1)))
28568 : return NULL;
28569 : return gen_split_2671 (insn, operands);
28570 :
28571 : case 11:
28572 : if (!(
28573 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28574 : ((16 == 64 || TARGET_AVX512VL
28575 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28576 : && ix86_pre_reload_split ()
28577 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28578 : STRIP_UNARY (operands[4]))
28579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28580 : STRIP_UNARY (operands[4]))
28581 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28582 : STRIP_UNARY (operands[3]))
28583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28584 : STRIP_UNARY (operands[3])))) &&
28585 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28586 : ( 1)))
28587 : return NULL;
28588 : return gen_split_2698 (insn, operands);
28589 :
28590 : default:
28591 : return NULL;
28592 : }
28593 :
28594 : case XOR:
28595 : switch (pattern539 (x2))
28596 : {
28597 : case 0:
28598 : if (!((
28599 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28600 : ((64 == 64 || TARGET_AVX512VL
28601 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28602 : && ix86_pre_reload_split ()
28603 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28604 : STRIP_UNARY (operands[4]))
28605 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28606 : STRIP_UNARY (operands[4]))
28607 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28608 : STRIP_UNARY (operands[3]))
28609 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28610 : STRIP_UNARY (operands[3])))) &&
28611 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28612 : (TARGET_AVX512F)) &&
28613 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28614 : ( 1)))
28615 : return NULL;
28616 : return gen_split_2404 (insn, operands);
28617 :
28618 : case 1:
28619 : if (!((
28620 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28621 : ((32 == 64 || TARGET_AVX512VL
28622 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28623 : && ix86_pre_reload_split ()
28624 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28625 : STRIP_UNARY (operands[4]))
28626 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28627 : STRIP_UNARY (operands[4]))
28628 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28629 : STRIP_UNARY (operands[3]))
28630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28631 : STRIP_UNARY (operands[3])))) &&
28632 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28633 : (TARGET_AVX)) &&
28634 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28635 : ( 1)))
28636 : return NULL;
28637 : return gen_split_2431 (insn, operands);
28638 :
28639 : case 2:
28640 : if (!(
28641 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28642 : ((16 == 64 || TARGET_AVX512VL
28643 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28644 : && ix86_pre_reload_split ()
28645 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28646 : STRIP_UNARY (operands[4]))
28647 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28648 : STRIP_UNARY (operands[4]))
28649 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28650 : STRIP_UNARY (operands[3]))
28651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28652 : STRIP_UNARY (operands[3])))) &&
28653 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28654 : ( 1)))
28655 : return NULL;
28656 : return gen_split_2458 (insn, operands);
28657 :
28658 : case 3:
28659 : if (!((
28660 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28661 : ((64 == 64 || TARGET_AVX512VL
28662 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28663 : && ix86_pre_reload_split ()
28664 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28665 : STRIP_UNARY (operands[4]))
28666 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28667 : STRIP_UNARY (operands[4]))
28668 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28669 : STRIP_UNARY (operands[3]))
28670 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28671 : STRIP_UNARY (operands[3])))) &&
28672 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28673 : (TARGET_AVX512F)) &&
28674 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28675 : ( 1)))
28676 : return NULL;
28677 : return gen_split_2485 (insn, operands);
28678 :
28679 : case 4:
28680 : if (!((
28681 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28682 : ((32 == 64 || TARGET_AVX512VL
28683 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28684 : && ix86_pre_reload_split ()
28685 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28686 : STRIP_UNARY (operands[4]))
28687 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28688 : STRIP_UNARY (operands[4]))
28689 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28690 : STRIP_UNARY (operands[3]))
28691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28692 : STRIP_UNARY (operands[3])))) &&
28693 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28694 : (TARGET_AVX)) &&
28695 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28696 : ( 1)))
28697 : return NULL;
28698 : return gen_split_2512 (insn, operands);
28699 :
28700 : case 5:
28701 : if (!(
28702 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28703 : ((16 == 64 || TARGET_AVX512VL
28704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28705 : && ix86_pre_reload_split ()
28706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28707 : STRIP_UNARY (operands[4]))
28708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28709 : STRIP_UNARY (operands[4]))
28710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28711 : STRIP_UNARY (operands[3]))
28712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28713 : STRIP_UNARY (operands[3])))) &&
28714 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28715 : ( 1)))
28716 : return NULL;
28717 : return gen_split_2539 (insn, operands);
28718 :
28719 : case 6:
28720 : if (!((
28721 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28722 : ((64 == 64 || TARGET_AVX512VL
28723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28724 : && ix86_pre_reload_split ()
28725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28726 : STRIP_UNARY (operands[4]))
28727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28728 : STRIP_UNARY (operands[4]))
28729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28730 : STRIP_UNARY (operands[3]))
28731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28732 : STRIP_UNARY (operands[3])))) &&
28733 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28734 : (TARGET_AVX512F)) &&
28735 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28736 : ( 1)))
28737 : return NULL;
28738 : return gen_split_2566 (insn, operands);
28739 :
28740 : case 7:
28741 : if (!((
28742 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28743 : ((32 == 64 || TARGET_AVX512VL
28744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28745 : && ix86_pre_reload_split ()
28746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28747 : STRIP_UNARY (operands[4]))
28748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28749 : STRIP_UNARY (operands[4]))
28750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28751 : STRIP_UNARY (operands[3]))
28752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28753 : STRIP_UNARY (operands[3])))) &&
28754 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28755 : (TARGET_AVX)) &&
28756 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28757 : ( 1)))
28758 : return NULL;
28759 : return gen_split_2593 (insn, operands);
28760 :
28761 : case 8:
28762 : if (!(
28763 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28764 : ((16 == 64 || TARGET_AVX512VL
28765 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28766 : && ix86_pre_reload_split ()
28767 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28768 : STRIP_UNARY (operands[4]))
28769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28770 : STRIP_UNARY (operands[4]))
28771 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28772 : STRIP_UNARY (operands[3]))
28773 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28774 : STRIP_UNARY (operands[3])))) &&
28775 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28776 : ( 1)))
28777 : return NULL;
28778 : return gen_split_2620 (insn, operands);
28779 :
28780 : case 9:
28781 : if (!((
28782 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28783 : ((64 == 64 || TARGET_AVX512VL
28784 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28785 : && ix86_pre_reload_split ()
28786 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28787 : STRIP_UNARY (operands[4]))
28788 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28789 : STRIP_UNARY (operands[4]))
28790 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28791 : STRIP_UNARY (operands[3]))
28792 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28793 : STRIP_UNARY (operands[3])))) &&
28794 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28795 : (TARGET_AVX512F)) &&
28796 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28797 : ( 1)))
28798 : return NULL;
28799 : return gen_split_2647 (insn, operands);
28800 :
28801 : case 10:
28802 : if (!((
28803 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28804 : ((32 == 64 || TARGET_AVX512VL
28805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28806 : && ix86_pre_reload_split ()
28807 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28808 : STRIP_UNARY (operands[4]))
28809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28810 : STRIP_UNARY (operands[4]))
28811 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28812 : STRIP_UNARY (operands[3]))
28813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28814 : STRIP_UNARY (operands[3])))) &&
28815 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28816 : (TARGET_AVX)) &&
28817 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28818 : ( 1)))
28819 : return NULL;
28820 : return gen_split_2674 (insn, operands);
28821 :
28822 : case 11:
28823 : if (!(
28824 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28825 : ((16 == 64 || TARGET_AVX512VL
28826 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28827 : && ix86_pre_reload_split ()
28828 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28829 : STRIP_UNARY (operands[4]))
28830 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28831 : STRIP_UNARY (operands[4]))
28832 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28833 : STRIP_UNARY (operands[3]))
28834 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28835 : STRIP_UNARY (operands[3])))) &&
28836 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28837 : ( 1)))
28838 : return NULL;
28839 : return gen_split_2701 (insn, operands);
28840 :
28841 : default:
28842 : return NULL;
28843 : }
28844 :
28845 : default:
28846 : return NULL;
28847 : }
28848 : }
28849 :
28850 : rtx_insn *
28851 : split_75 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28852 : {
28853 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28854 : rtx x2, x3, x4, x5, x6, x7;
28855 : rtx_insn *res ATTRIBUTE_UNUSED;
28856 : x2 = XEXP (x1, 1);
28857 : x3 = XEXP (x2, 0);
28858 : x4 = XEXP (x3, 1);
28859 : if (!rtx_equal_p (x4, operands[1]))
28860 : return NULL;
28861 : x5 = XEXP (x2, 1);
28862 : if (XVECLEN (x5, 0) != 2)
28863 : return NULL;
28864 : x6 = XVECEXP (x5, 0, 0);
28865 : if (GET_CODE (x6) != CONST_INT
28866 : || GET_MODE (x2) != E_V2DFmode
28867 : || GET_MODE (x3) != E_V4DFmode)
28868 : return NULL;
28869 : if (XWINT (x6, 0) == 0L)
28870 : {
28871 : x7 = XVECEXP (x5, 0, 1);
28872 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 2]
28873 : && memory_operand (operands[0], E_V2DFmode)
28874 : && register_operand (operands[1], E_V2DFmode)
28875 : &&
28876 : #line 13980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28877 : (TARGET_SSE3 && reload_completed))
28878 : return gen_split_1665 (insn, operands);
28879 : }
28880 : if (!register_operand (operands[0], E_V2DFmode)
28881 : || !memory_operand (operands[1], E_V2DFmode))
28882 : return NULL;
28883 : operands[2] = x6;
28884 : if (!const_0_to_1_operand (operands[2], E_SImode))
28885 : return NULL;
28886 : x7 = XVECEXP (x5, 0, 1);
28887 : operands[3] = x7;
28888 : if (!const_int_operand (operands[3], E_SImode)
28889 : || !
28890 : #line 13998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28891 : (TARGET_SSE3 && INTVAL (operands[2]) + 2 == INTVAL (operands[3])))
28892 : return NULL;
28893 : return gen_split_1666 (insn, operands);
28894 : }
28895 :
28896 : rtx_insn *
28897 : split_76 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28898 : {
28899 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28900 : rtx x2, x3, x4, x5;
28901 : rtx_insn *res ATTRIBUTE_UNUSED;
28902 : x2 = XEXP (x1, 1);
28903 : x3 = XEXP (x2, 1);
28904 : x4 = XVECEXP (x3, 0, 0);
28905 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
28906 : return NULL;
28907 : x5 = XVECEXP (x3, 0, 1);
28908 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
28909 : return NULL;
28910 : switch (GET_MODE (operands[0]))
28911 : {
28912 : case E_V2DFmode:
28913 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
28914 : || GET_MODE (x2) != E_V2DFmode)
28915 : return NULL;
28916 : switch (GET_MODE (operands[1]))
28917 : {
28918 : case E_V8DFmode:
28919 : if (!register_operand (operands[1], E_V8DFmode)
28920 : || !
28921 : #line 12869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28922 : (TARGET_AVX512DQ
28923 : && reload_completed
28924 : && (TARGET_AVX512VL
28925 : || REG_P (operands[0])
28926 : || !EXT_REX_SSE_REG_P (operands[1]))))
28927 : return NULL;
28928 : return gen_split_1639 (insn, operands);
28929 :
28930 : case E_V4DFmode:
28931 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
28932 : || !
28933 : #line 13285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28934 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28935 : && reload_completed))
28936 : return NULL;
28937 : return gen_split_1648 (insn, operands);
28938 :
28939 : default:
28940 : return NULL;
28941 : }
28942 :
28943 : case E_V2DImode:
28944 : if (!nonimmediate_operand (operands[0], E_V2DImode)
28945 : || GET_MODE (x2) != E_V2DImode)
28946 : return NULL;
28947 : switch (GET_MODE (operands[1]))
28948 : {
28949 : case E_V8DImode:
28950 : if (!register_operand (operands[1], E_V8DImode)
28951 : || !
28952 : #line 12869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28953 : (TARGET_AVX512DQ
28954 : && reload_completed
28955 : && (TARGET_AVX512VL
28956 : || REG_P (operands[0])
28957 : || !EXT_REX_SSE_REG_P (operands[1]))))
28958 : return NULL;
28959 : return gen_split_1640 (insn, operands);
28960 :
28961 : case E_V4DImode:
28962 : if (!nonimmediate_operand (operands[1], E_V4DImode)
28963 : || !
28964 : #line 13285 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28965 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
28966 : && reload_completed))
28967 : return NULL;
28968 : return gen_split_1647 (insn, operands);
28969 :
28970 : default:
28971 : return NULL;
28972 : }
28973 :
28974 : default:
28975 : return NULL;
28976 : }
28977 : }
28978 :
28979 : rtx_insn *
28980 : split_78 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
28981 : {
28982 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
28983 : rtx x2, x3, x4, x5, x6, x7;
28984 : rtx_insn *res ATTRIBUTE_UNUSED;
28985 : x2 = XEXP (x1, 1);
28986 : x3 = XEXP (x2, 1);
28987 : if (pattern848 (x3) != 0)
28988 : return NULL;
28989 : x4 = XVECEXP (x3, 0, 4);
28990 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
28991 : return NULL;
28992 : x5 = XVECEXP (x3, 0, 5);
28993 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
28994 : return NULL;
28995 : x6 = XVECEXP (x3, 0, 6);
28996 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
28997 : return NULL;
28998 : x7 = XVECEXP (x3, 0, 7);
28999 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
29000 : return NULL;
29001 : switch (pattern1547 (x2))
29002 : {
29003 : case 0:
29004 : if (!
29005 : #line 13237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29006 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29007 : && reload_completed
29008 : && (TARGET_AVX512VL
29009 : || REG_P (operands[0])
29010 : || !EXT_REX_SSE_REG_P (operands[1]))))
29011 : return NULL;
29012 : return gen_split_1645 (insn, operands);
29013 :
29014 : case 1:
29015 : if (!
29016 : #line 13237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29017 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29018 : && reload_completed
29019 : && (TARGET_AVX512VL
29020 : || REG_P (operands[0])
29021 : || !EXT_REX_SSE_REG_P (operands[1]))))
29022 : return NULL;
29023 : return gen_split_1646 (insn, operands);
29024 :
29025 : case 2:
29026 : if (!(
29027 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29028 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29029 : #line 13479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29030 : ( reload_completed)))
29031 : return NULL;
29032 : return gen_split_1654 (insn, operands);
29033 :
29034 : case 3:
29035 : if (!(
29036 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29037 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29038 : #line 13479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29039 : ( reload_completed)))
29040 : return NULL;
29041 : return gen_split_1655 (insn, operands);
29042 :
29043 : case 4:
29044 : if (!(
29045 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29046 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29047 : #line 13479 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ( reload_completed)))
29049 : return NULL;
29050 : return gen_split_1656 (insn, operands);
29051 :
29052 : default:
29053 : return NULL;
29054 : }
29055 : }
29056 :
29057 : rtx_insn *
29058 : split_80 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29059 : {
29060 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29061 : rtx x2, x3, x4, x5, x6, x7;
29062 : rtx_insn *res ATTRIBUTE_UNUSED;
29063 : x2 = XEXP (x1, 1);
29064 : x3 = XEXP (x2, 1);
29065 : switch (GET_CODE (x3))
29066 : {
29067 : case VEC_SELECT:
29068 : if (GET_MODE (x3) != E_DFmode)
29069 : return NULL;
29070 : x4 = XEXP (x3, 1);
29071 : if (GET_CODE (x4) != PARALLEL
29072 : || XVECLEN (x4, 0) != 1)
29073 : return NULL;
29074 : x5 = XVECEXP (x4, 0, 0);
29075 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
29076 : || !memory_operand (operands[0], E_V2DFmode)
29077 : || GET_MODE (x2) != E_V2DFmode
29078 : || !register_operand (operands[1], E_DFmode))
29079 : return NULL;
29080 : x6 = XEXP (x3, 0);
29081 : if (!rtx_equal_p (x6, operands[0])
29082 : || !
29083 : #line 15238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29084 : (TARGET_SSE2 && reload_completed))
29085 : return NULL;
29086 : return gen_split_3256 (insn, operands);
29087 :
29088 : case UNSPEC:
29089 : if (XVECLEN (x3, 0) != 1
29090 : || XINT (x3, 1) != 148)
29091 : return NULL;
29092 : x7 = XVECEXP (x3, 0, 0);
29093 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
29094 : return NULL;
29095 : switch (GET_MODE (operands[0]))
29096 : {
29097 : case E_V8SImode:
29098 : if (pattern1044 (x2,
29099 : E_V4SImode,
29100 : E_V8SImode) != 0
29101 : || !(
29102 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29103 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29104 : #line 29861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29105 : ( reload_completed)))
29106 : return NULL;
29107 : return gen_split_3897 (insn, operands);
29108 :
29109 : case E_V8SFmode:
29110 : if (pattern1044 (x2,
29111 : E_V4SFmode,
29112 : E_V8SFmode) != 0
29113 : || !(
29114 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29115 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29116 : #line 29861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29117 : ( reload_completed)))
29118 : return NULL;
29119 : return gen_split_3898 (insn, operands);
29120 :
29121 : case E_V4DFmode:
29122 : if (pattern1044 (x2,
29123 : E_V2DFmode,
29124 : E_V4DFmode) != 0
29125 : || !(
29126 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29127 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29128 : #line 29861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29129 : ( reload_completed)))
29130 : return NULL;
29131 : return gen_split_3899 (insn, operands);
29132 :
29133 : case E_V16SImode:
29134 : if (pattern1044 (x2,
29135 : E_V8SImode,
29136 : E_V16SImode) != 0
29137 : || !(
29138 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29139 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29140 : #line 31213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29141 : ( reload_completed)))
29142 : return NULL;
29143 : return gen_split_3945 (insn, operands);
29144 :
29145 : case E_V16SFmode:
29146 : if (pattern1044 (x2,
29147 : E_V8SFmode,
29148 : E_V16SFmode) != 0
29149 : || !(
29150 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29151 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29152 : #line 31213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29153 : ( reload_completed)))
29154 : return NULL;
29155 : return gen_split_3946 (insn, operands);
29156 :
29157 : case E_V8DFmode:
29158 : if (pattern1044 (x2,
29159 : E_V4DFmode,
29160 : E_V8DFmode) != 0
29161 : || !(
29162 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29163 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29164 : #line 31213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29165 : ( reload_completed)))
29166 : return NULL;
29167 : return gen_split_3947 (insn, operands);
29168 :
29169 : default:
29170 : return NULL;
29171 : }
29172 :
29173 : default:
29174 : return NULL;
29175 : }
29176 : }
29177 :
29178 : rtx_insn *
29179 : split_82 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29180 : {
29181 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29182 : rtx x2, x3, x4, x5;
29183 : rtx_insn *res ATTRIBUTE_UNUSED;
29184 : x2 = XEXP (x1, 1);
29185 : switch (GET_CODE (x2))
29186 : {
29187 : case AND:
29188 : res = split_64 (x1, insn);
29189 : if (res != NULL_RTX)
29190 : return res;
29191 : break;
29192 :
29193 : case IOR:
29194 : res = split_71 (x1, insn);
29195 : if (res != NULL_RTX)
29196 : return res;
29197 : break;
29198 :
29199 : case XOR:
29200 : x3 = XEXP (x2, 0);
29201 : switch (GET_CODE (x3))
29202 : {
29203 : case AND:
29204 : res = split_66 (x1, insn);
29205 : if (res != NULL_RTX)
29206 : return res;
29207 : break;
29208 :
29209 : case IOR:
29210 : res = split_67 (x1, insn);
29211 : if (res != NULL_RTX)
29212 : return res;
29213 : break;
29214 :
29215 : case XOR:
29216 : x4 = XEXP (x3, 0);
29217 : switch (GET_CODE (x4))
29218 : {
29219 : case REG:
29220 : case SUBREG:
29221 : case MEM:
29222 : case NOT:
29223 : switch (pattern537 (x2))
29224 : {
29225 : case 0:
29226 : if (((
29227 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29228 : ((64 == 64 || TARGET_AVX512VL
29229 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29230 : && ix86_pre_reload_split ()
29231 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29232 : STRIP_UNARY (operands[4]))
29233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29234 : STRIP_UNARY (operands[4]))
29235 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29236 : STRIP_UNARY (operands[3]))
29237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29238 : STRIP_UNARY (operands[3])))) &&
29239 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29240 : (TARGET_AVX512F)) &&
29241 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29242 : ( 1)))
29243 : return gen_split_1759 (insn, operands);
29244 : break;
29245 :
29246 : case 1:
29247 : if (((
29248 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29249 : ((32 == 64 || TARGET_AVX512VL
29250 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29251 : && ix86_pre_reload_split ()
29252 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29253 : STRIP_UNARY (operands[4]))
29254 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29255 : STRIP_UNARY (operands[4]))
29256 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29257 : STRIP_UNARY (operands[3]))
29258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29259 : STRIP_UNARY (operands[3])))) &&
29260 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29261 : (TARGET_AVX)) &&
29262 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29263 : ( 1)))
29264 : return gen_split_1786 (insn, operands);
29265 : break;
29266 :
29267 : case 2:
29268 : if ((
29269 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29270 : ((16 == 64 || TARGET_AVX512VL
29271 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29272 : && ix86_pre_reload_split ()
29273 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29274 : STRIP_UNARY (operands[4]))
29275 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29276 : STRIP_UNARY (operands[4]))
29277 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29278 : STRIP_UNARY (operands[3]))
29279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29280 : STRIP_UNARY (operands[3])))) &&
29281 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29282 : ( 1)))
29283 : return gen_split_1813 (insn, operands);
29284 : break;
29285 :
29286 : case 3:
29287 : if (((
29288 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29289 : ((64 == 64 || TARGET_AVX512VL
29290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29291 : && ix86_pre_reload_split ()
29292 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29293 : STRIP_UNARY (operands[4]))
29294 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29295 : STRIP_UNARY (operands[4]))
29296 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29297 : STRIP_UNARY (operands[3]))
29298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29299 : STRIP_UNARY (operands[3])))) &&
29300 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29301 : (TARGET_AVX512F)) &&
29302 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29303 : ( 1)))
29304 : return gen_split_1840 (insn, operands);
29305 : break;
29306 :
29307 : case 4:
29308 : if (((
29309 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29310 : ((32 == 64 || TARGET_AVX512VL
29311 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29312 : && ix86_pre_reload_split ()
29313 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29314 : STRIP_UNARY (operands[4]))
29315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29316 : STRIP_UNARY (operands[4]))
29317 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29318 : STRIP_UNARY (operands[3]))
29319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29320 : STRIP_UNARY (operands[3])))) &&
29321 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29322 : (TARGET_AVX)) &&
29323 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29324 : ( 1)))
29325 : return gen_split_1867 (insn, operands);
29326 : break;
29327 :
29328 : case 5:
29329 : if ((
29330 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29331 : ((16 == 64 || TARGET_AVX512VL
29332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29333 : && ix86_pre_reload_split ()
29334 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29335 : STRIP_UNARY (operands[4]))
29336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29337 : STRIP_UNARY (operands[4]))
29338 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29339 : STRIP_UNARY (operands[3]))
29340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29341 : STRIP_UNARY (operands[3])))) &&
29342 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29343 : ( 1)))
29344 : return gen_split_1894 (insn, operands);
29345 : break;
29346 :
29347 : case 6:
29348 : if (((
29349 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29350 : ((64 == 64 || TARGET_AVX512VL
29351 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29352 : && ix86_pre_reload_split ()
29353 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29354 : STRIP_UNARY (operands[4]))
29355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29356 : STRIP_UNARY (operands[4]))
29357 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29358 : STRIP_UNARY (operands[3]))
29359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29360 : STRIP_UNARY (operands[3])))) &&
29361 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29362 : (TARGET_AVX512F)) &&
29363 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29364 : ( 1)))
29365 : return gen_split_1921 (insn, operands);
29366 : break;
29367 :
29368 : case 7:
29369 : if (((
29370 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29371 : ((32 == 64 || TARGET_AVX512VL
29372 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29373 : && ix86_pre_reload_split ()
29374 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29375 : STRIP_UNARY (operands[4]))
29376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29377 : STRIP_UNARY (operands[4]))
29378 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29379 : STRIP_UNARY (operands[3]))
29380 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29381 : STRIP_UNARY (operands[3])))) &&
29382 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29383 : (TARGET_AVX)) &&
29384 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29385 : ( 1)))
29386 : return gen_split_1948 (insn, operands);
29387 : break;
29388 :
29389 : case 8:
29390 : if ((
29391 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29392 : ((16 == 64 || TARGET_AVX512VL
29393 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29394 : && ix86_pre_reload_split ()
29395 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29396 : STRIP_UNARY (operands[4]))
29397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29398 : STRIP_UNARY (operands[4]))
29399 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29400 : STRIP_UNARY (operands[3]))
29401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29402 : STRIP_UNARY (operands[3])))) &&
29403 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29404 : ( 1)))
29405 : return gen_split_1975 (insn, operands);
29406 : break;
29407 :
29408 : case 9:
29409 : if (((
29410 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29411 : ((64 == 64 || TARGET_AVX512VL
29412 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29413 : && ix86_pre_reload_split ()
29414 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29415 : STRIP_UNARY (operands[4]))
29416 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29417 : STRIP_UNARY (operands[4]))
29418 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29419 : STRIP_UNARY (operands[3]))
29420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29421 : STRIP_UNARY (operands[3])))) &&
29422 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29423 : (TARGET_AVX512F)) &&
29424 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29425 : ( 1)))
29426 : return gen_split_2002 (insn, operands);
29427 : break;
29428 :
29429 : case 10:
29430 : if (((
29431 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29432 : ((32 == 64 || TARGET_AVX512VL
29433 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29434 : && ix86_pre_reload_split ()
29435 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29436 : STRIP_UNARY (operands[4]))
29437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29438 : STRIP_UNARY (operands[4]))
29439 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29440 : STRIP_UNARY (operands[3]))
29441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29442 : STRIP_UNARY (operands[3])))) &&
29443 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29444 : (TARGET_AVX)) &&
29445 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29446 : ( 1)))
29447 : return gen_split_2029 (insn, operands);
29448 : break;
29449 :
29450 : case 11:
29451 : if ((
29452 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29453 : ((16 == 64 || TARGET_AVX512VL
29454 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29455 : && ix86_pre_reload_split ()
29456 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29457 : STRIP_UNARY (operands[4]))
29458 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29459 : STRIP_UNARY (operands[4]))
29460 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29461 : STRIP_UNARY (operands[3]))
29462 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29463 : STRIP_UNARY (operands[3])))) &&
29464 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29465 : ( 1)))
29466 : return gen_split_2056 (insn, operands);
29467 : break;
29468 :
29469 : case 12:
29470 : if (((
29471 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29472 : ((64 == 64 || TARGET_AVX512VL
29473 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29474 : && ix86_pre_reload_split ()
29475 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29476 : STRIP_UNARY (operands[4]))
29477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29478 : STRIP_UNARY (operands[4]))
29479 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29480 : STRIP_UNARY (operands[3]))
29481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29482 : STRIP_UNARY (operands[3])))) &&
29483 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29484 : (TARGET_AVX512F)) &&
29485 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29486 : ( 1)))
29487 : return gen_split_1762 (insn, operands);
29488 : break;
29489 :
29490 : case 13:
29491 : if (((
29492 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29493 : ((32 == 64 || TARGET_AVX512VL
29494 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29495 : && ix86_pre_reload_split ()
29496 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29497 : STRIP_UNARY (operands[4]))
29498 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29499 : STRIP_UNARY (operands[4]))
29500 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29501 : STRIP_UNARY (operands[3]))
29502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29503 : STRIP_UNARY (operands[3])))) &&
29504 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29505 : (TARGET_AVX)) &&
29506 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29507 : ( 1)))
29508 : return gen_split_1789 (insn, operands);
29509 : break;
29510 :
29511 : case 14:
29512 : if ((
29513 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29514 : ((16 == 64 || TARGET_AVX512VL
29515 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29516 : && ix86_pre_reload_split ()
29517 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29518 : STRIP_UNARY (operands[4]))
29519 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29520 : STRIP_UNARY (operands[4]))
29521 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29522 : STRIP_UNARY (operands[3]))
29523 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29524 : STRIP_UNARY (operands[3])))) &&
29525 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29526 : ( 1)))
29527 : return gen_split_1816 (insn, operands);
29528 : break;
29529 :
29530 : case 15:
29531 : if (((
29532 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29533 : ((64 == 64 || TARGET_AVX512VL
29534 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29535 : && ix86_pre_reload_split ()
29536 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29537 : STRIP_UNARY (operands[4]))
29538 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29539 : STRIP_UNARY (operands[4]))
29540 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29541 : STRIP_UNARY (operands[3]))
29542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29543 : STRIP_UNARY (operands[3])))) &&
29544 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29545 : (TARGET_AVX512F)) &&
29546 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29547 : ( 1)))
29548 : return gen_split_1843 (insn, operands);
29549 : break;
29550 :
29551 : case 16:
29552 : if (((
29553 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29554 : ((32 == 64 || TARGET_AVX512VL
29555 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29556 : && ix86_pre_reload_split ()
29557 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29558 : STRIP_UNARY (operands[4]))
29559 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29560 : STRIP_UNARY (operands[4]))
29561 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29562 : STRIP_UNARY (operands[3]))
29563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29564 : STRIP_UNARY (operands[3])))) &&
29565 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29566 : (TARGET_AVX)) &&
29567 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29568 : ( 1)))
29569 : return gen_split_1870 (insn, operands);
29570 : break;
29571 :
29572 : case 17:
29573 : if ((
29574 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29575 : ((16 == 64 || TARGET_AVX512VL
29576 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29577 : && ix86_pre_reload_split ()
29578 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29579 : STRIP_UNARY (operands[4]))
29580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29581 : STRIP_UNARY (operands[4]))
29582 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29583 : STRIP_UNARY (operands[3]))
29584 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29585 : STRIP_UNARY (operands[3])))) &&
29586 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29587 : ( 1)))
29588 : return gen_split_1897 (insn, operands);
29589 : break;
29590 :
29591 : case 18:
29592 : if (((
29593 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29594 : ((64 == 64 || TARGET_AVX512VL
29595 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29596 : && ix86_pre_reload_split ()
29597 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29598 : STRIP_UNARY (operands[4]))
29599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29600 : STRIP_UNARY (operands[4]))
29601 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29602 : STRIP_UNARY (operands[3]))
29603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29604 : STRIP_UNARY (operands[3])))) &&
29605 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29606 : (TARGET_AVX512F)) &&
29607 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29608 : ( 1)))
29609 : return gen_split_1924 (insn, operands);
29610 : break;
29611 :
29612 : case 19:
29613 : if (((
29614 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29615 : ((32 == 64 || TARGET_AVX512VL
29616 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29617 : && ix86_pre_reload_split ()
29618 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29619 : STRIP_UNARY (operands[4]))
29620 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29621 : STRIP_UNARY (operands[4]))
29622 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29623 : STRIP_UNARY (operands[3]))
29624 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29625 : STRIP_UNARY (operands[3])))) &&
29626 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29627 : (TARGET_AVX)) &&
29628 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29629 : ( 1)))
29630 : return gen_split_1951 (insn, operands);
29631 : break;
29632 :
29633 : case 20:
29634 : if ((
29635 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29636 : ((16 == 64 || TARGET_AVX512VL
29637 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29638 : && ix86_pre_reload_split ()
29639 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29640 : STRIP_UNARY (operands[4]))
29641 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29642 : STRIP_UNARY (operands[4]))
29643 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29644 : STRIP_UNARY (operands[3]))
29645 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29646 : STRIP_UNARY (operands[3])))) &&
29647 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29648 : ( 1)))
29649 : return gen_split_1978 (insn, operands);
29650 : break;
29651 :
29652 : case 21:
29653 : if (((
29654 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29655 : ((64 == 64 || TARGET_AVX512VL
29656 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29657 : && ix86_pre_reload_split ()
29658 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29659 : STRIP_UNARY (operands[4]))
29660 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29661 : STRIP_UNARY (operands[4]))
29662 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29663 : STRIP_UNARY (operands[3]))
29664 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29665 : STRIP_UNARY (operands[3])))) &&
29666 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29667 : (TARGET_AVX512F)) &&
29668 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29669 : ( 1)))
29670 : return gen_split_2005 (insn, operands);
29671 : break;
29672 :
29673 : case 22:
29674 : if (((
29675 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29676 : ((32 == 64 || TARGET_AVX512VL
29677 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29678 : && ix86_pre_reload_split ()
29679 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29680 : STRIP_UNARY (operands[4]))
29681 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29682 : STRIP_UNARY (operands[4]))
29683 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29684 : STRIP_UNARY (operands[3]))
29685 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29686 : STRIP_UNARY (operands[3])))) &&
29687 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29688 : (TARGET_AVX)) &&
29689 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29690 : ( 1)))
29691 : return gen_split_2032 (insn, operands);
29692 : break;
29693 :
29694 : case 23:
29695 : if ((
29696 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29697 : ((16 == 64 || TARGET_AVX512VL
29698 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29699 : && ix86_pre_reload_split ()
29700 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29701 : STRIP_UNARY (operands[4]))
29702 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29703 : STRIP_UNARY (operands[4]))
29704 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29705 : STRIP_UNARY (operands[3]))
29706 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29707 : STRIP_UNARY (operands[3])))) &&
29708 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29709 : ( 1)))
29710 : return gen_split_2059 (insn, operands);
29711 : break;
29712 :
29713 : case 24:
29714 : if (((
29715 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29716 : ((64 == 64 || TARGET_AVX512VL
29717 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29718 : && ix86_pre_reload_split ()
29719 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29720 : STRIP_UNARY (operands[4]))
29721 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29722 : STRIP_UNARY (operands[4]))
29723 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29724 : STRIP_UNARY (operands[3]))
29725 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29726 : STRIP_UNARY (operands[3])))) &&
29727 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29728 : (TARGET_AVX512F)) &&
29729 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29730 : ( 1)))
29731 : return gen_split_1765 (insn, operands);
29732 : break;
29733 :
29734 : case 25:
29735 : if (((
29736 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29737 : ((32 == 64 || TARGET_AVX512VL
29738 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29739 : && ix86_pre_reload_split ()
29740 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29741 : STRIP_UNARY (operands[4]))
29742 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29743 : STRIP_UNARY (operands[4]))
29744 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29745 : STRIP_UNARY (operands[3]))
29746 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29747 : STRIP_UNARY (operands[3])))) &&
29748 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29749 : (TARGET_AVX)) &&
29750 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29751 : ( 1)))
29752 : return gen_split_1792 (insn, operands);
29753 : break;
29754 :
29755 : case 26:
29756 : if ((
29757 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29758 : ((16 == 64 || TARGET_AVX512VL
29759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29760 : && ix86_pre_reload_split ()
29761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29762 : STRIP_UNARY (operands[4]))
29763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29764 : STRIP_UNARY (operands[4]))
29765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29766 : STRIP_UNARY (operands[3]))
29767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29768 : STRIP_UNARY (operands[3])))) &&
29769 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29770 : ( 1)))
29771 : return gen_split_1819 (insn, operands);
29772 : break;
29773 :
29774 : case 27:
29775 : if (((
29776 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29777 : ((64 == 64 || TARGET_AVX512VL
29778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29779 : && ix86_pre_reload_split ()
29780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29781 : STRIP_UNARY (operands[4]))
29782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29783 : STRIP_UNARY (operands[4]))
29784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29785 : STRIP_UNARY (operands[3]))
29786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29787 : STRIP_UNARY (operands[3])))) &&
29788 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29789 : (TARGET_AVX512F)) &&
29790 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29791 : ( 1)))
29792 : return gen_split_1846 (insn, operands);
29793 : break;
29794 :
29795 : case 28:
29796 : if (((
29797 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29798 : ((32 == 64 || TARGET_AVX512VL
29799 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29800 : && ix86_pre_reload_split ()
29801 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29802 : STRIP_UNARY (operands[4]))
29803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29804 : STRIP_UNARY (operands[4]))
29805 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29806 : STRIP_UNARY (operands[3]))
29807 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29808 : STRIP_UNARY (operands[3])))) &&
29809 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29810 : (TARGET_AVX)) &&
29811 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29812 : ( 1)))
29813 : return gen_split_1873 (insn, operands);
29814 : break;
29815 :
29816 : case 29:
29817 : if ((
29818 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29819 : ((16 == 64 || TARGET_AVX512VL
29820 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29821 : && ix86_pre_reload_split ()
29822 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29823 : STRIP_UNARY (operands[4]))
29824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29825 : STRIP_UNARY (operands[4]))
29826 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29827 : STRIP_UNARY (operands[3]))
29828 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29829 : STRIP_UNARY (operands[3])))) &&
29830 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29831 : ( 1)))
29832 : return gen_split_1900 (insn, operands);
29833 : break;
29834 :
29835 : case 30:
29836 : if (((
29837 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29838 : ((64 == 64 || TARGET_AVX512VL
29839 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29840 : && ix86_pre_reload_split ()
29841 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29842 : STRIP_UNARY (operands[4]))
29843 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29844 : STRIP_UNARY (operands[4]))
29845 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29846 : STRIP_UNARY (operands[3]))
29847 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29848 : STRIP_UNARY (operands[3])))) &&
29849 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29850 : (TARGET_AVX512F)) &&
29851 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29852 : ( 1)))
29853 : return gen_split_1927 (insn, operands);
29854 : break;
29855 :
29856 : case 31:
29857 : if (((
29858 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29859 : ((32 == 64 || TARGET_AVX512VL
29860 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29861 : && ix86_pre_reload_split ()
29862 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29863 : STRIP_UNARY (operands[4]))
29864 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29865 : STRIP_UNARY (operands[4]))
29866 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29867 : STRIP_UNARY (operands[3]))
29868 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29869 : STRIP_UNARY (operands[3])))) &&
29870 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29871 : (TARGET_AVX)) &&
29872 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29873 : ( 1)))
29874 : return gen_split_1954 (insn, operands);
29875 : break;
29876 :
29877 : case 32:
29878 : if ((
29879 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29880 : ((16 == 64 || TARGET_AVX512VL
29881 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29882 : && ix86_pre_reload_split ()
29883 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29884 : STRIP_UNARY (operands[4]))
29885 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29886 : STRIP_UNARY (operands[4]))
29887 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29888 : STRIP_UNARY (operands[3]))
29889 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29890 : STRIP_UNARY (operands[3])))) &&
29891 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29892 : ( 1)))
29893 : return gen_split_1981 (insn, operands);
29894 : break;
29895 :
29896 : case 33:
29897 : if (((
29898 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29899 : ((64 == 64 || TARGET_AVX512VL
29900 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29901 : && ix86_pre_reload_split ()
29902 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29903 : STRIP_UNARY (operands[4]))
29904 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29905 : STRIP_UNARY (operands[4]))
29906 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29907 : STRIP_UNARY (operands[3]))
29908 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29909 : STRIP_UNARY (operands[3])))) &&
29910 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29911 : (TARGET_AVX512F)) &&
29912 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29913 : ( 1)))
29914 : return gen_split_2008 (insn, operands);
29915 : break;
29916 :
29917 : case 34:
29918 : if (((
29919 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29920 : ((32 == 64 || TARGET_AVX512VL
29921 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29922 : && ix86_pre_reload_split ()
29923 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29924 : STRIP_UNARY (operands[4]))
29925 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29926 : STRIP_UNARY (operands[4]))
29927 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29928 : STRIP_UNARY (operands[3]))
29929 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29930 : STRIP_UNARY (operands[3])))) &&
29931 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29932 : (TARGET_AVX)) &&
29933 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29934 : ( 1)))
29935 : return gen_split_2035 (insn, operands);
29936 : break;
29937 :
29938 : case 35:
29939 : if ((
29940 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29941 : ((16 == 64 || TARGET_AVX512VL
29942 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29943 : && ix86_pre_reload_split ()
29944 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29945 : STRIP_UNARY (operands[4]))
29946 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29947 : STRIP_UNARY (operands[4]))
29948 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29949 : STRIP_UNARY (operands[3]))
29950 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29951 : STRIP_UNARY (operands[3])))) &&
29952 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29953 : ( 1)))
29954 : return gen_split_2062 (insn, operands);
29955 : break;
29956 :
29957 : case 36:
29958 : if (((
29959 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29960 : ((64 == 64 || TARGET_AVX512VL
29961 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29962 : && ix86_pre_reload_split ()) &&
29963 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29964 : (TARGET_AVX512F)) &&
29965 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29966 : ( 1)))
29967 : return gen_split_3043 (insn, operands);
29968 : break;
29969 :
29970 : case 37:
29971 : if (((
29972 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29973 : ((32 == 64 || TARGET_AVX512VL
29974 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29975 : && ix86_pre_reload_split ()) &&
29976 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29977 : (TARGET_AVX)) &&
29978 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29979 : ( 1)))
29980 : return gen_split_3052 (insn, operands);
29981 : break;
29982 :
29983 : case 38:
29984 : if ((
29985 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29986 : ((16 == 64 || TARGET_AVX512VL
29987 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29988 : && ix86_pre_reload_split ()) &&
29989 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29990 : ( 1)))
29991 : return gen_split_3061 (insn, operands);
29992 : break;
29993 :
29994 : case 39:
29995 : if (((
29996 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29997 : ((64 == 64 || TARGET_AVX512VL
29998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29999 : && ix86_pre_reload_split ()) &&
30000 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30001 : (TARGET_AVX512F)) &&
30002 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30003 : ( 1)))
30004 : return gen_split_3070 (insn, operands);
30005 : break;
30006 :
30007 : case 40:
30008 : if (((
30009 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30010 : ((32 == 64 || TARGET_AVX512VL
30011 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30012 : && ix86_pre_reload_split ()) &&
30013 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30014 : (TARGET_AVX)) &&
30015 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30016 : ( 1)))
30017 : return gen_split_3079 (insn, operands);
30018 : break;
30019 :
30020 : case 41:
30021 : if ((
30022 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30023 : ((16 == 64 || TARGET_AVX512VL
30024 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30025 : && ix86_pre_reload_split ()) &&
30026 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30027 : ( 1)))
30028 : return gen_split_3088 (insn, operands);
30029 : break;
30030 :
30031 : case 42:
30032 : if (((
30033 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30034 : ((64 == 64 || TARGET_AVX512VL
30035 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30036 : && ix86_pre_reload_split ()) &&
30037 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : (TARGET_AVX512F)) &&
30039 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30040 : ( 1)))
30041 : return gen_split_3097 (insn, operands);
30042 : break;
30043 :
30044 : case 43:
30045 : if (((
30046 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30047 : ((32 == 64 || TARGET_AVX512VL
30048 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30049 : && ix86_pre_reload_split ()) &&
30050 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30051 : (TARGET_AVX)) &&
30052 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30053 : ( 1)))
30054 : return gen_split_3106 (insn, operands);
30055 : break;
30056 :
30057 : case 44:
30058 : if ((
30059 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30060 : ((16 == 64 || TARGET_AVX512VL
30061 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30062 : && ix86_pre_reload_split ()) &&
30063 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30064 : ( 1)))
30065 : return gen_split_3115 (insn, operands);
30066 : break;
30067 :
30068 : case 45:
30069 : if (((
30070 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30071 : ((64 == 64 || TARGET_AVX512VL
30072 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30073 : && ix86_pre_reload_split ()) &&
30074 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30075 : (TARGET_AVX512F)) &&
30076 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30077 : ( 1)))
30078 : return gen_split_3124 (insn, operands);
30079 : break;
30080 :
30081 : case 46:
30082 : if (((
30083 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30084 : ((32 == 64 || TARGET_AVX512VL
30085 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30086 : && ix86_pre_reload_split ()) &&
30087 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30088 : (TARGET_AVX)) &&
30089 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30090 : ( 1)))
30091 : return gen_split_3133 (insn, operands);
30092 : break;
30093 :
30094 : case 47:
30095 : if ((
30096 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30097 : ((16 == 64 || TARGET_AVX512VL
30098 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30099 : && ix86_pre_reload_split ()) &&
30100 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30101 : ( 1)))
30102 : return gen_split_3142 (insn, operands);
30103 : break;
30104 :
30105 : default:
30106 : break;
30107 : }
30108 : break;
30109 :
30110 : case AND:
30111 : switch (pattern539 (x2))
30112 : {
30113 : case 0:
30114 : if (((
30115 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30116 : ((64 == 64 || TARGET_AVX512VL
30117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30118 : && ix86_pre_reload_split ()
30119 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30120 : STRIP_UNARY (operands[4]))
30121 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30122 : STRIP_UNARY (operands[4]))
30123 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30124 : STRIP_UNARY (operands[3]))
30125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30126 : STRIP_UNARY (operands[3])))) &&
30127 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30128 : (TARGET_AVX512F)) &&
30129 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30130 : ( 1)))
30131 : return gen_split_2407 (insn, operands);
30132 : break;
30133 :
30134 : case 1:
30135 : if (((
30136 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30137 : ((32 == 64 || TARGET_AVX512VL
30138 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30139 : && ix86_pre_reload_split ()
30140 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30141 : STRIP_UNARY (operands[4]))
30142 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30143 : STRIP_UNARY (operands[4]))
30144 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30145 : STRIP_UNARY (operands[3]))
30146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30147 : STRIP_UNARY (operands[3])))) &&
30148 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30149 : (TARGET_AVX)) &&
30150 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30151 : ( 1)))
30152 : return gen_split_2434 (insn, operands);
30153 : break;
30154 :
30155 : case 2:
30156 : if ((
30157 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30158 : ((16 == 64 || TARGET_AVX512VL
30159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30160 : && ix86_pre_reload_split ()
30161 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30162 : STRIP_UNARY (operands[4]))
30163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30164 : STRIP_UNARY (operands[4]))
30165 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30166 : STRIP_UNARY (operands[3]))
30167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30168 : STRIP_UNARY (operands[3])))) &&
30169 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30170 : ( 1)))
30171 : return gen_split_2461 (insn, operands);
30172 : break;
30173 :
30174 : case 3:
30175 : if (((
30176 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30177 : ((64 == 64 || TARGET_AVX512VL
30178 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30179 : && ix86_pre_reload_split ()
30180 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30181 : STRIP_UNARY (operands[4]))
30182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30183 : STRIP_UNARY (operands[4]))
30184 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30185 : STRIP_UNARY (operands[3]))
30186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30187 : STRIP_UNARY (operands[3])))) &&
30188 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30189 : (TARGET_AVX512F)) &&
30190 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30191 : ( 1)))
30192 : return gen_split_2488 (insn, operands);
30193 : break;
30194 :
30195 : case 4:
30196 : if (((
30197 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30198 : ((32 == 64 || TARGET_AVX512VL
30199 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30200 : && ix86_pre_reload_split ()
30201 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30202 : STRIP_UNARY (operands[4]))
30203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30204 : STRIP_UNARY (operands[4]))
30205 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30206 : STRIP_UNARY (operands[3]))
30207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30208 : STRIP_UNARY (operands[3])))) &&
30209 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30210 : (TARGET_AVX)) &&
30211 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30212 : ( 1)))
30213 : return gen_split_2515 (insn, operands);
30214 : break;
30215 :
30216 : case 5:
30217 : if ((
30218 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30219 : ((16 == 64 || TARGET_AVX512VL
30220 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30221 : && ix86_pre_reload_split ()
30222 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30223 : STRIP_UNARY (operands[4]))
30224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30225 : STRIP_UNARY (operands[4]))
30226 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30227 : STRIP_UNARY (operands[3]))
30228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30229 : STRIP_UNARY (operands[3])))) &&
30230 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30231 : ( 1)))
30232 : return gen_split_2542 (insn, operands);
30233 : break;
30234 :
30235 : case 6:
30236 : if (((
30237 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30238 : ((64 == 64 || TARGET_AVX512VL
30239 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30240 : && ix86_pre_reload_split ()
30241 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30242 : STRIP_UNARY (operands[4]))
30243 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30244 : STRIP_UNARY (operands[4]))
30245 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30246 : STRIP_UNARY (operands[3]))
30247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30248 : STRIP_UNARY (operands[3])))) &&
30249 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30250 : (TARGET_AVX512F)) &&
30251 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30252 : ( 1)))
30253 : return gen_split_2569 (insn, operands);
30254 : break;
30255 :
30256 : case 7:
30257 : if (((
30258 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30259 : ((32 == 64 || TARGET_AVX512VL
30260 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30261 : && ix86_pre_reload_split ()
30262 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30263 : STRIP_UNARY (operands[4]))
30264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30265 : STRIP_UNARY (operands[4]))
30266 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30267 : STRIP_UNARY (operands[3]))
30268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30269 : STRIP_UNARY (operands[3])))) &&
30270 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30271 : (TARGET_AVX)) &&
30272 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30273 : ( 1)))
30274 : return gen_split_2596 (insn, operands);
30275 : break;
30276 :
30277 : case 8:
30278 : if ((
30279 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30280 : ((16 == 64 || TARGET_AVX512VL
30281 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30282 : && ix86_pre_reload_split ()
30283 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30284 : STRIP_UNARY (operands[4]))
30285 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30286 : STRIP_UNARY (operands[4]))
30287 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30288 : STRIP_UNARY (operands[3]))
30289 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30290 : STRIP_UNARY (operands[3])))) &&
30291 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30292 : ( 1)))
30293 : return gen_split_2623 (insn, operands);
30294 : break;
30295 :
30296 : case 9:
30297 : if (((
30298 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30299 : ((64 == 64 || TARGET_AVX512VL
30300 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30301 : && ix86_pre_reload_split ()
30302 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30303 : STRIP_UNARY (operands[4]))
30304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30305 : STRIP_UNARY (operands[4]))
30306 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30307 : STRIP_UNARY (operands[3]))
30308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30309 : STRIP_UNARY (operands[3])))) &&
30310 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30311 : (TARGET_AVX512F)) &&
30312 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30313 : ( 1)))
30314 : return gen_split_2650 (insn, operands);
30315 : break;
30316 :
30317 : case 10:
30318 : if (((
30319 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30320 : ((32 == 64 || TARGET_AVX512VL
30321 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30322 : && ix86_pre_reload_split ()
30323 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30324 : STRIP_UNARY (operands[4]))
30325 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30326 : STRIP_UNARY (operands[4]))
30327 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30328 : STRIP_UNARY (operands[3]))
30329 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30330 : STRIP_UNARY (operands[3])))) &&
30331 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30332 : (TARGET_AVX)) &&
30333 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30334 : ( 1)))
30335 : return gen_split_2677 (insn, operands);
30336 : break;
30337 :
30338 : case 11:
30339 : if ((
30340 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30341 : ((16 == 64 || TARGET_AVX512VL
30342 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30343 : && ix86_pre_reload_split ()
30344 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30345 : STRIP_UNARY (operands[4]))
30346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30347 : STRIP_UNARY (operands[4]))
30348 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30349 : STRIP_UNARY (operands[3]))
30350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30351 : STRIP_UNARY (operands[3])))) &&
30352 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30353 : ( 1)))
30354 : return gen_split_2704 (insn, operands);
30355 : break;
30356 :
30357 : default:
30358 : break;
30359 : }
30360 : break;
30361 :
30362 : case IOR:
30363 : switch (pattern539 (x2))
30364 : {
30365 : case 0:
30366 : if (((
30367 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30368 : ((64 == 64 || TARGET_AVX512VL
30369 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30370 : && ix86_pre_reload_split ()
30371 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30372 : STRIP_UNARY (operands[4]))
30373 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30374 : STRIP_UNARY (operands[4]))
30375 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30376 : STRIP_UNARY (operands[3]))
30377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30378 : STRIP_UNARY (operands[3])))) &&
30379 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30380 : (TARGET_AVX512F)) &&
30381 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30382 : ( 1)))
30383 : return gen_split_2410 (insn, operands);
30384 : break;
30385 :
30386 : case 1:
30387 : if (((
30388 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30389 : ((32 == 64 || TARGET_AVX512VL
30390 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30391 : && ix86_pre_reload_split ()
30392 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30393 : STRIP_UNARY (operands[4]))
30394 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30395 : STRIP_UNARY (operands[4]))
30396 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30397 : STRIP_UNARY (operands[3]))
30398 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30399 : STRIP_UNARY (operands[3])))) &&
30400 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30401 : (TARGET_AVX)) &&
30402 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30403 : ( 1)))
30404 : return gen_split_2437 (insn, operands);
30405 : break;
30406 :
30407 : case 2:
30408 : if ((
30409 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30410 : ((16 == 64 || TARGET_AVX512VL
30411 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30412 : && ix86_pre_reload_split ()
30413 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30414 : STRIP_UNARY (operands[4]))
30415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30416 : STRIP_UNARY (operands[4]))
30417 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30418 : STRIP_UNARY (operands[3]))
30419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30420 : STRIP_UNARY (operands[3])))) &&
30421 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30422 : ( 1)))
30423 : return gen_split_2464 (insn, operands);
30424 : break;
30425 :
30426 : case 3:
30427 : if (((
30428 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30429 : ((64 == 64 || TARGET_AVX512VL
30430 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30431 : && ix86_pre_reload_split ()
30432 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30433 : STRIP_UNARY (operands[4]))
30434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30435 : STRIP_UNARY (operands[4]))
30436 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30437 : STRIP_UNARY (operands[3]))
30438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30439 : STRIP_UNARY (operands[3])))) &&
30440 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30441 : (TARGET_AVX512F)) &&
30442 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30443 : ( 1)))
30444 : return gen_split_2491 (insn, operands);
30445 : break;
30446 :
30447 : case 4:
30448 : if (((
30449 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30450 : ((32 == 64 || TARGET_AVX512VL
30451 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30452 : && ix86_pre_reload_split ()
30453 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30454 : STRIP_UNARY (operands[4]))
30455 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30456 : STRIP_UNARY (operands[4]))
30457 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30458 : STRIP_UNARY (operands[3]))
30459 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30460 : STRIP_UNARY (operands[3])))) &&
30461 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30462 : (TARGET_AVX)) &&
30463 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30464 : ( 1)))
30465 : return gen_split_2518 (insn, operands);
30466 : break;
30467 :
30468 : case 5:
30469 : if ((
30470 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30471 : ((16 == 64 || TARGET_AVX512VL
30472 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30473 : && ix86_pre_reload_split ()
30474 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30475 : STRIP_UNARY (operands[4]))
30476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30477 : STRIP_UNARY (operands[4]))
30478 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30479 : STRIP_UNARY (operands[3]))
30480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30481 : STRIP_UNARY (operands[3])))) &&
30482 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30483 : ( 1)))
30484 : return gen_split_2545 (insn, operands);
30485 : break;
30486 :
30487 : case 6:
30488 : if (((
30489 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30490 : ((64 == 64 || TARGET_AVX512VL
30491 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30492 : && ix86_pre_reload_split ()
30493 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30494 : STRIP_UNARY (operands[4]))
30495 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30496 : STRIP_UNARY (operands[4]))
30497 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30498 : STRIP_UNARY (operands[3]))
30499 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30500 : STRIP_UNARY (operands[3])))) &&
30501 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30502 : (TARGET_AVX512F)) &&
30503 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30504 : ( 1)))
30505 : return gen_split_2572 (insn, operands);
30506 : break;
30507 :
30508 : case 7:
30509 : if (((
30510 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30511 : ((32 == 64 || TARGET_AVX512VL
30512 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30513 : && ix86_pre_reload_split ()
30514 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30515 : STRIP_UNARY (operands[4]))
30516 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30517 : STRIP_UNARY (operands[4]))
30518 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30519 : STRIP_UNARY (operands[3]))
30520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30521 : STRIP_UNARY (operands[3])))) &&
30522 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30523 : (TARGET_AVX)) &&
30524 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30525 : ( 1)))
30526 : return gen_split_2599 (insn, operands);
30527 : break;
30528 :
30529 : case 8:
30530 : if ((
30531 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30532 : ((16 == 64 || TARGET_AVX512VL
30533 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30534 : && ix86_pre_reload_split ()
30535 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30536 : STRIP_UNARY (operands[4]))
30537 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30538 : STRIP_UNARY (operands[4]))
30539 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30540 : STRIP_UNARY (operands[3]))
30541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30542 : STRIP_UNARY (operands[3])))) &&
30543 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30544 : ( 1)))
30545 : return gen_split_2626 (insn, operands);
30546 : break;
30547 :
30548 : case 9:
30549 : if (((
30550 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30551 : ((64 == 64 || TARGET_AVX512VL
30552 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30553 : && ix86_pre_reload_split ()
30554 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30555 : STRIP_UNARY (operands[4]))
30556 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30557 : STRIP_UNARY (operands[4]))
30558 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30559 : STRIP_UNARY (operands[3]))
30560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30561 : STRIP_UNARY (operands[3])))) &&
30562 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30563 : (TARGET_AVX512F)) &&
30564 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30565 : ( 1)))
30566 : return gen_split_2653 (insn, operands);
30567 : break;
30568 :
30569 : case 10:
30570 : if (((
30571 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30572 : ((32 == 64 || TARGET_AVX512VL
30573 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30574 : && ix86_pre_reload_split ()
30575 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30576 : STRIP_UNARY (operands[4]))
30577 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30578 : STRIP_UNARY (operands[4]))
30579 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30580 : STRIP_UNARY (operands[3]))
30581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30582 : STRIP_UNARY (operands[3])))) &&
30583 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30584 : (TARGET_AVX)) &&
30585 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30586 : ( 1)))
30587 : return gen_split_2680 (insn, operands);
30588 : break;
30589 :
30590 : case 11:
30591 : if ((
30592 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30593 : ((16 == 64 || TARGET_AVX512VL
30594 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30595 : && ix86_pre_reload_split ()
30596 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30597 : STRIP_UNARY (operands[4]))
30598 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30599 : STRIP_UNARY (operands[4]))
30600 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30601 : STRIP_UNARY (operands[3]))
30602 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30603 : STRIP_UNARY (operands[3])))) &&
30604 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30605 : ( 1)))
30606 : return gen_split_2707 (insn, operands);
30607 : break;
30608 :
30609 : default:
30610 : break;
30611 : }
30612 : break;
30613 :
30614 : case XOR:
30615 : switch (pattern539 (x2))
30616 : {
30617 : case 0:
30618 : if (((
30619 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30620 : ((64 == 64 || TARGET_AVX512VL
30621 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30622 : && ix86_pre_reload_split ()
30623 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30624 : STRIP_UNARY (operands[4]))
30625 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30626 : STRIP_UNARY (operands[4]))
30627 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30628 : STRIP_UNARY (operands[3]))
30629 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30630 : STRIP_UNARY (operands[3])))) &&
30631 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30632 : (TARGET_AVX512F)) &&
30633 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30634 : ( 1)))
30635 : return gen_split_2413 (insn, operands);
30636 : break;
30637 :
30638 : case 1:
30639 : if (((
30640 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30641 : ((32 == 64 || TARGET_AVX512VL
30642 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30643 : && ix86_pre_reload_split ()
30644 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30645 : STRIP_UNARY (operands[4]))
30646 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30647 : STRIP_UNARY (operands[4]))
30648 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30649 : STRIP_UNARY (operands[3]))
30650 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30651 : STRIP_UNARY (operands[3])))) &&
30652 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30653 : (TARGET_AVX)) &&
30654 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30655 : ( 1)))
30656 : return gen_split_2440 (insn, operands);
30657 : break;
30658 :
30659 : case 2:
30660 : if ((
30661 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30662 : ((16 == 64 || TARGET_AVX512VL
30663 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30664 : && ix86_pre_reload_split ()
30665 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30666 : STRIP_UNARY (operands[4]))
30667 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30668 : STRIP_UNARY (operands[4]))
30669 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30670 : STRIP_UNARY (operands[3]))
30671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30672 : STRIP_UNARY (operands[3])))) &&
30673 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30674 : ( 1)))
30675 : return gen_split_2467 (insn, operands);
30676 : break;
30677 :
30678 : case 3:
30679 : if (((
30680 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30681 : ((64 == 64 || TARGET_AVX512VL
30682 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30683 : && ix86_pre_reload_split ()
30684 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30685 : STRIP_UNARY (operands[4]))
30686 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30687 : STRIP_UNARY (operands[4]))
30688 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30689 : STRIP_UNARY (operands[3]))
30690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30691 : STRIP_UNARY (operands[3])))) &&
30692 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30693 : (TARGET_AVX512F)) &&
30694 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30695 : ( 1)))
30696 : return gen_split_2494 (insn, operands);
30697 : break;
30698 :
30699 : case 4:
30700 : if (((
30701 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30702 : ((32 == 64 || TARGET_AVX512VL
30703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30704 : && ix86_pre_reload_split ()
30705 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30706 : STRIP_UNARY (operands[4]))
30707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30708 : STRIP_UNARY (operands[4]))
30709 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30710 : STRIP_UNARY (operands[3]))
30711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30712 : STRIP_UNARY (operands[3])))) &&
30713 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30714 : (TARGET_AVX)) &&
30715 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30716 : ( 1)))
30717 : return gen_split_2521 (insn, operands);
30718 : break;
30719 :
30720 : case 5:
30721 : if ((
30722 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30723 : ((16 == 64 || TARGET_AVX512VL
30724 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30725 : && ix86_pre_reload_split ()
30726 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30727 : STRIP_UNARY (operands[4]))
30728 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30729 : STRIP_UNARY (operands[4]))
30730 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30731 : STRIP_UNARY (operands[3]))
30732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30733 : STRIP_UNARY (operands[3])))) &&
30734 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30735 : ( 1)))
30736 : return gen_split_2548 (insn, operands);
30737 : break;
30738 :
30739 : case 6:
30740 : if (((
30741 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30742 : ((64 == 64 || TARGET_AVX512VL
30743 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30744 : && ix86_pre_reload_split ()
30745 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30746 : STRIP_UNARY (operands[4]))
30747 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30748 : STRIP_UNARY (operands[4]))
30749 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30750 : STRIP_UNARY (operands[3]))
30751 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30752 : STRIP_UNARY (operands[3])))) &&
30753 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30754 : (TARGET_AVX512F)) &&
30755 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30756 : ( 1)))
30757 : return gen_split_2575 (insn, operands);
30758 : break;
30759 :
30760 : case 7:
30761 : if (((
30762 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30763 : ((32 == 64 || TARGET_AVX512VL
30764 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30765 : && ix86_pre_reload_split ()
30766 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30767 : STRIP_UNARY (operands[4]))
30768 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30769 : STRIP_UNARY (operands[4]))
30770 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30771 : STRIP_UNARY (operands[3]))
30772 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30773 : STRIP_UNARY (operands[3])))) &&
30774 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30775 : (TARGET_AVX)) &&
30776 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30777 : ( 1)))
30778 : return gen_split_2602 (insn, operands);
30779 : break;
30780 :
30781 : case 8:
30782 : if ((
30783 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30784 : ((16 == 64 || TARGET_AVX512VL
30785 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30786 : && ix86_pre_reload_split ()
30787 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30788 : STRIP_UNARY (operands[4]))
30789 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30790 : STRIP_UNARY (operands[4]))
30791 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30792 : STRIP_UNARY (operands[3]))
30793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30794 : STRIP_UNARY (operands[3])))) &&
30795 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30796 : ( 1)))
30797 : return gen_split_2629 (insn, operands);
30798 : break;
30799 :
30800 : case 9:
30801 : if (((
30802 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30803 : ((64 == 64 || TARGET_AVX512VL
30804 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30805 : && ix86_pre_reload_split ()
30806 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30807 : STRIP_UNARY (operands[4]))
30808 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30809 : STRIP_UNARY (operands[4]))
30810 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30811 : STRIP_UNARY (operands[3]))
30812 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30813 : STRIP_UNARY (operands[3])))) &&
30814 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30815 : (TARGET_AVX512F)) &&
30816 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30817 : ( 1)))
30818 : return gen_split_2656 (insn, operands);
30819 : break;
30820 :
30821 : case 10:
30822 : if (((
30823 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30824 : ((32 == 64 || TARGET_AVX512VL
30825 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30826 : && ix86_pre_reload_split ()
30827 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30828 : STRIP_UNARY (operands[4]))
30829 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30830 : STRIP_UNARY (operands[4]))
30831 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30832 : STRIP_UNARY (operands[3]))
30833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30834 : STRIP_UNARY (operands[3])))) &&
30835 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30836 : (TARGET_AVX)) &&
30837 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30838 : ( 1)))
30839 : return gen_split_2683 (insn, operands);
30840 : break;
30841 :
30842 : case 11:
30843 : if ((
30844 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30845 : ((16 == 64 || TARGET_AVX512VL
30846 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30847 : && ix86_pre_reload_split ()
30848 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30849 : STRIP_UNARY (operands[4]))
30850 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30851 : STRIP_UNARY (operands[4]))
30852 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30853 : STRIP_UNARY (operands[3]))
30854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30855 : STRIP_UNARY (operands[3])))) &&
30856 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30857 : ( 1)))
30858 : return gen_split_2710 (insn, operands);
30859 : break;
30860 :
30861 : default:
30862 : break;
30863 : }
30864 : break;
30865 :
30866 : default:
30867 : break;
30868 : }
30869 : break;
30870 :
30871 : case REG:
30872 : case SUBREG:
30873 : case MEM:
30874 : case VEC_DUPLICATE:
30875 : operands[1] = x3;
30876 : x5 = XEXP (x2, 1);
30877 : operands[2] = x5;
30878 : switch (GET_MODE (operands[0]))
30879 : {
30880 : case E_V16SImode:
30881 : if (pattern937 (x2,
30882 : E_V16SImode) == 0
30883 : && ((
30884 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30885 : (TARGET_AVX512F
30886 : && (!false
30887 : || SImode == SImode
30888 : || SImode == DImode)) &&
30889 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30890 : (TARGET_AVX512F)) &&
30891 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30892 : ( reload_completed && !REG_P (operands[1]) && !false
30893 : && optimize_insn_for_speed_p ())))
30894 : return gen_split_3440 (insn, operands);
30895 : break;
30896 :
30897 : case E_V8DImode:
30898 : if (pattern937 (x2,
30899 : E_V8DImode) == 0
30900 : && ((
30901 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30902 : (TARGET_AVX512F
30903 : && (!false
30904 : || DImode == SImode
30905 : || DImode == DImode)) &&
30906 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30907 : (TARGET_AVX512F)) &&
30908 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30909 : ( reload_completed && !REG_P (operands[1]) && !false
30910 : && optimize_insn_for_speed_p ())))
30911 : return gen_split_3441 (insn, operands);
30912 : break;
30913 :
30914 : case E_V64QImode:
30915 : if (pattern937 (x2,
30916 : E_V64QImode) == 0
30917 : && ((
30918 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30919 : (TARGET_AVX512F
30920 : && (!false
30921 : || QImode == SImode
30922 : || QImode == DImode)) &&
30923 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30924 : (TARGET_AVX512BW)) &&
30925 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30926 : ( reload_completed && !REG_P (operands[1]) && !false
30927 : && optimize_insn_for_speed_p ())))
30928 : return gen_split_3442 (insn, operands);
30929 : break;
30930 :
30931 : case E_V32QImode:
30932 : if (pattern937 (x2,
30933 : E_V32QImode) == 0
30934 : && ((
30935 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30936 : (TARGET_AVX512F
30937 : && (!false
30938 : || QImode == SImode
30939 : || QImode == DImode)) &&
30940 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30941 : (TARGET_AVX)) &&
30942 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30943 : ( reload_completed && !REG_P (operands[1]) && !false
30944 : && optimize_insn_for_speed_p ())))
30945 : return gen_split_3443 (insn, operands);
30946 : break;
30947 :
30948 : case E_V16QImode:
30949 : if (pattern937 (x2,
30950 : E_V16QImode) == 0
30951 : && (
30952 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30953 : (TARGET_AVX512F
30954 : && (!false
30955 : || QImode == SImode
30956 : || QImode == DImode)) &&
30957 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30958 : ( reload_completed && !REG_P (operands[1]) && !false
30959 : && optimize_insn_for_speed_p ())))
30960 : return gen_split_3444 (insn, operands);
30961 : break;
30962 :
30963 : case E_V32HImode:
30964 : if (pattern937 (x2,
30965 : E_V32HImode) == 0
30966 : && ((
30967 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30968 : (TARGET_AVX512F
30969 : && (!false
30970 : || HImode == SImode
30971 : || HImode == DImode)) &&
30972 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30973 : (TARGET_AVX512BW)) &&
30974 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30975 : ( reload_completed && !REG_P (operands[1]) && !false
30976 : && optimize_insn_for_speed_p ())))
30977 : return gen_split_3445 (insn, operands);
30978 : break;
30979 :
30980 : case E_V16HImode:
30981 : if (pattern937 (x2,
30982 : E_V16HImode) == 0
30983 : && ((
30984 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30985 : (TARGET_AVX512F
30986 : && (!false
30987 : || HImode == SImode
30988 : || HImode == DImode)) &&
30989 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30990 : (TARGET_AVX)) &&
30991 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30992 : ( reload_completed && !REG_P (operands[1]) && !false
30993 : && optimize_insn_for_speed_p ())))
30994 : return gen_split_3446 (insn, operands);
30995 : break;
30996 :
30997 : case E_V8HImode:
30998 : if (pattern937 (x2,
30999 : E_V8HImode) == 0
31000 : && (
31001 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31002 : (TARGET_AVX512F
31003 : && (!false
31004 : || HImode == SImode
31005 : || HImode == DImode)) &&
31006 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31007 : ( reload_completed && !REG_P (operands[1]) && !false
31008 : && optimize_insn_for_speed_p ())))
31009 : return gen_split_3447 (insn, operands);
31010 : break;
31011 :
31012 : case E_V8SImode:
31013 : if (pattern937 (x2,
31014 : E_V8SImode) == 0
31015 : && ((
31016 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31017 : (TARGET_AVX512F
31018 : && (!false
31019 : || SImode == SImode
31020 : || SImode == DImode)) &&
31021 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31022 : (TARGET_AVX)) &&
31023 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31024 : ( reload_completed && !REG_P (operands[1]) && !false
31025 : && optimize_insn_for_speed_p ())))
31026 : return gen_split_3448 (insn, operands);
31027 : break;
31028 :
31029 : case E_V4SImode:
31030 : if (pattern937 (x2,
31031 : E_V4SImode) == 0
31032 : && (
31033 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31034 : (TARGET_AVX512F
31035 : && (!false
31036 : || SImode == SImode
31037 : || SImode == DImode)) &&
31038 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31039 : ( reload_completed && !REG_P (operands[1]) && !false
31040 : && optimize_insn_for_speed_p ())))
31041 : return gen_split_3449 (insn, operands);
31042 : break;
31043 :
31044 : case E_V4DImode:
31045 : if (pattern937 (x2,
31046 : E_V4DImode) == 0
31047 : && ((
31048 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31049 : (TARGET_AVX512F
31050 : && (!false
31051 : || DImode == SImode
31052 : || DImode == DImode)) &&
31053 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31054 : (TARGET_AVX)) &&
31055 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31056 : ( reload_completed && !REG_P (operands[1]) && !false
31057 : && optimize_insn_for_speed_p ())))
31058 : return gen_split_3450 (insn, operands);
31059 : break;
31060 :
31061 : case E_V2DImode:
31062 : if (pattern937 (x2,
31063 : E_V2DImode) == 0
31064 : && (
31065 : #line 18822 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31066 : (TARGET_AVX512F
31067 : && (!false
31068 : || DImode == SImode
31069 : || DImode == DImode)) &&
31070 : #line 18832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31071 : ( reload_completed && !REG_P (operands[1]) && !false
31072 : && optimize_insn_for_speed_p ())))
31073 : return gen_split_3451 (insn, operands);
31074 : break;
31075 :
31076 : default:
31077 : break;
31078 : }
31079 : if (GET_CODE (x3) == VEC_DUPLICATE)
31080 : {
31081 : switch (pattern607 (x2))
31082 : {
31083 : case 0:
31084 : if ((
31085 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31086 : (64 == 64 || TARGET_AVX512VL
31087 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31088 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31089 : (TARGET_AVX512F)))
31090 : return gen_split_3484 (insn, operands);
31091 : break;
31092 :
31093 : case 1:
31094 : if ((
31095 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31096 : (64 == 64 || TARGET_AVX512VL
31097 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31098 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31099 : (TARGET_AVX512F)))
31100 : return gen_split_3485 (insn, operands);
31101 : break;
31102 :
31103 : case 2:
31104 : if ((
31105 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31106 : (64 == 64 || TARGET_AVX512VL
31107 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31108 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31109 : (TARGET_AVX512BW)))
31110 : return gen_split_3486 (insn, operands);
31111 : break;
31112 :
31113 : case 3:
31114 : if ((
31115 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31116 : (32 == 64 || TARGET_AVX512VL
31117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31118 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31119 : (TARGET_AVX)))
31120 : return gen_split_3487 (insn, operands);
31121 : break;
31122 :
31123 : case 4:
31124 : if (
31125 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31126 : (16 == 64 || TARGET_AVX512VL
31127 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31128 : return gen_split_3488 (insn, operands);
31129 : break;
31130 :
31131 : case 5:
31132 : if ((
31133 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31134 : (64 == 64 || TARGET_AVX512VL
31135 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31136 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31137 : (TARGET_AVX512BW)))
31138 : return gen_split_3489 (insn, operands);
31139 : break;
31140 :
31141 : case 6:
31142 : if ((
31143 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31144 : (32 == 64 || TARGET_AVX512VL
31145 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31146 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31147 : (TARGET_AVX)))
31148 : return gen_split_3490 (insn, operands);
31149 : break;
31150 :
31151 : case 7:
31152 : if (
31153 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31154 : (16 == 64 || TARGET_AVX512VL
31155 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31156 : return gen_split_3491 (insn, operands);
31157 : break;
31158 :
31159 : case 8:
31160 : if ((
31161 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31162 : (32 == 64 || TARGET_AVX512VL
31163 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31164 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31165 : (TARGET_AVX)))
31166 : return gen_split_3492 (insn, operands);
31167 : break;
31168 :
31169 : case 9:
31170 : if (
31171 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31172 : (16 == 64 || TARGET_AVX512VL
31173 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31174 : return gen_split_3493 (insn, operands);
31175 : break;
31176 :
31177 : case 10:
31178 : if ((
31179 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31180 : (32 == 64 || TARGET_AVX512VL
31181 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
31182 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31183 : (TARGET_AVX)))
31184 : return gen_split_3494 (insn, operands);
31185 : break;
31186 :
31187 : case 11:
31188 : if (
31189 : #line 19126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31190 : (16 == 64 || TARGET_AVX512VL
31191 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31192 : return gen_split_3495 (insn, operands);
31193 : break;
31194 :
31195 : default:
31196 : break;
31197 : }
31198 : }
31199 : break;
31200 :
31201 : default:
31202 : break;
31203 : }
31204 : break;
31205 :
31206 : default:
31207 : break;
31208 : }
31209 : operands[1] = x2;
31210 : switch (pattern205 ())
31211 : {
31212 : case 0:
31213 : if (((
31214 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31215 : ((64 == 64 || TARGET_AVX512VL
31216 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31217 : && ix86_pre_reload_split ()) &&
31218 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31219 : (TARGET_AVX512F)) &&
31220 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31221 : ( 1)))
31222 : return gen_split_1727 (insn, operands);
31223 : break;
31224 :
31225 : case 1:
31226 : if (((
31227 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31228 : ((32 == 64 || TARGET_AVX512VL
31229 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31230 : && ix86_pre_reload_split ()) &&
31231 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31232 : (TARGET_AVX)) &&
31233 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31234 : ( 1)))
31235 : return gen_split_1728 (insn, operands);
31236 : break;
31237 :
31238 : case 2:
31239 : if ((
31240 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31241 : ((16 == 64 || TARGET_AVX512VL
31242 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31243 : && ix86_pre_reload_split ()) &&
31244 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31245 : ( 1)))
31246 : return gen_split_1729 (insn, operands);
31247 : break;
31248 :
31249 : case 3:
31250 : if (((
31251 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31252 : ((64 == 64 || TARGET_AVX512VL
31253 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31254 : && ix86_pre_reload_split ()) &&
31255 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31256 : (TARGET_AVX512F)) &&
31257 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31258 : ( 1)))
31259 : return gen_split_1730 (insn, operands);
31260 : break;
31261 :
31262 : case 4:
31263 : if (((
31264 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31265 : ((32 == 64 || TARGET_AVX512VL
31266 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31267 : && ix86_pre_reload_split ()) &&
31268 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31269 : (TARGET_AVX)) &&
31270 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31271 : ( 1)))
31272 : return gen_split_1731 (insn, operands);
31273 : break;
31274 :
31275 : case 5:
31276 : if ((
31277 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31278 : ((16 == 64 || TARGET_AVX512VL
31279 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31280 : && ix86_pre_reload_split ()) &&
31281 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31282 : ( 1)))
31283 : return gen_split_1732 (insn, operands);
31284 : break;
31285 :
31286 : case 6:
31287 : if (((
31288 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31289 : ((64 == 64 || TARGET_AVX512VL
31290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31291 : && ix86_pre_reload_split ()) &&
31292 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31293 : (TARGET_AVX512F)) &&
31294 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31295 : ( 1)))
31296 : return gen_split_1733 (insn, operands);
31297 : break;
31298 :
31299 : case 7:
31300 : if (((
31301 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31302 : ((32 == 64 || TARGET_AVX512VL
31303 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31304 : && ix86_pre_reload_split ()) &&
31305 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31306 : (TARGET_AVX)) &&
31307 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31308 : ( 1)))
31309 : return gen_split_1734 (insn, operands);
31310 : break;
31311 :
31312 : case 8:
31313 : if ((
31314 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31315 : ((16 == 64 || TARGET_AVX512VL
31316 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31317 : && ix86_pre_reload_split ()) &&
31318 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31319 : ( 1)))
31320 : return gen_split_1735 (insn, operands);
31321 : break;
31322 :
31323 : case 9:
31324 : if (((
31325 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31326 : ((64 == 64 || TARGET_AVX512VL
31327 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31328 : && ix86_pre_reload_split ()) &&
31329 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31330 : (TARGET_AVX512F)) &&
31331 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31332 : ( 1)))
31333 : return gen_split_1736 (insn, operands);
31334 : break;
31335 :
31336 : case 10:
31337 : if (((
31338 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31339 : ((32 == 64 || TARGET_AVX512VL
31340 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31341 : && ix86_pre_reload_split ()) &&
31342 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31343 : (TARGET_AVX)) &&
31344 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31345 : ( 1)))
31346 : return gen_split_1737 (insn, operands);
31347 : break;
31348 :
31349 : case 11:
31350 : if (((
31351 : #line 14148 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31352 : ((16 == 64 || TARGET_AVX512VL
31353 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
31354 : && ix86_pre_reload_split ()) &&
31355 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31356 : (TARGET_SSE2)) &&
31357 : #line 14152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31358 : ( 1)))
31359 : return gen_split_1738 (insn, operands);
31360 : break;
31361 :
31362 : default:
31363 : break;
31364 : }
31365 : switch (GET_CODE (x2))
31366 : {
31367 : case AND:
31368 : return split_74 (x1, insn);
31369 :
31370 : case IOR:
31371 : return split_73 (x1, insn);
31372 :
31373 : case XOR:
31374 : return split_72 (x1, insn);
31375 :
31376 : default:
31377 : return NULL;
31378 : }
31379 : }
31380 :
31381 : rtx_insn *
31382 : peephole2_30 (rtx x1 ATTRIBUTE_UNUSED,
31383 : rtx_insn *insn ATTRIBUTE_UNUSED,
31384 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31385 : {
31386 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31387 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31388 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31389 : rtx x18, x19, x20, x21;
31390 : rtx_insn *res ATTRIBUTE_UNUSED;
31391 : if (peep2_current_count < 2)
31392 : return NULL;
31393 : x2 = XEXP (x1, 0);
31394 : operands[0] = x2;
31395 : x3 = XEXP (x1, 1);
31396 : x4 = XEXP (x3, 0);
31397 : operands[1] = x4;
31398 : if (!general_reg_operand (operands[1], E_QImode))
31399 : return NULL;
31400 : x5 = PATTERN (peep2_next_insn (1));
31401 : if (GET_CODE (x5) != PARALLEL
31402 : || XVECLEN (x5, 0) != 2)
31403 : return NULL;
31404 : x6 = XVECEXP (x5, 0, 0);
31405 : if (GET_CODE (x6) != SET)
31406 : return NULL;
31407 : x7 = XVECEXP (x5, 0, 1);
31408 : if (GET_CODE (x7) != CLOBBER)
31409 : return NULL;
31410 : switch (GET_MODE (operands[0]))
31411 : {
31412 : case E_HImode:
31413 : if (!register_operand (operands[0], E_HImode)
31414 : || GET_MODE (x3) != E_HImode)
31415 : return NULL;
31416 : x8 = XEXP (x6, 1);
31417 : if (GET_CODE (x8) != UNSPEC
31418 : || XVECLEN (x8, 0) != 1
31419 : || XINT (x8, 1) != 28
31420 : || GET_MODE (x8) != E_CCmode)
31421 : return NULL;
31422 : x9 = XEXP (x6, 0);
31423 : if (GET_CODE (x9) != REG
31424 : || REGNO (x9) != 17
31425 : || GET_MODE (x9) != E_CCmode)
31426 : return NULL;
31427 : x10 = XVECEXP (x8, 0, 0);
31428 : if (!rtx_equal_p (x10, operands[0]))
31429 : return NULL;
31430 : x11 = XEXP (x7, 0);
31431 : if (!rtx_equal_p (x11, operands[0]))
31432 : return NULL;
31433 : *pmatch_len_ = 1;
31434 : return gen_peephole2_217 (insn, operands);
31435 :
31436 : case E_SImode:
31437 : if (peep2_current_count < 3
31438 : || peep2_current_count < 4
31439 : || !register_operand (operands[0], E_SImode)
31440 : || GET_MODE (x3) != E_SImode)
31441 : return NULL;
31442 : x8 = XEXP (x6, 1);
31443 : if (GET_CODE (x8) != POPCOUNT
31444 : || GET_MODE (x8) != E_SImode)
31445 : return NULL;
31446 : x11 = XEXP (x7, 0);
31447 : if (GET_CODE (x11) != REG
31448 : || REGNO (x11) != 17
31449 : || GET_MODE (x11) != E_CCmode)
31450 : return NULL;
31451 : x9 = XEXP (x6, 0);
31452 : operands[2] = x9;
31453 : if (!register_operand (operands[2], E_SImode))
31454 : return NULL;
31455 : x12 = XEXP (x8, 0);
31456 : if (!rtx_equal_p (x12, operands[0]))
31457 : return NULL;
31458 : x13 = PATTERN (peep2_next_insn (2));
31459 : if (GET_CODE (x13) != SET
31460 : || pattern1779 (x13) != 0)
31461 : return NULL;
31462 : x14 = XEXP (x13, 1);
31463 : x15 = XEXP (x14, 0);
31464 : x16 = XEXP (x15, 0);
31465 : operands[3] = x16;
31466 : if (!register_operand (operands[3], E_QImode))
31467 : return NULL;
31468 : x17 = PATTERN (peep2_next_insn (3));
31469 : if (GET_CODE (x17) != SET)
31470 : return NULL;
31471 : x18 = XEXP (x17, 1);
31472 : if (GET_CODE (x18) != IF_THEN_ELSE)
31473 : return NULL;
31474 : x19 = XEXP (x18, 0);
31475 : if (!bt_comparison_operator (x19, E_VOIDmode))
31476 : return NULL;
31477 : operands[4] = x19;
31478 : if (pattern1899 (x17) != 0)
31479 : return NULL;
31480 : x20 = XEXP (x18, 1);
31481 : x21 = XEXP (x20, 0);
31482 : operands[5] = x21;
31483 : if (!
31484 : #line 23872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31485 : (REGNO (operands[2]) == REGNO (operands[3])
31486 : && peep2_reg_dead_p (3, operands[0])
31487 : && peep2_reg_dead_p (3, operands[2])
31488 : && peep2_regno_dead_p (4, FLAGS_REG)))
31489 : return NULL;
31490 : *pmatch_len_ = 3;
31491 : return gen_peephole2_218 (insn, operands);
31492 :
31493 : default:
31494 : return NULL;
31495 : }
31496 : }
31497 :
31498 : rtx_insn *
31499 : peephole2_35 (rtx x1 ATTRIBUTE_UNUSED,
31500 : rtx_insn *insn ATTRIBUTE_UNUSED,
31501 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31502 : {
31503 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31504 : rtx x2, x3, x4, x5, x6, x7, x8;
31505 : rtx_insn *res ATTRIBUTE_UNUSED;
31506 : if (peep2_current_count >= 2)
31507 : {
31508 : res = peephole2_34 (x1, insn, pmatch_len_);
31509 : if (res != NULL_RTX)
31510 : return res;
31511 : }
31512 : x2 = XEXP (x1, 0);
31513 : operands[0] = x2;
31514 : x3 = XEXP (x1, 1);
31515 : operands[1] = x3;
31516 : if (const0_operand (operands[1], E_VOIDmode)
31517 : && general_reg_operand (operands[0], E_VOIDmode)
31518 : &&
31519 : #line 29878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31520 : (GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
31521 : && (! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
31522 : && peep2_regno_dead_p (0, FLAGS_REG)))
31523 : {
31524 : *pmatch_len_ = 0;
31525 : res = gen_peephole2_368 (insn, operands);
31526 : if (res != NULL_RTX)
31527 : return res;
31528 : }
31529 : if (peep2_current_count < 2
31530 : || !memory_operand (operands[1], E_DFmode)
31531 : || !sse_reg_operand (operands[0], E_DFmode))
31532 : return NULL;
31533 : x4 = PATTERN (peep2_next_insn (1));
31534 : if (GET_CODE (x4) != SET)
31535 : return NULL;
31536 : x5 = XEXP (x4, 1);
31537 : if (GET_CODE (x5) != VEC_CONCAT
31538 : || GET_MODE (x5) != E_V2DFmode)
31539 : return NULL;
31540 : x6 = XEXP (x4, 0);
31541 : operands[2] = x6;
31542 : if (!sse_reg_operand (operands[2], E_V2DFmode))
31543 : return NULL;
31544 : x7 = XEXP (x5, 0);
31545 : operands[4] = x7;
31546 : if (!sse_reg_operand (operands[4], E_DFmode))
31547 : return NULL;
31548 : x8 = XEXP (x5, 1);
31549 : operands[3] = x8;
31550 : if (!memory_operand (operands[3], E_DFmode)
31551 : || !
31552 : #line 1992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31553 : (TARGET_SSE2 && TARGET_SSE_UNALIGNED_LOAD_OPTIMAL
31554 : && REGNO (operands[4]) == REGNO (operands[2])
31555 : && ix86_operands_ok_for_move_multiple (operands, true, DFmode)))
31556 : return NULL;
31557 : *pmatch_len_ = 1;
31558 : return gen_peephole2_437 (insn, operands);
31559 : }
31560 :
31561 : rtx_insn *
31562 : peephole2_39 (rtx x1 ATTRIBUTE_UNUSED,
31563 : rtx_insn *insn ATTRIBUTE_UNUSED,
31564 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31565 : {
31566 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31567 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31568 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31569 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
31570 : rtx x26, x27, x28, x29, x30, x31;
31571 : rtx_insn *res ATTRIBUTE_UNUSED;
31572 : x2 = XEXP (x1, 1);
31573 : switch (GET_CODE (x2))
31574 : {
31575 : case COMPARE:
31576 : operands[1] = x2;
31577 : if (!compare_operator (operands[1], E_VOIDmode))
31578 : return NULL;
31579 : x3 = XEXP (x2, 1);
31580 : if (GET_CODE (x3) != CONST_INT
31581 : || !flags_reg_operand (operands[0], E_VOIDmode))
31582 : return NULL;
31583 : x4 = XEXP (x2, 0);
31584 : switch (GET_CODE (x4))
31585 : {
31586 : case REG:
31587 : case SUBREG:
31588 : case MEM:
31589 : operands[2] = x4;
31590 : if (memory_operand (operands[2], E_SImode)
31591 : && XWINT (x3, 0) == 0L
31592 : &&
31593 : #line 29099 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31594 : (optimize_insn_for_speed_p () && ix86_match_ccmode (insn, CCNOmode)))
31595 : {
31596 : *pmatch_len_ = 0;
31597 : res = gen_peephole2_288 (insn, operands);
31598 : if (res != NULL_RTX)
31599 : return res;
31600 : }
31601 : if (!register_operand (operands[2], E_VOIDmode))
31602 : return NULL;
31603 : operands[3] = x3;
31604 : if (!const_int_operand (operands[3], E_VOIDmode)
31605 : || !
31606 : #line 30135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31607 : ((((!TARGET_FUSE_CMP_AND_BRANCH || optimize_insn_for_size_p ())
31608 : && incdec_operand (operands[3], GET_MODE (operands[3])))
31609 : || (!TARGET_FUSE_CMP_AND_BRANCH
31610 : && INTVAL (operands[3]) == 128))
31611 : && ix86_match_ccmode (insn, CCGCmode)
31612 : && peep2_reg_dead_p (1, operands[2])))
31613 : return NULL;
31614 : *pmatch_len_ = 0;
31615 : return gen_peephole2_423 (insn, operands);
31616 :
31617 : case AND:
31618 : if (XWINT (x3, 0) != 0L)
31619 : return NULL;
31620 : x5 = XEXP (x4, 0);
31621 : operands[2] = x5;
31622 : x6 = XEXP (x4, 1);
31623 : operands[3] = x6;
31624 : switch (GET_MODE (x4))
31625 : {
31626 : case E_SImode:
31627 : if (register_operand (operands[2], E_SImode)
31628 : && immediate_operand (operands[3], E_SImode)
31629 : &&
31630 : #line 29141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31631 : (ix86_match_ccmode (insn, CCNOmode)
31632 : && (REGNO (operands[2]) != AX_REG
31633 : || satisfies_constraint_K (operands[3]))
31634 : && peep2_reg_dead_p (1, operands[2])))
31635 : {
31636 : *pmatch_len_ = 0;
31637 : res = gen_peephole2_292 (insn, operands);
31638 : if (res != NULL_RTX)
31639 : return res;
31640 : }
31641 : break;
31642 :
31643 : case E_QImode:
31644 : if (register_operand (operands[2], E_QImode)
31645 : && immediate_operand (operands[3], E_QImode)
31646 : &&
31647 : #line 29161 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31648 : (! TARGET_PARTIAL_REG_STALL
31649 : && ix86_match_ccmode (insn, CCNOmode)
31650 : && REGNO (operands[2]) != AX_REG
31651 : && peep2_reg_dead_p (1, operands[2])))
31652 : {
31653 : *pmatch_len_ = 0;
31654 : res = gen_peephole2_293 (insn, operands);
31655 : if (res != NULL_RTX)
31656 : return res;
31657 : }
31658 : break;
31659 :
31660 : default:
31661 : break;
31662 : }
31663 : if (GET_CODE (x5) != SUBREG
31664 : || maybe_ne (SUBREG_BYTE (x5), 0)
31665 : || GET_MODE (x5) != E_QImode)
31666 : return NULL;
31667 : x7 = XEXP (x5, 0);
31668 : switch (GET_CODE (x7))
31669 : {
31670 : case ASHIFTRT:
31671 : case LSHIFTRT:
31672 : case SIGN_EXTRACT:
31673 : case ZERO_EXTRACT:
31674 : operands[4] = x7;
31675 : if (GET_MODE (x4) != E_QImode)
31676 : return NULL;
31677 : x8 = XEXP (x7, 0);
31678 : operands[2] = x8;
31679 : if (!int248_register_operand (operands[2], E_VOIDmode))
31680 : return NULL;
31681 : operands[3] = x6;
31682 : if (!const_int_operand (operands[3], E_VOIDmode))
31683 : return NULL;
31684 : switch (GET_MODE (operands[4]))
31685 : {
31686 : case E_HImode:
31687 : if (!extract_high_operator (operands[4], E_HImode)
31688 : || !
31689 : #line 29181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31690 : (! TARGET_PARTIAL_REG_STALL
31691 : && ix86_match_ccmode (insn, CCNOmode)
31692 : && REGNO (operands[2]) != AX_REG
31693 : && peep2_reg_dead_p (1, operands[2])))
31694 : return NULL;
31695 : *pmatch_len_ = 0;
31696 : return gen_peephole2_294 (insn, operands);
31697 :
31698 : case E_SImode:
31699 : if (!extract_high_operator (operands[4], E_SImode)
31700 : || !
31701 : #line 29181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31702 : (! TARGET_PARTIAL_REG_STALL
31703 : && ix86_match_ccmode (insn, CCNOmode)
31704 : && REGNO (operands[2]) != AX_REG
31705 : && peep2_reg_dead_p (1, operands[2])))
31706 : return NULL;
31707 : *pmatch_len_ = 0;
31708 : return gen_peephole2_295 (insn, operands);
31709 :
31710 : case E_DImode:
31711 : if (!extract_high_operator (operands[4], E_DImode)
31712 : || !(
31713 : #line 29181 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31714 : (! TARGET_PARTIAL_REG_STALL
31715 : && ix86_match_ccmode (insn, CCNOmode)
31716 : && REGNO (operands[2]) != AX_REG
31717 : && peep2_reg_dead_p (1, operands[2])) &&
31718 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31719 : (TARGET_64BIT)))
31720 : return NULL;
31721 : *pmatch_len_ = 0;
31722 : return gen_peephole2_296 (insn, operands);
31723 :
31724 : default:
31725 : return NULL;
31726 : }
31727 :
31728 : default:
31729 : return NULL;
31730 : }
31731 :
31732 : default:
31733 : return NULL;
31734 : }
31735 :
31736 : case NOT:
31737 : x4 = XEXP (x2, 0);
31738 : operands[1] = x4;
31739 : switch (GET_MODE (operands[0]))
31740 : {
31741 : case E_QImode:
31742 : if (!nonimmediate_gr_operand (operands[0], E_QImode)
31743 : || GET_MODE (x2) != E_QImode
31744 : || !nonimmediate_gr_operand (operands[1], E_QImode)
31745 : || !
31746 : #line 29117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31747 : (optimize_insn_for_speed_p ()
31748 : && ((TARGET_NOT_UNPAIRABLE
31749 : && (!MEM_P (operands[0])
31750 : || !memory_displacement_operand (operands[0], QImode)))
31751 : || (TARGET_NOT_VECTORMODE
31752 : && long_memory_operand (operands[0], QImode)))
31753 : && peep2_regno_dead_p (0, FLAGS_REG)))
31754 : return NULL;
31755 : *pmatch_len_ = 0;
31756 : return gen_peephole2_289 (insn, operands);
31757 :
31758 : case E_HImode:
31759 : if (!nonimmediate_gr_operand (operands[0], E_HImode)
31760 : || GET_MODE (x2) != E_HImode
31761 : || !nonimmediate_gr_operand (operands[1], E_HImode)
31762 : || !
31763 : #line 29117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31764 : (optimize_insn_for_speed_p ()
31765 : && ((TARGET_NOT_UNPAIRABLE
31766 : && (!MEM_P (operands[0])
31767 : || !memory_displacement_operand (operands[0], HImode)))
31768 : || (TARGET_NOT_VECTORMODE
31769 : && long_memory_operand (operands[0], HImode)))
31770 : && peep2_regno_dead_p (0, FLAGS_REG)))
31771 : return NULL;
31772 : *pmatch_len_ = 0;
31773 : return gen_peephole2_290 (insn, operands);
31774 :
31775 : case E_SImode:
31776 : if (!nonimmediate_gr_operand (operands[0], E_SImode)
31777 : || GET_MODE (x2) != E_SImode
31778 : || !nonimmediate_gr_operand (operands[1], E_SImode)
31779 : || !
31780 : #line 29117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31781 : (optimize_insn_for_speed_p ()
31782 : && ((TARGET_NOT_UNPAIRABLE
31783 : && (!MEM_P (operands[0])
31784 : || !memory_displacement_operand (operands[0], SImode)))
31785 : || (TARGET_NOT_VECTORMODE
31786 : && long_memory_operand (operands[0], SImode)))
31787 : && peep2_regno_dead_p (0, FLAGS_REG)))
31788 : return NULL;
31789 : *pmatch_len_ = 0;
31790 : return gen_peephole2_291 (insn, operands);
31791 :
31792 : default:
31793 : return NULL;
31794 : }
31795 :
31796 : case CONST_INT:
31797 : case CONST_WIDE_INT:
31798 : case CONST_POLY_INT:
31799 : case CONST_FIXED:
31800 : case CONST_DOUBLE:
31801 : case CONST_VECTOR:
31802 : case CONST:
31803 : case REG:
31804 : case SUBREG:
31805 : case MEM:
31806 : case LABEL_REF:
31807 : case SYMBOL_REF:
31808 : case HIGH:
31809 : if (GET_CODE (x2) == CONST_INT)
31810 : {
31811 : res = peephole2_38 (x1, insn, pmatch_len_);
31812 : if (res != NULL_RTX)
31813 : return res;
31814 : }
31815 : if (peep2_current_count < 2
31816 : || peep2_current_count < 3)
31817 : return NULL;
31818 : operands[1] = x2;
31819 : x9 = PATTERN (peep2_next_insn (1));
31820 : if (pattern610 (x9,
31821 : 4) != 0)
31822 : return NULL;
31823 : x10 = XVECEXP (x9, 0, 1);
31824 : if (GET_CODE (x10) != SET)
31825 : return NULL;
31826 : x11 = XEXP (x10, 1);
31827 : if (GET_CODE (x11) != UNSPEC_VOLATILE
31828 : || XVECLEN (x11, 0) != 1)
31829 : return NULL;
31830 : x12 = XVECEXP (x11, 0, 0);
31831 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31832 : return NULL;
31833 : x13 = XVECEXP (x9, 0, 2);
31834 : if (GET_CODE (x13) != SET)
31835 : return NULL;
31836 : x14 = XEXP (x13, 0);
31837 : if (GET_CODE (x14) != REG
31838 : || REGNO (x14) != 17)
31839 : return NULL;
31840 : x15 = XVECEXP (x9, 0, 0);
31841 : x16 = XEXP (x15, 1);
31842 : x17 = XVECEXP (x16, 0, 0);
31843 : operands[2] = x17;
31844 : x18 = XVECEXP (x16, 0, 2);
31845 : operands[3] = x18;
31846 : if (pattern1715 (x9) != 0)
31847 : return NULL;
31848 : x19 = PATTERN (peep2_next_insn (2));
31849 : if (GET_CODE (x19) != SET)
31850 : return NULL;
31851 : x20 = XEXP (x19, 1);
31852 : if (GET_CODE (x20) != COMPARE)
31853 : return NULL;
31854 : x21 = XEXP (x19, 0);
31855 : if (GET_CODE (x21) != REG
31856 : || REGNO (x21) != 17)
31857 : return NULL;
31858 : x22 = XEXP (x20, 0);
31859 : operands[5] = x22;
31860 : x23 = XEXP (x20, 1);
31861 : operands[6] = x23;
31862 : switch (GET_MODE (operands[0]))
31863 : {
31864 : case E_HImode:
31865 : if (!register_operand (operands[0], E_HImode)
31866 : || !general_operand (operands[1], E_HImode)
31867 : || XINT (x16, 1) != 109
31868 : || GET_MODE (x16) != E_HImode
31869 : || pattern1893 (x9,
31870 : E_HImode) != 0
31871 : || !
31872 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31873 : ((rtx_equal_p (operands[0], operands[5])
31874 : && rtx_equal_p (operands[1], operands[6]))
31875 : || (rtx_equal_p (operands[0], operands[6])
31876 : && rtx_equal_p (operands[1], operands[5]))))
31877 : return NULL;
31878 : *pmatch_len_ = 2;
31879 : return gen_peephole2_440 (insn, operands);
31880 :
31881 : case E_SImode:
31882 : if (!register_operand (operands[0], E_SImode)
31883 : || GET_MODE (x16) != E_SImode)
31884 : return NULL;
31885 : if (XINT (x16, 1) == 109
31886 : && general_operand (operands[1], E_SImode)
31887 : && pattern1893 (x9,
31888 : E_SImode) == 0
31889 : &&
31890 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31891 : ((rtx_equal_p (operands[0], operands[5])
31892 : && rtx_equal_p (operands[1], operands[6]))
31893 : || (rtx_equal_p (operands[0], operands[6])
31894 : && rtx_equal_p (operands[1], operands[5]))))
31895 : {
31896 : *pmatch_len_ = 2;
31897 : res = gen_peephole2_441 (insn, operands);
31898 : if (res != NULL_RTX)
31899 : return res;
31900 : }
31901 : if (XINT (x16, 1) != 112
31902 : || pattern1891 (x9,
31903 : E_SImode) != 0)
31904 : return NULL;
31905 : if (
31906 : #line 1149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31907 : (TARGET_CMPCCXADD && TARGET_64BIT
31908 : && rtx_equal_p (operands[0], operands[5])
31909 : && rtx_equal_p (operands[1], operands[6])))
31910 : {
31911 : *pmatch_len_ = 2;
31912 : res = gen_peephole2_459 (insn, operands);
31913 : if (res != NULL_RTX)
31914 : return res;
31915 : }
31916 : if (peep2_current_count < 4)
31917 : return NULL;
31918 : x24 = PATTERN (peep2_next_insn (3));
31919 : switch (pattern1913 (x24))
31920 : {
31921 : case 0:
31922 : if (!
31923 : #line 1191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31924 : (TARGET_CMPCCXADD && TARGET_64BIT
31925 : && rtx_equal_p (operands[0], operands[6])
31926 : && rtx_equal_p (operands[1], operands[5])
31927 : && peep2_regno_dead_p (4, FLAGS_REG)))
31928 : return NULL;
31929 : *pmatch_len_ = 3;
31930 : return gen_peephole2_461 (insn, operands);
31931 :
31932 : case 1:
31933 : if (!
31934 : #line 1249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31935 : (TARGET_CMPCCXADD && TARGET_64BIT
31936 : && rtx_equal_p (operands[0], operands[6])
31937 : && rtx_equal_p (operands[1], operands[5])
31938 : && peep2_regno_dead_p (4, FLAGS_REG)))
31939 : return NULL;
31940 : *pmatch_len_ = 3;
31941 : return gen_peephole2_463 (insn, operands);
31942 :
31943 : default:
31944 : return NULL;
31945 : }
31946 :
31947 : case E_DImode:
31948 : if (!register_operand (operands[0], E_DImode)
31949 : || GET_MODE (x16) != E_DImode)
31950 : return NULL;
31951 : if (XINT (x16, 1) == 109
31952 : && general_operand (operands[1], E_DImode)
31953 : && pattern1893 (x9,
31954 : E_DImode) == 0
31955 : && (
31956 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31957 : ((rtx_equal_p (operands[0], operands[5])
31958 : && rtx_equal_p (operands[1], operands[6]))
31959 : || (rtx_equal_p (operands[0], operands[6])
31960 : && rtx_equal_p (operands[1], operands[5]))) &&
31961 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31962 : (TARGET_64BIT)))
31963 : {
31964 : *pmatch_len_ = 2;
31965 : res = gen_peephole2_442 (insn, operands);
31966 : if (res != NULL_RTX)
31967 : return res;
31968 : }
31969 : if (XINT (x16, 1) != 112
31970 : || pattern1891 (x9,
31971 : E_DImode) != 0)
31972 : return NULL;
31973 : if (
31974 : #line 1149 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31975 : (TARGET_CMPCCXADD && TARGET_64BIT
31976 : && rtx_equal_p (operands[0], operands[5])
31977 : && rtx_equal_p (operands[1], operands[6])))
31978 : {
31979 : *pmatch_len_ = 2;
31980 : res = gen_peephole2_460 (insn, operands);
31981 : if (res != NULL_RTX)
31982 : return res;
31983 : }
31984 : if (peep2_current_count < 4)
31985 : return NULL;
31986 : x24 = PATTERN (peep2_next_insn (3));
31987 : switch (pattern1913 (x24))
31988 : {
31989 : case 0:
31990 : if (!
31991 : #line 1191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31992 : (TARGET_CMPCCXADD && TARGET_64BIT
31993 : && rtx_equal_p (operands[0], operands[6])
31994 : && rtx_equal_p (operands[1], operands[5])
31995 : && peep2_regno_dead_p (4, FLAGS_REG)))
31996 : return NULL;
31997 : *pmatch_len_ = 3;
31998 : return gen_peephole2_462 (insn, operands);
31999 :
32000 : case 1:
32001 : if (!
32002 : #line 1249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32003 : (TARGET_CMPCCXADD && TARGET_64BIT
32004 : && rtx_equal_p (operands[0], operands[6])
32005 : && rtx_equal_p (operands[1], operands[5])
32006 : && peep2_regno_dead_p (4, FLAGS_REG)))
32007 : return NULL;
32008 : *pmatch_len_ = 3;
32009 : return gen_peephole2_464 (insn, operands);
32010 :
32011 : default:
32012 : return NULL;
32013 : }
32014 :
32015 : default:
32016 : return NULL;
32017 : }
32018 :
32019 : case PLUS:
32020 : switch (pattern24 (x2))
32021 : {
32022 : case 0:
32023 : x3 = XEXP (x2, 1);
32024 : operands[1] = x3;
32025 : if (x86_64_nonmemory_operand (operands[1], E_SImode))
32026 : {
32027 : x4 = XEXP (x2, 0);
32028 : if (rtx_equal_p (x4, operands[0])
32029 : &&
32030 : #line 29915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32031 : (!TARGET_OPT_AGU
32032 : && peep2_regno_dead_p (0, FLAGS_REG)))
32033 : {
32034 : *pmatch_len_ = 0;
32035 : res = gen_peephole2_374 (insn, operands);
32036 : if (res != NULL_RTX)
32037 : return res;
32038 : }
32039 : }
32040 : x4 = XEXP (x2, 0);
32041 : operands[1] = x4;
32042 : if (!x86_64_nonmemory_operand (operands[1], E_SImode)
32043 : || !rtx_equal_p (x3, operands[0])
32044 : || !
32045 : #line 29924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32046 : (!TARGET_OPT_AGU
32047 : && peep2_regno_dead_p (0, FLAGS_REG)))
32048 : return NULL;
32049 : *pmatch_len_ = 0;
32050 : return gen_peephole2_376 (insn, operands);
32051 :
32052 : case 1:
32053 : x3 = XEXP (x2, 1);
32054 : operands[1] = x3;
32055 : if (x86_64_nonmemory_operand (operands[1], E_DImode))
32056 : {
32057 : x4 = XEXP (x2, 0);
32058 : if (rtx_equal_p (x4, operands[0])
32059 : && (
32060 : #line 29915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32061 : (!TARGET_OPT_AGU
32062 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32063 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32064 : (TARGET_64BIT)))
32065 : {
32066 : *pmatch_len_ = 0;
32067 : res = gen_peephole2_375 (insn, operands);
32068 : if (res != NULL_RTX)
32069 : return res;
32070 : }
32071 : }
32072 : x4 = XEXP (x2, 0);
32073 : operands[1] = x4;
32074 : if (!x86_64_nonmemory_operand (operands[1], E_DImode)
32075 : || !rtx_equal_p (x3, operands[0])
32076 : || !(
32077 : #line 29924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32078 : (!TARGET_OPT_AGU
32079 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32080 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32081 : (TARGET_64BIT)))
32082 : return NULL;
32083 : *pmatch_len_ = 0;
32084 : return gen_peephole2_377 (insn, operands);
32085 :
32086 : default:
32087 : return NULL;
32088 : }
32089 :
32090 : case ZERO_EXTEND:
32091 : if (GET_MODE (x2) != E_DImode
32092 : || !register_operand (operands[0], E_DImode))
32093 : return NULL;
32094 : x4 = XEXP (x2, 0);
32095 : if (GET_MODE (x4) != E_SImode)
32096 : return NULL;
32097 : switch (GET_CODE (x4))
32098 : {
32099 : case PLUS:
32100 : x5 = XEXP (x4, 0);
32101 : operands[1] = x5;
32102 : x6 = XEXP (x4, 1);
32103 : operands[2] = x6;
32104 : if (nonmemory_operand (operands[2], E_SImode)
32105 : && register_operand (operands[1], E_SImode)
32106 : &&
32107 : #line 29934 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32108 : (TARGET_64BIT && !TARGET_OPT_AGU
32109 : && REGNO (operands[0]) == REGNO (operands[1])
32110 : && peep2_regno_dead_p (0, FLAGS_REG)))
32111 : {
32112 : *pmatch_len_ = 0;
32113 : res = gen_peephole2_378 (insn, operands);
32114 : if (res != NULL_RTX)
32115 : return res;
32116 : }
32117 : if (!register_operand (operands[2], E_SImode)
32118 : || !nonmemory_operand (operands[1], E_SImode)
32119 : || !
32120 : #line 29946 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32121 : (TARGET_64BIT && !TARGET_OPT_AGU
32122 : && REGNO (operands[0]) == REGNO (operands[2])
32123 : && peep2_regno_dead_p (0, FLAGS_REG)))
32124 : return NULL;
32125 : *pmatch_len_ = 0;
32126 : return gen_peephole2_379 (insn, operands);
32127 :
32128 : case MULT:
32129 : x5 = XEXP (x4, 0);
32130 : operands[1] = x5;
32131 : if (!register_operand (operands[1], E_SImode))
32132 : return NULL;
32133 : x6 = XEXP (x4, 1);
32134 : operands[2] = x6;
32135 : if (!const_int_operand (operands[2], E_SImode)
32136 : || !
32137 : #line 29968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32138 : (TARGET_64BIT
32139 : && pow2p_hwi (INTVAL (operands[2]))
32140 : && REGNO (operands[0]) == REGNO (operands[1])
32141 : && peep2_regno_dead_p (0, FLAGS_REG)))
32142 : return NULL;
32143 : *pmatch_len_ = 0;
32144 : return gen_peephole2_382 (insn, operands);
32145 :
32146 : default:
32147 : return NULL;
32148 : }
32149 :
32150 : case MULT:
32151 : x3 = XEXP (x2, 1);
32152 : operands[1] = x3;
32153 : x4 = XEXP (x2, 0);
32154 : if (!rtx_equal_p (x4, operands[0]))
32155 : return NULL;
32156 : switch (GET_MODE (operands[0]))
32157 : {
32158 : case E_SImode:
32159 : if (!register_operand (operands[0], E_SImode)
32160 : || GET_MODE (x2) != E_SImode
32161 : || !const_int_operand (operands[1], E_SImode)
32162 : || !
32163 : #line 29957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32164 : (pow2p_hwi (INTVAL (operands[1]))
32165 : && peep2_regno_dead_p (0, FLAGS_REG)))
32166 : return NULL;
32167 : *pmatch_len_ = 0;
32168 : return gen_peephole2_380 (insn, operands);
32169 :
32170 : case E_DImode:
32171 : if (!register_operand (operands[0], E_DImode)
32172 : || GET_MODE (x2) != E_DImode
32173 : || !const_int_operand (operands[1], E_DImode)
32174 : || !(
32175 : #line 29957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32176 : (pow2p_hwi (INTVAL (operands[1]))
32177 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32178 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32179 : (TARGET_64BIT)))
32180 : return NULL;
32181 : *pmatch_len_ = 0;
32182 : return gen_peephole2_381 (insn, operands);
32183 :
32184 : default:
32185 : return NULL;
32186 : }
32187 :
32188 : case VEC_CONCAT:
32189 : if (peep2_current_count < 2
32190 : || GET_MODE (x2) != E_V2DFmode
32191 : || !sse_reg_operand (operands[0], E_V2DFmode))
32192 : return NULL;
32193 : x4 = XEXP (x2, 0);
32194 : operands[1] = x4;
32195 : if (!memory_operand (operands[1], E_DFmode))
32196 : return NULL;
32197 : x3 = XEXP (x2, 1);
32198 : operands[4] = x3;
32199 : if (!const0_operand (operands[4], E_DFmode))
32200 : return NULL;
32201 : x9 = PATTERN (peep2_next_insn (1));
32202 : if (GET_CODE (x9) != SET)
32203 : return NULL;
32204 : x25 = XEXP (x9, 1);
32205 : if (GET_CODE (x25) != VEC_CONCAT
32206 : || GET_MODE (x25) != E_V2DFmode)
32207 : return NULL;
32208 : x26 = XEXP (x25, 0);
32209 : if (GET_CODE (x26) != VEC_SELECT
32210 : || GET_MODE (x26) != E_DFmode)
32211 : return NULL;
32212 : x27 = XEXP (x26, 1);
32213 : if (GET_CODE (x27) != PARALLEL
32214 : || XVECLEN (x27, 0) != 1)
32215 : return NULL;
32216 : x28 = XVECEXP (x27, 0, 0);
32217 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32218 : return NULL;
32219 : x29 = XEXP (x9, 0);
32220 : operands[2] = x29;
32221 : if (!sse_reg_operand (operands[2], E_V2DFmode))
32222 : return NULL;
32223 : x30 = XEXP (x25, 1);
32224 : operands[3] = x30;
32225 : if (!memory_operand (operands[3], E_DFmode))
32226 : return NULL;
32227 : x31 = XEXP (x26, 0);
32228 : if (!rtx_equal_p (x31, operands[2])
32229 : || !
32230 : #line 1981 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
32231 : (TARGET_SSE2 && TARGET_SSE_UNALIGNED_LOAD_OPTIMAL
32232 : && ix86_operands_ok_for_move_multiple (operands, true, DFmode)))
32233 : return NULL;
32234 : *pmatch_len_ = 1;
32235 : return gen_peephole2_436 (insn, operands);
32236 :
32237 : default:
32238 : return NULL;
32239 : }
32240 : }
|