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 286578 : pattern7 (rtx x1, int *pnum_clobbers)
57 : {
58 286578 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 286578 : rtx x2, x3, x4, x5;
60 286578 : int res ATTRIBUTE_UNUSED;
61 286578 : x2 = XEXP (x1, 0);
62 286578 : operands[0] = x2;
63 286578 : x3 = XEXP (x1, 1);
64 286578 : x4 = XEXP (x3, 0);
65 286578 : operands[1] = x4;
66 286578 : x5 = XEXP (x3, 1);
67 286578 : operands[2] = x5;
68 286578 : switch (GET_MODE (operands[0]))
69 : {
70 7537 : case E_SFmode:
71 7537 : return pattern3 (x3,
72 7537 : E_SFmode); /* [-1, 0] */
73 :
74 2459 : case E_DFmode:
75 2459 : 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 318 : case E_TImode:
87 318 : if (pnum_clobbers == NULL
88 318 : || pattern4 (x3,
89 : E_TImode) != 0)
90 187 : return -1;
91 : return 3;
92 :
93 549 : case E_QImode:
94 549 : if (pnum_clobbers == NULL
95 549 : || pattern4 (x3,
96 : E_QImode) != 0)
97 315 : return -1;
98 : return 4;
99 :
100 667 : case E_HImode:
101 667 : if (pnum_clobbers == NULL
102 667 : || 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 106 : case E_V2SImode:
114 106 : if (pattern5 (x3,
115 : E_V2SImode) != 0)
116 : return -1;
117 : return 7;
118 :
119 812 : case E_V4HImode:
120 812 : 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 351 : case E_V2HImode:
138 351 : 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 783459 : pattern35 (rtx x1)
174 : {
175 783459 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
176 783459 : rtx x2, x3, x4, x5;
177 783459 : int res ATTRIBUTE_UNUSED;
178 783459 : x2 = XEXP (x1, 0);
179 783459 : operands[0] = x2;
180 783459 : x3 = XEXP (x1, 1);
181 783459 : x4 = XEXP (x3, 0);
182 783459 : switch (GET_CODE (x4))
183 : {
184 221992 : case REG:
185 221992 : case SUBREG:
186 221992 : case MEM:
187 221992 : operands[1] = x4;
188 221992 : switch (GET_MODE (operands[0]))
189 : {
190 5403 : case E_V16HImode:
191 5403 : if (!register_operand (operands[0], E_V16HImode)
192 5372 : || GET_MODE (x3) != E_V16HImode
193 10775 : || !nonimmediate_operand (operands[1], E_V16QImode))
194 483 : return -1;
195 : return 0;
196 :
197 1244 : case E_V32HImode:
198 1244 : if (!register_operand (operands[0], E_V32HImode)
199 1230 : || GET_MODE (x3) != E_V32HImode
200 2474 : || !nonimmediate_operand (operands[1], E_V32QImode))
201 14 : return -1;
202 : return 1;
203 :
204 1894 : case E_V8HImode:
205 1894 : if (!register_operand (operands[0], E_V8HImode)
206 1892 : || GET_MODE (x3) != E_V8HImode
207 3786 : || !memory_operand (operands[1], E_V8QImode))
208 571 : return -1;
209 : return 2;
210 :
211 1424 : case E_V16SImode:
212 1424 : if (!register_operand (operands[0], E_V16SImode)
213 1424 : || GET_MODE (x3) != E_V16SImode)
214 : return -1;
215 1350 : switch (GET_MODE (operands[1]))
216 : {
217 161 : case E_V16QImode:
218 161 : if (!nonimmediate_operand (operands[1], E_V16QImode))
219 : return -1;
220 : return 3;
221 :
222 1189 : case E_V16HImode:
223 1189 : if (!nonimmediate_operand (operands[1], E_V16HImode))
224 : return -1;
225 : return 4;
226 :
227 : default:
228 : return -1;
229 : }
230 :
231 4885 : case E_V8SImode:
232 4885 : if (!register_operand (operands[0], E_V8SImode)
233 4885 : || GET_MODE (x3) != E_V8SImode)
234 : return -1;
235 4798 : switch (GET_MODE (operands[1]))
236 : {
237 31 : case E_V8QImode:
238 31 : if (!memory_operand (operands[1], E_V8QImode))
239 : return -1;
240 : return 5;
241 :
242 4767 : case E_V8HImode:
243 4767 : if (!nonimmediate_operand (operands[1], E_V8HImode))
244 : return -1;
245 : return 6;
246 :
247 : default:
248 : return -1;
249 : }
250 :
251 245 : case E_V4SImode:
252 245 : if (!register_operand (operands[0], E_V4SImode)
253 245 : || GET_MODE (x3) != E_V4SImode)
254 : return -1;
255 241 : switch (GET_MODE (operands[1]))
256 : {
257 91 : case E_V4QImode:
258 91 : if (!memory_operand (operands[1], E_V4QImode))
259 : return -1;
260 : return 7;
261 :
262 147 : case E_V4HImode:
263 147 : if (!memory_operand (operands[1], E_V4HImode))
264 : return -1;
265 : return 8;
266 :
267 : default:
268 : return -1;
269 : }
270 :
271 1687 : case E_V8DImode:
272 1687 : if (!register_operand (operands[0], E_V8DImode)
273 1687 : || GET_MODE (x3) != E_V8DImode)
274 : return -1;
275 1376 : switch (GET_MODE (operands[1]))
276 : {
277 20 : case E_V8QImode:
278 20 : if (!memory_operand (operands[1], E_V8QImode))
279 : return -1;
280 : return 9;
281 :
282 150 : case E_V8HImode:
283 150 : if (!nonimmediate_operand (operands[1], E_V8HImode))
284 : return -1;
285 : return 10;
286 :
287 1206 : case E_V8SImode:
288 1206 : if (!nonimmediate_operand (operands[1], E_V8SImode))
289 : return -1;
290 : return 11;
291 :
292 : default:
293 : return -1;
294 : }
295 :
296 4873 : case E_V4DImode:
297 4873 : if (!register_operand (operands[0], E_V4DImode)
298 4873 : || GET_MODE (x3) != E_V4DImode)
299 : return -1;
300 4284 : switch (GET_MODE (operands[1]))
301 : {
302 24 : case E_V4QImode:
303 24 : if (!memory_operand (operands[1], E_V4QImode))
304 : return -1;
305 : return 12;
306 :
307 50 : case E_V4HImode:
308 50 : if (!memory_operand (operands[1], E_V4HImode))
309 : return -1;
310 : return 13;
311 :
312 4210 : case E_V4SImode:
313 4210 : if (!nonimmediate_operand (operands[1], E_V4SImode))
314 : return -1;
315 : return 14;
316 :
317 : default:
318 : return -1;
319 : }
320 :
321 100 : case E_V2DImode:
322 100 : if (!register_operand (operands[0], E_V2DImode)
323 100 : || GET_MODE (x3) != E_V2DImode)
324 : return -1;
325 94 : switch (GET_MODE (operands[1]))
326 : {
327 25 : case E_V2QImode:
328 25 : if (!memory_operand (operands[1], E_V2QImode))
329 : return -1;
330 : return 15;
331 :
332 20 : case E_V2HImode:
333 20 : if (!memory_operand (operands[1], E_V2HImode))
334 : return -1;
335 : return 16;
336 :
337 49 : case E_V2SImode:
338 49 : 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 78905 : case VEC_SELECT:
351 78905 : x5 = XEXP (x4, 1);
352 78905 : if (GET_CODE (x5) != PARALLEL)
353 : return -1;
354 : return 18;
355 :
356 : default:
357 : return -1;
358 : }
359 : }
360 :
361 : int
362 1441 : pattern81 (rtx x1, int *pnum_clobbers, machine_mode i1)
363 : {
364 1441 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
365 1441 : int res ATTRIBUTE_UNUSED;
366 1441 : if (pnum_clobbers == NULL
367 1441 : || !nonimmediate_operand (operands[0], i1)
368 1441 : || GET_MODE (x1) != i1
369 1441 : || !nonimmediate_operand (operands[1], i1)
370 2842 : || !nonimmediate_or_x86_64_const_vector_operand (operands[2], i1))
371 77 : return -1;
372 : return 0;
373 : }
374 :
375 : int
376 25744677 : pattern88 (rtx x1, int *pnum_clobbers)
377 : {
378 25744677 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
379 25744677 : rtx x2, x3, x4;
380 25744677 : int res ATTRIBUTE_UNUSED;
381 25744677 : x2 = XEXP (x1, 1);
382 25744677 : x3 = XEXP (x2, 1);
383 25744677 : operands[2] = x3;
384 25744677 : x4 = XEXP (x1, 0);
385 25744677 : switch (GET_CODE (x4))
386 : {
387 25743927 : case REG:
388 25743927 : case SUBREG:
389 25743927 : case MEM:
390 25743927 : operands[0] = x4;
391 25743927 : return 0;
392 :
393 621 : case STRICT_LOW_PART:
394 621 : res = pattern78 (x1, pnum_clobbers);
395 621 : if (res >= 0)
396 389 : return res + 1; /* [1, 2] */
397 : return -1;
398 :
399 : default:
400 : return -1;
401 : }
402 : }
403 :
404 : int
405 50 : pattern95 (rtx x1, machine_mode i1)
406 : {
407 50 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
408 50 : rtx x2;
409 50 : int res ATTRIBUTE_UNUSED;
410 50 : if (!nonimmediate_operand (operands[0], i1)
411 50 : || GET_MODE (x1) != i1)
412 : return -1;
413 50 : x2 = XEXP (x1, 0);
414 50 : if (GET_MODE (x2) != i1
415 50 : || !general_operand (operands[1], i1))
416 0 : return -1;
417 : return 0;
418 : }
419 :
420 : int
421 8744 : pattern98 (rtx x1)
422 : {
423 8744 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
424 8744 : rtx x2, x3, x4, x5, x6, x7, x8;
425 8744 : int res ATTRIBUTE_UNUSED;
426 8744 : x2 = XEXP (x1, 1);
427 8744 : x3 = XEXP (x2, 0);
428 8744 : x4 = XEXP (x3, 1);
429 8744 : if (GET_CODE (x4) != PARALLEL)
430 : return -1;
431 8744 : x5 = XEXP (x2, 1);
432 8744 : if (GET_CODE (x5) != VEC_SELECT)
433 : return -1;
434 2054 : x6 = XEXP (x5, 1);
435 2054 : if (GET_CODE (x6) != PARALLEL)
436 : return -1;
437 2054 : x7 = XEXP (x1, 0);
438 2054 : operands[0] = x7;
439 2054 : x8 = XEXP (x3, 0);
440 2054 : switch (GET_CODE (x8))
441 : {
442 : case REG:
443 : case SUBREG:
444 : return 0;
445 :
446 1048 : case VEC_CONCAT:
447 1048 : return 1;
448 :
449 : default:
450 : return -1;
451 : }
452 : }
453 :
454 : int
455 817 : pattern106 ()
456 : {
457 817 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
458 817 : int res ATTRIBUTE_UNUSED;
459 817 : switch (GET_MODE (operands[1]))
460 : {
461 282 : case E_V8HImode:
462 282 : if (!register_operand (operands[1], E_V8HImode))
463 : return -1;
464 : return 0;
465 :
466 271 : case E_V8SImode:
467 271 : if (!register_operand (operands[1], E_V8SImode))
468 : return -1;
469 : return 1;
470 :
471 264 : case E_V8DImode:
472 264 : 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 1953 : pattern113 (rtx x1, int *pnum_clobbers)
483 : {
484 1953 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
485 1953 : rtx x2, x3, x4;
486 1953 : int res ATTRIBUTE_UNUSED;
487 1953 : if (pnum_clobbers == NULL)
488 : return -1;
489 1953 : x2 = XEXP (x1, 0);
490 1953 : if (GET_MODE (x2) != E_SImode
491 1860 : || !register_operand (operands[0], E_DImode)
492 3811 : || GET_MODE (x1) != E_DImode)
493 95 : return -1;
494 1858 : x3 = XEXP (x2, 0);
495 1858 : operands[1] = x3;
496 1858 : if (!register_operand (operands[1], E_SImode))
497 : return -1;
498 1778 : x4 = XEXP (x2, 1);
499 1778 : operands[2] = x4;
500 1778 : if (!nonimmediate_operand (operands[2], E_SImode))
501 : return -1;
502 : return 0;
503 : }
504 :
505 : int
506 444607 : pattern120 (rtx x1, rtx_code i1)
507 : {
508 444607 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
509 444607 : rtx x2, x3, x4, x5;
510 444607 : int res ATTRIBUTE_UNUSED;
511 444607 : x2 = XEXP (x1, 0);
512 444607 : if (GET_MODE (x2) != E_DImode)
513 : return -1;
514 193590 : x3 = XEXP (x1, 1);
515 193590 : if (GET_CODE (x3) != i1
516 28980 : || GET_MODE (x3) != E_DImode
517 28980 : || !register_operand (operands[0], E_DImode)
518 222457 : || GET_MODE (x1) != E_DImode)
519 164723 : return -1;
520 28867 : x4 = XEXP (x2, 0);
521 28867 : operands[1] = x4;
522 28867 : if (!register_operand (operands[1], E_SImode))
523 : return -1;
524 17684 : x5 = XEXP (x3, 0);
525 17684 : operands[2] = x5;
526 17684 : 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 107927 : pattern158 (rtx x1, machine_mode i1)
662 : {
663 107927 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
664 107927 : int res ATTRIBUTE_UNUSED;
665 107927 : if (!register_operand (operands[0], i1)
666 106265 : || GET_MODE (x1) != i1
667 106265 : || !register_operand (operands[1], i1)
668 189121 : || !vector_operand (operands[2], i1))
669 29866 : 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 535 : pattern167 (rtx x1)
711 : {
712 535 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
713 535 : rtx x2, x3, x4, x5;
714 535 : int res ATTRIBUTE_UNUSED;
715 535 : x2 = XEXP (x1, 0);
716 535 : operands[0] = x2;
717 535 : x3 = XEXP (x1, 1);
718 535 : x4 = XVECEXP (x3, 0, 0);
719 535 : operands[1] = x4;
720 535 : x5 = XVECEXP (x3, 0, 1);
721 535 : operands[2] = x5;
722 535 : 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 181 : case E_V4SImode:
735 181 : 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 14 : pattern191 (rtx x1, machine_mode i1)
817 : {
818 14 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
819 14 : rtx x2;
820 14 : int res ATTRIBUTE_UNUSED;
821 14 : if (!register_operand (operands[0], i1)
822 14 : || GET_MODE (x1) != i1)
823 : return -1;
824 8 : x2 = XEXP (x1, 0);
825 8 : if (GET_MODE (x2) != i1
826 8 : || !vector_operand (operands[1], i1)
827 8 : || !vector_operand (operands[2], i1)
828 16 : || !vector_operand (operands[3], i1))
829 2 : return -1;
830 : return 0;
831 : }
832 :
833 : int
834 233334 : pattern197 (rtx x1)
835 : {
836 233334 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
837 233334 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
838 233334 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
839 233334 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
840 233334 : rtx x26, x27;
841 233334 : int res ATTRIBUTE_UNUSED;
842 233334 : x2 = XEXP (x1, 0);
843 233334 : x3 = XEXP (x2, 0);
844 233334 : if (GET_CODE (x3) != VEC_CONCAT)
845 : return -1;
846 71909 : x4 = XEXP (x2, 1);
847 71909 : if (GET_CODE (x4) != PARALLEL)
848 : return -1;
849 71909 : x5 = XEXP (x1, 1);
850 71909 : if (GET_CODE (x5) != VEC_SELECT)
851 : return -1;
852 1912 : x6 = XEXP (x5, 0);
853 1912 : if (GET_CODE (x6) != VEC_CONCAT)
854 : return -1;
855 1882 : x7 = XEXP (x5, 1);
856 1882 : if (GET_CODE (x7) != PARALLEL)
857 : return -1;
858 1882 : x8 = XEXP (x3, 0);
859 1882 : operands[1] = x8;
860 1882 : x9 = XEXP (x3, 1);
861 1882 : operands[2] = x9;
862 1882 : x10 = XEXP (x6, 0);
863 1882 : if (!rtx_equal_p (x10, operands[1]))
864 : return -1;
865 1574 : x11 = XEXP (x6, 1);
866 1574 : if (!rtx_equal_p (x11, operands[2]))
867 : return -1;
868 1569 : switch (XVECLEN (x4, 0))
869 : {
870 189 : case 16:
871 189 : return pattern195 (x1); /* [-1, 0] */
872 :
873 512 : case 8:
874 512 : x12 = XVECEXP (x4, 0, 0);
875 512 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
876 : return -1;
877 512 : x13 = XVECEXP (x4, 0, 1);
878 512 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
879 : return -1;
880 512 : x14 = XVECEXP (x4, 0, 2);
881 512 : if (GET_CODE (x14) != CONST_INT)
882 : return -1;
883 512 : x15 = XVECEXP (x4, 0, 3);
884 512 : if (GET_CODE (x15) != CONST_INT)
885 : return -1;
886 512 : x16 = XVECEXP (x4, 0, 4);
887 512 : if (GET_CODE (x16) != CONST_INT)
888 : return -1;
889 512 : x17 = XVECEXP (x4, 0, 5);
890 512 : if (GET_CODE (x17) != CONST_INT)
891 : return -1;
892 512 : x18 = XVECEXP (x4, 0, 6);
893 512 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
894 : return -1;
895 512 : x19 = XVECEXP (x4, 0, 7);
896 512 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
897 512 : || XVECLEN (x7, 0) != 8)
898 : return -1;
899 512 : x20 = XVECEXP (x7, 0, 0);
900 512 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
901 : return -1;
902 512 : x21 = XVECEXP (x7, 0, 1);
903 512 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
904 : return -1;
905 512 : x22 = XVECEXP (x7, 0, 2);
906 512 : if (GET_CODE (x22) != CONST_INT)
907 : return -1;
908 512 : x23 = XVECEXP (x7, 0, 3);
909 512 : if (GET_CODE (x23) != CONST_INT)
910 : return -1;
911 512 : x24 = XVECEXP (x7, 0, 4);
912 512 : if (GET_CODE (x24) != CONST_INT)
913 : return -1;
914 512 : x25 = XVECEXP (x7, 0, 5);
915 512 : if (GET_CODE (x25) != CONST_INT)
916 : return -1;
917 512 : x26 = XVECEXP (x7, 0, 6);
918 512 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
919 : return -1;
920 512 : x27 = XVECEXP (x7, 0, 7);
921 512 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
922 : return -1;
923 512 : switch (XWINT (x14, 0))
924 : {
925 314 : case 4L:
926 314 : if (XWINT (x15, 0) != 6L
927 314 : || XWINT (x16, 0) != 8L
928 314 : || XWINT (x17, 0) != 10L
929 314 : || XWINT (x22, 0) != 5L
930 314 : || XWINT (x23, 0) != 7L
931 314 : || XWINT (x24, 0) != 9L
932 314 : || XWINT (x25, 0) != 11L
933 628 : || pattern196 (x1,
934 : E_V16HImode,
935 : E_V8HImode) != 0)
936 58 : return -1;
937 : return 1;
938 :
939 198 : case 8L:
940 198 : if (XWINT (x15, 0) != 10L
941 198 : || XWINT (x16, 0) != 4L
942 198 : || XWINT (x17, 0) != 6L
943 198 : || XWINT (x22, 0) != 9L
944 198 : || XWINT (x23, 0) != 11L
945 198 : || XWINT (x24, 0) != 5L
946 198 : || XWINT (x25, 0) != 7L
947 396 : || pattern194 (x1,
948 : E_V16SImode,
949 : E_V8SImode) != 0)
950 11 : return -1;
951 : return 2;
952 :
953 : default:
954 : return -1;
955 : }
956 :
957 759 : case 4:
958 759 : x12 = XVECEXP (x4, 0, 0);
959 759 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
960 : return -1;
961 254 : x13 = XVECEXP (x4, 0, 1);
962 254 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
963 : return -1;
964 254 : x14 = XVECEXP (x4, 0, 2);
965 254 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
966 : return -1;
967 254 : x15 = XVECEXP (x4, 0, 3);
968 254 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
969 254 : || XVECLEN (x7, 0) != 4)
970 : return -1;
971 254 : x20 = XVECEXP (x7, 0, 0);
972 254 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
973 : return -1;
974 254 : x21 = XVECEXP (x7, 0, 1);
975 254 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
976 : return -1;
977 254 : x22 = XVECEXP (x7, 0, 2);
978 254 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
979 : return -1;
980 254 : x23 = XVECEXP (x7, 0, 3);
981 254 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
982 254 : || pattern196 (x1,
983 : E_V8SImode,
984 : E_V4SImode) != 0)
985 25 : return -1;
986 : return 3;
987 :
988 : default:
989 : return -1;
990 : }
991 : }
992 :
993 : int
994 947 : pattern228 (rtx x1)
995 : {
996 947 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
997 947 : rtx x2, x3, x4, x5, x6, x7, x8;
998 947 : int res ATTRIBUTE_UNUSED;
999 947 : x2 = XVECEXP (x1, 0, 0);
1000 947 : x3 = XEXP (x2, 0);
1001 947 : operands[0] = x3;
1002 947 : x4 = XEXP (x2, 1);
1003 947 : x5 = XEXP (x4, 0);
1004 947 : operands[1] = x5;
1005 947 : x6 = XEXP (x4, 1);
1006 947 : operands[2] = x6;
1007 947 : x7 = XVECEXP (x1, 0, 2);
1008 947 : x8 = XEXP (x7, 0);
1009 947 : operands[3] = x8;
1010 947 : switch (GET_MODE (operands[0]))
1011 : {
1012 880 : case E_DImode:
1013 880 : if (!register_operand (operands[0], E_DImode)
1014 860 : || GET_MODE (x4) != E_DImode
1015 860 : || !register_operand (operands[1], E_DImode)
1016 716 : || !const_1_to_31_operand (operands[2], E_QImode)
1017 1596 : || !scratch_operand (operands[3], E_SImode))
1018 164 : return -1;
1019 : return 0;
1020 :
1021 67 : case E_TImode:
1022 67 : if (!register_operand (operands[0], E_TImode)
1023 67 : || GET_MODE (x4) != E_TImode
1024 67 : || !register_operand (operands[1], E_TImode)
1025 54 : || !const_1_to_63_operand (operands[2], E_QImode)
1026 121 : || !scratch_operand (operands[3], E_DImode))
1027 13 : return -1;
1028 : return 1;
1029 :
1030 : default:
1031 : return -1;
1032 : }
1033 : }
1034 :
1035 : int
1036 4355 : pattern245 (rtx x1)
1037 : {
1038 4355 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1039 4355 : rtx x2, x3;
1040 4355 : int res ATTRIBUTE_UNUSED;
1041 4355 : if (GET_MODE (x1) != E_V1TImode
1042 4355 : || !register_operand (operands[0], E_V1TImode))
1043 4324 : return -1;
1044 31 : x2 = XEXP (x1, 0);
1045 31 : operands[1] = x2;
1046 31 : if (!register_operand (operands[1], E_V1TImode))
1047 : return -1;
1048 31 : x3 = XEXP (x1, 1);
1049 31 : operands[2] = x3;
1050 31 : if (!const_0_to_255_operand (operands[2], E_SImode))
1051 : return -1;
1052 : return 0;
1053 : }
1054 :
1055 : int
1056 630 : pattern252 (rtx x1, machine_mode i1)
1057 : {
1058 630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1059 630 : rtx x2, x3, x4;
1060 630 : int res ATTRIBUTE_UNUSED;
1061 630 : if (!register_operand (operands[0], i1)
1062 630 : || GET_MODE (x1) != i1)
1063 : return -1;
1064 630 : x2 = XEXP (x1, 0);
1065 630 : operands[3] = x2;
1066 630 : if (!register_operand (operands[3], i1))
1067 : return -1;
1068 538 : x3 = XEXP (x1, 1);
1069 538 : operands[1] = x3;
1070 538 : if (!register_operand (operands[1], i1))
1071 : return -1;
1072 396 : x4 = XEXP (x1, 2);
1073 396 : operands[2] = x4;
1074 396 : if (!register_operand (operands[2], i1))
1075 : return -1;
1076 : return 0;
1077 : }
1078 :
1079 : int
1080 525 : pattern263 (rtx x1, machine_mode i1)
1081 : {
1082 525 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1083 525 : int res ATTRIBUTE_UNUSED;
1084 525 : if (!register_operand (operands[0], i1)
1085 525 : || GET_MODE (x1) != i1)
1086 : return -1;
1087 507 : return pattern262 (); /* [-1, 2] */
1088 : }
1089 :
1090 : int
1091 1766 : pattern266 (rtx x1, int *pnum_clobbers, machine_mode i1)
1092 : {
1093 1766 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1094 1766 : int res ATTRIBUTE_UNUSED;
1095 1766 : if (pnum_clobbers == NULL
1096 1766 : || !register_operand (operands[0], i1)
1097 1678 : || GET_MODE (x1) != i1
1098 3444 : || !general_operand (operands[1], i1))
1099 516 : return -1;
1100 : return 0;
1101 : }
1102 :
1103 : int
1104 5389 : pattern275 (rtx x1)
1105 : {
1106 5389 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1107 5389 : rtx x2, x3, x4, x5, x6;
1108 5389 : int res ATTRIBUTE_UNUSED;
1109 5389 : x2 = XEXP (x1, 0);
1110 5389 : if (XVECLEN (x2, 0) != 1
1111 1555 : || XINT (x2, 1) != 47
1112 630 : || GET_MODE (x2) != E_V4SImode)
1113 : return -1;
1114 630 : x3 = XEXP (x1, 1);
1115 630 : if (XVECLEN (x3, 0) != 2)
1116 : return -1;
1117 630 : x4 = XVECEXP (x3, 0, 0);
1118 630 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1119 : return -1;
1120 630 : x5 = XVECEXP (x3, 0, 1);
1121 630 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
1122 630 : || !register_operand (operands[0], E_V2SImode)
1123 1259 : || GET_MODE (x1) != E_V2SImode)
1124 1 : return -1;
1125 629 : x6 = XVECEXP (x2, 0, 0);
1126 629 : operands[1] = x6;
1127 629 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
1128 : return -1;
1129 : return 0;
1130 : }
1131 :
1132 : int
1133 160 : pattern285 (rtx x1)
1134 : {
1135 160 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1136 160 : rtx x2;
1137 160 : int res ATTRIBUTE_UNUSED;
1138 160 : x2 = XEXP (x1, 1);
1139 160 : operands[3] = x2;
1140 160 : switch (GET_MODE (operands[0]))
1141 : {
1142 58 : case E_SImode:
1143 58 : return pattern284 (x1,
1144 58 : E_SImode); /* [-1, 0] */
1145 :
1146 72 : case E_DImode:
1147 72 : if (pattern284 (x1,
1148 : E_DImode) != 0)
1149 : return -1;
1150 : return 1;
1151 :
1152 : default:
1153 : return -1;
1154 : }
1155 : }
1156 :
1157 : int
1158 154699 : pattern290 (rtx x1)
1159 : {
1160 154699 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1161 154699 : rtx x2, x3, x4, x5, x6, x7;
1162 154699 : int res ATTRIBUTE_UNUSED;
1163 154699 : x2 = XEXP (x1, 0);
1164 154699 : x3 = XEXP (x2, 0);
1165 154699 : operands[1] = x3;
1166 154699 : x4 = XEXP (x1, 1);
1167 154699 : operands[2] = x4;
1168 154699 : x5 = XEXP (x2, 1);
1169 154699 : switch (GET_CODE (x5))
1170 : {
1171 10237 : case LTU:
1172 10237 : case UNLT:
1173 10237 : operands[4] = x5;
1174 10237 : x6 = XEXP (x5, 1);
1175 10237 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1176 : return -1;
1177 9863 : x7 = XEXP (x5, 0);
1178 9863 : operands[3] = x7;
1179 9863 : if (!flags_reg_operand (operands[3], E_VOIDmode))
1180 : return -1;
1181 : return 0;
1182 :
1183 592 : case EQ:
1184 592 : x6 = XEXP (x5, 1);
1185 592 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1186 : return -1;
1187 484 : x7 = XEXP (x5, 0);
1188 484 : operands[3] = x7;
1189 484 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
1190 : return -1;
1191 : return 1;
1192 :
1193 : default:
1194 : return -1;
1195 : }
1196 : }
1197 :
1198 : int
1199 178 : pattern303 (rtx x1)
1200 : {
1201 178 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1202 178 : rtx x2;
1203 178 : int res ATTRIBUTE_UNUSED;
1204 178 : x2 = XVECEXP (x1, 0, 0);
1205 178 : operands[1] = x2;
1206 178 : switch (GET_MODE (operands[0]))
1207 : {
1208 87 : case E_SImode:
1209 87 : if (!register_operand (operands[0], E_SImode)
1210 87 : || GET_MODE (x1) != E_SImode
1211 174 : || !nonimmediate_operand (operands[1], E_SImode))
1212 2 : return -1;
1213 : return 0;
1214 :
1215 88 : case E_DImode:
1216 88 : if (!register_operand (operands[0], E_DImode)
1217 88 : || GET_MODE (x1) != E_DImode
1218 176 : || !nonimmediate_operand (operands[1], E_DImode))
1219 2 : return -1;
1220 : return 1;
1221 :
1222 : default:
1223 : return -1;
1224 : }
1225 : }
1226 :
1227 : int
1228 261 : pattern311 (rtx x1, machine_mode i1, machine_mode i2)
1229 : {
1230 261 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1231 261 : rtx x2, x3, x4;
1232 261 : int res ATTRIBUTE_UNUSED;
1233 261 : if (!register_operand (operands[0], i2)
1234 261 : || GET_MODE (x1) != i2)
1235 : return -1;
1236 237 : x2 = XEXP (x1, 0);
1237 237 : if (GET_MODE (x2) != i2)
1238 : return -1;
1239 237 : x3 = XEXP (x2, 0);
1240 237 : if (GET_MODE (x3) != i1)
1241 : return -1;
1242 237 : x4 = XEXP (x3, 0);
1243 237 : if (GET_MODE (x4) != i1
1244 237 : || !register_operand (operands[1], i2)
1245 446 : || !nonimmediate_operand (operands[2], i1))
1246 149 : return -1;
1247 : return 0;
1248 : }
1249 :
1250 : int
1251 65 : pattern318 (rtx x1, machine_mode i1, machine_mode i2)
1252 : {
1253 65 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1254 65 : rtx x2;
1255 65 : int res ATTRIBUTE_UNUSED;
1256 65 : if (!register_operand (operands[0], i1)
1257 65 : || GET_MODE (x1) != i1)
1258 : return -1;
1259 65 : x2 = XEXP (x1, 2);
1260 65 : if (GET_MODE (x2) != i2
1261 65 : || !nonimmediate_operand (operands[3], i1)
1262 124 : || !nonimmediate_operand (operands[4], i1))
1263 6 : return -1;
1264 : return 0;
1265 : }
1266 :
1267 : int
1268 164740 : pattern323 (rtx x1)
1269 : {
1270 164740 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1271 164740 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1272 164740 : rtx x10;
1273 164740 : int res ATTRIBUTE_UNUSED;
1274 164740 : x2 = XEXP (x1, 1);
1275 164740 : operands[2] = x2;
1276 164740 : x3 = XEXP (x1, 2);
1277 164740 : if (GET_MODE (x3) != E_QImode)
1278 : return -1;
1279 18810 : switch (GET_CODE (x3))
1280 : {
1281 5633 : case UNSPEC:
1282 5633 : if (XVECLEN (x3, 0) != 3
1283 5633 : || XINT (x3, 1) != 60)
1284 : return -1;
1285 5221 : x4 = XVECEXP (x3, 0, 0);
1286 5221 : operands[3] = x4;
1287 5221 : x5 = XVECEXP (x3, 0, 1);
1288 5221 : operands[4] = x5;
1289 5221 : x6 = XVECEXP (x3, 0, 2);
1290 5221 : operands[5] = x6;
1291 5221 : if (!const_0_to_31_operand (operands[5], E_SImode))
1292 : return -1;
1293 5221 : switch (GET_MODE (operands[0]))
1294 : {
1295 151 : case E_V8SFmode:
1296 151 : return pattern321 (x1,
1297 151 : E_V8SFmode); /* [-1, 0] */
1298 :
1299 181 : case E_V4SFmode:
1300 181 : if (pattern321 (x1,
1301 : E_V4SFmode) != 0)
1302 : return -1;
1303 : return 1;
1304 :
1305 155 : case E_V4DFmode:
1306 155 : if (pattern321 (x1,
1307 : E_V4DFmode) != 0)
1308 : return -1;
1309 : return 2;
1310 :
1311 121 : case E_V2DFmode:
1312 121 : if (pattern321 (x1,
1313 : E_V2DFmode) != 0)
1314 : return -1;
1315 : return 3;
1316 :
1317 : default:
1318 : return -1;
1319 : }
1320 :
1321 9 : case NOT:
1322 9 : x7 = XEXP (x3, 0);
1323 9 : if (GET_CODE (x7) != UNSPEC
1324 0 : || XVECLEN (x7, 0) != 3
1325 0 : || XINT (x7, 1) != 60
1326 0 : || GET_MODE (x7) != E_QImode)
1327 : return -1;
1328 0 : x8 = XVECEXP (x7, 0, 0);
1329 0 : operands[3] = x8;
1330 0 : x9 = XVECEXP (x7, 0, 1);
1331 0 : operands[4] = x9;
1332 0 : x10 = XVECEXP (x7, 0, 2);
1333 0 : operands[5] = x10;
1334 0 : if (!const_0_to_31_operand (operands[5], E_SImode))
1335 : return -1;
1336 0 : switch (GET_MODE (operands[0]))
1337 : {
1338 0 : case E_V8SFmode:
1339 0 : if (pattern322 (x1,
1340 : E_V8SFmode) != 0)
1341 : return -1;
1342 : return 4;
1343 :
1344 0 : case E_V4SFmode:
1345 0 : if (pattern322 (x1,
1346 : E_V4SFmode) != 0)
1347 : return -1;
1348 : return 5;
1349 :
1350 0 : case E_V4DFmode:
1351 0 : if (pattern322 (x1,
1352 : E_V4DFmode) != 0)
1353 : return -1;
1354 : return 6;
1355 :
1356 0 : case E_V2DFmode:
1357 0 : if (pattern322 (x1,
1358 : E_V2DFmode) != 0)
1359 : return -1;
1360 : return 7;
1361 :
1362 : default:
1363 : return -1;
1364 : }
1365 :
1366 : default:
1367 : return -1;
1368 : }
1369 : }
1370 :
1371 : int
1372 49760 : pattern340 (rtx x1)
1373 : {
1374 49760 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1375 49760 : int res ATTRIBUTE_UNUSED;
1376 49760 : switch (GET_MODE (operands[0]))
1377 : {
1378 26186 : case E_SImode:
1379 26186 : if (!nonimmediate_operand (operands[0], E_SImode)
1380 26174 : || GET_MODE (x1) != E_SImode
1381 52360 : || !nonimmediate_operand (operands[1], E_SImode))
1382 2470 : return -1;
1383 : return 0;
1384 :
1385 22243 : case E_DImode:
1386 22243 : if (!nonimmediate_operand (operands[0], E_DImode)
1387 22231 : || GET_MODE (x1) != E_DImode
1388 44474 : || !nonimmediate_operand (operands[1], E_DImode))
1389 4278 : return -1;
1390 : return 1;
1391 :
1392 : default:
1393 : return -1;
1394 : }
1395 : }
1396 :
1397 : int
1398 8821257 : pattern343 (rtx x1)
1399 : {
1400 8821257 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1401 8821257 : rtx x2, x3, x4, x5, x6, x7;
1402 8821257 : int res ATTRIBUTE_UNUSED;
1403 8821257 : x2 = XVECEXP (x1, 0, 0);
1404 8821257 : x3 = XEXP (x2, 1);
1405 8821257 : x4 = XEXP (x3, 0);
1406 8821257 : operands[1] = x4;
1407 8821257 : x5 = XEXP (x3, 1);
1408 8821257 : switch (GET_CODE (x5))
1409 : {
1410 : case CONST_INT:
1411 : case CONST_WIDE_INT:
1412 : case CONST_POLY_INT:
1413 : case CONST_FIXED:
1414 : case CONST_DOUBLE:
1415 : case CONST_VECTOR:
1416 : case CONST:
1417 : case REG:
1418 : case SUBREG:
1419 : case LABEL_REF:
1420 : case SYMBOL_REF:
1421 : case HIGH:
1422 : return 0;
1423 :
1424 4844 : case AND:
1425 4844 : if (GET_MODE (x5) != E_QImode)
1426 : return -1;
1427 4604 : x6 = XVECEXP (x1, 0, 1);
1428 4604 : if (GET_CODE (x6) != CLOBBER)
1429 : return -1;
1430 4437 : x7 = XEXP (x6, 0);
1431 4437 : if (GET_CODE (x7) != REG
1432 4437 : || REGNO (x7) != 17
1433 8874 : || GET_MODE (x7) != E_CCmode)
1434 : return -1;
1435 4437 : res = pattern339 (x2);
1436 4437 : if (res >= 0)
1437 3423 : return res + 1; /* [1, 3] */
1438 : return -1;
1439 :
1440 20619 : case PLUS:
1441 20619 : if (GET_MODE (x5) != E_QImode)
1442 : return -1;
1443 20619 : x6 = XVECEXP (x1, 0, 1);
1444 20619 : if (GET_CODE (x6) != CLOBBER)
1445 : return -1;
1446 18522 : x7 = XEXP (x6, 0);
1447 18522 : if (GET_CODE (x7) != REG
1448 18522 : || REGNO (x7) != 17
1449 37044 : || GET_MODE (x7) != E_CCmode)
1450 : return -1;
1451 18522 : res = pattern341 (x2);
1452 18522 : if (res >= 0)
1453 14541 : return res + 4; /* [4, 5] */
1454 : return -1;
1455 :
1456 15672 : case MINUS:
1457 15672 : if (GET_MODE (x5) != E_QImode)
1458 : return -1;
1459 15640 : x6 = XVECEXP (x1, 0, 1);
1460 15640 : if (GET_CODE (x6) != CLOBBER)
1461 : return -1;
1462 12144 : x7 = XEXP (x6, 0);
1463 12144 : if (GET_CODE (x7) != REG
1464 12144 : || REGNO (x7) != 17
1465 24288 : || GET_MODE (x7) != E_CCmode)
1466 : return -1;
1467 12144 : res = pattern342 (x2);
1468 12144 : if (res >= 0)
1469 2583 : return res + 6; /* [6, 7] */
1470 : return -1;
1471 :
1472 : default:
1473 : return -1;
1474 : }
1475 : }
1476 :
1477 : int
1478 7976 : pattern358 (rtx x1)
1479 : {
1480 7976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1481 7976 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1482 7976 : rtx x10;
1483 7976 : int res ATTRIBUTE_UNUSED;
1484 7976 : x2 = XEXP (x1, 0);
1485 7976 : x3 = XEXP (x2, 0);
1486 7976 : x4 = XEXP (x3, 0);
1487 7976 : x5 = XEXP (x4, 0);
1488 7976 : operands[2] = x5;
1489 7976 : x6 = XEXP (x3, 1);
1490 7976 : operands[3] = x6;
1491 7976 : if (!const_int_operand (operands[3], E_QImode))
1492 : return -1;
1493 7976 : x7 = XEXP (x2, 1);
1494 7976 : x8 = XEXP (x7, 0);
1495 7976 : operands[4] = x8;
1496 7976 : x9 = XEXP (x1, 1);
1497 7976 : switch (GET_CODE (x9))
1498 : {
1499 4542 : case REG:
1500 4542 : case SUBREG:
1501 4542 : operands[1] = x9;
1502 4542 : switch (GET_MODE (operands[0]))
1503 : {
1504 27 : case E_DImode:
1505 27 : return pattern356 (x1,
1506 : E_DImode,
1507 27 : E_SImode); /* [-1, 0] */
1508 :
1509 4515 : case E_TImode:
1510 4515 : if (pattern356 (x1,
1511 : E_TImode,
1512 : E_DImode) != 0)
1513 : return -1;
1514 : return 1;
1515 :
1516 : default:
1517 : return -1;
1518 : }
1519 :
1520 39 : case ZERO_EXTEND:
1521 39 : x10 = XEXP (x9, 0);
1522 39 : operands[1] = x10;
1523 39 : switch (GET_MODE (operands[0]))
1524 : {
1525 0 : case E_DImode:
1526 0 : if (pattern357 (x1,
1527 : E_SImode,
1528 : E_DImode) != 0)
1529 : return -1;
1530 : return 2;
1531 :
1532 39 : case E_TImode:
1533 39 : if (pattern357 (x1,
1534 : E_DImode,
1535 : E_TImode) != 0)
1536 : return -1;
1537 : return 3;
1538 :
1539 : default:
1540 : return -1;
1541 : }
1542 :
1543 : default:
1544 : return -1;
1545 : }
1546 : }
1547 :
1548 : int
1549 822930 : pattern371 (rtx x1)
1550 : {
1551 822930 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1552 822930 : rtx x2, x3, x4, x5, x6, x7, x8;
1553 822930 : int res ATTRIBUTE_UNUSED;
1554 822930 : x2 = XVECEXP (x1, 0, 0);
1555 822930 : x3 = XEXP (x2, 1);
1556 822930 : x4 = XEXP (x3, 0);
1557 822930 : if (GET_CODE (x4) != REG
1558 822930 : || REGNO (x4) != 17)
1559 : return -1;
1560 16070 : x5 = XEXP (x3, 1);
1561 16070 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1562 : return -1;
1563 16070 : x6 = XVECEXP (x1, 0, 1);
1564 16070 : if (GET_CODE (x6) != CLOBBER)
1565 : return -1;
1566 10072 : x7 = XEXP (x6, 0);
1567 10072 : if (GET_CODE (x7) != REG
1568 10072 : || REGNO (x7) != 17
1569 20010 : || GET_MODE (x7) != E_CCmode)
1570 : return -1;
1571 9938 : x8 = XEXP (x2, 0);
1572 9938 : operands[0] = x8;
1573 9938 : switch (GET_MODE (operands[0]))
1574 : {
1575 11 : case E_HImode:
1576 11 : if (!register_operand (operands[0], E_HImode)
1577 11 : || !ix86_comparison_operator (operands[1], E_HImode))
1578 0 : return -1;
1579 : return 0;
1580 :
1581 1711 : case E_SImode:
1582 1711 : if (!register_operand (operands[0], E_SImode)
1583 1711 : || !ix86_comparison_operator (operands[1], E_SImode))
1584 0 : return -1;
1585 : return 1;
1586 :
1587 : default:
1588 : return -1;
1589 : }
1590 : }
1591 :
1592 : int
1593 173980 : pattern382 (rtx x1)
1594 : {
1595 173980 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1596 173980 : rtx x2, x3, x4, x5, x6;
1597 173980 : int res ATTRIBUTE_UNUSED;
1598 173980 : x2 = XEXP (x1, 0);
1599 173980 : operands[0] = x2;
1600 173980 : x3 = XEXP (x1, 1);
1601 173980 : x4 = XEXP (x3, 0);
1602 173980 : x5 = XEXP (x4, 0);
1603 173980 : operands[1] = x5;
1604 173980 : x6 = XEXP (x3, 1);
1605 173980 : operands[2] = x6;
1606 173980 : if (!const_int_operand (operands[2], E_QImode))
1607 : return -1;
1608 167596 : switch (GET_MODE (operands[0]))
1609 : {
1610 137520 : case E_DImode:
1611 137520 : return pattern381 (x3,
1612 : E_SImode,
1613 137520 : E_DImode); /* [-1, 0] */
1614 :
1615 4351 : case E_TImode:
1616 4351 : if (pattern381 (x3,
1617 : E_DImode,
1618 : E_TImode) != 0)
1619 : return -1;
1620 : return 1;
1621 :
1622 : default:
1623 : return -1;
1624 : }
1625 : }
1626 :
1627 : int
1628 87019 : pattern394 (rtx x1)
1629 : {
1630 87019 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1631 87019 : rtx x2, x3;
1632 87019 : int res ATTRIBUTE_UNUSED;
1633 87019 : x2 = XVECEXP (x1, 0, 2);
1634 87019 : x3 = XEXP (x2, 0);
1635 87019 : operands[4] = x3;
1636 87019 : switch (GET_MODE (operands[0]))
1637 : {
1638 804 : case E_HImode:
1639 804 : return pattern393 (x1,
1640 804 : E_HImode); /* [-1, 0] */
1641 :
1642 27736 : case E_SImode:
1643 27736 : if (pattern393 (x1,
1644 : E_SImode) != 0)
1645 : return -1;
1646 : return 1;
1647 :
1648 58479 : case E_DImode:
1649 58479 : if (pattern393 (x1,
1650 : E_DImode) != 0)
1651 : return -1;
1652 : return 2;
1653 :
1654 : default:
1655 : return -1;
1656 : }
1657 : }
1658 :
1659 : int
1660 810373 : pattern400 (rtx x1)
1661 : {
1662 810373 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1663 810373 : rtx x2, x3, x4, x5;
1664 810373 : int res ATTRIBUTE_UNUSED;
1665 810373 : x2 = XEXP (x1, 0);
1666 810373 : x3 = XEXP (x2, 0);
1667 810373 : operands[1] = x3;
1668 810373 : x4 = XEXP (x2, 1);
1669 810373 : operands[2] = x4;
1670 810373 : if (!const248_operand (operands[2], E_VOIDmode))
1671 : return -1;
1672 13753 : x5 = XEXP (x1, 1);
1673 13753 : operands[3] = x5;
1674 13753 : switch (GET_MODE (operands[0]))
1675 : {
1676 766 : case E_QImode:
1677 766 : return pattern399 (x1,
1678 766 : E_QImode); /* [-1, 0] */
1679 :
1680 0 : case E_HImode:
1681 0 : if (pattern399 (x1,
1682 : E_HImode) != 0)
1683 : return -1;
1684 : return 1;
1685 :
1686 : default:
1687 : return -1;
1688 : }
1689 : }
1690 :
1691 : int
1692 2710 : pattern409 (rtx x1)
1693 : {
1694 2710 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1695 2710 : rtx x2, x3, x4, x5, x6, x7;
1696 2710 : int res ATTRIBUTE_UNUSED;
1697 2710 : x2 = XVECEXP (x1, 0, 1);
1698 2710 : if (GET_CODE (x2) != CLOBBER)
1699 : return -1;
1700 2710 : x3 = XEXP (x2, 0);
1701 2710 : if (GET_CODE (x3) != REG
1702 2710 : || REGNO (x3) != 17
1703 5347 : || GET_MODE (x3) != E_CCmode)
1704 : return -1;
1705 2637 : x4 = XVECEXP (x1, 0, 0);
1706 2637 : x5 = XEXP (x4, 0);
1707 2637 : operands[0] = x5;
1708 2637 : x6 = XEXP (x4, 1);
1709 2637 : x7 = XEXP (x6, 0);
1710 2637 : operands[1] = x7;
1711 2637 : return pattern408 (x6); /* [-1, 1] */
1712 : }
1713 :
1714 : int
1715 74506 : pattern416 (rtx x1)
1716 : {
1717 74506 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1718 74506 : rtx x2, x3, x4, x5, x6;
1719 74506 : int res ATTRIBUTE_UNUSED;
1720 74506 : x2 = XEXP (x1, 0);
1721 74506 : x3 = XEXP (x2, 1);
1722 74506 : if (GET_CODE (x3) != UNSPEC
1723 303 : || XVECLEN (x3, 0) != 1
1724 303 : || XINT (x3, 1) != 148)
1725 : return -1;
1726 295 : x4 = XVECEXP (x3, 0, 0);
1727 295 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1728 : return -1;
1729 295 : x5 = XEXP (x1, 1);
1730 295 : if (GET_CODE (x5) != UNSPEC
1731 295 : || XVECLEN (x5, 0) != 1
1732 295 : || XINT (x5, 1) != 148)
1733 : return -1;
1734 295 : x6 = XVECEXP (x5, 0, 0);
1735 295 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1736 0 : return -1;
1737 : return 0;
1738 : }
1739 :
1740 : int
1741 3915870 : pattern421 (rtx x1, rtx_code i1, int i2)
1742 : {
1743 3915870 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1744 3915870 : rtx x2, x3;
1745 3915870 : int res ATTRIBUTE_UNUSED;
1746 3915870 : if (GET_CODE (x1) != PARALLEL
1747 485292 : || XVECLEN (x1, 0) != i2)
1748 : return -1;
1749 296660 : x2 = XVECEXP (x1, 0, 0);
1750 296660 : if (GET_CODE (x2) != SET)
1751 : return -1;
1752 294581 : x3 = XEXP (x2, 1);
1753 294581 : if (GET_CODE (x3) != i1)
1754 265848 : return -1;
1755 : return 0;
1756 : }
1757 :
1758 : int
1759 4087487 : pattern426 (rtx x1, int *pnum_clobbers)
1760 : {
1761 4087487 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1762 4087487 : rtx x2, x3, x4;
1763 4087487 : int res ATTRIBUTE_UNUSED;
1764 4087487 : x2 = XEXP (x1, 0);
1765 4087487 : switch (GET_CODE (x2))
1766 : {
1767 4084278 : case REG:
1768 4084278 : case SUBREG:
1769 4084278 : case MEM:
1770 4084278 : operands[0] = x2;
1771 4084278 : return 0;
1772 :
1773 164 : case STRICT_LOW_PART:
1774 164 : if (pnum_clobbers == NULL)
1775 : return -1;
1776 164 : x3 = XEXP (x2, 0);
1777 164 : operands[0] = x3;
1778 164 : if (!nonmemory_operand (operands[2], E_QImode))
1779 : return -1;
1780 143 : x4 = XEXP (x1, 1);
1781 143 : res = pattern41 (x4);
1782 143 : if (res >= 0)
1783 99 : return res + 1; /* [1, 2] */
1784 : return -1;
1785 :
1786 : default:
1787 : return -1;
1788 : }
1789 : }
1790 :
1791 : int
1792 1447 : pattern435 (rtx x1, int *pnum_clobbers)
1793 : {
1794 1447 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1795 1447 : rtx x2, x3, x4, x5, x6, x7;
1796 1447 : int res ATTRIBUTE_UNUSED;
1797 1447 : if (pnum_clobbers == NULL)
1798 : return -1;
1799 1447 : x2 = XEXP (x1, 0);
1800 1447 : x3 = XEXP (x2, 0);
1801 1447 : x4 = XEXP (x3, 1);
1802 1447 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1803 : return -1;
1804 1350 : x5 = XEXP (x3, 0);
1805 1350 : operands[3] = x5;
1806 1350 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
1807 : return -1;
1808 858 : x6 = XEXP (x2, 1);
1809 858 : operands[1] = x6;
1810 858 : x7 = XEXP (x1, 1);
1811 858 : operands[2] = x7;
1812 858 : switch (GET_MODE (operands[0]))
1813 : {
1814 : case E_QImode:
1815 : return 0;
1816 :
1817 0 : case E_HImode:
1818 0 : return 1;
1819 :
1820 : default:
1821 : return -1;
1822 : }
1823 : }
1824 :
1825 : int
1826 110 : pattern446 (rtx x1, machine_mode i1)
1827 : {
1828 110 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1829 110 : rtx x2, x3, x4;
1830 110 : int res ATTRIBUTE_UNUSED;
1831 110 : if (GET_MODE (x1) != i1)
1832 : return -1;
1833 110 : x2 = XEXP (x1, 0);
1834 110 : if (GET_MODE (x2) != i1)
1835 : return -1;
1836 110 : x3 = XEXP (x1, 1);
1837 110 : if (GET_MODE (x3) != i1)
1838 : return -1;
1839 110 : x4 = XEXP (x3, 0);
1840 110 : if (!register_operand (x4, i1))
1841 : return -1;
1842 : return 0;
1843 : }
1844 :
1845 : int
1846 15538 : pattern452 (rtx x1)
1847 : {
1848 15538 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1849 15538 : rtx x2, x3, x4;
1850 15538 : int res ATTRIBUTE_UNUSED;
1851 15538 : x2 = XEXP (x1, 1);
1852 15538 : x3 = XEXP (x2, 0);
1853 15538 : x4 = XEXP (x3, 1);
1854 15538 : operands[3] = x4;
1855 15538 : if (!const_int_operand (operands[3], E_VOIDmode))
1856 : return -1;
1857 15522 : return pattern14 (x1); /* [-1, 1] */
1858 : }
1859 :
1860 : int
1861 0 : pattern456 (rtx x1)
1862 : {
1863 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1864 0 : rtx x2, x3, x4, x5, x6, x7;
1865 0 : int res ATTRIBUTE_UNUSED;
1866 0 : x2 = XVECEXP (x1, 0, 0);
1867 0 : x3 = XEXP (x2, 0);
1868 0 : if (GET_CODE (x3) != VEC_SELECT)
1869 : return -1;
1870 0 : x4 = XEXP (x3, 1);
1871 0 : if (GET_CODE (x4) != PARALLEL
1872 0 : || XVECLEN (x4, 0) != 1)
1873 : return -1;
1874 0 : x5 = XVECEXP (x4, 0, 0);
1875 0 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1876 : return -1;
1877 0 : x6 = XEXP (x3, 0);
1878 0 : operands[1] = x6;
1879 0 : x7 = XVECEXP (x1, 0, 1);
1880 0 : operands[2] = x7;
1881 0 : if (!const48_operand (operands[2], E_SImode))
1882 : return -1;
1883 0 : switch (GET_MODE (operands[0]))
1884 : {
1885 0 : case E_SImode:
1886 0 : return pattern455 (x1,
1887 0 : E_SImode); /* [-1, 2] */
1888 :
1889 0 : case E_DImode:
1890 0 : res = pattern455 (x1,
1891 : E_DImode);
1892 0 : if (res >= 0)
1893 0 : return res + 3; /* [3, 5] */
1894 : return -1;
1895 :
1896 : default:
1897 : return -1;
1898 : }
1899 : }
1900 :
1901 : int
1902 2812 : pattern467 (rtx x1)
1903 : {
1904 2812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1905 2812 : rtx x2, x3, x4, x5, x6;
1906 2812 : int res ATTRIBUTE_UNUSED;
1907 2812 : x2 = XEXP (x1, 0);
1908 2812 : x3 = XVECEXP (x2, 0, 0);
1909 2812 : operands[1] = x3;
1910 2812 : x4 = XVECEXP (x2, 0, 1);
1911 2812 : operands[2] = x4;
1912 2812 : x5 = XEXP (x1, 1);
1913 2812 : operands[3] = x5;
1914 2812 : x6 = XEXP (x1, 2);
1915 2812 : operands[4] = x6;
1916 2812 : switch (GET_MODE (operands[0]))
1917 : {
1918 960 : case E_V64QImode:
1919 960 : return pattern466 (x1,
1920 : E_DImode,
1921 : E_V64QImode,
1922 960 : E_V32HFmode); /* [-1, 0] */
1923 :
1924 944 : case E_V32QImode:
1925 944 : if (pattern466 (x1,
1926 : E_SImode,
1927 : E_V32QImode,
1928 : E_V16HFmode) != 0)
1929 : return -1;
1930 : return 1;
1931 :
1932 908 : case E_V16QImode:
1933 908 : if (pattern466 (x1,
1934 : E_HImode,
1935 : E_V16QImode,
1936 : E_V8HFmode) != 0)
1937 : return -1;
1938 : return 2;
1939 :
1940 : default:
1941 : return -1;
1942 : }
1943 : }
1944 :
1945 : int
1946 760 : pattern478 (rtx x1, machine_mode i1)
1947 : {
1948 760 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1949 760 : rtx x2;
1950 760 : int res ATTRIBUTE_UNUSED;
1951 760 : if (!register_operand (operands[0], i1)
1952 760 : || GET_MODE (x1) != i1)
1953 : return -1;
1954 710 : x2 = XEXP (x1, 0);
1955 710 : if (GET_MODE (x2) != i1
1956 710 : || !register_operand (operands[1], i1)
1957 710 : || !register_operand (operands[2], i1)
1958 1394 : || !nonimmediate_operand (operands[3], i1))
1959 26 : return -1;
1960 : return 0;
1961 : }
1962 :
1963 : int
1964 5220 : pattern483 (machine_mode i1, machine_mode i2)
1965 : {
1966 5220 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1967 5220 : int res ATTRIBUTE_UNUSED;
1968 5220 : if (!register_operand (operands[2], i1)
1969 5197 : || !nonimmediate_operand (operands[3], i1)
1970 5179 : || !const0_operand (operands[4], i1)
1971 10399 : || !register_operand (operands[5], i2))
1972 293 : return -1;
1973 : return 0;
1974 : }
1975 :
1976 : int
1977 7728 : pattern488 (rtx x1)
1978 : {
1979 7728 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1980 7728 : rtx x2, x3, x4, x5, x6, x7;
1981 7728 : int res ATTRIBUTE_UNUSED;
1982 7728 : x2 = XEXP (x1, 0);
1983 7728 : x3 = XVECEXP (x2, 0, 0);
1984 7728 : operands[1] = x3;
1985 7728 : x4 = XVECEXP (x2, 0, 1);
1986 7728 : operands[2] = x4;
1987 7728 : x5 = XVECEXP (x2, 0, 2);
1988 7728 : operands[3] = x5;
1989 7728 : x6 = XEXP (x1, 2);
1990 7728 : operands[4] = x6;
1991 7728 : x7 = XEXP (x1, 1);
1992 7728 : switch (GET_CODE (x7))
1993 : {
1994 3792 : case REG:
1995 3792 : case SUBREG:
1996 3792 : if (!rtx_equal_p (x7, operands[1]))
1997 : return -1;
1998 3792 : switch (GET_MODE (operands[0]))
1999 : {
2000 1284 : case E_V16SImode:
2001 1284 : return pattern482 (x1,
2002 : E_V16SImode,
2003 1284 : E_HImode); /* [-1, 0] */
2004 :
2005 1284 : case E_V8SImode:
2006 1284 : if (pattern482 (x1,
2007 : E_V8SImode,
2008 : E_QImode) != 0)
2009 : return -1;
2010 : return 1;
2011 :
2012 1224 : case E_V4SImode:
2013 1224 : if (pattern482 (x1,
2014 : E_V4SImode,
2015 : E_QImode) != 0)
2016 : return -1;
2017 : return 2;
2018 :
2019 : default:
2020 : return -1;
2021 : }
2022 :
2023 3876 : case CONST_INT:
2024 3876 : case CONST_DOUBLE:
2025 3876 : case CONST_VECTOR:
2026 3876 : operands[5] = x7;
2027 3876 : switch (GET_MODE (operands[0]))
2028 : {
2029 1320 : case E_V16SImode:
2030 1320 : if (pattern487 (x1,
2031 : E_V16SImode,
2032 : E_HImode) != 0)
2033 : return -1;
2034 : return 3;
2035 :
2036 1320 : case E_V8SImode:
2037 1320 : if (pattern487 (x1,
2038 : E_V8SImode,
2039 : E_QImode) != 0)
2040 : return -1;
2041 : return 4;
2042 :
2043 1236 : case E_V4SImode:
2044 1236 : if (pattern487 (x1,
2045 : E_V4SImode,
2046 : E_QImode) != 0)
2047 : return -1;
2048 : return 5;
2049 :
2050 : default:
2051 : return -1;
2052 : }
2053 :
2054 : default:
2055 : return -1;
2056 : }
2057 : }
2058 :
2059 : int
2060 971 : pattern500 (rtx x1, machine_mode i1)
2061 : {
2062 971 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2063 971 : rtx x2, x3, x4, x5, x6, x7;
2064 971 : int res ATTRIBUTE_UNUSED;
2065 971 : x2 = XEXP (x1, 0);
2066 971 : x3 = XEXP (x2, 1);
2067 971 : x4 = XEXP (x3, 1);
2068 971 : x5 = XVECEXP (x4, 0, 0);
2069 971 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2070 : return -1;
2071 971 : x6 = XVECEXP (x4, 0, 1);
2072 971 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2073 : return -1;
2074 971 : switch (GET_MODE (operands[0]))
2075 : {
2076 495 : case E_V8HFmode:
2077 495 : if (!register_operand (operands[0], E_V8HFmode)
2078 483 : || GET_MODE (x1) != E_V8HFmode
2079 978 : || GET_MODE (x2) != E_V2HFmode)
2080 : return -1;
2081 483 : x7 = XEXP (x2, 0);
2082 483 : if (GET_MODE (x7) != E_V2HFmode
2083 483 : || !vector_operand (operands[1], i1)
2084 483 : || GET_MODE (x3) != E_V2HFmode
2085 483 : || !nonimm_or_0_operand (operands[2], E_V8HFmode)
2086 963 : || !const0_operand (operands[4], E_V6HFmode))
2087 3 : return -1;
2088 : return 0;
2089 :
2090 476 : case E_V4SFmode:
2091 476 : if (pattern499 (x1,
2092 : E_V2SFmode,
2093 : E_V4SFmode,
2094 : i1) != 0)
2095 : return -1;
2096 : return 1;
2097 :
2098 : default:
2099 : return -1;
2100 : }
2101 : }
2102 :
2103 : int
2104 1746 : pattern508 ()
2105 : {
2106 1746 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2107 1746 : int res ATTRIBUTE_UNUSED;
2108 1746 : switch (GET_MODE (operands[1]))
2109 : {
2110 576 : case E_V8HImode:
2111 576 : if (!register_operand (operands[1], E_V8HImode))
2112 : return -1;
2113 : return 0;
2114 :
2115 588 : case E_V8SImode:
2116 588 : if (!register_operand (operands[1], E_V8SImode))
2117 : return -1;
2118 : return 1;
2119 :
2120 582 : case E_V8DImode:
2121 582 : if (!register_operand (operands[1], E_V8DImode))
2122 : return -1;
2123 : return 2;
2124 :
2125 : default:
2126 : return -1;
2127 : }
2128 : }
2129 :
2130 : int
2131 2632 : pattern514 (rtx x1)
2132 : {
2133 2632 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2134 2632 : rtx x2;
2135 2632 : int res ATTRIBUTE_UNUSED;
2136 2632 : switch (GET_MODE (operands[0]))
2137 : {
2138 1470 : case E_V16QImode:
2139 1470 : if (!register_operand (operands[0], E_V16QImode)
2140 1470 : || GET_MODE (x1) != E_V16QImode)
2141 : return -1;
2142 1454 : x2 = XEXP (x1, 0);
2143 1454 : switch (GET_MODE (x2))
2144 : {
2145 397 : case E_V4QImode:
2146 397 : return pattern513 (
2147 397 : E_V12QImode); /* [-1, 1] */
2148 :
2149 181 : case E_V2QImode:
2150 181 : if (!register_operand (operands[1], E_V2DImode)
2151 181 : || !const0_operand (operands[2], E_V14QImode))
2152 5 : return -1;
2153 : return 2;
2154 :
2155 876 : case E_V8QImode:
2156 876 : if (!const0_operand (operands[2], E_V8QImode))
2157 : return -1;
2158 874 : switch (GET_MODE (operands[1]))
2159 : {
2160 201 : case E_V8SImode:
2161 201 : if (!register_operand (operands[1], E_V8SImode))
2162 : return -1;
2163 : return 3;
2164 :
2165 489 : case E_V8HImode:
2166 489 : if (!register_operand (operands[1], E_V8HImode))
2167 : return -1;
2168 : return 4;
2169 :
2170 : default:
2171 : return -1;
2172 : }
2173 :
2174 : default:
2175 : return -1;
2176 : }
2177 :
2178 526 : case E_V8HImode:
2179 526 : if (!register_operand (operands[0], E_V8HImode)
2180 526 : || GET_MODE (x1) != E_V8HImode)
2181 : return -1;
2182 526 : x2 = XEXP (x1, 0);
2183 526 : switch (GET_MODE (x2))
2184 : {
2185 358 : case E_V4HImode:
2186 358 : res = pattern513 (
2187 : E_V4HImode);
2188 358 : if (res >= 0)
2189 347 : return res + 5; /* [5, 6] */
2190 : return -1;
2191 :
2192 168 : case E_V2HImode:
2193 168 : if (!register_operand (operands[1], E_V2DImode)
2194 168 : || !const0_operand (operands[2], E_V6HImode))
2195 4 : return -1;
2196 : return 7;
2197 :
2198 : default:
2199 : return -1;
2200 : }
2201 :
2202 214 : case E_V4SImode:
2203 214 : if (!register_operand (operands[0], E_V4SImode)
2204 214 : || GET_MODE (x1) != E_V4SImode)
2205 : return -1;
2206 202 : x2 = XEXP (x1, 0);
2207 202 : if (GET_MODE (x2) != E_V2SImode
2208 202 : || !register_operand (operands[1], E_V2DImode)
2209 394 : || !const0_operand (operands[2], E_V2SImode))
2210 10 : return -1;
2211 : return 8;
2212 :
2213 : default:
2214 : return -1;
2215 : }
2216 : }
2217 :
2218 : int
2219 28 : pattern538 (rtx x1, machine_mode i1)
2220 : {
2221 28 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2222 28 : rtx x2, x3;
2223 28 : int res ATTRIBUTE_UNUSED;
2224 28 : if (!register_operand (operands[0], i1)
2225 28 : || GET_MODE (x1) != i1)
2226 : return -1;
2227 28 : x2 = XEXP (x1, 0);
2228 28 : if (GET_MODE (x2) != i1
2229 28 : || !bcst_vector_operand (operands[1], i1))
2230 2 : return -1;
2231 26 : x3 = XEXP (x1, 1);
2232 26 : if (GET_MODE (x3) != i1
2233 26 : || !bcst_vector_operand (operands[2], i1))
2234 2 : return -1;
2235 : return 0;
2236 : }
2237 :
2238 : int
2239 1374677 : pattern541 (rtx x1)
2240 : {
2241 1374677 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2242 1374677 : rtx x2, x3, x4, x5;
2243 1374677 : int res ATTRIBUTE_UNUSED;
2244 1374677 : x2 = XEXP (x1, 0);
2245 1374677 : x3 = XEXP (x2, 0);
2246 1374677 : operands[1] = x3;
2247 1374677 : x4 = XEXP (x2, 1);
2248 1374677 : operands[2] = x4;
2249 1374677 : x5 = XEXP (x1, 1);
2250 1374677 : switch (GET_CODE (x5))
2251 : {
2252 79764 : case AND:
2253 79764 : return pattern540 (x1); /* [-1, 11] */
2254 :
2255 314 : case IOR:
2256 314 : res = pattern540 (x1);
2257 314 : if (res >= 0)
2258 0 : return res + 12; /* [12, 23] */
2259 : return -1;
2260 :
2261 1577 : case XOR:
2262 1577 : res = pattern540 (x1);
2263 1577 : if (res >= 0)
2264 0 : return res + 24; /* [24, 35] */
2265 : return -1;
2266 :
2267 804095 : case REG:
2268 804095 : case SUBREG:
2269 804095 : case MEM:
2270 804095 : case NOT:
2271 804095 : operands[3] = x5;
2272 804095 : switch (GET_MODE (operands[0]))
2273 : {
2274 1 : case E_V32HFmode:
2275 1 : if (pattern534 (x1,
2276 : E_V32HFmode) != 0)
2277 : return -1;
2278 : return 36;
2279 :
2280 2 : case E_V16HFmode:
2281 2 : if (pattern534 (x1,
2282 : E_V16HFmode) != 0)
2283 : return -1;
2284 : return 37;
2285 :
2286 26 : case E_V8HFmode:
2287 26 : if (pattern534 (x1,
2288 : E_V8HFmode) != 0)
2289 : return -1;
2290 : return 38;
2291 :
2292 0 : case E_V32BFmode:
2293 0 : if (pattern534 (x1,
2294 : E_V32BFmode) != 0)
2295 : return -1;
2296 : return 39;
2297 :
2298 0 : case E_V16BFmode:
2299 0 : if (pattern534 (x1,
2300 : E_V16BFmode) != 0)
2301 : return -1;
2302 : return 40;
2303 :
2304 0 : case E_V8BFmode:
2305 0 : if (pattern534 (x1,
2306 : E_V8BFmode) != 0)
2307 : return -1;
2308 : return 41;
2309 :
2310 0 : case E_V16SFmode:
2311 0 : if (pattern534 (x1,
2312 : E_V16SFmode) != 0)
2313 : return -1;
2314 : return 42;
2315 :
2316 25 : case E_V8SFmode:
2317 25 : if (pattern534 (x1,
2318 : E_V8SFmode) != 0)
2319 : return -1;
2320 : return 43;
2321 :
2322 42654 : case E_V4SFmode:
2323 42654 : if (pattern534 (x1,
2324 : E_V4SFmode) != 0)
2325 : return -1;
2326 : return 44;
2327 :
2328 0 : case E_V8DFmode:
2329 0 : if (pattern534 (x1,
2330 : E_V8DFmode) != 0)
2331 : return -1;
2332 : return 45;
2333 :
2334 51 : case E_V4DFmode:
2335 51 : if (pattern534 (x1,
2336 : E_V4DFmode) != 0)
2337 : return -1;
2338 : return 46;
2339 :
2340 42666 : case E_V2DFmode:
2341 42666 : if (pattern534 (x1,
2342 : E_V2DFmode) != 0)
2343 : return -1;
2344 : return 47;
2345 :
2346 : default:
2347 : return -1;
2348 : }
2349 :
2350 : default:
2351 : return -1;
2352 : }
2353 : }
2354 :
2355 : int
2356 143 : pattern554 (rtx x1)
2357 : {
2358 143 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2359 143 : rtx x2, x3, x4, x5, x6, x7, x8;
2360 143 : int res ATTRIBUTE_UNUSED;
2361 143 : x2 = XVECEXP (x1, 0, 0);
2362 143 : x3 = XEXP (x2, 1);
2363 143 : if (GET_MODE (x3) != E_XFmode)
2364 : return -1;
2365 143 : x4 = XVECEXP (x1, 0, 1);
2366 143 : if (GET_CODE (x4) != CLOBBER)
2367 : return -1;
2368 143 : x5 = XEXP (x2, 0);
2369 143 : operands[0] = x5;
2370 143 : if (!register_operand (operands[0], E_XFmode))
2371 : return -1;
2372 143 : x6 = XVECEXP (x3, 0, 0);
2373 143 : operands[1] = x6;
2374 143 : if (!register_operand (operands[1], E_XFmode))
2375 : return -1;
2376 106 : x7 = XVECEXP (x3, 0, 1);
2377 106 : operands[2] = x7;
2378 106 : if (!register_operand (operands[2], E_XFmode))
2379 : return -1;
2380 80 : x8 = XEXP (x4, 0);
2381 80 : operands[3] = x8;
2382 80 : if (!scratch_operand (operands[3], E_XFmode))
2383 : return -1;
2384 : return 0;
2385 : }
2386 :
2387 : int
2388 67793425 : pattern561 (rtx x1)
2389 : {
2390 67793425 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2391 67793425 : rtx x2, x3, x4, x5, x6;
2392 67793425 : int res ATTRIBUTE_UNUSED;
2393 67793425 : x2 = XVECEXP (x1, 0, 0);
2394 67793425 : x3 = XEXP (x2, 1);
2395 67793425 : x4 = XEXP (x3, 1);
2396 67793425 : operands[2] = x4;
2397 67793425 : x5 = XEXP (x2, 0);
2398 67793425 : switch (GET_CODE (x5))
2399 : {
2400 67788619 : case REG:
2401 67788619 : case SUBREG:
2402 67788619 : case MEM:
2403 67788619 : operands[0] = x5;
2404 67788619 : x6 = XVECEXP (x1, 0, 1);
2405 67788619 : switch (GET_CODE (x6))
2406 : {
2407 : case CLOBBER:
2408 : return 0;
2409 :
2410 9801 : case UNSPEC:
2411 9801 : return 1;
2412 :
2413 : default:
2414 : return -1;
2415 : }
2416 :
2417 810 : case STRICT_LOW_PART:
2418 810 : res = pattern560 (x1);
2419 810 : if (res >= 0)
2420 635 : return res + 2; /* [2, 3] */
2421 : return -1;
2422 :
2423 : default:
2424 : return -1;
2425 : }
2426 : }
2427 :
2428 : int
2429 2769219 : pattern572 (rtx x1)
2430 : {
2431 2769219 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2432 2769219 : rtx x2, x3, x4, x5, x6, x7;
2433 2769219 : int res ATTRIBUTE_UNUSED;
2434 2769219 : x2 = XVECEXP (x1, 0, 0);
2435 2769219 : x3 = XEXP (x2, 1);
2436 2769219 : x4 = XEXP (x3, 1);
2437 2769219 : operands[2] = x4;
2438 2769219 : x5 = XEXP (x2, 0);
2439 2769219 : switch (GET_CODE (x5))
2440 : {
2441 2075 : case STRICT_LOW_PART:
2442 2075 : return pattern560 (x1); /* [-1, 1] */
2443 :
2444 2767144 : case REG:
2445 2767144 : case SUBREG:
2446 2767144 : case MEM:
2447 2767144 : operands[0] = x5;
2448 2767144 : x6 = XVECEXP (x1, 0, 1);
2449 2767144 : switch (GET_CODE (x6))
2450 : {
2451 2701266 : case CLOBBER:
2452 2701266 : x7 = XEXP (x6, 0);
2453 2701266 : if (GET_CODE (x7) != REG
2454 2701266 : || REGNO (x7) != 17
2455 5402532 : || GET_MODE (x7) != E_CCmode)
2456 : return -1;
2457 2701266 : switch (GET_MODE (operands[0]))
2458 : {
2459 941789 : case E_DImode:
2460 941789 : if (!nonimmediate_operand (operands[0], E_DImode)
2461 941611 : || GET_MODE (x3) != E_DImode
2462 1883400 : || !nonimmediate_operand (operands[1], E_DImode))
2463 3610 : return -1;
2464 : return 2;
2465 :
2466 23113 : case E_TImode:
2467 23113 : if (pattern566 (x3,
2468 : E_TImode) != 0)
2469 : return -1;
2470 : return 3;
2471 :
2472 116097 : case E_HImode:
2473 116097 : if (pattern567 (x3,
2474 : E_HImode) != 0)
2475 : return -1;
2476 : return 4;
2477 :
2478 992415 : case E_SImode:
2479 992415 : if (pattern568 (x3) != 0)
2480 : return -1;
2481 : return 5;
2482 :
2483 1300 : case E_V4QImode:
2484 1300 : if (pattern569 (x3,
2485 : E_V4QImode) != 0)
2486 : return -1;
2487 : return 6;
2488 :
2489 306 : case E_V2QImode:
2490 306 : if (pattern569 (x3,
2491 : E_V2QImode) != 0)
2492 : return -1;
2493 : return 7;
2494 :
2495 462 : case E_V2HImode:
2496 462 : if (pattern569 (x3,
2497 : E_V2HImode) != 0)
2498 : return -1;
2499 : return 8;
2500 :
2501 : default:
2502 : return -1;
2503 : }
2504 :
2505 4509 : case UNSPEC:
2506 4509 : res = pattern571 (x1);
2507 4509 : if (res >= 0)
2508 4506 : return res + 9; /* [9, 12] */
2509 : return -1;
2510 :
2511 : default:
2512 : return -1;
2513 : }
2514 :
2515 : default:
2516 : return -1;
2517 : }
2518 : }
2519 :
2520 : int
2521 2181 : pattern596 (rtx x1)
2522 : {
2523 2181 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2524 2181 : int res ATTRIBUTE_UNUSED;
2525 2181 : if (!register_operand (operands[0], E_DImode)
2526 2166 : || GET_MODE (x1) != E_DImode
2527 2166 : || !general_operand (operands[1], E_V64QImode)
2528 4337 : || !general_operand (operands[2], E_V64QImode))
2529 43 : return -1;
2530 : return 0;
2531 : }
2532 :
2533 : int
2534 18703 : pattern599 (rtx x1)
2535 : {
2536 18703 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2537 18703 : int res ATTRIBUTE_UNUSED;
2538 18703 : if (!register_operand (operands[0], E_QImode)
2539 18703 : || GET_MODE (x1) != E_QImode)
2540 : return -1;
2541 18484 : switch (GET_MODE (operands[1]))
2542 : {
2543 2766 : case E_V8HImode:
2544 2766 : if (!general_operand (operands[1], E_V8HImode)
2545 2766 : || !general_operand (operands[2], E_V8HImode))
2546 16 : return -1;
2547 : return 0;
2548 :
2549 2512 : case E_V8SImode:
2550 2512 : if (!general_operand (operands[1], E_V8SImode)
2551 2512 : || !general_operand (operands[2], E_V8SImode))
2552 36 : return -1;
2553 : return 1;
2554 :
2555 1791 : case E_V4SImode:
2556 1791 : if (!general_operand (operands[1], E_V4SImode)
2557 1791 : || !general_operand (operands[2], E_V4SImode))
2558 81 : return -1;
2559 : return 2;
2560 :
2561 3262 : case E_V8DImode:
2562 3262 : if (!general_operand (operands[1], E_V8DImode)
2563 3262 : || !general_operand (operands[2], E_V8DImode))
2564 40 : return -1;
2565 : return 3;
2566 :
2567 4449 : case E_V4DImode:
2568 4449 : if (!general_operand (operands[1], E_V4DImode)
2569 4449 : || !general_operand (operands[2], E_V4DImode))
2570 19 : return -1;
2571 : return 4;
2572 :
2573 1919 : case E_V2DImode:
2574 1919 : if (!general_operand (operands[1], E_V2DImode)
2575 1919 : || !general_operand (operands[2], E_V2DImode))
2576 26 : return -1;
2577 : return 5;
2578 :
2579 : default:
2580 : return -1;
2581 : }
2582 : }
2583 :
2584 : int
2585 435361 : pattern615 (rtx x1, machine_mode i1)
2586 : {
2587 435361 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2588 435361 : rtx x2;
2589 435361 : int res ATTRIBUTE_UNUSED;
2590 435361 : if (!nonimmediate_operand (operands[0], i1)
2591 435361 : || GET_MODE (x1) != i1)
2592 : return -1;
2593 435334 : x2 = XEXP (x1, 0);
2594 435334 : if (GET_MODE (x2) != i1
2595 435334 : || !register_operand (operands[1], i1)
2596 435328 : || !const_int_operand (operands[2], E_QImode)
2597 870469 : || !const_scalar_int_operand (operands[3], i1))
2598 367724 : return -1;
2599 : return 0;
2600 : }
2601 :
2602 : int
2603 14770 : pattern619 (rtx x1)
2604 : {
2605 14770 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2606 14770 : rtx x2, x3, x4, x5, x6, x7;
2607 14770 : int res ATTRIBUTE_UNUSED;
2608 14770 : x2 = XEXP (x1, 0);
2609 14770 : x3 = XEXP (x2, 1);
2610 14770 : x4 = XVECEXP (x3, 0, 0);
2611 14770 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2612 : return -1;
2613 13665 : x5 = XVECEXP (x3, 0, 1);
2614 13665 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2615 : return -1;
2616 13665 : x6 = XVECEXP (x3, 0, 2);
2617 13665 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2618 : return -1;
2619 13665 : x7 = XVECEXP (x3, 0, 3);
2620 13665 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
2621 13665 : || pattern618 (x1,
2622 : E_V8QImode,
2623 : E_V4QImode,
2624 : E_V4HImode) != 0)
2625 12471 : return -1;
2626 : return 0;
2627 : }
2628 :
2629 : int
2630 19 : pattern625 (rtx x1, machine_mode i1)
2631 : {
2632 19 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2633 19 : rtx x2;
2634 19 : int res ATTRIBUTE_UNUSED;
2635 19 : if (!register_operand (operands[0], i1)
2636 19 : || GET_MODE (x1) != i1)
2637 : return -1;
2638 19 : x2 = XEXP (x1, 0);
2639 19 : if (GET_MODE (x2) != i1
2640 19 : || !general_operand (operands[1], i1))
2641 10 : return -1;
2642 : return 0;
2643 : }
2644 :
2645 : int
2646 717 : pattern631 (rtx x1, machine_mode i1)
2647 : {
2648 717 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2649 717 : rtx x2, x3;
2650 717 : int res ATTRIBUTE_UNUSED;
2651 717 : if (!register_operand (operands[0], i1)
2652 717 : || GET_MODE (x1) != i1)
2653 : return -1;
2654 696 : x2 = XEXP (x1, 0);
2655 696 : if (GET_MODE (x2) != i1)
2656 : return -1;
2657 696 : x3 = XEXP (x2, 0);
2658 696 : if (GET_MODE (x3) != i1
2659 696 : || !nonimmediate_operand (operands[1], i1))
2660 6 : return -1;
2661 : return 0;
2662 : }
2663 :
2664 : int
2665 816 : pattern639 (rtx x1, machine_mode i1)
2666 : {
2667 816 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2668 816 : rtx x2;
2669 816 : int res ATTRIBUTE_UNUSED;
2670 816 : if (!register_operand (operands[0], i1)
2671 816 : || GET_MODE (x1) != i1)
2672 : return -1;
2673 765 : x2 = XEXP (x1, 0);
2674 765 : if (GET_MODE (x2) != i1
2675 765 : || !nonimmediate_operand (operands[1], i1)
2676 1515 : || !register_operand (operands[2], i1))
2677 69 : return -1;
2678 : return 0;
2679 : }
2680 :
2681 : int
2682 12625 : pattern644 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2683 : {
2684 12625 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2685 12625 : rtx x2;
2686 12625 : int res ATTRIBUTE_UNUSED;
2687 12625 : if (!register_operand (operands[0], i1)
2688 12625 : || GET_MODE (x1) != i1)
2689 : return -1;
2690 12170 : x2 = XEXP (x1, 0);
2691 12170 : if (GET_MODE (x2) != i1
2692 12170 : || !vector_operand (operands[1], i3)
2693 12170 : || !nonimm_or_0_operand (operands[2], i1)
2694 24024 : || !register_operand (operands[3], i2))
2695 928 : return -1;
2696 : return 0;
2697 : }
2698 :
2699 : int
2700 20204 : pattern650 (rtx x1)
2701 : {
2702 20204 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2703 20204 : rtx x2, x3, x4;
2704 20204 : int res ATTRIBUTE_UNUSED;
2705 20204 : x2 = XEXP (x1, 0);
2706 20204 : x3 = XEXP (x2, 2);
2707 20204 : switch (GET_CODE (x3))
2708 : {
2709 10222 : case REG:
2710 10222 : case SUBREG:
2711 10222 : case MEM:
2712 10222 : case VEC_DUPLICATE:
2713 10222 : operands[3] = x3;
2714 10222 : return pattern649 (x1); /* [-1, 28] */
2715 :
2716 9542 : case NEG:
2717 9542 : x4 = XEXP (x3, 0);
2718 9542 : operands[3] = x4;
2719 9542 : return 29;
2720 :
2721 : default:
2722 : return -1;
2723 : }
2724 : }
2725 :
2726 : int
2727 330 : pattern653 (rtx x1, machine_mode i1)
2728 : {
2729 330 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2730 330 : int res ATTRIBUTE_UNUSED;
2731 330 : if (!register_operand (operands[0], i1)
2732 330 : || GET_MODE (x1) != i1)
2733 : return -1;
2734 305 : switch (GET_MODE (operands[1]))
2735 : {
2736 147 : case E_V16HFmode:
2737 147 : if (!vector_operand (operands[1], E_V16HFmode))
2738 : return -1;
2739 : return 0;
2740 :
2741 158 : case E_V16SFmode:
2742 158 : if (!vector_operand (operands[1], E_V16SFmode))
2743 : return -1;
2744 : return 1;
2745 :
2746 : default:
2747 : return -1;
2748 : }
2749 : }
2750 :
2751 : int
2752 2108 : pattern659 (rtx x1)
2753 : {
2754 2108 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2755 2108 : rtx x2, x3, x4, x5;
2756 2108 : int res ATTRIBUTE_UNUSED;
2757 2108 : x2 = XVECEXP (x1, 0, 0);
2758 2108 : x3 = XEXP (x2, 2);
2759 2108 : if (XWINT (x3, 0) != 1L)
2760 : return -1;
2761 2064 : x4 = XVECEXP (x1, 0, 1);
2762 2064 : operands[3] = x4;
2763 2064 : x5 = XEXP (x2, 1);
2764 2064 : if (!rtx_equal_p (x5, operands[1]))
2765 : return -1;
2766 2052 : switch (GET_MODE (operands[0]))
2767 : {
2768 340 : case E_V8HFmode:
2769 340 : return pattern658 (x1,
2770 340 : E_V8HFmode); /* [-1, 0] */
2771 :
2772 352 : case E_V4SFmode:
2773 352 : if (pattern658 (x1,
2774 : E_V4SFmode) != 0)
2775 : return -1;
2776 : return 1;
2777 :
2778 1360 : case E_V2DFmode:
2779 1360 : if (pattern658 (x1,
2780 : E_V2DFmode) != 0)
2781 : return -1;
2782 : return 2;
2783 :
2784 : default:
2785 : return -1;
2786 : }
2787 : }
2788 :
2789 : int
2790 172 : pattern667 (rtx x1, machine_mode i1)
2791 : {
2792 172 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2793 172 : rtx x2;
2794 172 : int res ATTRIBUTE_UNUSED;
2795 172 : if (!register_operand (operands[0], i1)
2796 169 : || GET_MODE (x1) != i1
2797 169 : || !register_operand (operands[1], i1)
2798 331 : || !vector_operand (operands[2], i1))
2799 18 : return -1;
2800 154 : x2 = XVECEXP (x1, 0, 2);
2801 154 : if (GET_MODE (x2) != i1
2802 154 : || !register_operand (operands[3], i1)
2803 300 : || !const0_operand (operands[4], i1))
2804 8 : return -1;
2805 : return 0;
2806 : }
2807 :
2808 : int
2809 923 : pattern673 (rtx x1)
2810 : {
2811 923 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2812 923 : rtx x2, x3, x4, x5;
2813 923 : int res ATTRIBUTE_UNUSED;
2814 923 : x2 = XVECEXP (x1, 0, 1);
2815 923 : operands[2] = x2;
2816 923 : x3 = XVECEXP (x1, 0, 2);
2817 923 : x4 = XEXP (x3, 0);
2818 923 : operands[3] = x4;
2819 923 : x5 = XEXP (x3, 1);
2820 923 : operands[4] = x5;
2821 923 : switch (GET_MODE (operands[0]))
2822 : {
2823 60 : case E_V8SFmode:
2824 60 : return pattern671 (x1,
2825 : E_V8SImode,
2826 60 : E_V8SFmode); /* [-1, 0] */
2827 :
2828 200 : case E_V4SFmode:
2829 200 : if (pattern671 (x1,
2830 : E_V4SImode,
2831 : E_V4SFmode) != 0)
2832 : return -1;
2833 : return 1;
2834 :
2835 76 : case E_V4DFmode:
2836 76 : if (pattern671 (x1,
2837 : E_V4DImode,
2838 : E_V4DFmode) != 0)
2839 : return -1;
2840 : return 2;
2841 :
2842 137 : case E_V2DFmode:
2843 137 : if (pattern671 (x1,
2844 : E_V2DImode,
2845 : E_V2DFmode) != 0)
2846 : return -1;
2847 : return 3;
2848 :
2849 54 : case E_V32QImode:
2850 54 : if (pattern672 (x1,
2851 : E_V32QImode) != 0)
2852 : return -1;
2853 : return 4;
2854 :
2855 255 : case E_V16QImode:
2856 255 : if (pattern672 (x1,
2857 : E_V16QImode) != 0)
2858 : return -1;
2859 : return 5;
2860 :
2861 : default:
2862 : return -1;
2863 : }
2864 : }
2865 :
2866 : int
2867 3562 : pattern681 (rtx x1)
2868 : {
2869 3562 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2870 3562 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2871 3562 : int res ATTRIBUTE_UNUSED;
2872 3562 : x2 = XVECEXP (x1, 0, 0);
2873 3562 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2874 : return -1;
2875 3511 : x3 = XVECEXP (x1, 0, 1);
2876 3511 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2877 : return -1;
2878 3511 : x4 = XVECEXP (x1, 0, 2);
2879 3511 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2880 : return -1;
2881 3511 : x5 = XVECEXP (x1, 0, 3);
2882 3511 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2883 : return -1;
2884 3511 : x6 = XVECEXP (x1, 0, 4);
2885 3511 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2886 : return -1;
2887 3511 : x7 = XVECEXP (x1, 0, 5);
2888 3511 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2889 : return -1;
2890 3511 : x8 = XVECEXP (x1, 0, 6);
2891 3511 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2892 : return -1;
2893 3511 : x9 = XVECEXP (x1, 0, 7);
2894 3511 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
2895 0 : return -1;
2896 : return 0;
2897 : }
2898 :
2899 : int
2900 1889 : pattern692 (rtx x1, rtx_code i1, machine_mode i2)
2901 : {
2902 1889 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2903 1889 : rtx x2, x3, x4;
2904 1889 : int res ATTRIBUTE_UNUSED;
2905 1889 : x2 = XVECEXP (x1, 0, 0);
2906 1889 : x3 = XEXP (x2, 0);
2907 1889 : if (GET_CODE (x3) != REG
2908 1889 : || REGNO (x3) != 17
2909 3778 : || GET_MODE (x3) != i2)
2910 : return -1;
2911 1889 : x4 = XVECEXP (x1, 0, 1);
2912 1889 : if (GET_CODE (x4) != i1)
2913 422 : return -1;
2914 : return 0;
2915 : }
2916 :
2917 : int
2918 14619 : pattern698 (rtx x1)
2919 : {
2920 14619 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2921 14619 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2922 14619 : int res ATTRIBUTE_UNUSED;
2923 14619 : x2 = XVECEXP (x1, 0, 0);
2924 14619 : x3 = XEXP (x2, 1);
2925 14619 : x4 = XEXP (x3, 1);
2926 14619 : operands[2] = x4;
2927 14619 : x5 = XEXP (x4, 0);
2928 14619 : if (GET_CODE (x5) != REG
2929 14619 : || REGNO (x5) != 17)
2930 : return -1;
2931 13264 : x6 = XEXP (x4, 1);
2932 13264 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2933 : return -1;
2934 13264 : x7 = XVECEXP (x1, 0, 1);
2935 13264 : if (GET_CODE (x7) != CLOBBER)
2936 : return -1;
2937 13150 : x8 = XEXP (x7, 0);
2938 13150 : if (GET_CODE (x8) != REG
2939 13150 : || REGNO (x8) != 17
2940 26300 : || GET_MODE (x8) != E_CCmode)
2941 : return -1;
2942 13150 : x9 = XEXP (x2, 0);
2943 13150 : operands[0] = x9;
2944 13150 : switch (GET_MODE (operands[0]))
2945 : {
2946 : case E_QImode:
2947 : return 0;
2948 :
2949 : case E_HImode:
2950 : return 1;
2951 :
2952 : case E_SImode:
2953 : return 2;
2954 :
2955 : case E_DImode:
2956 : return 3;
2957 :
2958 : default:
2959 : return -1;
2960 : }
2961 : }
2962 :
2963 : int
2964 54612 : pattern706 (rtx x1, machine_mode i1)
2965 : {
2966 54612 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2967 54612 : int res ATTRIBUTE_UNUSED;
2968 54612 : if (!register_operand (operands[0], i1)
2969 54192 : || GET_MODE (x1) != i1
2970 54192 : || !vector_operand (operands[1], i1)
2971 108171 : || !vector_operand (operands[2], i1))
2972 10844 : return -1;
2973 : return 0;
2974 : }
2975 :
2976 : int
2977 0 : pattern711 (rtx x1)
2978 : {
2979 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2980 0 : rtx x2;
2981 0 : int res ATTRIBUTE_UNUSED;
2982 0 : x2 = XVECEXP (x1, 0, 1);
2983 0 : if (XVECLEN (x2, 0) != 1
2984 0 : || XINT (x2, 1) != 39)
2985 : return -1;
2986 0 : return pattern233 (x1); /* [-1, 1] */
2987 : }
2988 :
2989 : int
2990 1719804 : pattern716 (rtx x1)
2991 : {
2992 1719804 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2993 1719804 : rtx x2, x3, x4, x5;
2994 1719804 : int res ATTRIBUTE_UNUSED;
2995 1719804 : switch (GET_CODE (x1))
2996 : {
2997 22058 : case UNSPEC:
2998 22058 : if (XVECLEN (x1, 0) != 1
2999 22057 : || XINT (x1, 1) != 38)
3000 : return -1;
3001 1585 : x2 = XVECEXP (x1, 0, 0);
3002 1585 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3003 0 : return -1;
3004 : return 0;
3005 :
3006 1697746 : case SET:
3007 1697746 : x3 = XEXP (x1, 1);
3008 1697746 : if (GET_CODE (x3) != PLUS
3009 1695360 : || GET_MODE (x3) != E_SImode)
3010 : return -1;
3011 1695322 : x4 = XEXP (x3, 0);
3012 1695322 : if (GET_CODE (x4) != REG
3013 1695322 : || REGNO (x4) != 7
3014 3390644 : || GET_MODE (x4) != E_SImode)
3015 : return -1;
3016 1695322 : x5 = XEXP (x1, 0);
3017 1695322 : if (GET_CODE (x5) != REG
3018 1695322 : || REGNO (x5) != 7
3019 3390644 : || GET_MODE (x5) != E_SImode)
3020 0 : return -1;
3021 : return 1;
3022 :
3023 : default:
3024 : return -1;
3025 : }
3026 : }
3027 :
3028 : int
3029 111462 : pattern723 (rtx x1)
3030 : {
3031 111462 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3032 111462 : rtx x2, x3, x4, x5, x6;
3033 111462 : int res ATTRIBUTE_UNUSED;
3034 111462 : x2 = XEXP (x1, 0);
3035 111462 : x3 = XEXP (x2, 0);
3036 111462 : x4 = XEXP (x3, 0);
3037 111462 : operands[1] = x4;
3038 111462 : if (!const_int_operand (operands[2], E_QImode))
3039 : return -1;
3040 110943 : x5 = XEXP (x1, 1);
3041 110943 : switch (GET_CODE (x5))
3042 : {
3043 97483 : case ZERO_EXTEND:
3044 97483 : x6 = XEXP (x5, 0);
3045 97483 : operands[3] = x6;
3046 97483 : switch (GET_MODE (operands[0]))
3047 : {
3048 497 : case E_DImode:
3049 497 : return pattern721 (x1,
3050 : E_SImode,
3051 497 : E_DImode); /* [-1, 0] */
3052 :
3053 96986 : case E_TImode:
3054 96986 : if (pattern721 (x1,
3055 : E_DImode,
3056 : E_TImode) != 0)
3057 : return -1;
3058 : return 1;
3059 :
3060 : default:
3061 : return -1;
3062 : }
3063 :
3064 6989 : case CONST_INT:
3065 6989 : case CONST_WIDE_INT:
3066 6989 : operands[3] = x5;
3067 6989 : switch (GET_MODE (operands[0]))
3068 : {
3069 535 : case E_DImode:
3070 535 : if (pattern722 (x1,
3071 : E_DImode,
3072 : E_SImode) != 0)
3073 : return -1;
3074 : return 2;
3075 :
3076 6449 : case E_TImode:
3077 6449 : if (pattern722 (x1,
3078 : E_TImode,
3079 : E_DImode) != 0)
3080 : return -1;
3081 : return 3;
3082 :
3083 : default:
3084 : return -1;
3085 : }
3086 :
3087 : default:
3088 : return -1;
3089 : }
3090 : }
3091 :
3092 : int
3093 2421 : pattern741 (rtx x1)
3094 : {
3095 2421 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3096 2421 : rtx x2, x3, x4;
3097 2421 : int res ATTRIBUTE_UNUSED;
3098 2421 : x2 = XVECEXP (x1, 0, 2);
3099 2421 : x3 = XEXP (x2, 0);
3100 2421 : operands[3] = x3;
3101 2421 : x4 = XEXP (x2, 1);
3102 2421 : operands[4] = x4;
3103 2421 : switch (GET_MODE (operands[0]))
3104 : {
3105 43 : case E_SFmode:
3106 43 : return pattern740 (x1,
3107 43 : E_SFmode); /* [-1, 0] */
3108 :
3109 0 : case E_DFmode:
3110 0 : if (pattern740 (x1,
3111 : E_DFmode) != 0)
3112 : return -1;
3113 : return 1;
3114 :
3115 : default:
3116 : return -1;
3117 : }
3118 : }
3119 :
3120 : int
3121 6975 : pattern747 ()
3122 : {
3123 6975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3124 6975 : int res ATTRIBUTE_UNUSED;
3125 6975 : switch (GET_MODE (operands[1]))
3126 : {
3127 1183 : case E_V8HImode:
3128 1183 : if (!register_operand (operands[1], E_V8HImode)
3129 1183 : || !nonimmediate_operand (operands[2], E_V8HImode))
3130 1 : return -1;
3131 : return 0;
3132 :
3133 1135 : case E_V8SImode:
3134 1135 : if (!register_operand (operands[1], E_V8SImode)
3135 1135 : || !nonimmediate_operand (operands[2], E_V8SImode))
3136 0 : return -1;
3137 : return 1;
3138 :
3139 1144 : case E_V4SImode:
3140 1144 : if (!register_operand (operands[1], E_V4SImode)
3141 1144 : || !nonimmediate_operand (operands[2], E_V4SImode))
3142 0 : return -1;
3143 : return 2;
3144 :
3145 1141 : case E_V8DImode:
3146 1141 : if (!register_operand (operands[1], E_V8DImode)
3147 1141 : || !nonimmediate_operand (operands[2], E_V8DImode))
3148 4 : return -1;
3149 : return 3;
3150 :
3151 1147 : case E_V4DImode:
3152 1147 : if (!register_operand (operands[1], E_V4DImode)
3153 1147 : || !nonimmediate_operand (operands[2], E_V4DImode))
3154 8 : return -1;
3155 : return 4;
3156 :
3157 1225 : case E_V2DImode:
3158 1225 : if (!register_operand (operands[1], E_V2DImode)
3159 1225 : || !nonimmediate_operand (operands[2], E_V2DImode))
3160 88 : return -1;
3161 : return 5;
3162 :
3163 : default:
3164 : return -1;
3165 : }
3166 : }
3167 :
3168 : int
3169 0 : pattern766 (rtx x1, machine_mode i1, machine_mode i2)
3170 : {
3171 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3172 0 : rtx x2, x3, x4, x5;
3173 0 : int res ATTRIBUTE_UNUSED;
3174 0 : if (!register_operand (operands[0], i1)
3175 0 : || GET_MODE (x1) != i1)
3176 : return -1;
3177 0 : x2 = XEXP (x1, 0);
3178 0 : if (GET_MODE (x2) != i2)
3179 : return -1;
3180 0 : x3 = XEXP (x2, 0);
3181 0 : if (GET_MODE (x3) != i2)
3182 : return -1;
3183 0 : x4 = XEXP (x3, 0);
3184 0 : if (GET_MODE (x4) != i2
3185 0 : || !nonimmediate_operand (operands[1], i1))
3186 0 : return -1;
3187 0 : x5 = XEXP (x3, 1);
3188 0 : if (GET_MODE (x5) != i2
3189 0 : || !nonimmediate_operand (operands[2], i1))
3190 0 : return -1;
3191 : return 0;
3192 : }
3193 :
3194 : int
3195 3034 : pattern774 (rtx x1)
3196 : {
3197 3034 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3198 3034 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3199 3034 : int res ATTRIBUTE_UNUSED;
3200 3034 : x2 = XEXP (x1, 2);
3201 3034 : if (XWINT (x2, 0) != 1L)
3202 : return -1;
3203 3034 : x3 = XEXP (x1, 0);
3204 3034 : x4 = XEXP (x3, 0);
3205 3034 : x5 = XVECEXP (x4, 0, 0);
3206 3034 : operands[1] = x5;
3207 3034 : x6 = XVECEXP (x4, 0, 1);
3208 3034 : operands[2] = x6;
3209 3034 : x7 = XEXP (x3, 1);
3210 3034 : operands[3] = x7;
3211 3034 : x8 = XEXP (x3, 2);
3212 3034 : operands[4] = x8;
3213 3034 : if (!register_operand (operands[4], E_QImode))
3214 : return -1;
3215 2998 : x9 = XEXP (x1, 1);
3216 2998 : if (!rtx_equal_p (x9, operands[1]))
3217 : return -1;
3218 2998 : switch (GET_MODE (operands[0]))
3219 : {
3220 770 : case E_V8HFmode:
3221 770 : return pattern773 (x1,
3222 770 : E_V8HFmode); /* [-1, 0] */
3223 :
3224 1196 : case E_V4SFmode:
3225 1196 : if (pattern773 (x1,
3226 : E_V4SFmode) != 0)
3227 : return -1;
3228 : return 1;
3229 :
3230 1032 : case E_V2DFmode:
3231 1032 : if (pattern773 (x1,
3232 : E_V2DFmode) != 0)
3233 : return -1;
3234 : return 2;
3235 :
3236 : default:
3237 : return -1;
3238 : }
3239 : }
3240 :
3241 : int
3242 1045 : pattern785 (rtx x1, machine_mode i1)
3243 : {
3244 1045 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3245 1045 : int res ATTRIBUTE_UNUSED;
3246 1045 : if (!register_operand (operands[0], i1)
3247 917 : || GET_MODE (x1) != i1
3248 917 : || !nonimmediate_operand (operands[1], i1)
3249 1884 : || !const_0_to_255_operand (operands[2], E_SImode))
3250 206 : return -1;
3251 : return 0;
3252 : }
3253 :
3254 : int
3255 1005 : pattern792 (rtx x1, machine_mode i1, machine_mode i2)
3256 : {
3257 1005 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3258 1005 : rtx x2, x3;
3259 1005 : int res ATTRIBUTE_UNUSED;
3260 1005 : if (!memory_operand (operands[0], i1)
3261 887 : || GET_MODE (x1) != i1
3262 1892 : || !register_operand (operands[1], i2))
3263 342 : return -1;
3264 663 : x2 = XVECEXP (x1, 0, 1);
3265 663 : operands[2] = x2;
3266 663 : if (!register_operand (operands[2], i1))
3267 : return -1;
3268 552 : x3 = XVECEXP (x1, 0, 2);
3269 552 : if (!rtx_equal_p (x3, operands[0]))
3270 : return -1;
3271 : return 0;
3272 : }
3273 :
3274 : int
3275 113304 : pattern803 (machine_mode i1)
3276 : {
3277 113304 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3278 113304 : int res ATTRIBUTE_UNUSED;
3279 113304 : if (!register_operand (operands[0], i1)
3280 113298 : || !sse_comparison_operator (operands[3], i1)
3281 112231 : || !register_operand (operands[1], i1)
3282 192882 : || !vector_operand (operands[2], i1))
3283 40712 : return -1;
3284 : return 0;
3285 : }
3286 :
3287 : int
3288 67030 : pattern810 (rtx x1)
3289 : {
3290 67030 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3291 67030 : rtx x2, x3, x4, x5;
3292 67030 : int res ATTRIBUTE_UNUSED;
3293 67030 : x2 = XEXP (x1, 0);
3294 67030 : x3 = XEXP (x2, 1);
3295 67030 : operands[2] = x3;
3296 67030 : x4 = XEXP (x1, 1);
3297 67030 : if (XVECLEN (x4, 0) < 1)
3298 : return -1;
3299 67030 : operands[3] = x4;
3300 67030 : x5 = XVECEXP (x4, 0, 0);
3301 67030 : operands[4] = x5;
3302 67030 : if (!const_int_operand (operands[4], E_VOIDmode))
3303 : return -1;
3304 67030 : switch (GET_MODE (operands[0]))
3305 : {
3306 117 : case E_V32QImode:
3307 117 : return pattern806 (x1,
3308 : E_V32QImode,
3309 117 : E_V64QImode); /* [-1, 0] */
3310 :
3311 103 : case E_V64QImode:
3312 103 : if (pattern806 (x1,
3313 : E_V64QImode,
3314 : E_V128QImode) != 0)
3315 : return -1;
3316 : return 1;
3317 :
3318 19596 : case E_V16QImode:
3319 19596 : if (pattern807 (x1,
3320 : E_V16QImode,
3321 : E_V32QImode) != 0)
3322 : return -1;
3323 : return 2;
3324 :
3325 152 : case E_V32HImode:
3326 152 : if (pattern806 (x1,
3327 : E_V32HImode,
3328 : E_V64HImode) != 0)
3329 : return -1;
3330 : return 3;
3331 :
3332 164 : case E_V16HImode:
3333 164 : if (pattern806 (x1,
3334 : E_V16HImode,
3335 : E_V32HImode) != 0)
3336 : return -1;
3337 : return 4;
3338 :
3339 23982 : case E_V8HImode:
3340 23982 : if (pattern807 (x1,
3341 : E_V8HImode,
3342 : E_V16HImode) != 0)
3343 : return -1;
3344 : return 5;
3345 :
3346 186 : case E_V16SImode:
3347 186 : if (pattern808 (x1,
3348 : E_V16SImode,
3349 : E_V32SImode) != 0)
3350 : return -1;
3351 : return 6;
3352 :
3353 187 : case E_V8SImode:
3354 187 : if (pattern808 (x1,
3355 : E_V8SImode,
3356 : E_V16SImode) != 0)
3357 : return -1;
3358 : return 7;
3359 :
3360 10822 : case E_V4SImode:
3361 10822 : if (!register_operand (operands[0], E_V4SImode)
3362 10727 : || GET_MODE (x1) != E_V4SImode
3363 10727 : || GET_MODE (x2) != E_V8SImode
3364 21504 : || !const0_operand (operands[2], E_V4SImode))
3365 306 : return -1;
3366 : return 8;
3367 :
3368 21 : case E_V8DImode:
3369 21 : if (pattern809 (x1,
3370 : E_V8DImode,
3371 : E_V16DImode) != 0)
3372 : return -1;
3373 : return 9;
3374 :
3375 41 : case E_V4DImode:
3376 41 : if (pattern809 (x1,
3377 : E_V4DImode,
3378 : E_V8DImode) != 0)
3379 : return -1;
3380 : return 10;
3381 :
3382 257 : case E_V2DImode:
3383 257 : if (pattern809 (x1,
3384 : E_V2DImode,
3385 : E_V4DImode) != 0)
3386 : return -1;
3387 : return 11;
3388 :
3389 0 : case E_V32HFmode:
3390 0 : if (pattern809 (x1,
3391 : E_V32HFmode,
3392 : E_V64HFmode) != 0)
3393 : return -1;
3394 : return 12;
3395 :
3396 0 : case E_V16HFmode:
3397 0 : if (pattern809 (x1,
3398 : E_V16HFmode,
3399 : E_V32HFmode) != 0)
3400 : return -1;
3401 : return 13;
3402 :
3403 28 : case E_V8HFmode:
3404 28 : if (pattern809 (x1,
3405 : E_V8HFmode,
3406 : E_V16HFmode) != 0)
3407 : return -1;
3408 : return 14;
3409 :
3410 0 : case E_V32BFmode:
3411 0 : if (pattern809 (x1,
3412 : E_V32BFmode,
3413 : E_V64BFmode) != 0)
3414 : return -1;
3415 : return 15;
3416 :
3417 0 : case E_V16BFmode:
3418 0 : if (pattern809 (x1,
3419 : E_V16BFmode,
3420 : E_V32BFmode) != 0)
3421 : return -1;
3422 : return 16;
3423 :
3424 0 : case E_V8BFmode:
3425 0 : if (pattern809 (x1,
3426 : E_V8BFmode,
3427 : E_V16BFmode) != 0)
3428 : return -1;
3429 : return 17;
3430 :
3431 38 : case E_V16SFmode:
3432 38 : if (pattern809 (x1,
3433 : E_V16SFmode,
3434 : E_V32SFmode) != 0)
3435 : return -1;
3436 : return 18;
3437 :
3438 58 : case E_V8SFmode:
3439 58 : if (pattern809 (x1,
3440 : E_V8SFmode,
3441 : E_V16SFmode) != 0)
3442 : return -1;
3443 : return 19;
3444 :
3445 215 : case E_V4SFmode:
3446 215 : if (pattern809 (x1,
3447 : E_V4SFmode,
3448 : E_V8SFmode) != 0)
3449 : return -1;
3450 : return 20;
3451 :
3452 41 : case E_V8DFmode:
3453 41 : if (pattern809 (x1,
3454 : E_V8DFmode,
3455 : E_V16DFmode) != 0)
3456 : return -1;
3457 : return 21;
3458 :
3459 101 : case E_V4DFmode:
3460 101 : if (pattern809 (x1,
3461 : E_V4DFmode,
3462 : E_V8DFmode) != 0)
3463 : return -1;
3464 : return 22;
3465 :
3466 18 : case E_V2DFmode:
3467 18 : if (pattern809 (x1,
3468 : E_V2DFmode,
3469 : E_V4DFmode) != 0)
3470 : return -1;
3471 : return 23;
3472 :
3473 : default:
3474 : return -1;
3475 : }
3476 : }
3477 :
3478 : int
3479 13537 : pattern850 (rtx x1)
3480 : {
3481 13537 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3482 13537 : rtx x2;
3483 13537 : int res ATTRIBUTE_UNUSED;
3484 13537 : if (peep2_current_count < 3
3485 13501 : || XVECLEN (x1, 0) != 1
3486 13498 : || XINT (x1, 1) != 1)
3487 : return -1;
3488 13492 : x2 = XVECEXP (x1, 0, 0);
3489 13492 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3490 0 : return -1;
3491 : return 0;
3492 : }
3493 :
3494 : int
3495 26000 : pattern854 (rtx x1)
3496 : {
3497 26000 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3498 26000 : rtx x2, x3, x4;
3499 26000 : int res ATTRIBUTE_UNUSED;
3500 26000 : x2 = XEXP (x1, 0);
3501 26000 : x3 = XEXP (x2, 0);
3502 26000 : operands[0] = x3;
3503 26000 : x4 = XEXP (x1, 1);
3504 26000 : operands[1] = x4;
3505 26000 : switch (GET_MODE (x1))
3506 : {
3507 683 : case E_QImode:
3508 683 : if (GET_MODE (x2) != E_QImode
3509 683 : || !register_operand (operands[0], E_QImode)
3510 1180 : || !nonmemory_operand (operands[1], E_QImode))
3511 317 : return -1;
3512 : return 0;
3513 :
3514 3072 : case E_HImode:
3515 3072 : if (GET_MODE (x2) != E_HImode
3516 3072 : || !register_operand (operands[0], E_HImode)
3517 5697 : || !nonmemory_operand (operands[1], E_HImode))
3518 447 : return -1;
3519 : return 1;
3520 :
3521 13540 : case E_SImode:
3522 13540 : if (GET_MODE (x2) != E_SImode
3523 13540 : || !register_operand (operands[0], E_SImode)
3524 25044 : || !x86_64_szext_nonmemory_operand (operands[1], E_SImode))
3525 2058 : return -1;
3526 : return 2;
3527 :
3528 8330 : case E_DImode:
3529 8330 : if (GET_MODE (x2) != E_DImode)
3530 : return -1;
3531 : return 3;
3532 :
3533 375 : case E_TImode:
3534 375 : if (GET_MODE (x2) != E_TImode
3535 375 : || !nonimmediate_operand (operands[0], E_TImode)
3536 747 : || !nonimmediate_operand (operands[1], E_TImode))
3537 3 : return -1;
3538 : return 4;
3539 :
3540 : default:
3541 : return -1;
3542 : }
3543 : }
3544 :
3545 : int
3546 23948 : pattern865 (rtx x1, machine_mode i1, machine_mode i2)
3547 : {
3548 23948 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3549 23948 : rtx x2, x3;
3550 23948 : int res ATTRIBUTE_UNUSED;
3551 23948 : x2 = XEXP (x1, 0);
3552 23948 : if (GET_MODE (x2) != i2
3553 23948 : || !register_operand (operands[1], i1))
3554 1309 : return -1;
3555 22639 : x3 = XEXP (x1, 1);
3556 22639 : if (GET_MODE (x3) != i2
3557 22639 : || !nonimmediate_operand (operands[2], i1))
3558 286 : return -1;
3559 : return 0;
3560 : }
3561 :
3562 : int
3563 61 : pattern871 (rtx x1, machine_mode i1)
3564 : {
3565 61 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3566 61 : int res ATTRIBUTE_UNUSED;
3567 61 : if (!register_operand (operands[0], i1)
3568 61 : || GET_MODE (x1) != i1
3569 61 : || !register_operand (operands[2], i1)
3570 40 : || !register_operand (operands[1], i1)
3571 95 : || !const_0_to_7_operand (operands[3], E_SImode))
3572 27 : return -1;
3573 : return 0;
3574 : }
3575 :
3576 : int
3577 8867 : pattern877 (rtx x1, machine_mode i1)
3578 : {
3579 8867 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3580 8867 : rtx x2, x3;
3581 8867 : int res ATTRIBUTE_UNUSED;
3582 8867 : if (!register_operand (operands[0], i1)
3583 8867 : || GET_MODE (x1) != i1)
3584 : return -1;
3585 8843 : x2 = XEXP (x1, 0);
3586 8843 : if (GET_MODE (x2) != i1)
3587 : return -1;
3588 8843 : x3 = XEXP (x1, 2);
3589 8843 : if (GET_MODE (x3) != i1)
3590 0 : return -1;
3591 : return 0;
3592 : }
3593 :
3594 : int
3595 1392 : pattern883 (rtx x1)
3596 : {
3597 1392 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3598 1392 : rtx x2;
3599 1392 : int res ATTRIBUTE_UNUSED;
3600 1392 : switch (GET_MODE (operands[0]))
3601 : {
3602 276 : case E_DImode:
3603 276 : return pattern882 (x1,
3604 : E_DImode,
3605 276 : E_V64QImode); /* [-1, 0] */
3606 :
3607 584 : case E_SImode:
3608 584 : if (!register_operand (operands[0], E_SImode)
3609 584 : || GET_MODE (x1) != E_SImode)
3610 : return -1;
3611 568 : x2 = XEXP (x1, 0);
3612 568 : if (GET_MODE (x2) != E_SImode
3613 568 : || !register_operand (operands[3], E_SImode))
3614 96 : return -1;
3615 472 : res = pattern879 ();
3616 472 : if (res >= 0)
3617 472 : return res + 1; /* [1, 2] */
3618 : return -1;
3619 :
3620 : default:
3621 : return -1;
3622 : }
3623 : }
3624 :
3625 : int
3626 614 : pattern892 (rtx x1)
3627 : {
3628 614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3629 614 : rtx x2;
3630 614 : int res ATTRIBUTE_UNUSED;
3631 614 : x2 = XEXP (x1, 2);
3632 614 : if (XWINT (x2, 0) != 1L)
3633 : return -1;
3634 434 : switch (GET_MODE (operands[0]))
3635 : {
3636 210 : case E_V4SFmode:
3637 210 : return pattern639 (x1,
3638 210 : E_V4SFmode); /* [-1, 0] */
3639 :
3640 224 : case E_V8HFmode:
3641 224 : if (pattern639 (x1,
3642 : E_V8HFmode) != 0)
3643 : return -1;
3644 : return 1;
3645 :
3646 : default:
3647 : return -1;
3648 : }
3649 : }
3650 :
3651 : int
3652 1986 : pattern900 (rtx x1, machine_mode i1)
3653 : {
3654 1986 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3655 1986 : rtx x2, x3;
3656 1986 : int res ATTRIBUTE_UNUSED;
3657 1986 : if (!register_operand (operands[0], i1)
3658 1986 : || GET_MODE (x1) != i1)
3659 : return -1;
3660 1733 : x2 = XEXP (x1, 0);
3661 1733 : operands[2] = x2;
3662 1733 : if (!register_operand (operands[2], i1))
3663 : return -1;
3664 1514 : x3 = XEXP (x1, 1);
3665 1514 : operands[1] = x3;
3666 1514 : if (!reg_or_0_operand (operands[1], i1))
3667 : return -1;
3668 : return 0;
3669 : }
3670 :
3671 : int
3672 1370 : pattern910 (rtx x1)
3673 : {
3674 1370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3675 1370 : rtx x2, x3, x4, x5, x6, x7;
3676 1370 : int res ATTRIBUTE_UNUSED;
3677 1370 : x2 = XVECEXP (x1, 0, 0);
3678 1370 : x3 = XEXP (x2, 0);
3679 1370 : x4 = XEXP (x3, 0);
3680 1370 : x5 = XEXP (x4, 0);
3681 1370 : operands[2] = x5;
3682 1370 : x6 = XEXP (x2, 1);
3683 1370 : operands[1] = x6;
3684 1370 : x7 = XVECEXP (x1, 0, 1);
3685 1370 : operands[3] = x7;
3686 1370 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
3687 : return -1;
3688 1370 : switch (GET_MODE (operands[0]))
3689 : {
3690 572 : case E_V8HFmode:
3691 572 : return pattern909 (x1,
3692 : E_V8HFmode,
3693 572 : E_HFmode); /* [-1, 1] */
3694 :
3695 556 : case E_V4SFmode:
3696 556 : res = pattern909 (x1,
3697 : E_V4SFmode,
3698 : E_SFmode);
3699 556 : if (res >= 0)
3700 540 : return res + 2; /* [2, 3] */
3701 : return -1;
3702 :
3703 242 : case E_V2DFmode:
3704 242 : if (!register_operand (operands[0], E_V2DFmode)
3705 236 : || GET_MODE (x1) != E_V2DFmode
3706 236 : || GET_MODE (x2) != E_V2DFmode
3707 236 : || GET_MODE (x3) != E_V2DFmode
3708 236 : || GET_MODE (x4) != E_DFmode
3709 236 : || !register_operand (operands[2], E_DImode)
3710 478 : || !register_operand (operands[1], E_V2DFmode))
3711 8 : return -1;
3712 : return 4;
3713 :
3714 : default:
3715 : return -1;
3716 : }
3717 : }
3718 :
3719 : int
3720 599839 : pattern923 (rtx x1, machine_mode i1, machine_mode i2)
3721 : {
3722 599839 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3723 599839 : int res ATTRIBUTE_UNUSED;
3724 599839 : if (!register_operand (operands[0], i2)
3725 580150 : || GET_MODE (x1) != i2
3726 580150 : || !nonimmediate_operand (operands[1], i1)
3727 1159353 : || !const0_operand (operands[2], i1))
3728 45916 : return -1;
3729 : return 0;
3730 : }
3731 :
3732 : int
3733 232 : pattern925 (rtx x1, machine_mode i1)
3734 : {
3735 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3736 232 : rtx x2;
3737 232 : int res ATTRIBUTE_UNUSED;
3738 232 : if (!register_operand (operands[0], i1)
3739 223 : || GET_MODE (x1) != i1
3740 223 : || !nonimmediate_operand (operands[1], i1)
3741 452 : || !nonimmediate_operand (operands[2], i1))
3742 12 : return -1;
3743 220 : x2 = XEXP (x1, 2);
3744 220 : if (GET_MODE (x2) != i1
3745 220 : || !nonimmediate_operand (operands[3], i1))
3746 0 : return -1;
3747 : return 0;
3748 : }
3749 :
3750 : int
3751 9112 : pattern929 (rtx x1)
3752 : {
3753 9112 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3754 9112 : rtx x2, x3, x4, x5, x6, x7;
3755 9112 : int res ATTRIBUTE_UNUSED;
3756 9112 : x2 = XVECEXP (x1, 0, 2);
3757 9112 : if (GET_CODE (x2) != CONST_INT)
3758 : return -1;
3759 9112 : x3 = XVECEXP (x1, 0, 3);
3760 9112 : if (GET_CODE (x3) != CONST_INT)
3761 : return -1;
3762 9112 : x4 = XVECEXP (x1, 0, 4);
3763 9112 : if (GET_CODE (x4) != CONST_INT)
3764 : return -1;
3765 9112 : x5 = XVECEXP (x1, 0, 5);
3766 9112 : if (GET_CODE (x5) != CONST_INT)
3767 : return -1;
3768 9112 : x6 = XVECEXP (x1, 0, 6);
3769 9112 : if (GET_CODE (x6) != CONST_INT)
3770 : return -1;
3771 9112 : x7 = XVECEXP (x1, 0, 7);
3772 9112 : if (GET_CODE (x7) != CONST_INT)
3773 0 : return -1;
3774 : return 0;
3775 : }
3776 :
3777 : int
3778 66 : pattern939 (rtx x1, int *pnum_clobbers)
3779 : {
3780 66 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3781 66 : rtx x2, x3, x4, x5, x6;
3782 66 : int res ATTRIBUTE_UNUSED;
3783 66 : x2 = XVECEXP (x1, 0, 0);
3784 66 : x3 = XEXP (x2, 1);
3785 66 : x4 = XEXP (x3, 0);
3786 66 : x5 = XEXP (x4, 0);
3787 66 : operands[1] = x5;
3788 66 : if (!nonimmediate_operand (operands[1], E_SImode))
3789 : return -1;
3790 24 : x6 = XVECEXP (x1, 0, 1);
3791 24 : return pattern829 (x6, pnum_clobbers); /* [-1, 1] */
3792 : }
3793 :
3794 : int
3795 288 : pattern945 (rtx x1)
3796 : {
3797 288 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3798 288 : rtx x2, x3, x4, x5;
3799 288 : int res ATTRIBUTE_UNUSED;
3800 288 : x2 = XEXP (x1, 0);
3801 288 : x3 = XEXP (x2, 1);
3802 288 : x4 = XEXP (x3, 1);
3803 288 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3804 : return -1;
3805 282 : x5 = XEXP (x3, 0);
3806 282 : operands[3] = x5;
3807 282 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
3808 : return -1;
3809 276 : switch (GET_MODE (operands[0]))
3810 : {
3811 0 : case E_QImode:
3812 0 : return pattern943 (x1,
3813 0 : E_QImode); /* [-1, 0] */
3814 :
3815 0 : case E_HImode:
3816 0 : if (pattern943 (x1,
3817 : E_HImode) != 0)
3818 : return -1;
3819 : return 1;
3820 :
3821 192 : case E_SImode:
3822 192 : if (pattern944 (x1,
3823 : E_SImode) != 0)
3824 : return -1;
3825 : return 2;
3826 :
3827 84 : case E_DImode:
3828 84 : if (pattern944 (x1,
3829 : E_DImode) != 0)
3830 : return -1;
3831 : return 3;
3832 :
3833 : default:
3834 : return -1;
3835 : }
3836 : }
3837 :
3838 : int
3839 100 : pattern958 (rtx x1, machine_mode i1)
3840 : {
3841 100 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3842 100 : rtx x2;
3843 100 : int res ATTRIBUTE_UNUSED;
3844 100 : if (!register_operand (operands[0], i1)
3845 100 : || GET_MODE (x1) != i1)
3846 : return -1;
3847 76 : x2 = XEXP (x1, 0);
3848 76 : if (GET_MODE (x2) != i1
3849 76 : || !vector_operand (operands[1], i1)
3850 61 : || !vector_operand (operands[2], i1)
3851 132 : || !const0_operand (operands[3], i1))
3852 52 : return -1;
3853 : return 0;
3854 : }
3855 :
3856 : int
3857 139797 : pattern967 (rtx x1)
3858 : {
3859 139797 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3860 139797 : int res ATTRIBUTE_UNUSED;
3861 139797 : switch (GET_MODE (operands[0]))
3862 : {
3863 62316 : case E_QImode:
3864 62316 : if (!register_operand (operands[0], E_QImode)
3865 62316 : || GET_MODE (x1) != E_QImode)
3866 : return -1;
3867 : return 0;
3868 :
3869 55898 : case E_HImode:
3870 55898 : if (!register_operand (operands[0], E_HImode)
3871 55898 : || GET_MODE (x1) != E_HImode)
3872 : return -1;
3873 : return 1;
3874 :
3875 : default:
3876 : return -1;
3877 : }
3878 : }
3879 :
3880 : int
3881 8831 : pattern969 (rtx x1, machine_mode i1)
3882 : {
3883 8831 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3884 8831 : int res ATTRIBUTE_UNUSED;
3885 8831 : if (!register_operand (operands[0], i1)
3886 8811 : || GET_MODE (x1) != i1
3887 8811 : || !register_operand (operands[1], i1)
3888 6939 : || !register_operand (operands[2], i1)
3889 14381 : || !register_operand (operands[3], i1))
3890 3861 : return -1;
3891 : return 0;
3892 : }
3893 :
3894 : int
3895 4077 : pattern973 (rtx x1)
3896 : {
3897 4077 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3898 4077 : rtx x2, x3;
3899 4077 : int res ATTRIBUTE_UNUSED;
3900 4077 : x2 = XEXP (x1, 1);
3901 4077 : switch (GET_CODE (x2))
3902 : {
3903 1309 : case CONST_INT:
3904 1309 : if (!register_operand (operands[0], E_QImode)
3905 1309 : || GET_MODE (x1) != E_QImode)
3906 : return -1;
3907 686 : x3 = XEXP (x1, 0);
3908 686 : if (GET_MODE (x3) != E_QImode)
3909 : return -1;
3910 686 : switch (XWINT (x2, 0))
3911 : {
3912 13 : case 15L:
3913 13 : switch (GET_MODE (operands[1]))
3914 : {
3915 8 : case E_V4SImode:
3916 8 : if (!nonimm_or_0_operand (operands[1], E_V4SImode)
3917 8 : || !nonimm_or_0_operand (operands[2], E_V4SImode))
3918 4 : return -1;
3919 : return 0;
3920 :
3921 4 : case E_V4DImode:
3922 4 : if (!nonimm_or_0_operand (operands[1], E_V4DImode)
3923 4 : || !nonimm_or_0_operand (operands[2], E_V4DImode))
3924 4 : return -1;
3925 : return 1;
3926 :
3927 : default:
3928 : return -1;
3929 : }
3930 :
3931 69 : case 3L:
3932 69 : if (!nonimm_or_0_operand (operands[1], E_V2DImode)
3933 69 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
3934 69 : return -1;
3935 : return 2;
3936 :
3937 : default:
3938 : return -1;
3939 : }
3940 :
3941 2662 : case REG:
3942 2662 : case SUBREG:
3943 2662 : operands[3] = x2;
3944 2662 : switch (GET_MODE (operands[0]))
3945 : {
3946 1051 : case E_HImode:
3947 1051 : if (!register_operand (operands[0], E_HImode)
3948 1051 : || GET_MODE (x1) != E_HImode)
3949 : return -1;
3950 1037 : x3 = XEXP (x1, 0);
3951 1037 : if (GET_MODE (x3) != E_HImode
3952 1037 : || !register_operand (operands[3], E_HImode))
3953 0 : return -1;
3954 1037 : switch (GET_MODE (operands[1]))
3955 : {
3956 75 : case E_V16QImode:
3957 75 : if (!nonimm_or_0_operand (operands[1], E_V16QImode)
3958 75 : || !nonimm_or_0_operand (operands[2], E_V16QImode))
3959 0 : return -1;
3960 : return 3;
3961 :
3962 91 : case E_V16HImode:
3963 91 : if (!nonimm_or_0_operand (operands[1], E_V16HImode)
3964 91 : || !nonimm_or_0_operand (operands[2], E_V16HImode))
3965 0 : return -1;
3966 : return 4;
3967 :
3968 867 : case E_V16SImode:
3969 867 : if (!nonimm_or_0_operand (operands[1], E_V16SImode)
3970 867 : || !nonimm_or_0_operand (operands[2], E_V16SImode))
3971 8 : return -1;
3972 : return 5;
3973 :
3974 : default:
3975 : return -1;
3976 : }
3977 :
3978 550 : case E_QImode:
3979 550 : if (!register_operand (operands[0], E_QImode)
3980 550 : || GET_MODE (x1) != E_QImode)
3981 : return -1;
3982 512 : x3 = XEXP (x1, 0);
3983 512 : if (GET_MODE (x3) != E_QImode
3984 512 : || !register_operand (operands[3], E_QImode))
3985 0 : return -1;
3986 512 : switch (GET_MODE (operands[1]))
3987 : {
3988 91 : case E_V8HImode:
3989 91 : if (!nonimm_or_0_operand (operands[1], E_V8HImode)
3990 91 : || !nonimm_or_0_operand (operands[2], E_V8HImode))
3991 0 : return -1;
3992 : return 6;
3993 :
3994 77 : case E_V8SImode:
3995 77 : if (!nonimm_or_0_operand (operands[1], E_V8SImode)
3996 77 : || !nonimm_or_0_operand (operands[2], E_V8SImode))
3997 0 : return -1;
3998 : return 7;
3999 :
4000 81 : case E_V4SImode:
4001 81 : if (!nonimm_or_0_operand (operands[1], E_V4SImode)
4002 81 : || !nonimm_or_0_operand (operands[2], E_V4SImode))
4003 0 : return -1;
4004 : return 8;
4005 :
4006 80 : case E_V8DImode:
4007 80 : if (!nonimm_or_0_operand (operands[1], E_V8DImode)
4008 80 : || !nonimm_or_0_operand (operands[2], E_V8DImode))
4009 2 : return -1;
4010 : return 9;
4011 :
4012 80 : case E_V4DImode:
4013 80 : if (!nonimm_or_0_operand (operands[1], E_V4DImode)
4014 80 : || !nonimm_or_0_operand (operands[2], E_V4DImode))
4015 2 : return -1;
4016 : return 10;
4017 :
4018 99 : case E_V2DImode:
4019 99 : if (!nonimm_or_0_operand (operands[1], E_V2DImode)
4020 99 : || !nonimm_or_0_operand (operands[2], E_V2DImode))
4021 2 : return -1;
4022 : return 11;
4023 :
4024 : default:
4025 : return -1;
4026 : }
4027 :
4028 : default:
4029 : return -1;
4030 : }
4031 :
4032 : default:
4033 : return -1;
4034 : }
4035 : }
4036 :
4037 : int
4038 596 : pattern1007 (rtx x1, machine_mode i1)
4039 : {
4040 596 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4041 596 : rtx x2, x3;
4042 596 : int res ATTRIBUTE_UNUSED;
4043 596 : if (!register_operand (operands[0], i1)
4044 596 : || GET_MODE (x1) != i1)
4045 : return -1;
4046 590 : x2 = XEXP (x1, 0);
4047 590 : if (GET_MODE (x2) != i1)
4048 : return -1;
4049 590 : x3 = XEXP (x2, 0);
4050 590 : if (GET_MODE (x3) != i1)
4051 0 : return -1;
4052 : return 0;
4053 : }
4054 :
4055 : int
4056 181 : pattern1014 (rtx x1)
4057 : {
4058 181 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4059 181 : rtx x2, x3, x4, x5;
4060 181 : int res ATTRIBUTE_UNUSED;
4061 181 : x2 = XEXP (x1, 0);
4062 181 : x3 = XEXP (x2, 0);
4063 181 : x4 = XEXP (x3, 0);
4064 181 : operands[2] = x4;
4065 181 : x5 = XEXP (x1, 1);
4066 181 : operands[1] = x5;
4067 181 : switch (GET_MODE (operands[0]))
4068 : {
4069 32 : case E_V8HImode:
4070 32 : return pattern1013 (x1,
4071 : E_V8HImode,
4072 32 : E_HImode); /* [-1, 0] */
4073 :
4074 0 : case E_V8HFmode:
4075 0 : if (pattern1013 (x1,
4076 : E_V8HFmode,
4077 : E_HFmode) != 0)
4078 : return -1;
4079 : return 1;
4080 :
4081 0 : case E_V8BFmode:
4082 0 : if (pattern1013 (x1,
4083 : E_V8BFmode,
4084 : E_BFmode) != 0)
4085 : return -1;
4086 : return 2;
4087 :
4088 : default:
4089 : return -1;
4090 : }
4091 : }
4092 :
4093 : int
4094 481 : pattern1025 (rtx x1, machine_mode i1, machine_mode i2)
4095 : {
4096 481 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4097 481 : rtx x2;
4098 481 : int res ATTRIBUTE_UNUSED;
4099 481 : if (!register_operand (operands[0], i2)
4100 481 : || GET_MODE (x1) != i2)
4101 : return -1;
4102 461 : x2 = XVECEXP (x1, 0, 0);
4103 461 : if (GET_MODE (x2) != i2
4104 461 : || !register_operand (operands[1], i1))
4105 32 : return -1;
4106 : return 0;
4107 : }
4108 :
4109 : int
4110 471 : pattern1031 (rtx x1)
4111 : {
4112 471 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4113 471 : rtx x2;
4114 471 : int res ATTRIBUTE_UNUSED;
4115 471 : if (!const48_operand (operands[2], E_SImode))
4116 : return -1;
4117 471 : switch (GET_MODE (operands[0]))
4118 : {
4119 88 : case E_V16SImode:
4120 88 : return pattern1025 (x1,
4121 : E_V16SFmode,
4122 88 : E_V16SImode); /* [-1, 0] */
4123 :
4124 93 : case E_V8SImode:
4125 93 : if (pattern1025 (x1,
4126 : E_V8DFmode,
4127 : E_V8SImode) != 0)
4128 : return -1;
4129 : return 1;
4130 :
4131 232 : case E_V8DImode:
4132 232 : if (!register_operand (operands[0], E_V8DImode)
4133 232 : || GET_MODE (x1) != E_V8DImode)
4134 : return -1;
4135 208 : x2 = XVECEXP (x1, 0, 0);
4136 208 : if (GET_MODE (x2) != E_V8DImode)
4137 : return -1;
4138 208 : switch (GET_MODE (operands[1]))
4139 : {
4140 106 : case E_V8DFmode:
4141 106 : if (!register_operand (operands[1], E_V8DFmode))
4142 : return -1;
4143 : return 2;
4144 :
4145 102 : case E_V8SFmode:
4146 102 : if (!register_operand (operands[1], E_V8SFmode))
4147 : return -1;
4148 : return 3;
4149 :
4150 : default:
4151 : return -1;
4152 : }
4153 :
4154 : default:
4155 : return -1;
4156 : }
4157 : }
4158 :
4159 : int
4160 13484 : pattern1048 (rtx x1)
4161 : {
4162 13484 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4163 13484 : rtx x2;
4164 13484 : int res ATTRIBUTE_UNUSED;
4165 13484 : switch (GET_MODE (operands[0]))
4166 : {
4167 23 : case E_HImode:
4168 23 : if (!register_operand (operands[0], E_HImode)
4169 23 : || GET_MODE (x1) != E_HImode)
4170 : return -1;
4171 23 : x2 = XEXP (x1, 0);
4172 23 : if (GET_MODE (x2) != E_QImode
4173 23 : || !nonimmediate_operand (operands[1], E_QImode)
4174 44 : || !x86_64_general_operand (operands[2], E_QImode))
4175 2 : return -1;
4176 : return 0;
4177 :
4178 400 : case E_SImode:
4179 400 : if (!register_operand (operands[0], E_SImode)
4180 400 : || GET_MODE (x1) != E_SImode)
4181 : return -1;
4182 398 : x2 = XEXP (x1, 0);
4183 398 : switch (GET_MODE (x2))
4184 : {
4185 208 : case E_QImode:
4186 208 : if (!nonimmediate_operand (operands[1], E_QImode)
4187 208 : || !x86_64_general_operand (operands[2], E_QImode))
4188 2 : return -1;
4189 : return 1;
4190 :
4191 190 : case E_HImode:
4192 190 : if (!nonimmediate_operand (operands[1], E_HImode)
4193 190 : || !x86_64_general_operand (operands[2], E_HImode))
4194 48 : return -1;
4195 : return 2;
4196 :
4197 : default:
4198 : return -1;
4199 : }
4200 :
4201 13060 : case E_DImode:
4202 13060 : if (!register_operand (operands[0], E_DImode)
4203 13060 : || GET_MODE (x1) != E_DImode)
4204 : return -1;
4205 13060 : x2 = XEXP (x1, 0);
4206 13060 : switch (GET_MODE (x2))
4207 : {
4208 252 : case E_QImode:
4209 252 : if (!nonimmediate_operand (operands[1], E_QImode)
4210 252 : || !x86_64_general_operand (operands[2], E_QImode))
4211 0 : return -1;
4212 : return 3;
4213 :
4214 19 : case E_HImode:
4215 19 : if (!nonimmediate_operand (operands[1], E_HImode)
4216 19 : || !x86_64_general_operand (operands[2], E_HImode))
4217 0 : return -1;
4218 : return 4;
4219 :
4220 12789 : case E_SImode:
4221 12789 : if (!nonimmediate_operand (operands[1], E_SImode)
4222 12789 : || !x86_64_general_operand (operands[2], E_SImode))
4223 1175 : return -1;
4224 : return 5;
4225 :
4226 : default:
4227 : return -1;
4228 : }
4229 :
4230 : default:
4231 : return -1;
4232 : }
4233 : }
4234 :
4235 : int
4236 0 : pattern1063 (rtx x1)
4237 : {
4238 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4239 0 : rtx x2;
4240 0 : int res ATTRIBUTE_UNUSED;
4241 0 : if (!register_operand (operands[0], E_V2SFmode)
4242 0 : || GET_MODE (x1) != E_V2SFmode)
4243 : return -1;
4244 0 : x2 = XEXP (x1, 0);
4245 0 : if (GET_MODE (x2) != E_V2SFmode
4246 0 : || !register_operand (operands[1], E_V2SFmode)
4247 0 : || !nonimmediate_operand (operands[2], E_V2SFmode))
4248 0 : return -1;
4249 : return 0;
4250 : }
4251 :
4252 : int
4253 1053 : pattern1067 (rtx x1)
4254 : {
4255 1053 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4256 1053 : rtx x2, x3, x4, x5, x6, x7, x8;
4257 1053 : int res ATTRIBUTE_UNUSED;
4258 1053 : x2 = XEXP (x1, 0);
4259 1053 : x3 = XEXP (x2, 1);
4260 1053 : if (GET_MODE (x3) != E_QImode)
4261 : return -1;
4262 1053 : x4 = XEXP (x1, 1);
4263 1053 : operands[3] = x4;
4264 1053 : switch (GET_CODE (x3))
4265 : {
4266 541 : case SUBREG:
4267 541 : if (maybe_ne (SUBREG_BYTE (x3), 0))
4268 : return -1;
4269 541 : x5 = XEXP (x3, 0);
4270 541 : if (GET_CODE (x5) != AND)
4271 : return -1;
4272 162 : x6 = XEXP (x5, 0);
4273 162 : operands[1] = x6;
4274 162 : if (!int248_register_operand (operands[1], E_VOIDmode))
4275 : return -1;
4276 157 : x7 = XEXP (x5, 1);
4277 157 : operands[2] = x7;
4278 157 : if (!const_int_operand (operands[2], E_VOIDmode))
4279 : return -1;
4280 157 : switch (GET_MODE (operands[0]))
4281 : {
4282 64 : case E_SImode:
4283 64 : return pattern372 (x1,
4284 64 : E_SImode); /* [-1, 0] */
4285 :
4286 65 : case E_DImode:
4287 65 : if (pattern372 (x1,
4288 : E_DImode) != 0)
4289 : return -1;
4290 : return 1;
4291 :
4292 : default:
4293 : return -1;
4294 : }
4295 :
4296 3 : case AND:
4297 3 : x5 = XEXP (x3, 0);
4298 3 : operands[1] = x5;
4299 3 : if (!register_operand (operands[1], E_QImode))
4300 : return -1;
4301 3 : x8 = XEXP (x3, 1);
4302 3 : operands[2] = x8;
4303 3 : if (!const_int_operand (operands[2], E_QImode))
4304 : return -1;
4305 3 : switch (GET_MODE (operands[0]))
4306 : {
4307 3 : case E_SImode:
4308 3 : if (pattern372 (x1,
4309 : E_SImode) != 0)
4310 : return -1;
4311 : return 2;
4312 :
4313 0 : case E_DImode:
4314 0 : if (pattern372 (x1,
4315 : E_DImode) != 0)
4316 : return -1;
4317 : return 3;
4318 :
4319 : default:
4320 : return -1;
4321 : }
4322 :
4323 : default:
4324 : return -1;
4325 : }
4326 : }
4327 :
4328 : int
4329 323 : pattern1087 (rtx x1, machine_mode i1, machine_mode i2)
4330 : {
4331 323 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4332 323 : rtx x2;
4333 323 : int res ATTRIBUTE_UNUSED;
4334 323 : if (!register_operand (operands[0], i1)
4335 323 : || GET_MODE (x1) != i1)
4336 : return -1;
4337 311 : x2 = XEXP (x1, 0);
4338 311 : if (GET_MODE (x2) != i1
4339 311 : || !nonimmediate_operand (operands[1], i2)
4340 618 : || !register_operand (operands[3], i1))
4341 53 : return -1;
4342 : return 0;
4343 : }
4344 :
4345 : int
4346 0 : pattern1095 (rtx x1)
4347 : {
4348 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4349 0 : rtx x2;
4350 0 : int res ATTRIBUTE_UNUSED;
4351 0 : switch (GET_MODE (x1))
4352 : {
4353 0 : case E_DImode:
4354 0 : x2 = XEXP (x1, 0);
4355 0 : if (GET_MODE (x2) != E_DImode
4356 0 : || !register_operand (operands[1], E_V64QImode)
4357 0 : || !nonimmediate_operand (operands[2], E_V64QImode)
4358 0 : || !register_operand (operands[3], E_DImode))
4359 0 : return -1;
4360 : return 0;
4361 :
4362 0 : case E_SImode:
4363 0 : x2 = XEXP (x1, 0);
4364 0 : if (GET_MODE (x2) != E_SImode
4365 0 : || !register_operand (operands[3], E_SImode))
4366 0 : return -1;
4367 0 : switch (GET_MODE (operands[1]))
4368 : {
4369 0 : case E_V32QImode:
4370 0 : if (!register_operand (operands[1], E_V32QImode)
4371 0 : || !nonimmediate_operand (operands[2], E_V32QImode))
4372 0 : return -1;
4373 : return 1;
4374 :
4375 0 : case E_V32HImode:
4376 0 : if (!register_operand (operands[1], E_V32HImode)
4377 0 : || !nonimmediate_operand (operands[2], E_V32HImode))
4378 0 : return -1;
4379 : return 2;
4380 :
4381 : default:
4382 : return -1;
4383 : }
4384 :
4385 0 : case E_HImode:
4386 0 : x2 = XEXP (x1, 0);
4387 0 : if (GET_MODE (x2) != E_HImode
4388 0 : || !register_operand (operands[3], E_HImode))
4389 0 : return -1;
4390 0 : switch (GET_MODE (operands[1]))
4391 : {
4392 0 : case E_V16QImode:
4393 0 : if (!register_operand (operands[1], E_V16QImode)
4394 0 : || !nonimmediate_operand (operands[2], E_V16QImode))
4395 0 : return -1;
4396 : return 3;
4397 :
4398 0 : case E_V16HImode:
4399 0 : if (!register_operand (operands[1], E_V16HImode)
4400 0 : || !nonimmediate_operand (operands[2], E_V16HImode))
4401 0 : return -1;
4402 : return 4;
4403 :
4404 0 : case E_V16SImode:
4405 0 : if (!register_operand (operands[1], E_V16SImode)
4406 0 : || !nonimmediate_operand (operands[2], E_V16SImode))
4407 0 : return -1;
4408 : return 5;
4409 :
4410 : default:
4411 : return -1;
4412 : }
4413 :
4414 0 : case E_QImode:
4415 0 : x2 = XEXP (x1, 0);
4416 0 : if (GET_MODE (x2) != E_QImode
4417 0 : || !register_operand (operands[3], E_QImode))
4418 0 : return -1;
4419 0 : switch (GET_MODE (operands[1]))
4420 : {
4421 0 : case E_V8HImode:
4422 0 : if (!register_operand (operands[1], E_V8HImode)
4423 0 : || !nonimmediate_operand (operands[2], E_V8HImode))
4424 0 : return -1;
4425 : return 6;
4426 :
4427 0 : case E_V8SImode:
4428 0 : if (!register_operand (operands[1], E_V8SImode)
4429 0 : || !nonimmediate_operand (operands[2], E_V8SImode))
4430 0 : return -1;
4431 : return 7;
4432 :
4433 0 : case E_V4SImode:
4434 0 : if (!register_operand (operands[1], E_V4SImode)
4435 0 : || !nonimmediate_operand (operands[2], E_V4SImode))
4436 0 : return -1;
4437 : return 8;
4438 :
4439 0 : case E_V8DImode:
4440 0 : if (!register_operand (operands[1], E_V8DImode)
4441 0 : || !nonimmediate_operand (operands[2], E_V8DImode))
4442 0 : return -1;
4443 : return 9;
4444 :
4445 0 : case E_V4DImode:
4446 0 : if (!register_operand (operands[1], E_V4DImode)
4447 0 : || !nonimmediate_operand (operands[2], E_V4DImode))
4448 0 : return -1;
4449 : return 10;
4450 :
4451 0 : case E_V2DImode:
4452 0 : if (!register_operand (operands[1], E_V2DImode)
4453 0 : || !nonimmediate_operand (operands[2], E_V2DImode))
4454 0 : return -1;
4455 : return 11;
4456 :
4457 : default:
4458 : return -1;
4459 : }
4460 :
4461 : default:
4462 : return -1;
4463 : }
4464 : }
4465 :
4466 : int
4467 958 : pattern1140 (rtx x1)
4468 : {
4469 958 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4470 958 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4471 958 : rtx x10, x11;
4472 958 : int res ATTRIBUTE_UNUSED;
4473 958 : x2 = XVECEXP (x1, 0, 0);
4474 958 : x3 = XEXP (x2, 2);
4475 958 : if (XWINT (x3, 0) != 1L)
4476 : return -1;
4477 958 : x4 = XEXP (x2, 0);
4478 958 : x5 = XEXP (x4, 0);
4479 958 : x6 = XVECEXP (x5, 0, 0);
4480 958 : operands[1] = x6;
4481 958 : x7 = XVECEXP (x5, 0, 1);
4482 958 : operands[2] = x7;
4483 958 : x8 = XEXP (x4, 1);
4484 958 : operands[3] = x8;
4485 958 : x9 = XEXP (x4, 2);
4486 958 : operands[4] = x9;
4487 958 : if (!register_operand (operands[4], E_QImode))
4488 : return -1;
4489 940 : x10 = XVECEXP (x1, 0, 1);
4490 940 : operands[5] = x10;
4491 940 : if (!const48_operand (operands[5], E_SImode))
4492 : return -1;
4493 940 : x11 = XEXP (x2, 1);
4494 940 : if (!rtx_equal_p (x11, operands[1]))
4495 : return -1;
4496 940 : switch (GET_MODE (operands[0]))
4497 : {
4498 520 : case E_V8HFmode:
4499 520 : return pattern1139 (x1,
4500 520 : E_V8HFmode); /* [-1, 0] */
4501 :
4502 210 : case E_V4SFmode:
4503 210 : if (pattern1139 (x1,
4504 : E_V4SFmode) != 0)
4505 : return -1;
4506 : return 1;
4507 :
4508 210 : case E_V2DFmode:
4509 210 : if (pattern1139 (x1,
4510 : E_V2DFmode) != 0)
4511 : return -1;
4512 : return 2;
4513 :
4514 : default:
4515 : return -1;
4516 : }
4517 : }
4518 :
4519 : int
4520 7618 : pattern1157 (rtx x1)
4521 : {
4522 7618 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4523 7618 : rtx x2, x3, x4, x5;
4524 7618 : int res ATTRIBUTE_UNUSED;
4525 7618 : x2 = XEXP (x1, 2);
4526 7618 : x3 = XEXP (x2, 0);
4527 7618 : if (!rtx_equal_p (x3, operands[1]))
4528 : return -1;
4529 7618 : x4 = XEXP (x2, 1);
4530 7618 : x5 = XEXP (x4, 0);
4531 7618 : if (!rtx_equal_p (x5, operands[2]))
4532 : return -1;
4533 7596 : switch (GET_MODE (operands[0]))
4534 : {
4535 468 : case E_V16QImode:
4536 468 : return pattern1156 (x1,
4537 468 : E_V16QImode); /* [-1, 0] */
4538 :
4539 410 : case E_V8HImode:
4540 410 : if (pattern1156 (x1,
4541 : E_V8HImode) != 0)
4542 : return -1;
4543 : return 1;
4544 :
4545 4412 : case E_V4SImode:
4546 4412 : if (pattern1156 (x1,
4547 : E_V4SImode) != 0)
4548 : return -1;
4549 : return 2;
4550 :
4551 2306 : case E_V2DImode:
4552 2306 : if (pattern1156 (x1,
4553 : E_V2DImode) != 0)
4554 : return -1;
4555 : return 3;
4556 :
4557 : default:
4558 : return -1;
4559 : }
4560 : }
4561 :
4562 : int
4563 0 : pattern1168 (rtx x1, machine_mode i1)
4564 : {
4565 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4566 0 : rtx x2, x3;
4567 0 : int res ATTRIBUTE_UNUSED;
4568 0 : if (!nonimmediate_operand (operands[0], i1)
4569 0 : || GET_MODE (x1) != i1)
4570 : return -1;
4571 0 : x2 = XEXP (x1, 0);
4572 0 : if (GET_MODE (x2) != i1)
4573 : return -1;
4574 0 : x3 = XEXP (x2, 0);
4575 0 : if (GET_MODE (x3) != i1
4576 0 : || !nonimmediate_operand (operands[1], i1)
4577 0 : || !general_operand (operands[2], i1))
4578 0 : return -1;
4579 : return 0;
4580 : }
4581 :
4582 : int
4583 4266 : pattern1176 (rtx x1)
4584 : {
4585 4266 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4586 4266 : rtx x2, x3, x4;
4587 4266 : int res ATTRIBUTE_UNUSED;
4588 4266 : x2 = XEXP (x1, 1);
4589 4266 : x3 = XEXP (x2, 0);
4590 4266 : x4 = XEXP (x3, 1);
4591 4266 : operands[3] = x4;
4592 4266 : if (!const_int_operand (operands[3], E_VOIDmode))
4593 : return -1;
4594 4265 : return pattern206 (x1); /* [-1, 3] */
4595 : }
4596 :
4597 : int
4598 23292 : pattern1182 (rtx x1, machine_mode i1, int i2)
4599 : {
4600 23292 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4601 23292 : rtx x2, x3, x4, x5, x6;
4602 23292 : int res ATTRIBUTE_UNUSED;
4603 23292 : x2 = XVECEXP (x1, 0, 1);
4604 23292 : x3 = XEXP (x2, 1);
4605 23292 : x4 = XVECEXP (x3, 0, 0);
4606 23292 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4607 : return -1;
4608 23292 : x5 = XVECEXP (x1, 0, 2);
4609 23292 : if (GET_CODE (x5) != SET)
4610 : return -1;
4611 23292 : x6 = XEXP (x5, 1);
4612 23292 : return pattern1181 (x6,
4613 : i1,
4614 23292 : i2); /* [-1, 0] */
4615 : }
4616 :
4617 : int
4618 26154 : pattern1189 (rtx x1)
4619 : {
4620 26154 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4621 26154 : rtx x2, x3;
4622 26154 : int res ATTRIBUTE_UNUSED;
4623 26154 : x2 = XEXP (x1, 1);
4624 26154 : switch (GET_CODE (x2))
4625 : {
4626 4287 : case SUBREG:
4627 4287 : if (maybe_ne (SUBREG_BYTE (x2), 0)
4628 4287 : || GET_MODE (x2) != E_QImode)
4629 : return -1;
4630 4287 : x3 = XEXP (x1, 0);
4631 4287 : operands[1] = x3;
4632 4287 : return pattern1177 (x1); /* [-1, 11] */
4633 :
4634 : case CONST_INT:
4635 : return 12;
4636 :
4637 : default:
4638 : return -1;
4639 : }
4640 : }
4641 :
4642 : int
4643 6 : pattern1196 (rtx x1, machine_mode i1, machine_mode i2)
4644 : {
4645 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4646 6 : rtx x2;
4647 6 : int res ATTRIBUTE_UNUSED;
4648 6 : if (!memory_operand (operands[0], i2)
4649 6 : || GET_MODE (x1) != i2)
4650 : return -1;
4651 6 : x2 = XEXP (x1, 0);
4652 6 : if (GET_MODE (x2) != i2
4653 6 : || !nonmemory_operand (operands[1], i1))
4654 0 : return -1;
4655 : return 0;
4656 : }
4657 :
4658 : int
4659 37341 : pattern1203 (rtx x1, machine_mode i1)
4660 : {
4661 37341 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4662 37341 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4663 37341 : rtx x10, x11, x12;
4664 37341 : int res ATTRIBUTE_UNUSED;
4665 37341 : x2 = XVECEXP (x1, 0, 0);
4666 37341 : x3 = XEXP (x2, 1);
4667 37341 : if (GET_MODE (x3) != i1)
4668 : return -1;
4669 35723 : x4 = XEXP (x3, 0);
4670 35723 : if (GET_CODE (x4) != PLUS
4671 17 : || GET_MODE (x4) != i1)
4672 : return -1;
4673 17 : x5 = XEXP (x4, 0);
4674 17 : if (!ix86_carry_flag_operator (x5, i1))
4675 : return -1;
4676 17 : operands[4] = x5;
4677 17 : x6 = XEXP (x5, 1);
4678 17 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4679 : return -1;
4680 17 : x7 = XVECEXP (x1, 0, 1);
4681 17 : if (GET_CODE (x7) != CLOBBER)
4682 : return -1;
4683 17 : x8 = XEXP (x7, 0);
4684 17 : if (GET_CODE (x8) != REG
4685 17 : || REGNO (x8) != 17
4686 34 : || GET_MODE (x8) != E_CCmode)
4687 : return -1;
4688 17 : x9 = XEXP (x5, 0);
4689 17 : operands[3] = x9;
4690 17 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4691 : return -1;
4692 17 : x10 = XEXP (x3, 1);
4693 17 : operands[2] = x10;
4694 17 : if (!memory_operand (operands[2], i1))
4695 : return -1;
4696 6 : x11 = XEXP (x4, 1);
4697 6 : if (!rtx_equal_p (x11, operands[0]))
4698 : return -1;
4699 6 : x12 = XEXP (x2, 0);
4700 6 : return pattern1202 (x12,
4701 6 : i1); /* [-1, 1] */
4702 : }
4703 :
4704 : int
4705 2088 : pattern1213 (rtx x1, machine_mode i1)
4706 : {
4707 2088 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4708 2088 : int res ATTRIBUTE_UNUSED;
4709 2088 : if (!register_operand (operands[0], i1)
4710 2088 : || GET_MODE (x1) != i1)
4711 : return -1;
4712 1707 : return pattern1212 (); /* [-1, 2] */
4713 : }
4714 :
4715 : int
4716 189 : pattern1217 (rtx x1, machine_mode i1)
4717 : {
4718 189 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4719 189 : int res ATTRIBUTE_UNUSED;
4720 189 : if (!nonimmediate_operand (operands[0], i1)
4721 189 : || GET_MODE (x1) != i1
4722 189 : || !nonimmediate_operand (operands[1], i1)
4723 366 : || !ix86_carry_flag_unset_operator (operands[2], i1))
4724 40 : return -1;
4725 : return 0;
4726 : }
4727 :
4728 : int
4729 116 : pattern1223 (rtx x1, machine_mode i1)
4730 : {
4731 116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4732 116 : rtx x2, x3;
4733 116 : int res ATTRIBUTE_UNUSED;
4734 116 : if (!register_operand (operands[0], i1)
4735 116 : || GET_MODE (x1) != i1)
4736 : return -1;
4737 104 : x2 = XEXP (x1, 0);
4738 104 : if (GET_MODE (x2) != i1)
4739 : return -1;
4740 104 : x3 = XEXP (x2, 0);
4741 104 : if (GET_MODE (x3) != i1
4742 104 : || !nonimmediate_operand (operands[1], i1)
4743 104 : || !nonimm_or_0_operand (operands[3], i1)
4744 208 : || !register_operand (operands[2], i1))
4745 0 : return -1;
4746 : return 0;
4747 : }
4748 :
4749 : int
4750 652 : pattern1230 (rtx x1)
4751 : {
4752 652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4753 652 : int res ATTRIBUTE_UNUSED;
4754 652 : if (!const48_operand (operands[3], E_SImode))
4755 : return -1;
4756 652 : switch (GET_MODE (operands[0]))
4757 : {
4758 130 : case E_V32HFmode:
4759 130 : return pattern1229 (x1,
4760 130 : E_V32HFmode); /* [-1, 0] */
4761 :
4762 0 : case E_V16HFmode:
4763 0 : if (pattern1229 (x1,
4764 : E_V16HFmode) != 0)
4765 : return -1;
4766 : return 1;
4767 :
4768 0 : case E_V8HFmode:
4769 0 : if (pattern1229 (x1,
4770 : E_V8HFmode) != 0)
4771 : return -1;
4772 : return 2;
4773 :
4774 282 : case E_V16SFmode:
4775 282 : if (pattern1229 (x1,
4776 : E_V16SFmode) != 0)
4777 : return -1;
4778 : return 3;
4779 :
4780 0 : case E_V8SFmode:
4781 0 : if (pattern1229 (x1,
4782 : E_V8SFmode) != 0)
4783 : return -1;
4784 : return 4;
4785 :
4786 0 : case E_V4SFmode:
4787 0 : if (pattern1229 (x1,
4788 : E_V4SFmode) != 0)
4789 : return -1;
4790 : return 5;
4791 :
4792 240 : case E_V8DFmode:
4793 240 : if (pattern1229 (x1,
4794 : E_V8DFmode) != 0)
4795 : return -1;
4796 : return 6;
4797 :
4798 0 : case E_V4DFmode:
4799 0 : if (pattern1229 (x1,
4800 : E_V4DFmode) != 0)
4801 : return -1;
4802 : return 7;
4803 :
4804 0 : case E_V2DFmode:
4805 0 : if (pattern1229 (x1,
4806 : E_V2DFmode) != 0)
4807 : return -1;
4808 : return 8;
4809 :
4810 : default:
4811 : return -1;
4812 : }
4813 : }
4814 :
4815 : int
4816 159102 : pattern1243 (rtx x1, machine_mode i1)
4817 : {
4818 159102 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4819 159102 : rtx x2, x3;
4820 159102 : int res ATTRIBUTE_UNUSED;
4821 159102 : if (!nonimmediate_operand (operands[0], i1)
4822 57278 : || GET_MODE (x1) != i1
4823 216380 : || !nonimmediate_operand (operands[1], i1))
4824 122381 : return -1;
4825 36721 : x2 = XEXP (x1, 1);
4826 36721 : x3 = XEXP (x2, 0);
4827 36721 : return pattern1242 (x3); /* [-1, 2] */
4828 : }
4829 :
4830 : int
4831 24 : pattern1247 (rtx x1, rtx_code i1)
4832 : {
4833 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4834 24 : rtx x2, x3, x4, x5, x6, x7;
4835 24 : int res ATTRIBUTE_UNUSED;
4836 24 : x2 = XVECEXP (x1, 0, 1);
4837 24 : x3 = XEXP (x2, 1);
4838 24 : if (GET_MODE (x3) != E_DImode)
4839 : return -1;
4840 10 : x4 = XEXP (x3, 0);
4841 10 : if (GET_CODE (x4) != i1
4842 0 : || GET_MODE (x4) != E_SImode)
4843 : return -1;
4844 0 : x5 = XVECEXP (x1, 0, 0);
4845 0 : x6 = XEXP (x5, 1);
4846 0 : x7 = XEXP (x6, 0);
4847 0 : if (GET_MODE (x7) != E_SImode)
4848 0 : return -1;
4849 : return 0;
4850 : }
4851 :
4852 : int
4853 211 : pattern1252 (rtx x1, machine_mode i1)
4854 : {
4855 211 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4856 211 : rtx x2, x3, x4;
4857 211 : int res ATTRIBUTE_UNUSED;
4858 211 : if (GET_MODE (x1) != i1)
4859 : return -1;
4860 211 : x2 = XEXP (x1, 0);
4861 211 : if (GET_MODE (x2) != i1)
4862 : return -1;
4863 211 : x3 = XEXP (x1, 1);
4864 211 : if (GET_MODE (x3) != i1)
4865 : return -1;
4866 211 : x4 = XEXP (x3, 0);
4867 211 : if (!register_operand (x4, i1))
4868 : return -1;
4869 : return 0;
4870 : }
4871 :
4872 : int
4873 595 : pattern1257 (rtx x1)
4874 : {
4875 595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4876 595 : rtx x2, x3, x4, x5;
4877 595 : int res ATTRIBUTE_UNUSED;
4878 595 : x2 = XEXP (x1, 0);
4879 595 : x3 = XEXP (x2, 0);
4880 595 : x4 = XEXP (x3, 1);
4881 595 : operands[2] = x4;
4882 595 : if (!register_operand (operands[2], E_QImode))
4883 : return -1;
4884 516 : x5 = XEXP (x1, 1);
4885 516 : operands[1] = x5;
4886 516 : switch (GET_MODE (operands[0]))
4887 : {
4888 319 : case E_SImode:
4889 319 : return pattern1256 (x1,
4890 319 : E_SImode); /* [-1, 0] */
4891 :
4892 185 : case E_DImode:
4893 185 : if (pattern1256 (x1,
4894 : E_DImode) != 0)
4895 : return -1;
4896 : return 1;
4897 :
4898 : default:
4899 : return -1;
4900 : }
4901 : }
4902 :
4903 : int
4904 22948 : pattern1267 (rtx x1, machine_mode i1)
4905 : {
4906 22948 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4907 22948 : rtx x2, x3, x4, x5, x6, x7, x8;
4908 22948 : int res ATTRIBUTE_UNUSED;
4909 22948 : x2 = XVECEXP (x1, 0, 0);
4910 22948 : x3 = XEXP (x2, 1);
4911 22948 : x4 = XEXP (x3, 0);
4912 22948 : if (!plusminuslogic_operator (x4, i1))
4913 : return -1;
4914 18618 : operands[3] = x4;
4915 18618 : x5 = XEXP (x3, 1);
4916 18618 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4917 : return -1;
4918 17219 : x6 = XEXP (x2, 0);
4919 17219 : if (GET_CODE (x6) != REG
4920 17219 : || REGNO (x6) != 17)
4921 : return -1;
4922 17219 : x7 = XVECEXP (x1, 0, 1);
4923 17219 : if (GET_CODE (x7) != SET)
4924 : return -1;
4925 12979 : x8 = XEXP (x4, 1);
4926 12979 : operands[2] = x8;
4927 12979 : if (!x86_64_nonmemory_operand (operands[2], i1))
4928 : return -1;
4929 : return 0;
4930 : }
4931 :
4932 : int
4933 325 : pattern1275 (rtx x1, machine_mode i1, machine_mode i2)
4934 : {
4935 325 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4936 325 : rtx x2, x3;
4937 325 : int res ATTRIBUTE_UNUSED;
4938 325 : if (GET_CODE (x1) != SIGN_EXTEND
4939 325 : || GET_MODE (x1) != i2)
4940 : return -1;
4941 325 : x2 = XEXP (x1, 0);
4942 325 : if (GET_CODE (x2) != VEC_SELECT
4943 325 : || GET_MODE (x2) != i1)
4944 : return -1;
4945 325 : x3 = XEXP (x2, 1);
4946 325 : if (GET_CODE (x3) != PARALLEL)
4947 0 : return -1;
4948 : return 0;
4949 : }
4950 :
4951 : int
4952 1442 : pattern1281 (rtx x1, machine_mode i1, machine_mode i2)
4953 : {
4954 1442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4955 1442 : rtx x2, x3;
4956 1442 : int res ATTRIBUTE_UNUSED;
4957 1442 : if (!register_operand (operands[0], i1)
4958 1442 : || GET_MODE (x1) != i1)
4959 : return -1;
4960 1333 : x2 = XEXP (x1, 0);
4961 1333 : if (GET_MODE (x2) != i1
4962 1333 : || !nonimmediate_operand (operands[1], i1)
4963 2666 : || !vector_operand (operands[2], i1))
4964 0 : return -1;
4965 1333 : x3 = XVECEXP (x2, 0, 2);
4966 1333 : if (GET_MODE (x3) != i1
4967 1333 : || !register_operand (operands[4], i2))
4968 57 : return -1;
4969 : return 0;
4970 : }
4971 :
4972 : int
4973 0 : pattern1289 (rtx x1, machine_mode i1, machine_mode i2)
4974 : {
4975 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4976 0 : rtx x2, x3, x4;
4977 0 : int res ATTRIBUTE_UNUSED;
4978 0 : if (!register_operand (operands[0], i1)
4979 0 : || GET_MODE (x1) != i1)
4980 : return -1;
4981 0 : x2 = XEXP (x1, 0);
4982 0 : if (GET_MODE (x2) != i1)
4983 : return -1;
4984 0 : x3 = XEXP (x2, 0);
4985 0 : if (GET_MODE (x3) != i1)
4986 : return -1;
4987 0 : x4 = XEXP (x3, 0);
4988 0 : if (GET_MODE (x4) != i2
4989 0 : || !nonimmediate_operand (operands[1], i2)
4990 0 : || !nonimm_or_0_operand (operands[3], i1)
4991 0 : || !register_operand (operands[2], i1))
4992 0 : return -1;
4993 : return 0;
4994 : }
4995 :
4996 : int
4997 787 : pattern1300 (rtx x1, machine_mode i1, machine_mode i2)
4998 : {
4999 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5000 787 : rtx x2, x3;
5001 787 : int res ATTRIBUTE_UNUSED;
5002 787 : if (!register_operand (operands[0], i2)
5003 787 : || GET_MODE (x1) != i2)
5004 : return -1;
5005 763 : x2 = XEXP (x1, 0);
5006 763 : if (GET_MODE (x2) != i2
5007 763 : || !nonimmediate_operand (operands[1], i2))
5008 27 : return -1;
5009 736 : x3 = XEXP (x2, 2);
5010 736 : return pattern1299 (x3,
5011 : i1,
5012 736 : i2); /* [-1, 0] */
5013 : }
5014 :
5015 : int
5016 2854 : pattern1308 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5017 : {
5018 2854 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5019 2854 : rtx x2, x3;
5020 2854 : int res ATTRIBUTE_UNUSED;
5021 2854 : if (!register_operand (operands[0], i2)
5022 2854 : || GET_MODE (x1) != i2)
5023 : return -1;
5024 2744 : x2 = XVECEXP (x1, 0, 0);
5025 2744 : if (GET_MODE (x2) != i2)
5026 : return -1;
5027 2744 : x3 = XEXP (x2, 0);
5028 2744 : if (GET_MODE (x3) != i2
5029 2744 : || !register_operand (operands[1], i3)
5030 2712 : || !nonimm_or_0_operand (operands[2], i2)
5031 5420 : || !register_operand (operands[3], i1))
5032 152 : return -1;
5033 : return 0;
5034 : }
5035 :
5036 : int
5037 972 : pattern1316 (rtx x1)
5038 : {
5039 972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5040 972 : rtx x2, x3;
5041 972 : int res ATTRIBUTE_UNUSED;
5042 972 : if (!register_operand (operands[0], E_V16HFmode)
5043 972 : || GET_MODE (x1) != E_V16HFmode)
5044 : return -1;
5045 944 : x2 = XVECEXP (x1, 0, 0);
5046 944 : if (GET_MODE (x2) != E_V16HFmode)
5047 : return -1;
5048 944 : x3 = XEXP (x2, 0);
5049 944 : if (GET_MODE (x3) != E_V16HFmode
5050 944 : || !nonimm_or_0_operand (operands[2], E_V16HFmode)
5051 1888 : || !register_operand (operands[3], E_HImode))
5052 20 : return -1;
5053 924 : switch (GET_MODE (operands[1]))
5054 : {
5055 0 : case E_V16HImode:
5056 0 : if (!register_operand (operands[1], E_V16HImode))
5057 : return -1;
5058 : return 0;
5059 :
5060 924 : case E_V16SImode:
5061 924 : if (!register_operand (operands[1], E_V16SImode))
5062 : return -1;
5063 : return 1;
5064 :
5065 : default:
5066 : return -1;
5067 : }
5068 : }
5069 :
5070 : int
5071 887 : pattern1325 (rtx x1, machine_mode i1)
5072 : {
5073 887 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5074 887 : rtx x2, x3;
5075 887 : int res ATTRIBUTE_UNUSED;
5076 887 : if (!register_operand (operands[0], i1)
5077 887 : || GET_MODE (x1) != i1
5078 1774 : || !register_operand (operands[1], i1))
5079 481 : return -1;
5080 406 : x2 = XEXP (x1, 2);
5081 406 : x3 = XEXP (x2, 0);
5082 406 : if (GET_MODE (x3) != i1
5083 406 : || !register_operand (operands[2], i1))
5084 100 : return -1;
5085 : return 0;
5086 : }
5087 :
5088 : int
5089 92603 : pattern1329 (rtx x1)
5090 : {
5091 92603 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5092 92603 : int res ATTRIBUTE_UNUSED;
5093 92603 : switch (GET_MODE (x1))
5094 : {
5095 62896 : case E_QImode:
5096 62896 : if (!nonimmediate_operand (operands[1], E_QImode)
5097 61848 : || !general_operand (operands[2], E_QImode)
5098 124744 : || !scratch_operand (operands[0], E_QImode))
5099 1108 : return -1;
5100 : return 0;
5101 :
5102 296 : case E_HImode:
5103 296 : if (!nonimmediate_operand (operands[1], E_HImode)
5104 296 : || !general_operand (operands[2], E_HImode)
5105 592 : || !scratch_operand (operands[0], E_HImode))
5106 45 : return -1;
5107 : return 1;
5108 :
5109 16070 : case E_SImode:
5110 16070 : if (!nonimmediate_operand (operands[1], E_SImode)
5111 12821 : || !x86_64_general_operand (operands[2], E_SImode)
5112 24038 : || !scratch_operand (operands[0], E_SImode))
5113 8702 : return -1;
5114 : return 2;
5115 :
5116 13341 : case E_DImode:
5117 13341 : if (!nonimmediate_operand (operands[1], E_DImode)
5118 10110 : || !x86_64_general_operand (operands[2], E_DImode)
5119 18283 : || !scratch_operand (operands[0], E_DImode))
5120 8527 : return -1;
5121 : return 3;
5122 :
5123 : default:
5124 : return -1;
5125 : }
5126 : }
5127 :
5128 : int
5129 17615 : pattern1346 (rtx x1)
5130 : {
5131 17615 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5132 17615 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5133 17615 : rtx x10, x11, x12;
5134 17615 : int res ATTRIBUTE_UNUSED;
5135 17615 : x2 = XEXP (x1, 1);
5136 17615 : x3 = XEXP (x2, 1);
5137 17615 : if (GET_CODE (x3) != LABEL_REF)
5138 : return -1;
5139 13914 : x4 = XEXP (x2, 2);
5140 13914 : if (GET_CODE (x4) != PC)
5141 : return -1;
5142 13914 : x5 = XEXP (x1, 0);
5143 13914 : if (GET_CODE (x5) != PC)
5144 : return -1;
5145 13914 : x6 = XEXP (x2, 0);
5146 13914 : operands[0] = x6;
5147 13914 : x7 = XEXP (x6, 0);
5148 13914 : x8 = XEXP (x7, 0);
5149 13914 : operands[1] = x8;
5150 13914 : x9 = XEXP (x7, 2);
5151 13914 : switch (GET_CODE (x9))
5152 : {
5153 : case CONST_INT:
5154 : case CONST_WIDE_INT:
5155 : case CONST_POLY_INT:
5156 : case CONST_FIXED:
5157 : case CONST_DOUBLE:
5158 : case CONST_VECTOR:
5159 : case CONST:
5160 : case REG:
5161 : case SUBREG:
5162 : case LABEL_REF:
5163 : case SYMBOL_REF:
5164 : case HIGH:
5165 : return 0;
5166 :
5167 110 : case AND:
5168 110 : if (GET_MODE (x9) != E_QImode)
5169 : return -1;
5170 110 : x10 = XEXP (x9, 0);
5171 110 : operands[2] = x10;
5172 110 : if (!register_operand (operands[2], E_QImode))
5173 : return -1;
5174 56 : x11 = XEXP (x9, 1);
5175 56 : operands[3] = x11;
5176 56 : if (!const_int_operand (operands[3], E_VOIDmode))
5177 : return -1;
5178 56 : x12 = XEXP (x3, 0);
5179 56 : operands[4] = x12;
5180 56 : switch (GET_MODE (x7))
5181 : {
5182 18 : case E_SImode:
5183 18 : if (!register_operand (operands[1], E_SImode))
5184 : return -1;
5185 : return 1;
5186 :
5187 38 : case E_DImode:
5188 38 : if (!register_operand (operands[1], E_DImode))
5189 : return -1;
5190 : return 2;
5191 :
5192 : default:
5193 : return -1;
5194 : }
5195 :
5196 : default:
5197 : return -1;
5198 : }
5199 : }
5200 :
5201 : int
5202 783 : pattern1371 (rtx x1)
5203 : {
5204 783 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5205 783 : rtx x2, x3, x4, x5, x6, x7, x8;
5206 783 : int res ATTRIBUTE_UNUSED;
5207 783 : if (!nonimmediate_operand (operands[0], E_DImode))
5208 : return -1;
5209 783 : x2 = XEXP (x1, 1);
5210 783 : if (GET_MODE (x2) != E_DImode)
5211 : return -1;
5212 783 : x3 = XEXP (x2, 0);
5213 783 : if (GET_MODE (x3) != E_TImode)
5214 : return -1;
5215 783 : x4 = XEXP (x3, 0);
5216 783 : if (GET_MODE (x4) != E_TImode)
5217 : return -1;
5218 783 : x5 = XEXP (x4, 0);
5219 783 : operands[1] = x5;
5220 783 : if (!register_operand (operands[1], E_DImode))
5221 : return -1;
5222 783 : x6 = XEXP (x3, 1);
5223 783 : operands[3] = x6;
5224 783 : if (!const_0_to_255_operand (operands[3], E_QImode))
5225 : return -1;
5226 783 : x7 = XEXP (x1, 0);
5227 783 : x8 = XEXP (x7, 0);
5228 783 : if (!rtx_equal_p (x8, operands[0]))
5229 : return -1;
5230 : return 0;
5231 : }
5232 :
5233 : int
5234 258 : pattern1379 (rtx x1, machine_mode i1, machine_mode i2)
5235 : {
5236 258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5237 258 : rtx x2;
5238 258 : int res ATTRIBUTE_UNUSED;
5239 258 : if (!register_operand (operands[0], i1)
5240 258 : || GET_MODE (x1) != i1)
5241 : return -1;
5242 249 : x2 = XEXP (x1, 0);
5243 249 : if (GET_MODE (x2) != i1
5244 249 : || !register_operand (operands[1], i1)
5245 249 : || !register_operand (operands[2], i2)
5246 249 : || !nonimmediate_operand (operands[3], i2)
5247 498 : || !const0_operand (operands[4], i1))
5248 0 : return -1;
5249 : return 0;
5250 : }
5251 :
5252 : int
5253 436 : pattern1387 (rtx x1, machine_mode i1)
5254 : {
5255 436 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5256 436 : rtx x2;
5257 436 : int res ATTRIBUTE_UNUSED;
5258 436 : if (!register_operand (operands[0], i1)
5259 436 : || GET_MODE (x1) != i1)
5260 : return -1;
5261 436 : x2 = XEXP (x1, 0);
5262 436 : if (GET_MODE (x2) != i1
5263 436 : || !nonimmediate_operand (operands[1], i1)
5264 436 : || !nonimmediate_operand (operands[2], i1)
5265 436 : || !nonimmediate_operand (operands[3], i1)
5266 872 : || !const0_operand (operands[4], i1))
5267 0 : return -1;
5268 : return 0;
5269 : }
5270 :
5271 : int
5272 517 : pattern1400 (rtx x1, machine_mode i1)
5273 : {
5274 517 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5275 517 : rtx x2, x3, x4;
5276 517 : int res ATTRIBUTE_UNUSED;
5277 517 : if (!register_operand (operands[0], i1)
5278 517 : || GET_MODE (x1) != i1)
5279 : return -1;
5280 496 : x2 = XEXP (x1, 0);
5281 496 : if (GET_MODE (x2) != i1)
5282 : return -1;
5283 496 : x3 = XEXP (x2, 0);
5284 496 : if (GET_MODE (x3) != i1)
5285 : return -1;
5286 496 : x4 = XEXP (x2, 2);
5287 496 : if (GET_MODE (x4) != i1
5288 496 : || !const0_operand (operands[4], i1)
5289 992 : || !register_operand (operands[5], E_QImode))
5290 0 : return -1;
5291 : return 0;
5292 : }
5293 :
5294 : int
5295 1276 : pattern1409 (rtx x1)
5296 : {
5297 1276 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5298 1276 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5299 1276 : rtx x10;
5300 1276 : int res ATTRIBUTE_UNUSED;
5301 1276 : x2 = XVECEXP (x1, 0, 0);
5302 1276 : x3 = XEXP (x2, 0);
5303 1276 : x4 = XEXP (x3, 0);
5304 1276 : if (GET_MODE (x4) != E_V8HFmode)
5305 : return -1;
5306 1276 : x5 = XEXP (x3, 2);
5307 1276 : if (GET_CODE (x5) != UNSPEC
5308 1276 : || XVECLEN (x5, 0) != 1
5309 1276 : || XINT (x5, 1) != 224
5310 1276 : || GET_MODE (x5) != E_QImode)
5311 : return -1;
5312 1276 : x6 = XEXP (x2, 2);
5313 1276 : if (XWINT (x6, 0) != 3L
5314 1276 : || !register_operand (operands[0], E_V8HFmode)
5315 1250 : || GET_MODE (x1) != E_V8HFmode
5316 1250 : || GET_MODE (x2) != E_V8HFmode
5317 1250 : || GET_MODE (x3) != E_V8HFmode
5318 1250 : || !register_operand (operands[1], E_V8HFmode)
5319 1242 : || !register_operand (operands[2], E_V8HFmode)
5320 2484 : || !register_operand (operands[3], E_V8HFmode))
5321 90 : return -1;
5322 1186 : x7 = XVECEXP (x5, 0, 0);
5323 1186 : if (!register_operand (x7, E_QImode))
5324 : return -1;
5325 1104 : x8 = XVECEXP (x1, 0, 1);
5326 1104 : if (!const_4_or_8_to_11_operand (x8, E_SImode))
5327 : return -1;
5328 1104 : x9 = XEXP (x2, 1);
5329 1104 : if (!rtx_equal_p (x9, operands[2]))
5330 : return -1;
5331 1104 : x10 = XEXP (x3, 1);
5332 1104 : switch (GET_CODE (x10))
5333 : {
5334 384 : case CONST_INT:
5335 384 : case CONST_DOUBLE:
5336 384 : case CONST_VECTOR:
5337 384 : operands[4] = x10;
5338 384 : if (!const0_operand (operands[4], E_V8HFmode))
5339 : return -1;
5340 384 : operands[5] = x7;
5341 384 : operands[6] = x8;
5342 384 : return 0;
5343 :
5344 720 : case REG:
5345 720 : case SUBREG:
5346 720 : if (!rtx_equal_p (x10, operands[1]))
5347 : return -1;
5348 720 : operands[4] = x7;
5349 720 : operands[5] = x8;
5350 720 : return 1;
5351 :
5352 : default:
5353 : return -1;
5354 : }
5355 : }
5356 :
5357 : int
5358 31 : pattern1432 (rtx x1)
5359 : {
5360 31 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5361 31 : rtx x2, x3, x4, x5;
5362 31 : int res ATTRIBUTE_UNUSED;
5363 31 : x2 = XEXP (x1, 0);
5364 31 : x3 = XEXP (x2, 1);
5365 31 : x4 = XEXP (x3, 0);
5366 31 : if (GET_CODE (x4) != REG
5367 31 : || REGNO (x4) != 17)
5368 : return -1;
5369 7 : x5 = XEXP (x3, 1);
5370 7 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5371 : return -1;
5372 7 : return pattern1163 (x1); /* [-1, 5] */
5373 : }
5374 :
5375 : int
5376 97085 : pattern1440 (rtx x1)
5377 : {
5378 97085 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5379 97085 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5380 97085 : int res ATTRIBUTE_UNUSED;
5381 97085 : x2 = XVECEXP (x1, 0, 1);
5382 97085 : x3 = XEXP (x2, 1);
5383 97085 : x4 = XEXP (x3, 1);
5384 97085 : if (!rtx_equal_p (x4, operands[2]))
5385 : return -1;
5386 97074 : x5 = XEXP (x3, 0);
5387 97074 : switch (GET_CODE (x5))
5388 : {
5389 97062 : case REG:
5390 97062 : case SUBREG:
5391 97062 : case MEM:
5392 97062 : if (!rtx_equal_p (x5, operands[1]))
5393 : return -1;
5394 97062 : x6 = XVECEXP (x1, 0, 0);
5395 97062 : x7 = XEXP (x6, 1);
5396 97062 : x8 = XEXP (x7, 0);
5397 97062 : switch (GET_MODE (x8))
5398 : {
5399 2600 : case E_QImode:
5400 2600 : return pattern1438 (x3,
5401 2600 : E_QImode); /* [-1, 0] */
5402 :
5403 170 : case E_HImode:
5404 170 : if (pattern1438 (x3,
5405 : E_HImode) != 0)
5406 : return -1;
5407 : return 1;
5408 :
5409 32803 : case E_SImode:
5410 32803 : if (pattern1439 (x3,
5411 : E_SImode) != 0)
5412 : return -1;
5413 : return 2;
5414 :
5415 61480 : case E_DImode:
5416 61480 : if (pattern1439 (x3,
5417 : E_DImode) != 0)
5418 : return -1;
5419 : return 3;
5420 :
5421 : default:
5422 : return -1;
5423 : }
5424 :
5425 0 : case ZERO_EXTEND:
5426 0 : if (GET_MODE (x5) != E_DImode)
5427 : return -1;
5428 0 : x6 = XVECEXP (x1, 0, 0);
5429 0 : x7 = XEXP (x6, 1);
5430 0 : x8 = XEXP (x7, 0);
5431 0 : if (GET_MODE (x8) != E_SImode
5432 0 : || !nonimmediate_operand (operands[1], E_SImode)
5433 0 : || !x86_64_zext_immediate_operand (operands[2], E_SImode)
5434 0 : || !register_operand (operands[0], E_DImode)
5435 0 : || GET_MODE (x3) != E_DImode)
5436 0 : return -1;
5437 0 : x9 = XEXP (x5, 0);
5438 0 : if (!rtx_equal_p (x9, operands[1]))
5439 : return -1;
5440 : return 4;
5441 :
5442 : default:
5443 : return -1;
5444 : }
5445 : }
5446 :
5447 : int
5448 651 : pattern1468 (rtx x1, machine_mode i1, machine_mode i2)
5449 : {
5450 651 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5451 651 : rtx x2;
5452 651 : int res ATTRIBUTE_UNUSED;
5453 651 : if (!register_operand (operands[0], i1)
5454 651 : || GET_MODE (x1) != i1)
5455 : return -1;
5456 620 : x2 = XEXP (x1, 0);
5457 620 : if (GET_MODE (x2) != i1
5458 620 : || !register_operand (operands[1], i1)
5459 620 : || !register_operand (operands[2], i1)
5460 620 : || !bcst_vector_operand (operands[3], i1)
5461 1239 : || !register_operand (operands[5], i2))
5462 31 : return -1;
5463 : return 0;
5464 : }
5465 :
5466 : int
5467 48 : pattern1477 (rtx x1, machine_mode i1, machine_mode i2)
5468 : {
5469 48 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5470 48 : rtx x2, x3, x4;
5471 48 : int res ATTRIBUTE_UNUSED;
5472 48 : if (!register_operand (operands[0], i1)
5473 48 : || GET_MODE (x1) != i1
5474 48 : || !vector_operand (operands[1], i1)
5475 96 : || !vector_operand (operands[2], i1))
5476 0 : return -1;
5477 48 : x2 = XEXP (x1, 2);
5478 48 : if (GET_MODE (x2) != E_QImode)
5479 : return -1;
5480 48 : x3 = XVECEXP (x2, 0, 0);
5481 48 : if (GET_MODE (x3) != i1)
5482 : return -1;
5483 48 : x4 = XEXP (x3, 0);
5484 48 : if (GET_MODE (x4) != i2
5485 48 : || !vector_operand (operands[3], i2)
5486 96 : || !const0_operand (operands[4], i1))
5487 24 : return -1;
5488 : return 0;
5489 : }
5490 :
5491 : int
5492 187 : pattern1487 (rtx x1)
5493 : {
5494 187 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5495 187 : rtx x2, x3;
5496 187 : int res ATTRIBUTE_UNUSED;
5497 187 : if (!register_operand (operands[0], E_V2DFmode)
5498 187 : || GET_MODE (x1) != E_V2DFmode)
5499 : return -1;
5500 179 : x2 = XVECEXP (x1, 0, 0);
5501 179 : if (GET_MODE (x2) != E_V2DFmode)
5502 : return -1;
5503 179 : x3 = XEXP (x2, 0);
5504 179 : if (GET_MODE (x3) != E_V2DFmode)
5505 0 : return -1;
5506 : return 0;
5507 : }
5508 :
5509 : int
5510 226 : pattern1492 (rtx x1)
5511 : {
5512 226 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5513 226 : rtx x2;
5514 226 : int res ATTRIBUTE_UNUSED;
5515 226 : if (!register_operand (operands[0], E_V4SFmode)
5516 226 : || GET_MODE (x1) != E_V4SFmode)
5517 : return -1;
5518 222 : x2 = XEXP (x1, 0);
5519 222 : switch (GET_MODE (x2))
5520 : {
5521 112 : case E_V4HFmode:
5522 112 : if (!memory_operand (operands[1], E_V8HFmode))
5523 : return -1;
5524 : return 0;
5525 :
5526 110 : case E_V4BFmode:
5527 110 : if (!memory_operand (operands[1], E_V8BFmode))
5528 : return -1;
5529 : return 1;
5530 :
5531 : default:
5532 : return -1;
5533 : }
5534 : }
5535 :
5536 : int
5537 48744 : pattern1500 (rtx x1, machine_mode i1)
5538 : {
5539 48744 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5540 48744 : int res ATTRIBUTE_UNUSED;
5541 48744 : if (!nonimmediate_operand (operands[1], i1)
5542 48742 : || !x86_64_general_operand (operands[2], i1)
5543 48545 : || !nonimmediate_operand (operands[0], i1)
5544 97289 : || GET_MODE (x1) != i1)
5545 199 : return -1;
5546 : return 0;
5547 : }
5548 :
5549 : int
5550 141692 : pattern1506 (rtx x1, machine_mode i1)
5551 : {
5552 141692 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5553 141692 : int res ATTRIBUTE_UNUSED;
5554 141692 : if (!register_operand (operands[0], i1)
5555 141692 : || GET_MODE (x1) != i1
5556 141692 : || !memory_operand (operands[1], i1)
5557 282481 : || !register_operand (operands[2], i1))
5558 903 : return -1;
5559 : return 0;
5560 : }
5561 :
5562 : int
5563 180 : pattern1510 (rtx x1, rtx_code i1)
5564 : {
5565 180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5566 180 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5567 180 : rtx x10;
5568 180 : int res ATTRIBUTE_UNUSED;
5569 180 : x2 = XVECEXP (x1, 0, 1);
5570 180 : x3 = XEXP (x2, 1);
5571 180 : if (GET_CODE (x3) != i1)
5572 : return -1;
5573 180 : x4 = XVECEXP (x1, 0, 0);
5574 180 : x5 = XEXP (x4, 0);
5575 180 : operands[0] = x5;
5576 180 : x6 = XEXP (x4, 1);
5577 180 : x7 = XEXP (x6, 0);
5578 180 : x8 = XEXP (x7, 0);
5579 180 : operands[2] = x8;
5580 180 : if (!register_operand (operands[2], E_SImode))
5581 : return -1;
5582 180 : x9 = XEXP (x7, 1);
5583 180 : operands[3] = x9;
5584 180 : if (!nonimmediate_operand (operands[3], E_SImode))
5585 : return -1;
5586 180 : x10 = XEXP (x2, 0);
5587 180 : operands[1] = x10;
5588 180 : return pattern1509 (x1); /* [-1, 1] */
5589 : }
5590 :
5591 : int
5592 112 : pattern1521 (rtx x1, machine_mode i1, machine_mode i2)
5593 : {
5594 112 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5595 112 : rtx x2, x3;
5596 112 : int res ATTRIBUTE_UNUSED;
5597 112 : if (!register_operand (operands[0], i1)
5598 112 : || GET_MODE (x1) != i1)
5599 : return -1;
5600 112 : x2 = XEXP (x1, 0);
5601 112 : if (GET_MODE (x2) != i1
5602 112 : || !register_operand (operands[1], i2))
5603 2 : return -1;
5604 110 : x3 = XEXP (x1, 1);
5605 110 : if (GET_MODE (x3) != i1)
5606 : return -1;
5607 : return 0;
5608 : }
5609 :
5610 : int
5611 5450 : pattern1528 (rtx x1)
5612 : {
5613 5450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5614 5450 : rtx x2, x3, x4, x5, x6, x7;
5615 5450 : int res ATTRIBUTE_UNUSED;
5616 5450 : x2 = XVECEXP (x1, 0, 0);
5617 5450 : x3 = XEXP (x2, 0);
5618 5450 : x4 = XEXP (x3, 1);
5619 5450 : switch (GET_CODE (x4))
5620 : {
5621 3784 : case REG:
5622 3784 : case SUBREG:
5623 3784 : case MEM:
5624 3784 : x5 = XEXP (x3, 2);
5625 3784 : operands[4] = x5;
5626 3784 : x6 = XVECEXP (x1, 0, 1);
5627 3784 : operands[5] = x6;
5628 3784 : switch (GET_MODE (operands[0]))
5629 : {
5630 : case E_V8HFmode:
5631 : return 0;
5632 :
5633 : case E_V4SFmode:
5634 : return 1;
5635 :
5636 : case E_V2DFmode:
5637 : return 2;
5638 :
5639 : default:
5640 : return -1;
5641 : }
5642 :
5643 1666 : case CONST_INT:
5644 1666 : case CONST_DOUBLE:
5645 1666 : case CONST_VECTOR:
5646 1666 : operands[4] = x4;
5647 1666 : x5 = XEXP (x3, 2);
5648 1666 : operands[5] = x5;
5649 1666 : x6 = XVECEXP (x1, 0, 1);
5650 1666 : operands[6] = x6;
5651 1666 : x7 = XEXP (x2, 1);
5652 1666 : if (!rtx_equal_p (x7, operands[1]))
5653 : return -1;
5654 1666 : switch (GET_MODE (operands[0]))
5655 : {
5656 : case E_V8HFmode:
5657 : return 3;
5658 :
5659 : case E_V4SFmode:
5660 : return 4;
5661 :
5662 : case E_V2DFmode:
5663 : return 5;
5664 :
5665 : default:
5666 : return -1;
5667 : }
5668 :
5669 : default:
5670 : return -1;
5671 : }
5672 : }
5673 :
5674 : int
5675 242 : pattern1548 (rtx x1, machine_mode i1, machine_mode i2)
5676 : {
5677 242 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5678 242 : rtx x2, x3, x4, x5, x6, x7;
5679 242 : int res ATTRIBUTE_UNUSED;
5680 242 : if (!register_operand (operands[0], i2)
5681 242 : || GET_MODE (x1) != i2)
5682 : return -1;
5683 199 : x2 = XEXP (x1, 0);
5684 199 : if (GET_MODE (x2) != i1)
5685 : return -1;
5686 199 : x3 = XEXP (x2, 0);
5687 199 : if (GET_MODE (x3) != i1)
5688 : return -1;
5689 199 : x4 = XEXP (x3, 0);
5690 199 : if (GET_MODE (x4) != i1)
5691 : return -1;
5692 199 : x5 = XEXP (x4, 0);
5693 199 : if (GET_MODE (x5) != i1
5694 199 : || !register_operand (operands[1], i2))
5695 50 : return -1;
5696 149 : x6 = XEXP (x4, 1);
5697 149 : if (GET_MODE (x6) != i1
5698 149 : || !register_operand (operands[2], i2))
5699 29 : return -1;
5700 120 : x7 = XEXP (x3, 1);
5701 120 : if (GET_MODE (x7) != i1)
5702 : return -1;
5703 : return 0;
5704 : }
5705 :
5706 : int
5707 936 : pattern1560 (rtx x1, machine_mode i1)
5708 : {
5709 936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5710 936 : rtx x2, x3, x4;
5711 936 : int res ATTRIBUTE_UNUSED;
5712 936 : if (!register_operand (operands[0], i1)
5713 936 : || GET_MODE (x1) != i1)
5714 : return -1;
5715 920 : x2 = XVECEXP (x1, 0, 0);
5716 920 : if (GET_MODE (x2) != i1)
5717 : return -1;
5718 920 : x3 = XEXP (x2, 0);
5719 920 : if (GET_MODE (x3) != i1)
5720 : return -1;
5721 920 : x4 = XEXP (x3, 0);
5722 920 : if (GET_MODE (x4) != i1
5723 920 : || !nonimmediate_operand (operands[1], i1)
5724 920 : || !nonimm_or_0_operand (operands[3], i1)
5725 1840 : || !register_operand (operands[2], i1))
5726 0 : return -1;
5727 : return 0;
5728 : }
5729 :
5730 : int
5731 622 : pattern1570 (rtx x1, machine_mode i1)
5732 : {
5733 622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5734 622 : rtx x2;
5735 622 : int res ATTRIBUTE_UNUSED;
5736 622 : if (!register_operand (operands[0], i1)
5737 622 : || GET_MODE (x1) != i1
5738 1244 : || !register_operand (operands[2], i1))
5739 138 : return -1;
5740 484 : x2 = XVECEXP (x1, 0, 2);
5741 484 : if (GET_MODE (x2) != i1)
5742 : return -1;
5743 : return 0;
5744 : }
5745 :
5746 : int
5747 0 : pattern1577 (rtx x1, machine_mode i1)
5748 : {
5749 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5750 0 : rtx x2, x3;
5751 0 : int res ATTRIBUTE_UNUSED;
5752 0 : if (!nonimmediate_operand (operands[0], i1)
5753 0 : || GET_MODE (x1) != i1)
5754 : return -1;
5755 0 : x2 = XEXP (x1, 0);
5756 0 : if (GET_MODE (x2) != i1
5757 0 : || !nonimmediate_operand (operands[1], i1))
5758 0 : return -1;
5759 0 : x3 = XEXP (x2, 1);
5760 0 : if (GET_MODE (x3) != i1
5761 0 : || !general_operand (operands[2], i1))
5762 0 : return -1;
5763 : return 0;
5764 : }
5765 :
5766 : int
5767 4 : pattern1584 (rtx x1, machine_mode i1)
5768 : {
5769 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5770 4 : rtx x2, x3, x4, x5, x6, x7, x8;
5771 4 : int res ATTRIBUTE_UNUSED;
5772 4 : x2 = XVECEXP (x1, 0, 0);
5773 4 : x3 = XEXP (x2, 1);
5774 4 : x4 = XEXP (x3, 0);
5775 4 : x5 = XEXP (x4, 0);
5776 4 : if (GET_MODE (x5) != i1
5777 4 : || !nonimmediate_operand (operands[1], i1)
5778 8 : || !register_operand (operands[0], i1))
5779 0 : return -1;
5780 4 : x6 = XVECEXP (x1, 0, 1);
5781 4 : x7 = XEXP (x6, 1);
5782 4 : if (GET_MODE (x7) != i1)
5783 : return -1;
5784 4 : x8 = XEXP (x7, 0);
5785 4 : if (GET_MODE (x8) != i1
5786 4 : || !register_operand (operands[2], i1))
5787 0 : return -1;
5788 : return 0;
5789 : }
5790 :
5791 : int
5792 370 : pattern1592 (rtx x1)
5793 : {
5794 370 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5795 370 : rtx x2, x3, x4, x5, x6;
5796 370 : int res ATTRIBUTE_UNUSED;
5797 370 : if (!register_operand (operands[0], E_V4SFmode)
5798 370 : || GET_MODE (x1) != E_V4SFmode)
5799 : return -1;
5800 358 : x2 = XEXP (x1, 0);
5801 358 : if (GET_MODE (x2) != E_V4SFmode)
5802 : return -1;
5803 358 : x3 = XEXP (x2, 0);
5804 358 : if (GET_MODE (x3) != E_V8SFmode
5805 358 : || !vector_operand (operands[1], E_V4SFmode))
5806 0 : return -1;
5807 358 : x4 = XEXP (x1, 1);
5808 358 : operands[2] = x4;
5809 358 : if (!nonimm_or_0_operand (operands[2], E_V4SFmode))
5810 : return -1;
5811 358 : x5 = XEXP (x1, 2);
5812 358 : operands[3] = x5;
5813 358 : x6 = XEXP (x3, 1);
5814 358 : if (!rtx_equal_p (x6, operands[1]))
5815 : return -1;
5816 : return 0;
5817 : }
5818 :
5819 : int
5820 976 : pattern1604 (rtx x1, machine_mode i1, machine_mode i2)
5821 : {
5822 976 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5823 976 : int res ATTRIBUTE_UNUSED;
5824 976 : if (!register_operand (operands[2], i2)
5825 968 : || GET_MODE (x1) != i2
5826 968 : || !register_operand (operands[3], i2)
5827 968 : || !const0_operand (operands[4], i2)
5828 1944 : || !register_operand (operands[5], i1))
5829 24 : return -1;
5830 : return 0;
5831 : }
5832 :
5833 : int
5834 507 : pattern1611 (rtx x1, machine_mode i1, machine_mode i2)
5835 : {
5836 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5837 507 : rtx x2, x3, x4, x5;
5838 507 : int res ATTRIBUTE_UNUSED;
5839 507 : if (!register_operand (operands[0], i2)
5840 507 : || GET_MODE (x1) != i2)
5841 : return -1;
5842 493 : x2 = XVECEXP (x1, 0, 0);
5843 493 : if (GET_MODE (x2) != i2)
5844 : return -1;
5845 493 : x3 = XEXP (x2, 0);
5846 493 : if (GET_MODE (x3) != i2)
5847 : return -1;
5848 493 : x4 = XEXP (x3, 0);
5849 493 : if (GET_MODE (x4) != i2
5850 493 : || !register_operand (operands[1], i2))
5851 5 : return -1;
5852 488 : x5 = XEXP (x3, 2);
5853 488 : return pattern1604 (x5,
5854 : i1,
5855 488 : i2); /* [-1, 0] */
5856 : }
5857 :
5858 : int
5859 344 : pattern1619 (machine_mode i1)
5860 : {
5861 344 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5862 344 : int res ATTRIBUTE_UNUSED;
5863 344 : if (!vsib_address_operand (operands[0], i1))
5864 : return -1;
5865 276 : switch (GET_MODE (operands[2]))
5866 : {
5867 150 : case E_V4SImode:
5868 150 : if (!register_operand (operands[2], E_V4SImode))
5869 : return -1;
5870 : return 0;
5871 :
5872 126 : case E_V2DImode:
5873 126 : if (!register_operand (operands[2], E_V2DImode))
5874 : return -1;
5875 : return 1;
5876 :
5877 : default:
5878 : return -1;
5879 : }
5880 : }
5881 :
5882 : int
5883 147 : pattern1628 (rtx x1, machine_mode i1, machine_mode i2)
5884 : {
5885 147 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5886 147 : rtx x2, x3;
5887 147 : int res ATTRIBUTE_UNUSED;
5888 147 : if (!register_operand (operands[0], i2)
5889 129 : || GET_MODE (x1) != i2
5890 129 : || !register_operand (operands[6], E_QImode)
5891 182 : || !vsib_mem_operator (operands[5], i1))
5892 112 : return -1;
5893 35 : x2 = XVECEXP (x1, 0, 2);
5894 35 : x3 = XEXP (x2, 0);
5895 35 : switch (GET_MODE (x3))
5896 : {
5897 0 : case E_SImode:
5898 0 : return pattern1627 (
5899 0 : E_SImode); /* [-1, 1] */
5900 :
5901 35 : case E_DImode:
5902 35 : res = pattern1627 (
5903 : E_DImode);
5904 35 : if (res >= 0)
5905 17 : return res + 2; /* [2, 3] */
5906 : return -1;
5907 :
5908 : default:
5909 : return -1;
5910 : }
5911 : }
5912 :
5913 : int
5914 201 : pattern1640 (rtx x1, machine_mode i1)
5915 : {
5916 201 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5917 201 : rtx x2;
5918 201 : int res ATTRIBUTE_UNUSED;
5919 201 : if (!nonimmediate_operand (operands[0], i1)
5920 201 : || GET_MODE (x1) != i1)
5921 : return -1;
5922 201 : x2 = XEXP (x1, 0);
5923 201 : if (GET_MODE (x2) != i1
5924 201 : || !nonimmediate_operand (operands[1], i1)
5925 201 : || !ix86_carry_flag_operator (operands[4], i1)
5926 402 : || !general_operand (operands[2], i1))
5927 0 : return -1;
5928 : return 0;
5929 : }
5930 :
5931 : int
5932 152282 : pattern1649 (rtx x1, machine_mode i1)
5933 : {
5934 152282 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5935 152282 : rtx x2, x3, x4;
5936 152282 : int res ATTRIBUTE_UNUSED;
5937 152282 : if (!memory_operand (operands[1], i1)
5938 152282 : || !rtx_equal_p (x1, operands[0]))
5939 136298 : return -1;
5940 15984 : x2 = PATTERN (peep2_next_insn (1));
5941 15984 : x3 = XEXP (x2, 1);
5942 15984 : if (!rtx_equal_p (x3, operands[0]))
5943 : return -1;
5944 2818 : x4 = XEXP (x2, 0);
5945 2818 : if (!rtx_equal_p (x4, operands[1]))
5946 : return -1;
5947 : return 0;
5948 : }
5949 :
5950 : int
5951 440 : pattern1657 (rtx x1, machine_mode i1, machine_mode i2)
5952 : {
5953 440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5954 440 : rtx x2, x3, x4, x5, x6;
5955 440 : int res ATTRIBUTE_UNUSED;
5956 440 : if (!register_operand (operands[0], i1)
5957 440 : || GET_MODE (x1) != i1)
5958 : return -1;
5959 410 : x2 = XEXP (x1, 0);
5960 410 : if (GET_MODE (x2) != i1)
5961 : return -1;
5962 410 : x3 = XEXP (x2, 0);
5963 410 : if (GET_MODE (x3) != i2
5964 410 : || !register_operand (operands[1], i1))
5965 0 : return -1;
5966 410 : x4 = XEXP (x3, 1);
5967 410 : operands[2] = x4;
5968 410 : if (!nonimmediate_operand (operands[2], i1))
5969 : return -1;
5970 410 : x5 = XEXP (x1, 1);
5971 410 : operands[3] = x5;
5972 410 : if (!nonimm_or_0_operand (operands[3], i1))
5973 : return -1;
5974 396 : x6 = XEXP (x1, 2);
5975 396 : operands[4] = x6;
5976 396 : return 0;
5977 : }
5978 :
5979 : int
5980 1056 : pattern1666 (rtx x1, machine_mode i1)
5981 : {
5982 1056 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5983 1056 : rtx x2, x3;
5984 1056 : int res ATTRIBUTE_UNUSED;
5985 1056 : if (!register_operand (operands[0], i1)
5986 1056 : || GET_MODE (x1) != i1)
5987 : return -1;
5988 1021 : x2 = XVECEXP (x1, 0, 0);
5989 1021 : if (GET_MODE (x2) != i1)
5990 : return -1;
5991 1021 : x3 = XEXP (x2, 0);
5992 1021 : if (GET_MODE (x3) != i1
5993 1021 : || !nonimmediate_operand (operands[1], i1)
5994 1021 : || !register_operand (operands[2], i1)
5995 2008 : || !register_operand (operands[3], i1))
5996 53 : return -1;
5997 : return 0;
5998 : }
5999 :
6000 : int
6001 446 : pattern1676 (rtx x1, machine_mode i1, machine_mode i2)
6002 : {
6003 446 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6004 446 : rtx x2, x3;
6005 446 : int res ATTRIBUTE_UNUSED;
6006 446 : if (!register_operand (operands[0], i2)
6007 440 : || GET_MODE (x1) != i2
6008 440 : || !register_operand (operands[1], i2)
6009 440 : || !register_operand (operands[7], E_QImode)
6010 769 : || !vsib_mem_operator (operands[6], i1))
6011 123 : return -1;
6012 323 : x2 = XVECEXP (x1, 0, 2);
6013 323 : x3 = XEXP (x2, 0);
6014 323 : switch (GET_MODE (x3))
6015 : {
6016 0 : case E_SImode:
6017 0 : return pattern1675 (
6018 0 : E_SImode); /* [-1, 1] */
6019 :
6020 323 : case E_DImode:
6021 323 : res = pattern1675 (
6022 : E_DImode);
6023 323 : if (res >= 0)
6024 242 : return res + 2; /* [2, 3] */
6025 : return -1;
6026 :
6027 : default:
6028 : return -1;
6029 : }
6030 : }
6031 :
6032 : int
6033 466 : pattern1688 (rtx x1)
6034 : {
6035 466 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6036 466 : rtx x2, x3, x4, x5, x6, x7;
6037 466 : int res ATTRIBUTE_UNUSED;
6038 466 : x2 = XVECEXP (x1, 0, 2);
6039 466 : if (XWINT (x2, 0) != 2L)
6040 : return -1;
6041 445 : x3 = XVECEXP (x1, 0, 3);
6042 445 : if (XWINT (x3, 0) != 2L)
6043 : return -1;
6044 445 : x4 = XVECEXP (x1, 0, 4);
6045 445 : if (XWINT (x4, 0) != 4L)
6046 : return -1;
6047 445 : x5 = XVECEXP (x1, 0, 5);
6048 445 : if (XWINT (x5, 0) != 4L)
6049 : return -1;
6050 445 : x6 = XVECEXP (x1, 0, 6);
6051 445 : if (XWINT (x6, 0) != 6L)
6052 : return -1;
6053 445 : x7 = XVECEXP (x1, 0, 7);
6054 445 : if (XWINT (x7, 0) != 6L)
6055 0 : return -1;
6056 : return 0;
6057 : }
6058 :
6059 : int
6060 57706 : pattern1699 (rtx x1, rtx_code i1)
6061 : {
6062 57706 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6063 57706 : rtx x2, x3, x4;
6064 57706 : int res ATTRIBUTE_UNUSED;
6065 57706 : if (GET_CODE (x1) != i1)
6066 : return -1;
6067 47641 : x2 = XEXP (x1, 0);
6068 47641 : if (GET_CODE (x2) != MINUS)
6069 : return -1;
6070 41344 : x3 = XEXP (x2, 1);
6071 41344 : switch (GET_CODE (x3))
6072 : {
6073 37828 : case LTU:
6074 37828 : case UNLT:
6075 37828 : operands[5] = x3;
6076 37828 : x4 = XEXP (x3, 1);
6077 37828 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6078 : return -1;
6079 : return 0;
6080 :
6081 : default:
6082 : return -1;
6083 : }
6084 : }
6085 :
6086 : int
6087 4584 : pattern1708 (rtx x1)
6088 : {
6089 4584 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6090 4584 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6091 4584 : int res ATTRIBUTE_UNUSED;
6092 4584 : x2 = XEXP (x1, 0);
6093 4584 : x3 = XEXP (x2, 0);
6094 4584 : x4 = XEXP (x3, 2);
6095 4584 : if (maybe_ne (SUBREG_BYTE (x4), 0)
6096 4584 : || GET_MODE (x4) != E_QImode)
6097 : return -1;
6098 4584 : x5 = XEXP (x4, 0);
6099 4584 : if (GET_CODE (x5) != AND)
6100 : return -1;
6101 509 : x6 = XEXP (x5, 0);
6102 509 : operands[2] = x6;
6103 509 : x7 = XEXP (x5, 1);
6104 509 : operands[3] = x7;
6105 509 : if (!const_int_operand (operands[3], E_VOIDmode))
6106 : return -1;
6107 509 : x8 = XEXP (x1, 1);
6108 509 : x9 = XEXP (x8, 0);
6109 509 : operands[4] = x9;
6110 509 : switch (GET_MODE (x3))
6111 : {
6112 347 : case E_SImode:
6113 347 : return pattern1707 (x5,
6114 347 : E_SImode); /* [-1, 2] */
6115 :
6116 162 : case E_DImode:
6117 162 : res = pattern1707 (x5,
6118 : E_DImode);
6119 162 : if (res >= 0)
6120 65 : return res + 3; /* [3, 5] */
6121 : return -1;
6122 :
6123 : default:
6124 : return -1;
6125 : }
6126 : }
6127 :
6128 : int
6129 187 : pattern1719 (rtx x1, machine_mode i1, machine_mode i2)
6130 : {
6131 187 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6132 187 : rtx x2, x3;
6133 187 : int res ATTRIBUTE_UNUSED;
6134 187 : if (!register_operand (operands[0], i2)
6135 187 : || GET_MODE (x1) != i2)
6136 : return -1;
6137 179 : x2 = XVECEXP (x1, 0, 0);
6138 179 : if (GET_MODE (x2) != i2)
6139 : return -1;
6140 179 : x3 = XEXP (x2, 0);
6141 179 : if (GET_MODE (x3) != i2
6142 179 : || !register_operand (operands[1], i2)
6143 177 : || !register_operand (operands[2], i2)
6144 356 : || !register_operand (operands[3], i1))
6145 2 : return -1;
6146 : return 0;
6147 : }
6148 :
6149 : int
6150 5478 : pattern1728 ()
6151 : {
6152 5478 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6153 5478 : int res ATTRIBUTE_UNUSED;
6154 5478 : if (!const_0_to_3_operand (operands[2], E_VOIDmode)
6155 5214 : || !const_0_to_3_operand (operands[3], E_VOIDmode)
6156 5161 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
6157 5135 : || !const_0_to_3_operand (operands[5], E_VOIDmode)
6158 5133 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
6159 4927 : || !const_4_to_7_operand (operands[7], E_VOIDmode)
6160 4927 : || !const_4_to_7_operand (operands[8], E_VOIDmode)
6161 10404 : || !const_4_to_7_operand (operands[9], E_VOIDmode))
6162 552 : return -1;
6163 : return 0;
6164 : }
6165 :
6166 : int
6167 855 : pattern1738 (machine_mode i1)
6168 : {
6169 855 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6170 855 : int res ATTRIBUTE_UNUSED;
6171 855 : if (!vsib_address_operand (operands[3], i1))
6172 : return -1;
6173 851 : switch (GET_MODE (operands[2]))
6174 : {
6175 442 : case E_V8SImode:
6176 442 : if (!register_operand (operands[2], E_V8SImode))
6177 : return -1;
6178 : return 0;
6179 :
6180 409 : case E_V8DImode:
6181 409 : if (!register_operand (operands[2], E_V8DImode))
6182 : return -1;
6183 : return 1;
6184 :
6185 : default:
6186 : return -1;
6187 : }
6188 : }
6189 :
6190 : int
6191 10 : pattern1746 (rtx x1, machine_mode i1)
6192 : {
6193 10 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6194 10 : int res ATTRIBUTE_UNUSED;
6195 10 : if (!ix86_carry_flag_operator (operands[2], i1)
6196 10 : || !nonimmediate_operand (operands[1], i1)
6197 10 : || !nonimmediate_operand (operands[0], i1)
6198 20 : || GET_MODE (x1) != i1)
6199 0 : return -1;
6200 : return 0;
6201 : }
6202 :
6203 : int
6204 624 : pattern1752 (rtx x1)
6205 : {
6206 624 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6207 624 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6208 624 : rtx x10, x11;
6209 624 : int res ATTRIBUTE_UNUSED;
6210 624 : x2 = XEXP (x1, 0);
6211 624 : x3 = XEXP (x2, 1);
6212 624 : x4 = XVECEXP (x3, 0, 4);
6213 624 : if (XWINT (x4, 0) != 6L)
6214 : return -1;
6215 624 : x5 = XVECEXP (x3, 0, 5);
6216 624 : if (XWINT (x5, 0) != 14L)
6217 : return -1;
6218 624 : x6 = XVECEXP (x3, 0, 6);
6219 624 : if (XWINT (x6, 0) != 7L)
6220 : return -1;
6221 624 : x7 = XVECEXP (x3, 0, 7);
6222 624 : if (XWINT (x7, 0) != 15L)
6223 : return -1;
6224 624 : x8 = XEXP (x2, 0);
6225 624 : x9 = XEXP (x8, 1);
6226 624 : operands[2] = x9;
6227 624 : x10 = XEXP (x1, 1);
6228 624 : operands[3] = x10;
6229 624 : x11 = XEXP (x1, 2);
6230 624 : operands[4] = x11;
6231 624 : return 0;
6232 : }
6233 :
6234 : int
6235 94 : pattern1760 (machine_mode i1)
6236 : {
6237 94 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6238 94 : int res ATTRIBUTE_UNUSED;
6239 94 : if (!vsib_address_operand (operands[0], i1))
6240 : return -1;
6241 77 : switch (GET_MODE (operands[2]))
6242 : {
6243 23 : case E_V8SImode:
6244 23 : if (!register_operand (operands[2], E_V8SImode)
6245 23 : || !register_operand (operands[3], E_V8SFmode))
6246 2 : return -1;
6247 : return 0;
6248 :
6249 54 : case E_V4DImode:
6250 54 : if (!register_operand (operands[2], E_V4DImode)
6251 54 : || !register_operand (operands[3], E_V4SFmode))
6252 29 : return -1;
6253 : return 1;
6254 :
6255 : default:
6256 : return -1;
6257 : }
6258 : }
6259 :
6260 : int
6261 1295 : pattern1770 (machine_mode i1)
6262 : {
6263 1295 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6264 1295 : int res ATTRIBUTE_UNUSED;
6265 1295 : if (!vsib_address_operand (operands[4], i1))
6266 : return -1;
6267 1295 : switch (GET_MODE (operands[3]))
6268 : {
6269 616 : case E_V4SImode:
6270 616 : if (!register_operand (operands[3], E_V4SImode))
6271 : return -1;
6272 : return 0;
6273 :
6274 679 : case E_V2DImode:
6275 679 : if (!register_operand (operands[3], E_V2DImode))
6276 : return -1;
6277 : return 1;
6278 :
6279 : default:
6280 : return -1;
6281 : }
6282 : }
6283 :
6284 : int
6285 8 : pattern1777 (rtx x1)
6286 : {
6287 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6288 8 : rtx x2, x3, x4, x5, x6;
6289 8 : int res ATTRIBUTE_UNUSED;
6290 8 : x2 = XEXP (x1, 1);
6291 8 : if (GET_CODE (x2) != COMPARE
6292 2 : || GET_MODE (x2) != E_CCZmode)
6293 : return -1;
6294 2 : x3 = XEXP (x2, 0);
6295 2 : if (GET_CODE (x3) != AND
6296 2 : || GET_MODE (x3) != E_QImode)
6297 : return -1;
6298 2 : x4 = XEXP (x3, 1);
6299 2 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
6300 : return -1;
6301 2 : x5 = XEXP (x2, 1);
6302 2 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6303 : return -1;
6304 2 : x6 = XEXP (x1, 0);
6305 2 : if (GET_CODE (x6) != REG
6306 2 : || REGNO (x6) != 17
6307 4 : || GET_MODE (x6) != E_CCZmode)
6308 0 : return -1;
6309 : return 0;
6310 : }
6311 :
6312 : int
6313 451 : pattern1791 (rtx x1, machine_mode i1, machine_mode i2)
6314 : {
6315 451 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6316 451 : rtx x2, x3, x4;
6317 451 : int res ATTRIBUTE_UNUSED;
6318 451 : if (!register_operand (operands[0], i2)
6319 451 : || GET_MODE (x1) != i2)
6320 : return -1;
6321 443 : x2 = XVECEXP (x1, 0, 0);
6322 443 : if (GET_MODE (x2) != i2)
6323 : return -1;
6324 443 : x3 = XEXP (x2, 0);
6325 443 : if (GET_MODE (x3) != i2)
6326 : return -1;
6327 443 : x4 = XEXP (x3, 0);
6328 443 : if (GET_MODE (x4) != i2
6329 443 : || !register_operand (operands[1], i2)
6330 441 : || !register_operand (operands[2], i2)
6331 884 : || !register_operand (operands[3], i1))
6332 2 : return -1;
6333 : return 0;
6334 : }
6335 :
6336 : int
6337 653 : pattern1800 (rtx x1, machine_mode i1, machine_mode i2)
6338 : {
6339 653 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6340 653 : rtx x2, x3;
6341 653 : int res ATTRIBUTE_UNUSED;
6342 653 : if (!register_operand (operands[0], i1)
6343 645 : || GET_MODE (x1) != i1
6344 645 : || !vsib_mem_operator (operands[6], i2)
6345 645 : || !register_operand (operands[4], i1)
6346 1176 : || !scratch_operand (operands[1], i1))
6347 130 : return -1;
6348 523 : x2 = XVECEXP (x1, 0, 1);
6349 523 : x3 = XEXP (x2, 0);
6350 523 : switch (GET_MODE (x3))
6351 : {
6352 0 : case E_SImode:
6353 0 : return pattern1799 (
6354 0 : E_SImode); /* [-1, 1] */
6355 :
6356 523 : case E_DImode:
6357 523 : res = pattern1799 (
6358 : E_DImode);
6359 523 : if (res >= 0)
6360 435 : return res + 2; /* [2, 3] */
6361 : return -1;
6362 :
6363 : default:
6364 : return -1;
6365 : }
6366 : }
6367 :
6368 : int
6369 123 : pattern1811 (machine_mode i1)
6370 : {
6371 123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6372 123 : int res ATTRIBUTE_UNUSED;
6373 123 : if (!vsib_address_operand (operands[2], i1))
6374 : return -1;
6375 111 : switch (GET_MODE (operands[3]))
6376 : {
6377 73 : case E_V8SImode:
6378 73 : if (!register_operand (operands[3], E_V8SImode)
6379 73 : || !register_operand (operands[4], E_V8SImode))
6380 66 : return -1;
6381 : return 0;
6382 :
6383 38 : case E_V4DImode:
6384 38 : if (!register_operand (operands[3], E_V4DImode)
6385 38 : || !register_operand (operands[4], E_V4SImode))
6386 37 : return -1;
6387 : return 1;
6388 :
6389 : default:
6390 : return -1;
6391 : }
6392 : }
6393 :
6394 : int
6395 836 : pattern1818 (rtx x1, machine_mode i1, machine_mode i2)
6396 : {
6397 836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6398 836 : rtx x2, x3;
6399 836 : int res ATTRIBUTE_UNUSED;
6400 836 : if (!register_operand (operands[0], i1)
6401 828 : || GET_MODE (x1) != i1
6402 828 : || !register_operand (operands[2], i1)
6403 828 : || !vsib_mem_operator (operands[7], i2)
6404 828 : || !register_operand (operands[5], i1)
6405 1598 : || !scratch_operand (operands[1], i1))
6406 74 : return -1;
6407 762 : x2 = XVECEXP (x1, 0, 1);
6408 762 : x3 = XEXP (x2, 0);
6409 762 : switch (GET_MODE (x3))
6410 : {
6411 0 : case E_SImode:
6412 0 : return pattern1817 (
6413 0 : E_SImode); /* [-1, 1] */
6414 :
6415 762 : case E_DImode:
6416 762 : res = pattern1817 (
6417 : E_DImode);
6418 762 : if (res >= 0)
6419 686 : return res + 2; /* [2, 3] */
6420 : return -1;
6421 :
6422 : default:
6423 : return -1;
6424 : }
6425 : }
6426 :
6427 : int
6428 62176 : pattern1830 (rtx x1, machine_mode i1, machine_mode i2)
6429 : {
6430 62176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6431 62176 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6432 62176 : rtx x10;
6433 62176 : int res ATTRIBUTE_UNUSED;
6434 62176 : x2 = XVECEXP (x1, 0, 0);
6435 62176 : x3 = XEXP (x2, 1);
6436 62176 : x4 = XEXP (x3, 0);
6437 62176 : x5 = XEXP (x4, 0);
6438 62176 : if (GET_MODE (x5) != i2
6439 62176 : || !nonimmediate_operand (operands[1], i1))
6440 26 : return -1;
6441 62150 : x6 = XEXP (x4, 1);
6442 62150 : if (GET_MODE (x6) != i2
6443 62150 : || !nonimmediate_operand (operands[2], i1))
6444 36 : return -1;
6445 62114 : x7 = XEXP (x3, 1);
6446 62114 : if (GET_MODE (x7) != i2)
6447 : return -1;
6448 62114 : x8 = XEXP (x7, 0);
6449 62114 : if (GET_MODE (x8) != i1
6450 62114 : || !register_operand (operands[0], i1))
6451 0 : return -1;
6452 62114 : x9 = XVECEXP (x1, 0, 1);
6453 62114 : x10 = XEXP (x9, 1);
6454 62114 : if (GET_MODE (x10) != i1
6455 62114 : || !scratch_operand (operands[3], i1))
6456 20 : return -1;
6457 : return 0;
6458 : }
6459 :
6460 : int
6461 255 : pattern1843 (rtx x1, machine_mode i1, machine_mode i2)
6462 : {
6463 255 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6464 255 : int res ATTRIBUTE_UNUSED;
6465 255 : if (!register_operand (operands[2], i1)
6466 255 : || !register_operand (operands[4], i2))
6467 54 : return -1;
6468 201 : return pattern1842 (x1,
6469 201 : i1); /* [-1, 1] */
6470 : }
6471 :
6472 : int
6473 358 : pattern1848 (machine_mode i1)
6474 : {
6475 358 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6476 358 : int res ATTRIBUTE_UNUSED;
6477 358 : if (!vsib_address_operand (operands[0], i1))
6478 : return -1;
6479 345 : switch (GET_MODE (operands[2]))
6480 : {
6481 151 : case E_V8SImode:
6482 151 : if (!register_operand (operands[2], E_V8SImode)
6483 151 : || !register_operand (operands[3], E_V8SFmode))
6484 2 : return -1;
6485 : return 0;
6486 :
6487 194 : case E_V4DImode:
6488 194 : if (!register_operand (operands[2], E_V4DImode)
6489 194 : || !register_operand (operands[3], E_V4SFmode))
6490 21 : return -1;
6491 : return 1;
6492 :
6493 : default:
6494 : return -1;
6495 : }
6496 : }
6497 :
6498 : int
6499 552 : pattern1857 (rtx x1, machine_mode i1)
6500 : {
6501 552 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6502 552 : rtx x2;
6503 552 : int res ATTRIBUTE_UNUSED;
6504 552 : if (!register_operand (operands[0], i1)
6505 552 : || GET_MODE (x1) != i1)
6506 : return -1;
6507 502 : x2 = XEXP (x1, 0);
6508 502 : if (GET_MODE (x2) != i1
6509 502 : || !nonimmediate_operand (operands[1], i1)
6510 1004 : || !nonimm_or_0_operand (operands[10], i1))
6511 24 : return -1;
6512 : return 0;
6513 : }
6514 :
6515 : int
6516 580 : pattern1863 (rtx x1, machine_mode i1)
6517 : {
6518 580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6519 580 : int res ATTRIBUTE_UNUSED;
6520 580 : if (!register_operand (operands[3], i1))
6521 : return -1;
6522 558 : switch (GET_MODE (x1))
6523 : {
6524 0 : case E_SImode:
6525 0 : if (!vsib_address_operand (operands[4], E_SImode))
6526 : return -1;
6527 : return 0;
6528 :
6529 558 : case E_DImode:
6530 558 : if (!vsib_address_operand (operands[4], E_DImode))
6531 : return -1;
6532 : return 1;
6533 :
6534 : default:
6535 : return -1;
6536 : }
6537 : }
6538 :
6539 : int
6540 666 : pattern1867 (rtx x1)
6541 : {
6542 666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6543 666 : rtx x2, x3, x4, x5;
6544 666 : int res ATTRIBUTE_UNUSED;
6545 666 : x2 = XVECEXP (x1, 0, 4);
6546 666 : if (XWINT (x2, 0) != 6L)
6547 : return -1;
6548 666 : x3 = XVECEXP (x1, 0, 5);
6549 666 : if (XWINT (x3, 0) != 22L)
6550 : return -1;
6551 666 : x4 = XVECEXP (x1, 0, 6);
6552 666 : if (XWINT (x4, 0) != 7L)
6553 : return -1;
6554 666 : x5 = XVECEXP (x1, 0, 7);
6555 666 : if (XWINT (x5, 0) != 23L)
6556 0 : return -1;
6557 : return 0;
6558 : }
6559 :
6560 : int
6561 503 : pattern1872 (rtx x1, machine_mode i1, machine_mode i2)
6562 : {
6563 503 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6564 503 : rtx x2, x3, x4, x5, x6, x7;
6565 503 : int res ATTRIBUTE_UNUSED;
6566 503 : if (!nonimmediate_operand (operands[1], i1))
6567 : return -1;
6568 503 : x2 = XVECEXP (x1, 0, 0);
6569 503 : x3 = XEXP (x2, 1);
6570 503 : x4 = XEXP (x3, 1);
6571 503 : if (GET_MODE (x4) != i2
6572 503 : || !ix86_carry_flag_operator (operands[4], i2)
6573 503 : || !const_scalar_int_operand (operands[6], i2)
6574 1006 : || !nonimmediate_operand (operands[0], i1))
6575 0 : return -1;
6576 503 : x5 = XVECEXP (x1, 0, 1);
6577 503 : x6 = XEXP (x5, 1);
6578 503 : if (GET_MODE (x6) != i1)
6579 : return -1;
6580 503 : x7 = XEXP (x6, 0);
6581 503 : if (GET_MODE (x7) != i1
6582 503 : || !ix86_carry_flag_operator (operands[5], i1)
6583 1006 : || !x86_64_immediate_operand (operands[2], i1))
6584 348 : return -1;
6585 : return 0;
6586 : }
6587 :
6588 : int
6589 402 : pattern1883 ()
6590 : {
6591 402 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6592 402 : int res ATTRIBUTE_UNUSED;
6593 402 : if (!const_0_to_15_operand (operands[2], E_VOIDmode)
6594 402 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
6595 402 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
6596 402 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6597 402 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6598 402 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6599 402 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6600 402 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6601 402 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6602 402 : || !const_0_to_15_operand (operands[11], E_VOIDmode)
6603 402 : || !const_0_to_15_operand (operands[12], E_VOIDmode)
6604 402 : || !const_0_to_15_operand (operands[13], E_VOIDmode)
6605 402 : || !const_0_to_15_operand (operands[14], E_VOIDmode)
6606 402 : || !const_0_to_15_operand (operands[15], E_VOIDmode)
6607 402 : || !const_0_to_15_operand (operands[16], E_VOIDmode)
6608 804 : || !const_0_to_15_operand (operands[17], E_VOIDmode))
6609 0 : return -1;
6610 : return 0;
6611 : }
6612 :
6613 : int
6614 1005 : pattern1892 (rtx x1, machine_mode i1)
6615 : {
6616 1005 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6617 1005 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6618 1005 : rtx x10;
6619 1005 : int res ATTRIBUTE_UNUSED;
6620 1005 : x2 = XVECEXP (x1, 0, 1);
6621 1005 : x3 = XEXP (x2, 1);
6622 1005 : if (XINT (x3, 1) != 109
6623 1005 : || GET_MODE (x3) != i1)
6624 : return -1;
6625 1005 : x4 = XVECEXP (x1, 0, 2);
6626 1005 : x5 = XEXP (x4, 1);
6627 1005 : if (GET_CODE (x5) != UNSPEC_VOLATILE
6628 1005 : || XVECLEN (x5, 0) != 1
6629 1005 : || XINT (x5, 1) != 109
6630 1005 : || GET_MODE (x5) != E_CCZmode)
6631 : return -1;
6632 1005 : x6 = XVECEXP (x5, 0, 0);
6633 1005 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
6634 1005 : || !memory_operand (operands[2], i1)
6635 2010 : || !register_operand (operands[3], i1))
6636 0 : return -1;
6637 1005 : x7 = XEXP (x4, 0);
6638 1005 : if (GET_MODE (x7) != E_CCZmode)
6639 : return -1;
6640 1005 : x8 = PATTERN (peep2_next_insn (2));
6641 1005 : x9 = XEXP (x8, 0);
6642 1005 : if (GET_MODE (x9) != E_CCZmode)
6643 : return -1;
6644 1005 : x10 = XEXP (x8, 1);
6645 1005 : if (GET_MODE (x10) != E_CCZmode
6646 1005 : || !register_operand (operands[5], i1)
6647 2005 : || !general_operand (operands[6], i1))
6648 5 : return -1;
6649 : return 0;
6650 : }
6651 :
6652 : int
6653 0 : pattern1902 (rtx x1, machine_mode i1, machine_mode i2)
6654 : {
6655 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6656 0 : rtx x2, x3, x4, x5, x6, x7;
6657 0 : int res ATTRIBUTE_UNUSED;
6658 0 : x2 = XVECEXP (x1, 0, 0);
6659 0 : x3 = XEXP (x2, 1);
6660 0 : x4 = XEXP (x3, 0);
6661 0 : x5 = XEXP (x4, 0);
6662 0 : if (GET_MODE (x5) != i2
6663 0 : || !ix86_carry_flag_operator (operands[4], i2))
6664 0 : return -1;
6665 0 : x6 = XEXP (x5, 1);
6666 0 : if (GET_MODE (x6) != i2
6667 0 : || !nonimmediate_operand (operands[1], i1))
6668 0 : return -1;
6669 0 : x7 = XEXP (x4, 1);
6670 0 : if (GET_MODE (x7) != i2
6671 0 : || !sext_operand (operands[2], i1)
6672 0 : || pattern1901 (x1,
6673 : i1,
6674 : i2) != 0)
6675 0 : return -1;
6676 : return 0;
6677 : }
6678 :
6679 : int
6680 718 : pattern1910 (rtx x1, int i1, int i2, int i3, int i4)
6681 : {
6682 718 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6683 718 : rtx x2, x3, x4, x5;
6684 718 : int res ATTRIBUTE_UNUSED;
6685 718 : x2 = XVECEXP (x1, 0, 28);
6686 718 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
6687 : return -1;
6688 718 : x3 = XVECEXP (x1, 0, 29);
6689 718 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
6690 : return -1;
6691 718 : x4 = XVECEXP (x1, 0, 30);
6692 718 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
6693 : return -1;
6694 718 : x5 = XVECEXP (x1, 0, 31);
6695 718 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
6696 0 : return -1;
6697 : return 0;
6698 : }
6699 :
6700 : int
6701 236 : pattern1917 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6702 : {
6703 236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6704 236 : rtx x2, x3, x4;
6705 236 : int res ATTRIBUTE_UNUSED;
6706 236 : if (!register_operand (operands[0], i3)
6707 236 : || GET_MODE (x1) != i3)
6708 : return -1;
6709 232 : x2 = XEXP (x1, 0);
6710 232 : if (GET_MODE (x2) != i3)
6711 : return -1;
6712 232 : x3 = XEXP (x2, 0);
6713 232 : if (GET_MODE (x3) != i3)
6714 : return -1;
6715 232 : x4 = XEXP (x3, 0);
6716 232 : if (GET_MODE (x4) != i2
6717 232 : || !register_operand (operands[1], i1))
6718 10 : return -1;
6719 : return 0;
6720 : }
6721 :
6722 : int
6723 94060325 : recog_2 (rtx x1 ATTRIBUTE_UNUSED,
6724 : rtx_insn *insn ATTRIBUTE_UNUSED,
6725 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6726 : {
6727 94060325 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6728 94060325 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6729 94060325 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6730 94060325 : int res ATTRIBUTE_UNUSED;
6731 94060325 : x2 = XEXP (x1, 1);
6732 94060325 : x3 = XEXP (x2, 0);
6733 94060325 : switch (GET_CODE (x3))
6734 : {
6735 94059028 : case NE:
6736 94059028 : case EQ:
6737 94059028 : case GE:
6738 94059028 : case GT:
6739 94059028 : case LE:
6740 94059028 : case LT:
6741 94059028 : case LTGT:
6742 94059028 : case GEU:
6743 94059028 : case GTU:
6744 94059028 : case LEU:
6745 94059028 : case LTU:
6746 94059028 : case UNORDERED:
6747 94059028 : case ORDERED:
6748 94059028 : case UNEQ:
6749 94059028 : case UNGE:
6750 94059028 : case UNGT:
6751 94059028 : case UNLE:
6752 94059028 : case UNLT:
6753 94059028 : operands[1] = x3;
6754 94059028 : res = recog_1 (x1, insn, pnum_clobbers);
6755 94059028 : if (res >= 0)
6756 : return res;
6757 14954929 : if (pnum_clobbers == NULL
6758 14954929 : || !bt_comparison_operator (x3, E_VOIDmode))
6759 5581005 : return -1;
6760 9373924 : x4 = XEXP (x3, 1);
6761 9373924 : if (GET_CODE (x4) != CONST_INT)
6762 : return -1;
6763 7060517 : x5 = XEXP (x3, 0);
6764 7060517 : switch (GET_CODE (x5))
6765 : {
6766 4412290 : case REG:
6767 4412290 : case SUBREG:
6768 4412290 : switch (XWINT (x4, 0))
6769 : {
6770 3185059 : case 0L:
6771 3185059 : x6 = XEXP (x2, 1);
6772 3185059 : if (GET_CODE (x6) != PLUS
6773 24878 : || GET_MODE (x6) != E_HImode)
6774 : return -1;
6775 297 : x7 = XEXP (x6, 1);
6776 297 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
6777 : return -1;
6778 18 : x8 = XEXP (x1, 0);
6779 18 : operands[0] = x8;
6780 18 : if (!register_operand (operands[0], E_HImode)
6781 18 : || GET_MODE (x2) != E_HImode)
6782 : return -1;
6783 18 : operands[1] = x3;
6784 18 : operands[2] = x5;
6785 18 : if (!register_operand (operands[2], E_HImode))
6786 : return -1;
6787 14 : x9 = XEXP (x2, 2);
6788 14 : operands[3] = x9;
6789 14 : if (!nonimmediate_operand (operands[3], E_HImode))
6790 : return -1;
6791 4 : x10 = XEXP (x6, 0);
6792 4 : if (!rtx_equal_p (x10, operands[2])
6793 4 : || !
6794 : #line 8797 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6795 : (TARGET_CMOVE))
6796 : return -1;
6797 : *pnum_clobbers = 1;
6798 : return 453; /* *dec_cmovhi */
6799 :
6800 : case -1L:
6801 : x6 = XEXP (x2, 1);
6802 : switch (GET_CODE (x6))
6803 : {
6804 : case LABEL_REF:
6805 : x9 = XEXP (x2, 2);
6806 : if (GET_CODE (x9) != PC)
6807 : return -1;
6808 : x8 = XEXP (x1, 0);
6809 : if (GET_CODE (x8) != PC)
6810 : return -1;
6811 : operands[0] = x3;
6812 : operands[1] = x5;
6813 : x10 = XEXP (x6, 0);
6814 : operands[2] = x10;
6815 : switch (GET_MODE (operands[1]))
6816 : {
6817 : case E_QImode:
6818 : if (!register_operand (operands[1], E_QImode)
6819 : || !(
6820 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6821 : (TARGET_AVX512BW) &&
6822 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6823 : (TARGET_AVX512DQ)))
6824 : return -1;
6825 : *pnum_clobbers = 1;
6826 : return 2693; /* *kortest_cmpqi_jcc */
6827 :
6828 : case E_HImode:
6829 : if (!register_operand (operands[1], E_HImode)
6830 : || !
6831 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6832 : (TARGET_AVX512BW))
6833 : return -1;
6834 : *pnum_clobbers = 1;
6835 : return 2694; /* *kortest_cmphi_jcc */
6836 :
6837 : case E_SImode:
6838 : if (!register_operand (operands[1], E_SImode)
6839 : || !
6840 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6841 : (TARGET_AVX512BW))
6842 : return -1;
6843 : *pnum_clobbers = 1;
6844 : return 2695; /* *kortest_cmpsi_jcc */
6845 :
6846 : case E_DImode:
6847 : if (!register_operand (operands[1], E_DImode)
6848 : || !(
6849 : #line 2442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6850 : (TARGET_AVX512BW) &&
6851 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6852 : (TARGET_AVX512BW && TARGET_64BIT)))
6853 : return -1;
6854 : *pnum_clobbers = 1;
6855 : return 2696; /* *kortest_cmpdi_jcc */
6856 :
6857 : default:
6858 : return -1;
6859 : }
6860 :
6861 : case REG:
6862 : case SUBREG:
6863 : case MEM:
6864 : operands[2] = x6;
6865 : x8 = XEXP (x1, 0);
6866 : operands[0] = x8;
6867 : operands[1] = x3;
6868 : operands[4] = x5;
6869 : x9 = XEXP (x2, 2);
6870 : operands[3] = x9;
6871 : switch (GET_MODE (operands[0]))
6872 : {
6873 : case E_QImode:
6874 : if (!register_operand (operands[0], E_QImode)
6875 : || GET_MODE (x2) != E_QImode
6876 : || !register_operand (operands[2], E_QImode)
6877 : || !register_operand (operands[3], E_QImode))
6878 : return -1;
6879 : switch (pattern1375 ())
6880 : {
6881 : case 0:
6882 : if (!(
6883 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6884 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
6885 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6886 : (TARGET_AVX512DQ)))
6887 : return -1;
6888 : *pnum_clobbers = 1;
6889 : return 2697; /* *kortest_cmpqi_movqicc */
6890 :
6891 : case 1:
6892 : if (!
6893 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6894 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL))
6895 : return -1;
6896 : *pnum_clobbers = 1;
6897 : return 2698; /* *kortest_cmphi_movqicc */
6898 :
6899 : case 2:
6900 : if (!(
6901 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6902 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
6903 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6904 : (TARGET_AVX512BW)))
6905 : return -1;
6906 : *pnum_clobbers = 1;
6907 : return 2699; /* *kortest_cmpsi_movqicc */
6908 :
6909 : case 3:
6910 : if (!(
6911 : #line 2478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6912 : (TARGET_AVX512BW && TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL) &&
6913 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6914 : (TARGET_AVX512BW && TARGET_64BIT)))
6915 : return -1;
6916 : *pnum_clobbers = 1;
6917 : return 2700; /* *kortest_cmpdi_movqicc */
6918 :
6919 : default:
6920 : return -1;
6921 : }
6922 :
6923 : case E_HImode:
6924 : switch (pattern1376 (x2,
6925 : E_HImode))
6926 : {
6927 : case 0:
6928 : if (!(
6929 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6930 : (TARGET_AVX512BW && TARGET_CMOVE
6931 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
6932 : #line 1556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6933 : (TARGET_AVX512DQ)))
6934 : return -1;
6935 : *pnum_clobbers = 1;
6936 : return 2701; /* *kortest_cmpqi_movhicc */
6937 :
6938 : case 1:
6939 : if (!
6940 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6941 : (TARGET_AVX512BW && TARGET_CMOVE
6942 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
6943 : return -1;
6944 : *pnum_clobbers = 1;
6945 : return 2704; /* *kortest_cmphi_movhicc */
6946 :
6947 : case 2:
6948 : if (!(
6949 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6950 : (TARGET_AVX512BW && TARGET_CMOVE
6951 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
6952 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6953 : (TARGET_AVX512BW)))
6954 : return -1;
6955 : *pnum_clobbers = 1;
6956 : return 2707; /* *kortest_cmpsi_movhicc */
6957 :
6958 : case 3:
6959 : if (!(
6960 : #line 2521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6961 : (TARGET_AVX512BW && TARGET_CMOVE
6962 : && !(MEM_P (operands[2]) && MEM_P (operands[3]))) &&
6963 : #line 1557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6964 : (TARGET_AVX512BW && TARGET_64BIT)))
6965 : return -1;
6966 : *pnum_clobbers = 1;
6967 : return 2710; /* *kortest_cmpdi_movhicc */
6968 :
6969 : default:
6970 : return -1;
6971 : }
6972 :
6973 : default:
6974 : return -1;
6975 : }
6976 :
6977 : default:
6978 : return -1;
6979 : }
6980 :
6981 : default:
6982 : return -1;
6983 : }
6984 :
6985 : case ZERO_EXTRACT:
6986 : x11 = XEXP (x5, 1);
6987 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
6988 : || XWINT (x4, 0) != 0L)
6989 : return -1;
6990 : x6 = XEXP (x2, 1);
6991 : if (GET_CODE (x6) != LABEL_REF)
6992 : return -1;
6993 : x9 = XEXP (x2, 2);
6994 : if (GET_CODE (x9) != PC)
6995 : return -1;
6996 : x8 = XEXP (x1, 0);
6997 : if (GET_CODE (x8) != PC)
6998 : return -1;
6999 : operands[0] = x3;
7000 : x12 = XEXP (x5, 0);
7001 : operands[1] = x12;
7002 : x13 = XEXP (x5, 2);
7003 : switch (GET_CODE (x13))
7004 : {
7005 : case CONST_INT:
7006 : case CONST_WIDE_INT:
7007 : case CONST_POLY_INT:
7008 : case CONST_FIXED:
7009 : case CONST_DOUBLE:
7010 : case CONST_VECTOR:
7011 : case CONST:
7012 : case REG:
7013 : case SUBREG:
7014 : case LABEL_REF:
7015 : case SYMBOL_REF:
7016 : case HIGH:
7017 : operands[2] = x13;
7018 : if (nonmemory_operand (operands[2], E_QImode))
7019 : {
7020 : x10 = XEXP (x6, 0);
7021 : operands[3] = x10;
7022 : switch (GET_MODE (x5))
7023 : {
7024 : case E_SImode:
7025 : if (nonimmediate_operand (operands[1], E_SImode)
7026 : &&
7027 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7028 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7029 : && (CONST_INT_P (operands[2])
7030 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (SImode)
7031 : && INTVAL (operands[2])
7032 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
7033 : : !memory_operand (operands[1], SImode))
7034 : && ix86_pre_reload_split ()))
7035 : {
7036 : *pnum_clobbers = 1;
7037 : return 1456; /* *jcc_btsi */
7038 : }
7039 : break;
7040 :
7041 : case E_DImode:
7042 : if (nonimmediate_operand (operands[1], E_DImode)
7043 : && (
7044 : #line 19549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7045 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7046 : && (CONST_INT_P (operands[2])
7047 : ? (INTVAL (operands[2]) < GET_MODE_BITSIZE (DImode)
7048 : && INTVAL (operands[2])
7049 : >= (optimize_function_for_size_p (cfun) ? 8 : 32))
7050 : : !memory_operand (operands[1], DImode))
7051 : && ix86_pre_reload_split ()) &&
7052 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7053 : (TARGET_64BIT)))
7054 : {
7055 : *pnum_clobbers = 1;
7056 : return 1457; /* *jcc_btdi */
7057 : }
7058 : break;
7059 :
7060 : default:
7061 : break;
7062 : }
7063 : }
7064 : if (GET_CODE (x13) != SUBREG
7065 : || maybe_ne (SUBREG_BYTE (x13), 0)
7066 : || GET_MODE (x13) != E_QImode)
7067 : return -1;
7068 : x14 = XEXP (x13, 0);
7069 : if (GET_CODE (x14) != AND)
7070 : return -1;
7071 : x15 = XEXP (x14, 0);
7072 : operands[2] = x15;
7073 : x16 = XEXP (x14, 1);
7074 : operands[3] = x16;
7075 : if (!const_int_operand (operands[3], E_VOIDmode))
7076 : return -1;
7077 : x10 = XEXP (x6, 0);
7078 : operands[4] = x10;
7079 : switch (GET_MODE (x5))
7080 : {
7081 : case E_SImode:
7082 : switch (pattern1788 (x14,
7083 : E_SImode))
7084 : {
7085 : case 0:
7086 : if (!
7087 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7088 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7089 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
7090 : == GET_MODE_BITSIZE (SImode)-1
7091 : && ix86_pre_reload_split ()))
7092 : return -1;
7093 : *pnum_clobbers = 1;
7094 : return 1460; /* *jcc_btsi_mask_1 */
7095 :
7096 : case 1:
7097 : if (!
7098 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7099 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7100 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
7101 : == GET_MODE_BITSIZE (SImode)-1
7102 : && ix86_pre_reload_split ()))
7103 : return -1;
7104 : *pnum_clobbers = 1;
7105 : return 1462; /* *jcc_btsi_mask_1 */
7106 :
7107 : case 2:
7108 : if (!(
7109 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7110 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7111 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
7112 : == GET_MODE_BITSIZE (SImode)-1
7113 : && ix86_pre_reload_split ()) &&
7114 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7115 : (TARGET_64BIT)))
7116 : return -1;
7117 : *pnum_clobbers = 1;
7118 : return 1464; /* *jcc_btsi_mask_1 */
7119 :
7120 : default:
7121 : return -1;
7122 : }
7123 :
7124 : case E_DImode:
7125 : switch (pattern1788 (x14,
7126 : E_DImode))
7127 : {
7128 : case 0:
7129 : if (!(
7130 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7131 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7132 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
7133 : == GET_MODE_BITSIZE (DImode)-1
7134 : && ix86_pre_reload_split ()) &&
7135 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7136 : (TARGET_64BIT)))
7137 : return -1;
7138 : *pnum_clobbers = 1;
7139 : return 1461; /* *jcc_btdi_mask_1 */
7140 :
7141 : case 1:
7142 : if (!(
7143 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7144 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7145 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
7146 : == GET_MODE_BITSIZE (DImode)-1
7147 : && ix86_pre_reload_split ()) &&
7148 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7149 : (TARGET_64BIT)))
7150 : return -1;
7151 : *pnum_clobbers = 1;
7152 : return 1463; /* *jcc_btdi_mask_1 */
7153 :
7154 : case 2:
7155 : if (!(
7156 : #line 19625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7157 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7158 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
7159 : == GET_MODE_BITSIZE (DImode)-1
7160 : && ix86_pre_reload_split ()) &&
7161 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7162 : (TARGET_64BIT)))
7163 : return -1;
7164 : *pnum_clobbers = 1;
7165 : return 1465; /* *jcc_btdi_mask_1 */
7166 :
7167 : default:
7168 : return -1;
7169 : }
7170 :
7171 : default:
7172 : return -1;
7173 : }
7174 :
7175 : case AND:
7176 : if (GET_MODE (x13) != E_QImode)
7177 : return -1;
7178 : x14 = XEXP (x13, 0);
7179 : operands[2] = x14;
7180 : if (!register_operand (operands[2], E_QImode))
7181 : return -1;
7182 : x17 = XEXP (x13, 1);
7183 : operands[3] = x17;
7184 : if (!const_int_operand (operands[3], E_VOIDmode))
7185 : return -1;
7186 : x10 = XEXP (x6, 0);
7187 : operands[4] = x10;
7188 : switch (GET_MODE (x5))
7189 : {
7190 : case E_SImode:
7191 : if (!register_operand (operands[1], E_SImode)
7192 : || !
7193 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7194 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7195 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
7196 : == GET_MODE_BITSIZE (SImode)-1
7197 : && ix86_pre_reload_split ()))
7198 : return -1;
7199 : *pnum_clobbers = 1;
7200 : return 1458; /* *jcc_btsi_mask */
7201 :
7202 : case E_DImode:
7203 : if (!register_operand (operands[1], E_DImode)
7204 : || !(
7205 : #line 19588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7206 : ((TARGET_USE_BT || optimize_function_for_size_p (cfun))
7207 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
7208 : == GET_MODE_BITSIZE (DImode)-1
7209 : && ix86_pre_reload_split ()) &&
7210 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7211 : (TARGET_64BIT)))
7212 : return -1;
7213 : *pnum_clobbers = 1;
7214 : return 1459; /* *jcc_btdi_mask */
7215 :
7216 : default:
7217 : return -1;
7218 : }
7219 :
7220 : default:
7221 : return -1;
7222 : }
7223 :
7224 : default:
7225 : return -1;
7226 : }
7227 :
7228 : case REG:
7229 : case SUBREG:
7230 : x8 = XEXP (x1, 0);
7231 : operands[0] = x8;
7232 : switch (GET_MODE (operands[0]))
7233 : {
7234 : case E_SFmode:
7235 : if (pattern251 (x2,
7236 : E_SFmode) != 0
7237 : || !
7238 : #line 27167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7239 : (TARGET_XOP))
7240 : return -1;
7241 : return 1847; /* *xop_pcmov_sf */
7242 :
7243 : case E_DFmode:
7244 : if (pattern251 (x2,
7245 : E_DFmode) != 0
7246 : || !
7247 : #line 27167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7248 : (TARGET_XOP))
7249 : return -1;
7250 : return 1848; /* *xop_pcmov_df */
7251 :
7252 : case E_V8QImode:
7253 : if (pattern252 (x2,
7254 : E_V8QImode) != 0
7255 : || !
7256 : #line 4494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7257 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7258 : return -1;
7259 : return 2309; /* *xop_pcmov_v8qi */
7260 :
7261 : case E_V4HImode:
7262 : if (pattern252 (x2,
7263 : E_V4HImode) != 0
7264 : || !
7265 : #line 4494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7266 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7267 : return -1;
7268 : return 2310; /* *xop_pcmov_v4hi */
7269 :
7270 : case E_V2SImode:
7271 : if (pattern252 (x2,
7272 : E_V2SImode) != 0
7273 : || !
7274 : #line 4494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7275 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7276 : return -1;
7277 : return 2311; /* *xop_pcmov_v2si */
7278 :
7279 : case E_V2SFmode:
7280 : if (pattern252 (x2,
7281 : E_V2SFmode) != 0
7282 : || !
7283 : #line 4494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7284 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7285 : return -1;
7286 : return 2312; /* *xop_pcmov_v2sf */
7287 :
7288 : case E_V4HFmode:
7289 : if (pattern252 (x2,
7290 : E_V4HFmode) != 0
7291 : || !
7292 : #line 4505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7293 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7294 : return -1;
7295 : return 2313; /* *xop_pcmov_v4hf */
7296 :
7297 : case E_V4BFmode:
7298 : if (pattern252 (x2,
7299 : E_V4BFmode) != 0
7300 : || !
7301 : #line 4505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7302 : (TARGET_XOP && TARGET_MMX_WITH_SSE))
7303 : return -1;
7304 : return 2314; /* *xop_pcmov_v4bf */
7305 :
7306 : case E_V4QImode:
7307 : if (pattern252 (x2,
7308 : E_V4QImode) != 0
7309 : || !
7310 : #line 4516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7311 : (TARGET_XOP))
7312 : return -1;
7313 : return 2315; /* *xop_pcmov_v4qi */
7314 :
7315 : case E_V2QImode:
7316 : if (pattern252 (x2,
7317 : E_V2QImode) != 0
7318 : || !
7319 : #line 4516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7320 : (TARGET_XOP))
7321 : return -1;
7322 : return 2316; /* *xop_pcmov_v2qi */
7323 :
7324 : case E_V2HImode:
7325 : if (pattern252 (x2,
7326 : E_V2HImode) != 0
7327 : || !
7328 : #line 4516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7329 : (TARGET_XOP))
7330 : return -1;
7331 : return 2317; /* *xop_pcmov_v2hi */
7332 :
7333 : case E_V2HFmode:
7334 : if (pattern252 (x2,
7335 : E_V2HFmode) != 0
7336 : || !
7337 : #line 4527 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7338 : (TARGET_XOP))
7339 : return -1;
7340 : return 2318; /* *xop_pcmov_v2hf */
7341 :
7342 : case E_V2BFmode:
7343 : if (pattern252 (x2,
7344 : E_V2BFmode) != 0
7345 : || !
7346 : #line 4527 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7347 : (TARGET_XOP))
7348 : return -1;
7349 : return 2319; /* *xop_pcmov_v2bf */
7350 :
7351 : default:
7352 : return -1;
7353 : }
7354 :
7355 : case AND:
7356 : if (GET_MODE (x3) != E_QImode)
7357 : return -1;
7358 : x4 = XEXP (x3, 1);
7359 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
7360 : return -1;
7361 : x6 = XEXP (x2, 1);
7362 : if (pattern253 (x6) != 0)
7363 : return -1;
7364 : x8 = XEXP (x1, 0);
7365 : operands[0] = x8;
7366 : x5 = XEXP (x3, 0);
7367 : operands[2] = x5;
7368 : if (!register_operand (operands[2], E_QImode))
7369 : return -1;
7370 : x10 = XEXP (x6, 0);
7371 : operands[1] = x10;
7372 : x9 = XEXP (x2, 2);
7373 : if (!rtx_equal_p (x9, operands[0]))
7374 : return -1;
7375 : switch (GET_MODE (operands[0]))
7376 : {
7377 : case E_HFmode:
7378 : if (pattern1460 (x2,
7379 : E_V8HFmode,
7380 : E_HFmode) != 0
7381 : || !(
7382 : #line 1762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7383 : (TARGET_AVX512F) &&
7384 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7385 : (TARGET_AVX512FP16)))
7386 : return -1;
7387 : return 2566; /* avx512f_storehf_mask */
7388 :
7389 : case E_SFmode:
7390 : if (pattern1460 (x2,
7391 : E_V4SFmode,
7392 : E_SFmode) != 0
7393 : || !
7394 : #line 1762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7395 : (TARGET_AVX512F))
7396 : return -1;
7397 : return 2567; /* avx512f_storesf_mask */
7398 :
7399 : case E_DFmode:
7400 : if (pattern1460 (x2,
7401 : E_V2DFmode,
7402 : E_DFmode) != 0
7403 : || !
7404 : #line 1762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7405 : (TARGET_AVX512F))
7406 : return -1;
7407 : return 2568; /* avx512f_storedf_mask */
7408 :
7409 : default:
7410 : return -1;
7411 : }
7412 :
7413 : default:
7414 : return -1;
7415 : }
7416 : }
7417 :
7418 : int
7419 : recog_26 (rtx x1 ATTRIBUTE_UNUSED,
7420 : rtx_insn *insn ATTRIBUTE_UNUSED,
7421 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7422 : {
7423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7424 : rtx x2, x3, x4, x5, x6, x7, x8;
7425 : int res ATTRIBUTE_UNUSED;
7426 : x2 = XEXP (x1, 1);
7427 : switch (GET_CODE (x2))
7428 : {
7429 : case SIGN_EXTRACT:
7430 : res = recog_22 (x1, insn, pnum_clobbers);
7431 : if (res >= 0)
7432 : return res;
7433 : break;
7434 :
7435 : case ZERO_EXTRACT:
7436 : res = recog_23 (x1, insn, pnum_clobbers);
7437 : if (res >= 0)
7438 : return res;
7439 : break;
7440 :
7441 : case LSHIFTRT:
7442 : res = recog_24 (x1, insn, pnum_clobbers);
7443 : if (res >= 0)
7444 : return res;
7445 : break;
7446 :
7447 : case ASHIFTRT:
7448 : res = recog_25 (x1, insn, pnum_clobbers);
7449 : if (res >= 0)
7450 : return res;
7451 : break;
7452 :
7453 : default:
7454 : break;
7455 : }
7456 : x3 = XEXP (x1, 0);
7457 : if (GET_CODE (x3) != ZERO_EXTRACT)
7458 : return -1;
7459 : x4 = XEXP (x3, 1);
7460 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
7461 : return -1;
7462 : x5 = XEXP (x3, 2);
7463 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
7464 : return -1;
7465 : x6 = XEXP (x3, 0);
7466 : operands[0] = x6;
7467 : if (!int248_register_operand (operands[0], E_VOIDmode))
7468 : return -1;
7469 : x7 = XEXP (x2, 0);
7470 : switch (GET_CODE (x7))
7471 : {
7472 : case REG:
7473 : case SUBREG:
7474 : operands[1] = x7;
7475 : if (int248_register_operand (operands[1], E_VOIDmode))
7476 : {
7477 : operands[2] = x2;
7478 : switch (GET_MODE (x3))
7479 : {
7480 : case E_HImode:
7481 : if (extract_high_operator (operands[2], E_HImode))
7482 : return 138; /* *insvqi_2 */
7483 : break;
7484 :
7485 : case E_SImode:
7486 : if (extract_high_operator (operands[2], E_SImode))
7487 : return 139; /* *insvqi_2 */
7488 : break;
7489 :
7490 : case E_DImode:
7491 : if (extract_high_operator (operands[2], E_DImode)
7492 : &&
7493 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7494 : (TARGET_64BIT))
7495 : return 140; /* *insvqi_2 */
7496 : break;
7497 :
7498 : default:
7499 : break;
7500 : }
7501 : }
7502 : break;
7503 :
7504 : case AND:
7505 : switch (pattern744 (x1, pnum_clobbers))
7506 : {
7507 : case 0:
7508 : if (
7509 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7510 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7511 : {
7512 : *pnum_clobbers = 1;
7513 : return 828; /* *andqi_exthi_3 */
7514 : }
7515 : break;
7516 :
7517 : case 1:
7518 : if (
7519 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7520 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7521 : {
7522 : *pnum_clobbers = 1;
7523 : return 831; /* *andqi_extsi_3 */
7524 : }
7525 : break;
7526 :
7527 : case 2:
7528 : if ((
7529 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7530 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
7531 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7532 : (TARGET_64BIT)))
7533 : {
7534 : *pnum_clobbers = 1;
7535 : return 834; /* *andqi_extdi_3 */
7536 : }
7537 : break;
7538 :
7539 : default:
7540 : break;
7541 : }
7542 : break;
7543 :
7544 : case IOR:
7545 : switch (pattern744 (x1, pnum_clobbers))
7546 : {
7547 : case 0:
7548 : if (
7549 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7550 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7551 : {
7552 : *pnum_clobbers = 1;
7553 : return 829; /* *iorqi_exthi_3 */
7554 : }
7555 : break;
7556 :
7557 : case 1:
7558 : if (
7559 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7560 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7561 : {
7562 : *pnum_clobbers = 1;
7563 : return 832; /* *iorqi_extsi_3 */
7564 : }
7565 : break;
7566 :
7567 : case 2:
7568 : if ((
7569 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7570 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
7571 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7572 : (TARGET_64BIT)))
7573 : {
7574 : *pnum_clobbers = 1;
7575 : return 835; /* *iorqi_extdi_3 */
7576 : }
7577 : break;
7578 :
7579 : default:
7580 : break;
7581 : }
7582 : break;
7583 :
7584 : case XOR:
7585 : switch (pattern744 (x1, pnum_clobbers))
7586 : {
7587 : case 0:
7588 : if (
7589 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7590 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7591 : {
7592 : *pnum_clobbers = 1;
7593 : return 830; /* *xorqi_exthi_3 */
7594 : }
7595 : break;
7596 :
7597 : case 1:
7598 : if (
7599 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7600 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
7601 : {
7602 : *pnum_clobbers = 1;
7603 : return 833; /* *xorqi_extsi_3 */
7604 : }
7605 : break;
7606 :
7607 : case 2:
7608 : if ((
7609 : #line 13548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7610 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
7611 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7612 : (TARGET_64BIT)))
7613 : {
7614 : *pnum_clobbers = 1;
7615 : return 836; /* *xorqi_extdi_3 */
7616 : }
7617 : break;
7618 :
7619 : default:
7620 : break;
7621 : }
7622 : break;
7623 :
7624 : default:
7625 : break;
7626 : }
7627 : x8 = XEXP (x2, 1);
7628 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
7629 : return -1;
7630 : operands[1] = x7;
7631 : switch (GET_CODE (x2))
7632 : {
7633 : case LSHIFTRT:
7634 : switch (pattern972 (x1))
7635 : {
7636 : case 0:
7637 : return 141; /* *insvqi_3 */
7638 :
7639 : case 1:
7640 : return 143; /* *insvqi_3 */
7641 :
7642 : case 2:
7643 : if (!
7644 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7645 : (TARGET_64BIT))
7646 : return -1;
7647 : return 145; /* *insvqi_3 */
7648 :
7649 : default:
7650 : return -1;
7651 : }
7652 :
7653 : case ASHIFTRT:
7654 : switch (pattern972 (x1))
7655 : {
7656 : case 0:
7657 : return 142; /* *insvqi_3 */
7658 :
7659 : case 1:
7660 : return 144; /* *insvqi_3 */
7661 :
7662 : case 2:
7663 : if (!
7664 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7665 : (TARGET_64BIT))
7666 : return -1;
7667 : return 146; /* *insvqi_3 */
7668 :
7669 : default:
7670 : return -1;
7671 : }
7672 :
7673 : default:
7674 : return -1;
7675 : }
7676 : }
7677 :
7678 : int
7679 : recog_31 (rtx x1 ATTRIBUTE_UNUSED,
7680 : rtx_insn *insn ATTRIBUTE_UNUSED,
7681 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7682 : {
7683 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7684 : rtx x2, x3, x4, x5, x6, x7;
7685 : int res ATTRIBUTE_UNUSED;
7686 : x2 = XEXP (x1, 0);
7687 : operands[0] = x2;
7688 : x3 = XEXP (x1, 1);
7689 : x4 = XEXP (x3, 0);
7690 : switch (GET_CODE (x4))
7691 : {
7692 : case REG:
7693 : case SUBREG:
7694 : case MEM:
7695 : operands[1] = x4;
7696 : switch (GET_MODE (operands[0]))
7697 : {
7698 : case E_DImode:
7699 : if (GET_MODE (x3) == E_DImode)
7700 : {
7701 : if (register_operand (operands[0], E_DImode))
7702 : {
7703 : switch (GET_MODE (operands[1]))
7704 : {
7705 : case E_SImode:
7706 : if (nonimmediate_operand (operands[1], E_SImode)
7707 : &&
7708 : #line 4982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7709 : (TARGET_64BIT))
7710 : return 188; /* *extendsidi2_rex64 */
7711 : break;
7712 :
7713 : case E_QImode:
7714 : if (nonimmediate_operand (operands[1], E_QImode)
7715 : &&
7716 : #line 5141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7717 : (TARGET_64BIT))
7718 : return 191; /* extendqidi2 */
7719 : break;
7720 :
7721 : case E_HImode:
7722 : if (nonimmediate_operand (operands[1], E_HImode)
7723 : &&
7724 : #line 5141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7725 : (TARGET_64BIT))
7726 : return 192; /* extendhidi2 */
7727 : break;
7728 :
7729 : default:
7730 : break;
7731 : }
7732 : }
7733 : if (pnum_clobbers != NULL
7734 : && nonimmediate_operand (operands[0], E_DImode)
7735 : && register_operand (operands[1], E_SImode)
7736 : &&
7737 : #line 4996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7738 : (!TARGET_64BIT))
7739 : {
7740 : *pnum_clobbers = 2;
7741 : return 189; /* extendsidi2_1 */
7742 : }
7743 : }
7744 : break;
7745 :
7746 : case E_TImode:
7747 : if (pattern261 (x3, pnum_clobbers,
7748 : E_DImode,
7749 : E_TImode) == 0
7750 : &&
7751 : #line 5004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7752 : (TARGET_64BIT))
7753 : {
7754 : *pnum_clobbers = 2;
7755 : return 190; /* extendditi2 */
7756 : }
7757 : break;
7758 :
7759 : case E_SImode:
7760 : if (register_operand (operands[0], E_SImode)
7761 : && GET_MODE (x3) == E_SImode)
7762 : {
7763 : switch (GET_MODE (operands[1]))
7764 : {
7765 : case E_HImode:
7766 : if (nonimmediate_operand (operands[1], E_HImode))
7767 : return 193; /* extendhisi2 */
7768 : break;
7769 :
7770 : case E_QImode:
7771 : if (nonimmediate_operand (operands[1], E_QImode))
7772 : return 195; /* extendqisi2 */
7773 : break;
7774 :
7775 : default:
7776 : break;
7777 : }
7778 : }
7779 : break;
7780 :
7781 : case E_HImode:
7782 : if (register_operand (operands[0], E_HImode)
7783 : && GET_MODE (x3) == E_HImode
7784 : && nonimmediate_operand (operands[1], E_QImode))
7785 : return 197; /* extendqihi2 */
7786 : break;
7787 :
7788 : default:
7789 : break;
7790 : }
7791 : if (GET_CODE (x4) != SUBREG
7792 : || maybe_ne (SUBREG_BYTE (x4), 0)
7793 : || GET_MODE (x4) != E_QImode)
7794 : return -1;
7795 : x5 = XEXP (x4, 0);
7796 : switch (GET_CODE (x5))
7797 : {
7798 : case ASHIFTRT:
7799 : case LSHIFTRT:
7800 : case SIGN_EXTRACT:
7801 : case ZERO_EXTRACT:
7802 : operands[2] = x5;
7803 : x6 = XEXP (x5, 0);
7804 : operands[1] = x6;
7805 : if (!int248_register_operand (operands[1], E_VOIDmode))
7806 : return -1;
7807 : switch (GET_MODE (operands[0]))
7808 : {
7809 : case E_HImode:
7810 : switch (pattern1213 (x3,
7811 : E_HImode))
7812 : {
7813 : case 0:
7814 : return 198; /* *extendqihi_ext_1 */
7815 :
7816 : case 1:
7817 : return 199; /* *extendqihi_ext_1 */
7818 :
7819 : case 2:
7820 : if (!
7821 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7822 : (TARGET_64BIT))
7823 : return -1;
7824 : return 200; /* *extendqihi_ext_1 */
7825 :
7826 : default:
7827 : return -1;
7828 : }
7829 :
7830 : case E_SImode:
7831 : switch (pattern1213 (x3,
7832 : E_SImode))
7833 : {
7834 : case 0:
7835 : return 201; /* *extendqisi_ext_1 */
7836 :
7837 : case 1:
7838 : return 202; /* *extendqisi_ext_1 */
7839 :
7840 : case 2:
7841 : if (!
7842 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7843 : (TARGET_64BIT))
7844 : return -1;
7845 : return 203; /* *extendqisi_ext_1 */
7846 :
7847 : default:
7848 : return -1;
7849 : }
7850 :
7851 : default:
7852 : return -1;
7853 : }
7854 :
7855 : default:
7856 : return -1;
7857 : }
7858 :
7859 : case SS_TRUNCATE:
7860 : if (GET_MODE (x4) != E_V2HImode)
7861 : return -1;
7862 : x5 = XEXP (x4, 0);
7863 : if (GET_CODE (x5) != FIX
7864 : || GET_MODE (x5) != E_V2SImode
7865 : || !register_operand (operands[0], E_V2SImode)
7866 : || GET_MODE (x3) != E_V2SImode)
7867 : return -1;
7868 : x6 = XEXP (x5, 0);
7869 : operands[1] = x6;
7870 : if (!nonimmediate_operand (operands[1], E_V2SFmode)
7871 : || !
7872 : #line 1635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7873 : (TARGET_3DNOW_A))
7874 : return -1;
7875 : return 2139; /* mmx_pf2iw */
7876 :
7877 : case VEC_SELECT:
7878 : x7 = XEXP (x4, 1);
7879 : if (GET_CODE (x7) != PARALLEL)
7880 : return -1;
7881 : x5 = XEXP (x4, 0);
7882 : operands[1] = x5;
7883 : switch (XVECLEN (x7, 0))
7884 : {
7885 : case 4:
7886 : if (pattern619 (x3) != 0
7887 : || !
7888 : #line 5039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7889 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7890 : return -1;
7891 : return 2361; /* sse4_1_sign_extendv4qiv4hi2 */
7892 :
7893 : case 2:
7894 : switch (pattern620 (x3))
7895 : {
7896 : case 0:
7897 : if (!
7898 : #line 5071 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7899 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7900 : return -1;
7901 : return 2363; /* sse4_1_sign_extendv2hiv2si2 */
7902 :
7903 : case 1:
7904 : if (!
7905 : #line 5103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7906 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
7907 : return -1;
7908 : return 2365; /* sse4_1_sign_extendv2qiv2si2 */
7909 :
7910 : case 2:
7911 : if (!
7912 : #line 5129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7913 : (TARGET_SSE4_1))
7914 : return -1;
7915 : return 2367; /* sse4_1_sign_extendv2qiv2hi2 */
7916 :
7917 : default:
7918 : return -1;
7919 : }
7920 :
7921 : default:
7922 : return -1;
7923 : }
7924 :
7925 : default:
7926 : return -1;
7927 : }
7928 : }
7929 :
7930 : int
7931 : recog_40 (rtx x1 ATTRIBUTE_UNUSED,
7932 : rtx_insn *insn ATTRIBUTE_UNUSED,
7933 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7934 : {
7935 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7936 : rtx x2, x3, x4, x5, x6;
7937 : int res ATTRIBUTE_UNUSED;
7938 : x2 = XEXP (x1, 1);
7939 : x3 = XEXP (x2, 1);
7940 : switch (GET_CODE (x3))
7941 : {
7942 : case REG:
7943 : case SUBREG:
7944 : switch (pattern1086 (x2))
7945 : {
7946 : case 0:
7947 : switch (GET_MODE (operands[1]))
7948 : {
7949 : case E_V16SImode:
7950 : if (!register_operand (operands[1], E_V16SImode)
7951 : || !nonimmediate_operand (operands[2], E_V16SImode)
7952 : || !const_0_to_7_operand (operands[3], E_SImode)
7953 : || !(
7954 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7955 : (TARGET_AVX512F) &&
7956 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7957 : (TARGET_AVX512F && 1)))
7958 : return -1;
7959 : return 3324; /* avx512f_cmpv16si3_mask */
7960 :
7961 : case E_V16HFmode:
7962 : if (!register_operand (operands[1], E_V16HFmode)
7963 : || !nonimmediate_operand (operands[2], E_V16HFmode)
7964 : || !const_0_to_31_operand (operands[3], E_SImode)
7965 : || !(
7966 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7967 : (TARGET_AVX512F) && (
7968 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7969 : (TARGET_AVX512F && 1) &&
7970 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7971 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
7972 : return -1;
7973 : return 3343; /* avx512vl_cmpv16hf3_mask */
7974 :
7975 : case E_V16SFmode:
7976 : if (!register_operand (operands[1], E_V16SFmode)
7977 : || !nonimmediate_operand (operands[2], E_V16SFmode)
7978 : || !const_0_to_31_operand (operands[3], E_SImode)
7979 : || !(
7980 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7981 : (TARGET_AVX512F) &&
7982 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7983 : (TARGET_AVX512F && 1)))
7984 : return -1;
7985 : return 3348; /* avx512f_cmpv16sf3_mask */
7986 :
7987 : case E_V16QImode:
7988 : if (!register_operand (operands[1], E_V16QImode)
7989 : || !nonimmediate_operand (operands[2], E_V16QImode)
7990 : || !const_0_to_7_operand (operands[3], E_SImode)
7991 : || !(
7992 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7993 : (TARGET_AVX512F) && (
7994 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7995 : (TARGET_AVX512BW) &&
7996 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7997 : (TARGET_AVX512VL))))
7998 : return -1;
7999 : return 3485; /* avx512vl_cmpv16qi3_mask */
8000 :
8001 : case E_V16HImode:
8002 : if (!register_operand (operands[1], E_V16HImode)
8003 : || !nonimmediate_operand (operands[2], E_V16HImode)
8004 : || !const_0_to_7_operand (operands[3], E_SImode)
8005 : || !(
8006 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8007 : (TARGET_AVX512F) && (
8008 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8009 : (TARGET_AVX512BW) &&
8010 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8011 : (TARGET_AVX512VL))))
8012 : return -1;
8013 : return 3491; /* avx512vl_cmpv16hi3_mask */
8014 :
8015 : case E_V16BFmode:
8016 : if (!register_operand (operands[1], E_V16BFmode)
8017 : || !nonimmediate_operand (operands[2], E_V16BFmode)
8018 : || !const_0_to_31_operand (operands[3], E_VOIDmode)
8019 : || !(
8020 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8021 : (TARGET_AVX512F) &&
8022 : #line 33164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8023 : (TARGET_AVX10_2)))
8024 : return -1;
8025 : return 10801; /* avx10_2_cmpbf16_v16bf_mask */
8026 :
8027 : default:
8028 : return -1;
8029 : }
8030 :
8031 : case 1:
8032 : switch (GET_MODE (operands[1]))
8033 : {
8034 : case E_V8SImode:
8035 : if (!register_operand (operands[1], E_V8SImode)
8036 : || !nonimmediate_operand (operands[2], E_V8SImode)
8037 : || !const_0_to_7_operand (operands[3], E_SImode)
8038 : || !(
8039 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8040 : (TARGET_AVX512F) && (
8041 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8042 : (TARGET_AVX512F && 1) &&
8043 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8044 : (TARGET_AVX512VL))))
8045 : return -1;
8046 : return 3327; /* avx512vl_cmpv8si3_mask */
8047 :
8048 : case E_V4SImode:
8049 : if (!register_operand (operands[1], E_V4SImode)
8050 : || !nonimmediate_operand (operands[2], E_V4SImode)
8051 : || !const_0_to_7_operand (operands[3], E_SImode)
8052 : || !(
8053 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8054 : (TARGET_AVX512F) && (
8055 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8056 : (TARGET_AVX512F && 1) &&
8057 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8058 : (TARGET_AVX512VL))))
8059 : return -1;
8060 : return 3329; /* avx512vl_cmpv4si3_mask */
8061 :
8062 : case E_V8DImode:
8063 : if (!register_operand (operands[1], E_V8DImode)
8064 : || !nonimmediate_operand (operands[2], E_V8DImode)
8065 : || !const_0_to_7_operand (operands[3], E_SImode)
8066 : || !(
8067 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8068 : (TARGET_AVX512F) &&
8069 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8070 : (TARGET_AVX512F && 1)))
8071 : return -1;
8072 : return 3332; /* avx512f_cmpv8di3_mask */
8073 :
8074 : case E_V4DImode:
8075 : if (!register_operand (operands[1], E_V4DImode)
8076 : || !nonimmediate_operand (operands[2], E_V4DImode)
8077 : || !const_0_to_7_operand (operands[3], E_SImode)
8078 : || !(
8079 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8080 : (TARGET_AVX512F) && (
8081 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8082 : (TARGET_AVX512F && 1) &&
8083 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8084 : (TARGET_AVX512VL))))
8085 : return -1;
8086 : return 3335; /* avx512vl_cmpv4di3_mask */
8087 :
8088 : case E_V2DImode:
8089 : if (!register_operand (operands[1], E_V2DImode)
8090 : || !nonimmediate_operand (operands[2], E_V2DImode)
8091 : || !const_0_to_7_operand (operands[3], E_SImode)
8092 : || !(
8093 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8094 : (TARGET_AVX512F) && (
8095 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8096 : (TARGET_AVX512F && 1) &&
8097 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8098 : (TARGET_AVX512VL))))
8099 : return -1;
8100 : return 3337; /* avx512vl_cmpv2di3_mask */
8101 :
8102 : case E_V8HFmode:
8103 : if (!register_operand (operands[1], E_V8HFmode)
8104 : || !nonimmediate_operand (operands[2], E_V8HFmode)
8105 : || !const_0_to_31_operand (operands[3], E_SImode)
8106 : || !(
8107 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8108 : (TARGET_AVX512F) && (
8109 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8110 : (TARGET_AVX512F && 1) &&
8111 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8112 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
8113 : return -1;
8114 : return 3345; /* avx512fp16_cmpv8hf3_mask */
8115 :
8116 : case E_V8SFmode:
8117 : if (!register_operand (operands[1], E_V8SFmode)
8118 : || !nonimmediate_operand (operands[2], E_V8SFmode)
8119 : || !const_0_to_31_operand (operands[3], E_SImode)
8120 : || !(
8121 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8122 : (TARGET_AVX512F) && (
8123 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8124 : (TARGET_AVX512F && 1) &&
8125 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8126 : (TARGET_AVX512VL))))
8127 : return -1;
8128 : return 3351; /* avx512vl_cmpv8sf3_mask */
8129 :
8130 : case E_V4SFmode:
8131 : if (!register_operand (operands[1], E_V4SFmode)
8132 : || !nonimmediate_operand (operands[2], E_V4SFmode)
8133 : || !const_0_to_31_operand (operands[3], E_SImode)
8134 : || !(
8135 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8136 : (TARGET_AVX512F) && (
8137 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8138 : (TARGET_AVX512F && 1) &&
8139 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8140 : (TARGET_AVX512VL))))
8141 : return -1;
8142 : return 3353; /* avx512vl_cmpv4sf3_mask */
8143 :
8144 : case E_V8DFmode:
8145 : if (!register_operand (operands[1], E_V8DFmode)
8146 : || !nonimmediate_operand (operands[2], E_V8DFmode)
8147 : || !const_0_to_31_operand (operands[3], E_SImode)
8148 : || !(
8149 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8150 : (TARGET_AVX512F) &&
8151 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8152 : (TARGET_AVX512F && 1)))
8153 : return -1;
8154 : return 3356; /* avx512f_cmpv8df3_mask */
8155 :
8156 : case E_V4DFmode:
8157 : if (!register_operand (operands[1], E_V4DFmode)
8158 : || !nonimmediate_operand (operands[2], E_V4DFmode)
8159 : || !const_0_to_31_operand (operands[3], E_SImode)
8160 : || !(
8161 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8162 : (TARGET_AVX512F) && (
8163 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8164 : (TARGET_AVX512F && 1) &&
8165 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8166 : (TARGET_AVX512VL))))
8167 : return -1;
8168 : return 3359; /* avx512vl_cmpv4df3_mask */
8169 :
8170 : case E_V2DFmode:
8171 : if (!register_operand (operands[1], E_V2DFmode)
8172 : || !nonimmediate_operand (operands[2], E_V2DFmode)
8173 : || !const_0_to_31_operand (operands[3], E_SImode)
8174 : || !(
8175 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8176 : (TARGET_AVX512F) && (
8177 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8178 : (TARGET_AVX512F && 1) &&
8179 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8180 : (TARGET_AVX512VL))))
8181 : return -1;
8182 : return 3361; /* avx512vl_cmpv2df3_mask */
8183 :
8184 : case E_V8HImode:
8185 : if (!register_operand (operands[1], E_V8HImode)
8186 : || !nonimmediate_operand (operands[2], E_V8HImode)
8187 : || !const_0_to_7_operand (operands[3], E_SImode)
8188 : || !(
8189 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8190 : (TARGET_AVX512F) && (
8191 : #line 4815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8192 : (TARGET_AVX512BW) &&
8193 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8194 : (TARGET_AVX512VL))))
8195 : return -1;
8196 : return 3493; /* avx512vl_cmpv8hi3_mask */
8197 :
8198 : case E_V8BFmode:
8199 : if (!register_operand (operands[1], E_V8BFmode)
8200 : || !nonimmediate_operand (operands[2], E_V8BFmode)
8201 : || !const_0_to_31_operand (operands[3], E_VOIDmode)
8202 : || !(
8203 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
8204 : (TARGET_AVX512F) &&
8205 : #line 33164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8206 : (TARGET_AVX10_2)))
8207 : return -1;
8208 : return 10803; /* avx10_2_cmpbf16_v8bf_mask */
8209 :
8210 : default:
8211 : return -1;
8212 : }
8213 :
8214 : default:
8215 : return -1;
8216 : }
8217 :
8218 : case CONST_INT:
8219 : if (!register_operand (operands[0], E_QImode)
8220 : || GET_MODE (x2) != E_QImode)
8221 : return -1;
8222 : x4 = XEXP (x2, 0);
8223 : if (GET_MODE (x4) != E_QImode)
8224 : return -1;
8225 : switch (XWINT (x3, 0))
8226 : {
8227 : case 15L:
8228 : switch (GET_MODE (operands[1]))
8229 : {
8230 : case E_V4SFmode:
8231 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
8232 : || !nonimmediate_operand (operands[2], E_V4SFmode)
8233 : || !const_0_to_31_operand (operands[3], E_SImode)
8234 : || !(
8235 : #line 4719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8236 : (TARGET_AVX512F) &&
8237 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8238 : (TARGET_AVX512VL)))
8239 : return -1;
8240 : return 3467; /* *avx512vl_cmpv4sf3_and15 */
8241 :
8242 : case E_V4DFmode:
8243 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
8244 : || !nonimmediate_operand (operands[2], E_V4DFmode)
8245 : || !const_0_to_31_operand (operands[3], E_SImode)
8246 : || !(
8247 : #line 4719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8248 : (TARGET_AVX512F) &&
8249 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8250 : (TARGET_AVX512VL)))
8251 : return -1;
8252 : return 3468; /* *avx512vl_cmpv4df3_and15 */
8253 :
8254 : case E_V4SImode:
8255 : if (!nonimmediate_operand (operands[1], E_V4SImode)
8256 : || !nonimmediate_operand (operands[2], E_V4SImode)
8257 : || !const_0_to_7_operand (operands[3], E_SImode)
8258 : || !(
8259 : #line 4719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8260 : (TARGET_AVX512F) &&
8261 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8262 : (TARGET_AVX512VL)))
8263 : return -1;
8264 : return 3469; /* *avx512vl_cmpv4si3_and15 */
8265 :
8266 : case E_V4DImode:
8267 : if (!nonimmediate_operand (operands[1], E_V4DImode)
8268 : || !nonimmediate_operand (operands[2], E_V4DImode)
8269 : || !const_0_to_7_operand (operands[3], E_SImode)
8270 : || !(
8271 : #line 4719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8272 : (TARGET_AVX512F) &&
8273 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8274 : (TARGET_AVX512VL)))
8275 : return -1;
8276 : return 3470; /* *avx512vl_cmpv4di3_and15 */
8277 :
8278 : default:
8279 : return -1;
8280 : }
8281 :
8282 : case 3L:
8283 : switch (GET_MODE (operands[1]))
8284 : {
8285 : case E_V2DFmode:
8286 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
8287 : || !nonimmediate_operand (operands[2], E_V2DFmode)
8288 : || !const_0_to_31_operand (operands[3], E_SImode)
8289 : || !(
8290 : #line 4768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8291 : (TARGET_AVX512F) &&
8292 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8293 : (TARGET_AVX512VL)))
8294 : return -1;
8295 : return 3477; /* *avx512vl_cmpv2df3_and3 */
8296 :
8297 : case E_V2DImode:
8298 : if (!nonimmediate_operand (operands[1], E_V2DImode)
8299 : || !nonimmediate_operand (operands[2], E_V2DImode)
8300 : || !const_0_to_7_operand (operands[3], E_SImode)
8301 : || !(
8302 : #line 4768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8303 : (TARGET_AVX512F) &&
8304 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8305 : (TARGET_AVX512VL)))
8306 : return -1;
8307 : return 3478; /* *avx512vl_cmpv2di3_and3 */
8308 :
8309 : default:
8310 : return -1;
8311 : }
8312 :
8313 : case 1L:
8314 : if (!const_0_to_31_operand (operands[3], E_SImode))
8315 : return -1;
8316 : switch (pattern1520 ())
8317 : {
8318 : case 0:
8319 : if (!(
8320 : #line 5173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8321 : (TARGET_AVX512F) &&
8322 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8323 : (TARGET_AVX512FP16)))
8324 : return -1;
8325 : return 3728; /* avx512f_vmcmpv8hf3 */
8326 :
8327 : case 1:
8328 : if (!
8329 : #line 5173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8330 : (TARGET_AVX512F))
8331 : return -1;
8332 : return 3730; /* avx512f_vmcmpv4sf3 */
8333 :
8334 : case 2:
8335 : if (!(
8336 : #line 5173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8337 : (TARGET_AVX512F) &&
8338 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8339 : (TARGET_SSE2)))
8340 : return -1;
8341 : return 3732; /* avx512f_vmcmpv2df3 */
8342 :
8343 : default:
8344 : return -1;
8345 : }
8346 :
8347 : default:
8348 : return -1;
8349 : }
8350 :
8351 : case AND:
8352 : if (GET_MODE (x3) != E_QImode)
8353 : return -1;
8354 : x5 = XEXP (x3, 1);
8355 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
8356 : || !register_operand (operands[0], E_QImode)
8357 : || GET_MODE (x2) != E_QImode)
8358 : return -1;
8359 : x4 = XEXP (x2, 0);
8360 : if (GET_MODE (x4) != E_QImode
8361 : || !const_0_to_31_operand (operands[3], E_SImode))
8362 : return -1;
8363 : x6 = XEXP (x3, 0);
8364 : operands[4] = x6;
8365 : if (!register_operand (operands[4], E_QImode))
8366 : return -1;
8367 : switch (pattern1520 ())
8368 : {
8369 : case 0:
8370 : if (!(
8371 : #line 5191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8372 : (TARGET_AVX512F) &&
8373 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8374 : (TARGET_AVX512FP16)))
8375 : return -1;
8376 : return 3734; /* avx512f_vmcmpv8hf3_mask */
8377 :
8378 : case 1:
8379 : if (!
8380 : #line 5191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8381 : (TARGET_AVX512F))
8382 : return -1;
8383 : return 3736; /* avx512f_vmcmpv4sf3_mask */
8384 :
8385 : case 2:
8386 : if (!(
8387 : #line 5191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8388 : (TARGET_AVX512F) &&
8389 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8390 : (TARGET_SSE2)))
8391 : return -1;
8392 : return 3738; /* avx512f_vmcmpv2df3_mask */
8393 :
8394 : default:
8395 : return -1;
8396 : }
8397 :
8398 : default:
8399 : return -1;
8400 : }
8401 : }
8402 :
8403 : int
8404 : recog_62 (rtx x1 ATTRIBUTE_UNUSED,
8405 : rtx_insn *insn ATTRIBUTE_UNUSED,
8406 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8407 : {
8408 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8409 : rtx x2, x3, x4, x5, x6, x7;
8410 : int res ATTRIBUTE_UNUSED;
8411 : x2 = XEXP (x1, 1);
8412 : switch (GET_CODE (x2))
8413 : {
8414 : case PLUS:
8415 : res = recog_57 (x1, insn, pnum_clobbers);
8416 : if (res >= 0)
8417 : return res;
8418 : break;
8419 :
8420 : case MINUS:
8421 : res = recog_60 (x1, insn, pnum_clobbers);
8422 : if (res >= 0)
8423 : return res;
8424 : break;
8425 :
8426 : case MULT:
8427 : res = recog_61 (x1, insn, pnum_clobbers);
8428 : if (res >= 0)
8429 : return res;
8430 : break;
8431 :
8432 : case DIV:
8433 : if (GET_MODE (x2) == E_HFmode)
8434 : {
8435 : x3 = XEXP (x1, 0);
8436 : operands[0] = x3;
8437 : if (register_operand (operands[0], E_HFmode))
8438 : {
8439 : x4 = XEXP (x2, 0);
8440 : operands[1] = x4;
8441 : if (nonimmediate_operand (operands[1], E_HFmode))
8442 : {
8443 : x5 = XEXP (x2, 1);
8444 : operands[2] = x5;
8445 : if (nonimmediate_operand (operands[2], E_HFmode)
8446 : &&
8447 : #line 23830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8448 : (TARGET_AVX512FP16
8449 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8450 : return 1713; /* *divhf */
8451 : }
8452 : }
8453 : }
8454 : break;
8455 :
8456 : default:
8457 : break;
8458 : }
8459 : operands[3] = x2;
8460 : x3 = XEXP (x1, 0);
8461 : operands[0] = x3;
8462 : x4 = XEXP (x2, 0);
8463 : switch (GET_CODE (x4))
8464 : {
8465 : case REG:
8466 : case SUBREG:
8467 : case MEM:
8468 : operands[1] = x4;
8469 : x5 = XEXP (x2, 1);
8470 : switch (GET_CODE (x5))
8471 : {
8472 : case REG:
8473 : case SUBREG:
8474 : case MEM:
8475 : operands[2] = x5;
8476 : switch (GET_MODE (operands[0]))
8477 : {
8478 : case E_XFmode:
8479 : if (!register_operand (operands[0], E_XFmode)
8480 : || !binary_fp_operator (operands[3], E_XFmode)
8481 : || !register_operand (operands[1], E_XFmode)
8482 : || !register_operand (operands[2], E_XFmode))
8483 : return -1;
8484 : if (
8485 : #line 23782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8486 : (TARGET_80387
8487 : && COMMUTATIVE_ARITH_P (operands[3])))
8488 : return 1707; /* *fop_xf_comm_i387 */
8489 : if (!
8490 : #line 23880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8491 : (TARGET_80387
8492 : && !COMMUTATIVE_ARITH_P (operands[3])))
8493 : return -1;
8494 : return 1716; /* *fop_xf_1_i387 */
8495 :
8496 : case E_SFmode:
8497 : if (!register_operand (operands[0], E_SFmode)
8498 : || !binary_fp_operator (operands[3], E_SFmode)
8499 : || !nonimmediate_operand (operands[2], E_SFmode))
8500 : return -1;
8501 : if (nonimmediate_operand (operands[1], E_SFmode)
8502 : &&
8503 : #line 23796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8504 : (((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8505 : || (TARGET_80387 && X87_ENABLE_ARITH (SFmode)))
8506 : && COMMUTATIVE_ARITH_P (operands[3])
8507 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8508 : return 1708; /* *fop_sf_comm */
8509 : if (!x87nonimm_ssenomem_operand (operands[1], E_SFmode)
8510 : || !
8511 : #line 23896 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8512 : (((SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8513 : || (TARGET_80387 && X87_ENABLE_ARITH (SFmode)))
8514 : && !COMMUTATIVE_ARITH_P (operands[3])
8515 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8516 : return -1;
8517 : return 1717; /* *fop_sf_1 */
8518 :
8519 : case E_DFmode:
8520 : if (!register_operand (operands[0], E_DFmode)
8521 : || !binary_fp_operator (operands[3], E_DFmode)
8522 : || !nonimmediate_operand (operands[2], E_DFmode))
8523 : return -1;
8524 : if (nonimmediate_operand (operands[1], E_DFmode)
8525 : &&
8526 : #line 23796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8527 : (((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8528 : || (TARGET_80387 && X87_ENABLE_ARITH (DFmode)))
8529 : && COMMUTATIVE_ARITH_P (operands[3])
8530 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8531 : return 1709; /* *fop_df_comm */
8532 : if (!x87nonimm_ssenomem_operand (operands[1], E_DFmode)
8533 : || !
8534 : #line 23896 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8535 : (((SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8536 : || (TARGET_80387 && X87_ENABLE_ARITH (DFmode)))
8537 : && !COMMUTATIVE_ARITH_P (operands[3])
8538 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8539 : return -1;
8540 : return 1718; /* *fop_df_1 */
8541 :
8542 : default:
8543 : return -1;
8544 : }
8545 :
8546 : case FLOAT:
8547 : x6 = XEXP (x5, 0);
8548 : operands[2] = x6;
8549 : switch (GET_MODE (operands[0]))
8550 : {
8551 : case E_SFmode:
8552 : switch (pattern867 (x5,
8553 : E_SFmode))
8554 : {
8555 : case 0:
8556 : if (!
8557 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8558 : (TARGET_80387 && X87_ENABLE_FLOAT (SFmode, HImode)
8559 : && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8560 : && (TARGET_USE_HIMODE_FIOP
8561 : || optimize_function_for_size_p (cfun))))
8562 : return -1;
8563 : return 1725; /* *fop_sf_3_i387 */
8564 :
8565 : case 1:
8566 : if (!
8567 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8568 : (TARGET_80387 && X87_ENABLE_FLOAT (SFmode, SImode)
8569 : && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8570 : && (TARGET_USE_SIMODE_FIOP
8571 : || optimize_function_for_size_p (cfun))))
8572 : return -1;
8573 : return 1728; /* *fop_sf_3_i387 */
8574 :
8575 : default:
8576 : return -1;
8577 : }
8578 :
8579 : case E_DFmode:
8580 : switch (pattern867 (x5,
8581 : E_DFmode))
8582 : {
8583 : case 0:
8584 : if (!
8585 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8586 : (TARGET_80387 && X87_ENABLE_FLOAT (DFmode, HImode)
8587 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8588 : && (TARGET_USE_HIMODE_FIOP
8589 : || optimize_function_for_size_p (cfun))))
8590 : return -1;
8591 : return 1726; /* *fop_df_3_i387 */
8592 :
8593 : case 1:
8594 : if (!
8595 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8596 : (TARGET_80387 && X87_ENABLE_FLOAT (DFmode, SImode)
8597 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8598 : && (TARGET_USE_SIMODE_FIOP
8599 : || optimize_function_for_size_p (cfun))))
8600 : return -1;
8601 : return 1729; /* *fop_df_3_i387 */
8602 :
8603 : default:
8604 : return -1;
8605 : }
8606 :
8607 : case E_XFmode:
8608 : switch (pattern867 (x5,
8609 : E_XFmode))
8610 : {
8611 : case 0:
8612 : if (!
8613 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8614 : (TARGET_80387 && X87_ENABLE_FLOAT (XFmode, HImode)
8615 : && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)
8616 : && (TARGET_USE_HIMODE_FIOP
8617 : || optimize_function_for_size_p (cfun))))
8618 : return -1;
8619 : return 1727; /* *fop_xf_3_i387 */
8620 :
8621 : case 1:
8622 : if (!
8623 : #line 23952 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8624 : (TARGET_80387 && X87_ENABLE_FLOAT (XFmode, SImode)
8625 : && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)
8626 : && (TARGET_USE_SIMODE_FIOP
8627 : || optimize_function_for_size_p (cfun))))
8628 : return -1;
8629 : return 1730; /* *fop_xf_3_i387 */
8630 :
8631 : default:
8632 : return -1;
8633 : }
8634 :
8635 : default:
8636 : return -1;
8637 : }
8638 :
8639 : case FLOAT_EXTEND:
8640 : x6 = XEXP (x5, 0);
8641 : operands[2] = x6;
8642 : switch (pattern752 ())
8643 : {
8644 : case 0:
8645 : if (!register_operand (operands[1], E_XFmode)
8646 : || GET_MODE (x5) != E_XFmode)
8647 : return -1;
8648 : switch (GET_MODE (operands[2]))
8649 : {
8650 : case E_SFmode:
8651 : if (!nonimmediate_operand (operands[2], E_SFmode)
8652 : || !
8653 : #line 24008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8654 : (TARGET_80387))
8655 : return -1;
8656 : return 1734; /* *fop_xf_5_i387 */
8657 :
8658 : case E_DFmode:
8659 : if (!nonimmediate_operand (operands[2], E_DFmode)
8660 : || !
8661 : #line 24008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8662 : (TARGET_80387))
8663 : return -1;
8664 : return 1735; /* *fop_xf_5_i387 */
8665 :
8666 : default:
8667 : return -1;
8668 : }
8669 :
8670 : case 1:
8671 : if (!register_operand (operands[1], E_DFmode)
8672 : || GET_MODE (x5) != E_DFmode
8673 : || !nonimmediate_operand (operands[2], E_SFmode)
8674 : || !
8675 : #line 24025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8676 : (TARGET_80387 && X87_ENABLE_ARITH (DFmode)
8677 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
8678 : return -1;
8679 : return 1736; /* *fop_df_5_i387 */
8680 :
8681 : default:
8682 : return -1;
8683 : }
8684 :
8685 : default:
8686 : return -1;
8687 : }
8688 :
8689 : case FLOAT:
8690 : x7 = XEXP (x4, 0);
8691 : operands[1] = x7;
8692 : x5 = XEXP (x2, 1);
8693 : operands[2] = x5;
8694 : switch (GET_MODE (operands[0]))
8695 : {
8696 : case E_SFmode:
8697 : switch (pattern753 (x4,
8698 : E_SFmode))
8699 : {
8700 : case 0:
8701 : if (!
8702 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8703 : (TARGET_80387 && X87_ENABLE_FLOAT (SFmode, HImode)
8704 : && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8705 : && (TARGET_USE_HIMODE_FIOP
8706 : || optimize_function_for_size_p (cfun))))
8707 : return -1;
8708 : return 1719; /* *fop_sf_2_i387 */
8709 :
8710 : case 1:
8711 : if (!
8712 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8713 : (TARGET_80387 && X87_ENABLE_FLOAT (SFmode, SImode)
8714 : && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)
8715 : && (TARGET_USE_SIMODE_FIOP
8716 : || optimize_function_for_size_p (cfun))))
8717 : return -1;
8718 : return 1722; /* *fop_sf_2_i387 */
8719 :
8720 : default:
8721 : return -1;
8722 : }
8723 :
8724 : case E_DFmode:
8725 : switch (pattern753 (x4,
8726 : E_DFmode))
8727 : {
8728 : case 0:
8729 : if (!
8730 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8731 : (TARGET_80387 && X87_ENABLE_FLOAT (DFmode, HImode)
8732 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8733 : && (TARGET_USE_HIMODE_FIOP
8734 : || optimize_function_for_size_p (cfun))))
8735 : return -1;
8736 : return 1720; /* *fop_df_2_i387 */
8737 :
8738 : case 1:
8739 : if (!
8740 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8741 : (TARGET_80387 && X87_ENABLE_FLOAT (DFmode, SImode)
8742 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)
8743 : && (TARGET_USE_SIMODE_FIOP
8744 : || optimize_function_for_size_p (cfun))))
8745 : return -1;
8746 : return 1723; /* *fop_df_2_i387 */
8747 :
8748 : default:
8749 : return -1;
8750 : }
8751 :
8752 : case E_XFmode:
8753 : switch (pattern753 (x4,
8754 : E_XFmode))
8755 : {
8756 : case 0:
8757 : if (!
8758 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8759 : (TARGET_80387 && X87_ENABLE_FLOAT (XFmode, HImode)
8760 : && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)
8761 : && (TARGET_USE_HIMODE_FIOP
8762 : || optimize_function_for_size_p (cfun))))
8763 : return -1;
8764 : return 1721; /* *fop_xf_2_i387 */
8765 :
8766 : case 1:
8767 : if (!
8768 : #line 23931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8769 : (TARGET_80387 && X87_ENABLE_FLOAT (XFmode, SImode)
8770 : && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)
8771 : && (TARGET_USE_SIMODE_FIOP
8772 : || optimize_function_for_size_p (cfun))))
8773 : return -1;
8774 : return 1724; /* *fop_xf_2_i387 */
8775 :
8776 : default:
8777 : return -1;
8778 : }
8779 :
8780 : default:
8781 : return -1;
8782 : }
8783 :
8784 : case FLOAT_EXTEND:
8785 : x7 = XEXP (x4, 0);
8786 : operands[1] = x7;
8787 : x5 = XEXP (x2, 1);
8788 : switch (GET_CODE (x5))
8789 : {
8790 : case REG:
8791 : case SUBREG:
8792 : operands[2] = x5;
8793 : switch (pattern752 ())
8794 : {
8795 : case 0:
8796 : if (GET_MODE (x4) != E_XFmode
8797 : || !register_operand (operands[2], E_XFmode))
8798 : return -1;
8799 : switch (GET_MODE (operands[1]))
8800 : {
8801 : case E_SFmode:
8802 : if (!nonimmediate_operand (operands[1], E_SFmode)
8803 : || !
8804 : #line 23973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8805 : (TARGET_80387))
8806 : return -1;
8807 : return 1731; /* *fop_xf_4_i387 */
8808 :
8809 : case E_DFmode:
8810 : if (!nonimmediate_operand (operands[1], E_DFmode)
8811 : || !
8812 : #line 23973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8813 : (TARGET_80387))
8814 : return -1;
8815 : return 1732; /* *fop_xf_4_i387 */
8816 :
8817 : default:
8818 : return -1;
8819 : }
8820 :
8821 : case 1:
8822 : if (GET_MODE (x4) != E_DFmode
8823 : || !nonimmediate_operand (operands[1], E_SFmode)
8824 : || !register_operand (operands[2], E_DFmode)
8825 : || !
8826 : #line 23990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8827 : (TARGET_80387 && X87_ENABLE_ARITH (DFmode)
8828 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
8829 : return -1;
8830 : return 1733; /* *fop_df_4_i387 */
8831 :
8832 : default:
8833 : return -1;
8834 : }
8835 :
8836 : case FLOAT_EXTEND:
8837 : x6 = XEXP (x5, 0);
8838 : operands[2] = x6;
8839 : switch (pattern752 ())
8840 : {
8841 : case 0:
8842 : if (GET_MODE (x4) != E_XFmode
8843 : || GET_MODE (x5) != E_XFmode)
8844 : return -1;
8845 : switch (GET_MODE (operands[1]))
8846 : {
8847 : case E_SFmode:
8848 : if (!register_operand (operands[1], E_SFmode)
8849 : || !nonimmediate_operand (operands[2], E_SFmode)
8850 : || !
8851 : #line 24044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8852 : (TARGET_80387))
8853 : return -1;
8854 : return 1737; /* *fop_xf_6_i387 */
8855 :
8856 : case E_DFmode:
8857 : if (!register_operand (operands[1], E_DFmode)
8858 : || !nonimmediate_operand (operands[2], E_DFmode)
8859 : || !
8860 : #line 24044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8861 : (TARGET_80387))
8862 : return -1;
8863 : return 1738; /* *fop_xf_6_i387 */
8864 :
8865 : default:
8866 : return -1;
8867 : }
8868 :
8869 : case 1:
8870 : if (pattern865 (x2,
8871 : E_SFmode,
8872 : E_DFmode) != 0
8873 : || !
8874 : #line 24062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8875 : (TARGET_80387 && X87_ENABLE_ARITH (DFmode)
8876 : && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
8877 : return -1;
8878 : return 1739; /* *fop_df_6_i387 */
8879 :
8880 : default:
8881 : return -1;
8882 : }
8883 :
8884 : default:
8885 : return -1;
8886 : }
8887 :
8888 : default:
8889 : return -1;
8890 : }
8891 : }
8892 :
8893 : int
8894 : recog_75 (rtx x1 ATTRIBUTE_UNUSED,
8895 : rtx_insn *insn ATTRIBUTE_UNUSED,
8896 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8897 : {
8898 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8899 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8900 : rtx x10;
8901 : int res ATTRIBUTE_UNUSED;
8902 : x2 = XEXP (x1, 1);
8903 : x3 = XEXP (x2, 0);
8904 : x4 = XEXP (x3, 0);
8905 : switch (GET_CODE (x4))
8906 : {
8907 : case REG:
8908 : case SUBREG:
8909 : case MEM:
8910 : operands[1] = x4;
8911 : x5 = XEXP (x3, 1);
8912 : operands[2] = x5;
8913 : switch (pattern279 (x2))
8914 : {
8915 : case 0:
8916 : if (!nonimmediate_operand (operands[1], E_QImode)
8917 : || !general_operand (operands[2], E_QImode))
8918 : return -1;
8919 : if (
8920 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8921 : (TARGET_APX_NDD && TARGET_APX_NF
8922 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8923 : return 292; /* *addqi_1_zextsi_nf */
8924 : if (pnum_clobbers == NULL
8925 : || !
8926 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8927 : (TARGET_APX_NDD && true
8928 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8929 : return -1;
8930 : *pnum_clobbers = 1;
8931 : return 293; /* *addqi_1_zextsi */
8932 :
8933 : case 1:
8934 : if (!nonimmediate_operand (operands[1], E_HImode)
8935 : || !general_operand (operands[2], E_HImode))
8936 : return -1;
8937 : if (
8938 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8939 : (TARGET_APX_NDD && TARGET_APX_NF
8940 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8941 : return 296; /* *addhi_1_zextsi_nf */
8942 : if (pnum_clobbers == NULL
8943 : || !
8944 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8945 : (TARGET_APX_NDD && true
8946 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8947 : return -1;
8948 : *pnum_clobbers = 1;
8949 : return 297; /* *addhi_1_zextsi */
8950 :
8951 : case 2:
8952 : if (!nonimmediate_operand (operands[1], E_QImode)
8953 : || !general_operand (operands[2], E_QImode))
8954 : return -1;
8955 : if (
8956 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8957 : (TARGET_APX_NDD && TARGET_APX_NF
8958 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8959 : return 294; /* *addqi_1_zextdi_nf */
8960 : if (pnum_clobbers == NULL
8961 : || !
8962 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8963 : (TARGET_APX_NDD && true
8964 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8965 : return -1;
8966 : *pnum_clobbers = 1;
8967 : return 295; /* *addqi_1_zextdi */
8968 :
8969 : case 3:
8970 : if (!nonimmediate_operand (operands[1], E_HImode)
8971 : || !general_operand (operands[2], E_HImode))
8972 : return -1;
8973 : if (
8974 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8975 : (TARGET_APX_NDD && TARGET_APX_NF
8976 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8977 : return 298; /* *addhi_1_zextdi_nf */
8978 : if (pnum_clobbers == NULL
8979 : || !
8980 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8981 : (TARGET_APX_NDD && true
8982 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8983 : return -1;
8984 : *pnum_clobbers = 1;
8985 : return 299; /* *addhi_1_zextdi */
8986 :
8987 : case 4:
8988 : if (pnum_clobbers == NULL
8989 : || !nonimmediate_operand (operands[1], E_SImode)
8990 : || !x86_64_general_operand (operands[2], E_SImode)
8991 : || !
8992 : #line 6811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8993 : (TARGET_64BIT
8994 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
8995 : return -1;
8996 : *pnum_clobbers = 1;
8997 : return 300; /* addsi_1_zext */
8998 :
8999 : default:
9000 : return -1;
9001 : }
9002 :
9003 : case PLUS:
9004 : if (pnum_clobbers == NULL)
9005 : return -1;
9006 : x6 = XEXP (x4, 0);
9007 : switch (GET_CODE (x6))
9008 : {
9009 : case LTU:
9010 : case UNLT:
9011 : operands[3] = x6;
9012 : x7 = XEXP (x6, 0);
9013 : if (GET_CODE (x7) != REG
9014 : || REGNO (x7) != 17)
9015 : return -1;
9016 : x8 = XEXP (x6, 1);
9017 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9018 : return -1;
9019 : x9 = XEXP (x4, 1);
9020 : operands[1] = x9;
9021 : x5 = XEXP (x3, 1);
9022 : operands[2] = x5;
9023 : switch (pattern279 (x2))
9024 : {
9025 : case 0:
9026 : if (pattern1549 (x4,
9027 : E_QImode) != 0
9028 : || !
9029 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9030 : (TARGET_APX_NDD
9031 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9032 : return -1;
9033 : *pnum_clobbers = 1;
9034 : return 482; /* *addqi3_carry_zextsi */
9035 :
9036 : case 1:
9037 : if (pattern1549 (x4,
9038 : E_HImode) != 0
9039 : || !
9040 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9041 : (TARGET_APX_NDD
9042 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9043 : return -1;
9044 : *pnum_clobbers = 1;
9045 : return 484; /* *addhi3_carry_zextsi */
9046 :
9047 : case 2:
9048 : if (pattern1549 (x4,
9049 : E_QImode) != 0
9050 : || !
9051 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9052 : (TARGET_APX_NDD
9053 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9054 : return -1;
9055 : *pnum_clobbers = 1;
9056 : return 483; /* *addqi3_carry_zextdi */
9057 :
9058 : case 3:
9059 : if (pattern1549 (x4,
9060 : E_HImode) != 0
9061 : || !
9062 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9063 : (TARGET_APX_NDD
9064 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9065 : return -1;
9066 : *pnum_clobbers = 1;
9067 : return 485; /* *addhi3_carry_zextdi */
9068 :
9069 : case 4:
9070 : if (pattern1549 (x4,
9071 : E_SImode) != 0
9072 : || !
9073 : #line 9049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9074 : (TARGET_64BIT
9075 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
9076 : return -1;
9077 : *pnum_clobbers = 1;
9078 : return 486; /* *addsi3_carry_zext */
9079 :
9080 : default:
9081 : return -1;
9082 : }
9083 :
9084 : default:
9085 : return -1;
9086 : }
9087 :
9088 : case LTU:
9089 : case UNLT:
9090 : switch (pattern280 (x2, pnum_clobbers))
9091 : {
9092 : case 0:
9093 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
9094 : || !nonimmediate_operand (operands[1], E_QImode)
9095 : || !
9096 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9097 : (TARGET_APX_NDD))
9098 : return -1;
9099 : *pnum_clobbers = 1;
9100 : return 488; /* *addqi3_carry_zextsi_0 */
9101 :
9102 : case 1:
9103 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
9104 : || !nonimmediate_operand (operands[1], E_HImode)
9105 : || !
9106 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9107 : (TARGET_APX_NDD))
9108 : return -1;
9109 : *pnum_clobbers = 1;
9110 : return 490; /* *addhi3_carry_zextsi_0 */
9111 :
9112 : case 2:
9113 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
9114 : || !nonimmediate_operand (operands[1], E_QImode)
9115 : || !
9116 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9117 : (TARGET_APX_NDD))
9118 : return -1;
9119 : *pnum_clobbers = 1;
9120 : return 489; /* *addqi3_carry_zextdi_0 */
9121 :
9122 : case 3:
9123 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
9124 : || !nonimmediate_operand (operands[1], E_HImode)
9125 : || !
9126 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9127 : (TARGET_APX_NDD))
9128 : return -1;
9129 : *pnum_clobbers = 1;
9130 : return 491; /* *addhi3_carry_zextdi_0 */
9131 :
9132 : case 4:
9133 : if (!ix86_carry_flag_operator (operands[2], E_SImode)
9134 : || !nonimmediate_operand (operands[1], E_SImode)
9135 : || !
9136 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9137 : (TARGET_64BIT))
9138 : return -1;
9139 : *pnum_clobbers = 1;
9140 : return 492; /* *addsi3_carry_zext_0 */
9141 :
9142 : default:
9143 : return -1;
9144 : }
9145 :
9146 : case GE:
9147 : case GEU:
9148 : switch (pattern280 (x2, pnum_clobbers))
9149 : {
9150 : case 0:
9151 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
9152 : || !nonimmediate_operand (operands[1], E_QImode)
9153 : || !
9154 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9155 : (TARGET_APX_NDD))
9156 : return -1;
9157 : *pnum_clobbers = 1;
9158 : return 494; /* *addqi3_carry_zextsi_0r */
9159 :
9160 : case 1:
9161 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
9162 : || !nonimmediate_operand (operands[1], E_HImode)
9163 : || !
9164 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9165 : (TARGET_APX_NDD))
9166 : return -1;
9167 : *pnum_clobbers = 1;
9168 : return 496; /* *addhi3_carry_zextsi_0r */
9169 :
9170 : case 2:
9171 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
9172 : || !nonimmediate_operand (operands[1], E_QImode)
9173 : || !
9174 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9175 : (TARGET_APX_NDD))
9176 : return -1;
9177 : *pnum_clobbers = 1;
9178 : return 495; /* *addqi3_carry_zextdi_0r */
9179 :
9180 : case 3:
9181 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
9182 : || !nonimmediate_operand (operands[1], E_HImode)
9183 : || !
9184 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9185 : (TARGET_APX_NDD))
9186 : return -1;
9187 : *pnum_clobbers = 1;
9188 : return 497; /* *addhi3_carry_zextdi_0r */
9189 :
9190 : case 4:
9191 : if (!ix86_carry_flag_unset_operator (operands[2], E_SImode)
9192 : || !nonimmediate_operand (operands[1], E_SImode)
9193 : || !
9194 : #line 9141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9195 : (TARGET_64BIT))
9196 : return -1;
9197 : *pnum_clobbers = 1;
9198 : return 498; /* *addsi3_carry_zext_0r */
9199 :
9200 : default:
9201 : return -1;
9202 : }
9203 :
9204 : case UNSPEC:
9205 : if (pnum_clobbers == NULL
9206 : || XVECLEN (x4, 0) != 1
9207 : || XINT (x4, 1) != 20
9208 : || GET_MODE (x4) != E_SImode)
9209 : return -1;
9210 : x10 = XVECEXP (x4, 0, 0);
9211 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
9212 : || !register_operand (operands[0], E_DImode)
9213 : || GET_MODE (x2) != E_DImode
9214 : || GET_MODE (x3) != E_SImode)
9215 : return -1;
9216 : x5 = XEXP (x3, 1);
9217 : operands[1] = x5;
9218 : if (!register_operand (operands[1], E_SImode)
9219 : || !
9220 : #line 23613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9221 : (TARGET_X32))
9222 : return -1;
9223 : *pnum_clobbers = 1;
9224 : return 1697; /* *add_tp_x32_zext */
9225 :
9226 : default:
9227 : return -1;
9228 : }
9229 : }
9230 :
9231 : int
9232 : recog_81 (rtx x1 ATTRIBUTE_UNUSED,
9233 : rtx_insn *insn ATTRIBUTE_UNUSED,
9234 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9235 : {
9236 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9237 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
9238 : rtx x10, x11;
9239 : int res ATTRIBUTE_UNUSED;
9240 : x2 = XEXP (x1, 1);
9241 : x3 = XEXP (x2, 0);
9242 : switch (GET_CODE (x3))
9243 : {
9244 : case NEG:
9245 : if (pnum_clobbers == NULL)
9246 : return -1;
9247 : x4 = XEXP (x1, 0);
9248 : if (GET_CODE (x4) != REG
9249 : || REGNO (x4) != 17)
9250 : return -1;
9251 : x5 = XEXP (x3, 0);
9252 : operands[2] = x5;
9253 : x6 = XEXP (x2, 1);
9254 : operands[1] = x6;
9255 : switch (GET_MODE (x3))
9256 : {
9257 : case E_QImode:
9258 : if (!general_operand (operands[2], E_QImode)
9259 : || !nonimmediate_operand (operands[1], E_QImode)
9260 : || !
9261 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9262 : (ix86_match_ccmode (insn, CCZmode)
9263 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9264 : return -1;
9265 : *pnum_clobbers = 1;
9266 : return 318; /* *addqi_3 */
9267 :
9268 : case E_HImode:
9269 : if (!general_operand (operands[2], E_HImode)
9270 : || !nonimmediate_operand (operands[1], E_HImode)
9271 : || !
9272 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9273 : (ix86_match_ccmode (insn, CCZmode)
9274 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9275 : return -1;
9276 : *pnum_clobbers = 1;
9277 : return 319; /* *addhi_3 */
9278 :
9279 : case E_SImode:
9280 : if (!x86_64_general_operand (operands[2], E_SImode)
9281 : || !nonimmediate_operand (operands[1], E_SImode)
9282 : || !
9283 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9284 : (ix86_match_ccmode (insn, CCZmode)
9285 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9286 : return -1;
9287 : *pnum_clobbers = 1;
9288 : return 320; /* *addsi_3 */
9289 :
9290 : case E_DImode:
9291 : if (!x86_64_general_operand (operands[2], E_DImode)
9292 : || !nonimmediate_operand (operands[1], E_DImode)
9293 : || !(
9294 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9295 : (ix86_match_ccmode (insn, CCZmode)
9296 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9297 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9298 : (TARGET_64BIT)))
9299 : return -1;
9300 : *pnum_clobbers = 1;
9301 : return 321; /* *adddi_3 */
9302 :
9303 : default:
9304 : return -1;
9305 : }
9306 :
9307 : case REG:
9308 : case SUBREG:
9309 : case MEM:
9310 : if (pnum_clobbers == NULL)
9311 : return -1;
9312 : operands[1] = x3;
9313 : x4 = XEXP (x1, 0);
9314 : if (GET_CODE (x4) != REG
9315 : || REGNO (x4) != 17)
9316 : return -1;
9317 : x6 = XEXP (x2, 1);
9318 : operands[2] = x6;
9319 : switch (GET_MODE (operands[1]))
9320 : {
9321 : case E_DImode:
9322 : if (!nonimmediate_operand (operands[1], E_DImode)
9323 : || !x86_64_immediate_operand (operands[2], E_DImode)
9324 : || !
9325 : #line 7371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9326 : (TARGET_64BIT
9327 : && ix86_match_ccmode (insn, CCGCmode)))
9328 : return -1;
9329 : *pnum_clobbers = 1;
9330 : return 323; /* *adddi_4 */
9331 :
9332 : case E_QImode:
9333 : if (!nonimmediate_operand (operands[1], E_QImode)
9334 : || !const_int_operand (operands[2], E_QImode)
9335 : || !
9336 : #line 7416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9337 : (ix86_match_ccmode (insn, CCGCmode)))
9338 : return -1;
9339 : *pnum_clobbers = 1;
9340 : return 324; /* *addqi_4 */
9341 :
9342 : case E_HImode:
9343 : if (!nonimmediate_operand (operands[1], E_HImode)
9344 : || !const_int_operand (operands[2], E_HImode)
9345 : || !
9346 : #line 7416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9347 : (ix86_match_ccmode (insn, CCGCmode)))
9348 : return -1;
9349 : *pnum_clobbers = 1;
9350 : return 325; /* *addhi_4 */
9351 :
9352 : case E_SImode:
9353 : if (!nonimmediate_operand (operands[1], E_SImode)
9354 : || !const_int_operand (operands[2], E_SImode)
9355 : || !
9356 : #line 7416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9357 : (ix86_match_ccmode (insn, CCGCmode)))
9358 : return -1;
9359 : *pnum_clobbers = 1;
9360 : return 326; /* *addsi_4 */
9361 :
9362 : default:
9363 : return -1;
9364 : }
9365 :
9366 : case PLUS:
9367 : if (pnum_clobbers == NULL)
9368 : return -1;
9369 : x4 = XEXP (x1, 0);
9370 : if (GET_CODE (x4) != REG
9371 : || REGNO (x4) != 17)
9372 : return -1;
9373 : x5 = XEXP (x3, 0);
9374 : operands[1] = x5;
9375 : x7 = XEXP (x3, 1);
9376 : operands[2] = x7;
9377 : x6 = XEXP (x2, 1);
9378 : if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
9379 : {
9380 : switch (pattern49 (x3))
9381 : {
9382 : case 0:
9383 : if (
9384 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9385 : (ix86_match_ccmode (insn, CCGOCmode)
9386 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9387 : {
9388 : *pnum_clobbers = 1;
9389 : return 327; /* *addqi_5 */
9390 : }
9391 : break;
9392 :
9393 : case 1:
9394 : if (
9395 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9396 : (ix86_match_ccmode (insn, CCGOCmode)
9397 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9398 : {
9399 : *pnum_clobbers = 1;
9400 : return 328; /* *addhi_5 */
9401 : }
9402 : break;
9403 :
9404 : case 2:
9405 : if (
9406 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9407 : (ix86_match_ccmode (insn, CCGOCmode)
9408 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9409 : {
9410 : *pnum_clobbers = 1;
9411 : return 329; /* *addsi_5 */
9412 : }
9413 : break;
9414 :
9415 : case 3:
9416 : if ((
9417 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9418 : (ix86_match_ccmode (insn, CCGOCmode)
9419 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9420 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9421 : (TARGET_64BIT)))
9422 : {
9423 : *pnum_clobbers = 1;
9424 : return 330; /* *adddi_5 */
9425 : }
9426 : break;
9427 :
9428 : default:
9429 : break;
9430 : }
9431 : }
9432 : if (GET_MODE (x4) != E_CCCmode
9433 : || GET_MODE (x2) != E_CCCmode
9434 : || !rtx_equal_p (x6, operands[2]))
9435 : return -1;
9436 : switch (pattern49 (x3))
9437 : {
9438 : case 0:
9439 : if (!
9440 : #line 10368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9441 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
9442 : return -1;
9443 : *pnum_clobbers = 1;
9444 : return 571; /* *addqi3_cconly_overflow_2 */
9445 :
9446 : case 1:
9447 : if (!
9448 : #line 10368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9449 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
9450 : return -1;
9451 : *pnum_clobbers = 1;
9452 : return 572; /* *addhi3_cconly_overflow_2 */
9453 :
9454 : case 2:
9455 : if (!
9456 : #line 10368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9457 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
9458 : return -1;
9459 : *pnum_clobbers = 1;
9460 : return 573; /* *addsi3_cconly_overflow_2 */
9461 :
9462 : case 3:
9463 : if (!(
9464 : #line 10368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9465 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9466 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9467 : (TARGET_64BIT)))
9468 : return -1;
9469 : *pnum_clobbers = 1;
9470 : return 574; /* *adddi3_cconly_overflow_2 */
9471 :
9472 : default:
9473 : return -1;
9474 : }
9475 :
9476 : case AND:
9477 : x6 = XEXP (x2, 1);
9478 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
9479 : return -1;
9480 : x4 = XEXP (x1, 0);
9481 : if (GET_CODE (x4) != REG
9482 : || REGNO (x4) != 17)
9483 : return -1;
9484 : x5 = XEXP (x3, 0);
9485 : switch (GET_CODE (x5))
9486 : {
9487 : case REG:
9488 : case SUBREG:
9489 : case MEM:
9490 : operands[0] = x5;
9491 : x7 = XEXP (x3, 1);
9492 : operands[1] = x7;
9493 : switch (GET_MODE (x3))
9494 : {
9495 : case E_DImode:
9496 : if (nonimmediate_operand (operands[0], E_DImode)
9497 : && x86_64_szext_general_operand (operands[1], E_DImode)
9498 : &&
9499 : #line 12414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9500 : (TARGET_64BIT
9501 : && ix86_match_ccmode
9502 : (insn,
9503 : /* If we are going to emit testl instead of testq, and the operands[1]
9504 : constant might have the SImode sign bit set, make sure the sign
9505 : flag isn't tested, because the instruction will set the sign flag
9506 : based on bit 31 rather than bit 63. If it isn't CONST_INT,
9507 : conservatively assume it might have bit 31 set. */
9508 : (satisfies_constraint_Z (operands[1])
9509 : && (!CONST_INT_P (operands[1])
9510 : || val_signbit_known_set_p (SImode, INTVAL (operands[1]))))
9511 : ? CCZmode : CCNOmode)
9512 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9513 : return 710; /* *testdi_1 */
9514 : break;
9515 :
9516 : case E_QImode:
9517 : if (nonimmediate_operand (operands[0], E_QImode)
9518 : && general_operand (operands[1], E_QImode))
9519 : {
9520 : if (
9521 : #line 12440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9522 : (ix86_match_ccmode (insn,
9523 : CONST_INT_P (operands[1])
9524 : && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)
9525 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9526 : return 711; /* *testqi_1_maybe_si */
9527 : if (
9528 : #line 12472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9529 : (ix86_match_ccmode (insn, CCNOmode)
9530 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9531 : return 712; /* *testqi_1 */
9532 : }
9533 : break;
9534 :
9535 : case E_HImode:
9536 : if (nonimmediate_operand (operands[0], E_HImode)
9537 : && general_operand (operands[1], E_HImode)
9538 : &&
9539 : #line 12472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9540 : (ix86_match_ccmode (insn, CCNOmode)
9541 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9542 : return 713; /* *testhi_1 */
9543 : break;
9544 :
9545 : case E_SImode:
9546 : if (nonimmediate_operand (operands[0], E_SImode)
9547 : && x86_64_general_operand (operands[1], E_SImode)
9548 : &&
9549 : #line 12472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9550 : (ix86_match_ccmode (insn, CCNOmode)
9551 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
9552 : return 714; /* *testsi_1 */
9553 : break;
9554 :
9555 : default:
9556 : break;
9557 : }
9558 : if (GET_CODE (x5) != SUBREG
9559 : || maybe_ne (SUBREG_BYTE (x5), 0)
9560 : || GET_MODE (x5) != E_QImode)
9561 : return -1;
9562 : x8 = XEXP (x5, 0);
9563 : switch (GET_CODE (x8))
9564 : {
9565 : case ASHIFTRT:
9566 : case LSHIFTRT:
9567 : case SIGN_EXTRACT:
9568 : case ZERO_EXTRACT:
9569 : operands[2] = x8;
9570 : if (GET_MODE (x3) != E_QImode)
9571 : return -1;
9572 : x9 = XEXP (x8, 0);
9573 : operands[0] = x9;
9574 : if (!int248_register_operand (operands[0], E_VOIDmode))
9575 : return -1;
9576 : operands[1] = x7;
9577 : if (general_operand (operands[1], E_QImode))
9578 : {
9579 : switch (GET_MODE (operands[2]))
9580 : {
9581 : case E_HImode:
9582 : if (extract_high_operator (operands[2], E_HImode)
9583 : &&
9584 : #line 12500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9585 : (ix86_match_ccmode (insn, CCNOmode)))
9586 : return 715; /* *testqi_exthi_1 */
9587 : break;
9588 :
9589 : case E_SImode:
9590 : if (extract_high_operator (operands[2], E_SImode)
9591 : &&
9592 : #line 12500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9593 : (ix86_match_ccmode (insn, CCNOmode)))
9594 : return 716; /* *testqi_extsi_1 */
9595 : break;
9596 :
9597 : case E_DImode:
9598 : if (extract_high_operator (operands[2], E_DImode)
9599 : && (
9600 : #line 12500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9601 : (ix86_match_ccmode (insn, CCNOmode)) &&
9602 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9603 : (TARGET_64BIT)))
9604 : return 717; /* *testqi_extdi_1 */
9605 : break;
9606 :
9607 : default:
9608 : break;
9609 : }
9610 : }
9611 : if (GET_CODE (x7) != SUBREG
9612 : || maybe_ne (SUBREG_BYTE (x7), 0)
9613 : || GET_MODE (x7) != E_QImode)
9614 : return -1;
9615 : x10 = XEXP (x7, 0);
9616 : switch (GET_CODE (x10))
9617 : {
9618 : case ASHIFTRT:
9619 : case LSHIFTRT:
9620 : case SIGN_EXTRACT:
9621 : case ZERO_EXTRACT:
9622 : operands[3] = x10;
9623 : x11 = XEXP (x10, 0);
9624 : operands[1] = x11;
9625 : if (!int248_register_operand (operands[1], E_VOIDmode))
9626 : return -1;
9627 : switch (GET_MODE (operands[2]))
9628 : {
9629 : case E_HImode:
9630 : if (!extract_high_operator (operands[2], E_HImode)
9631 : || !extract_high_operator (operands[3], E_HImode)
9632 : || !
9633 : #line 12517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9634 : (ix86_match_ccmode (insn, CCNOmode)))
9635 : return -1;
9636 : return 718; /* *testqi_exthi_2 */
9637 :
9638 : case E_SImode:
9639 : if (!extract_high_operator (operands[2], E_SImode)
9640 : || !extract_high_operator (operands[3], E_SImode)
9641 : || !
9642 : #line 12517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9643 : (ix86_match_ccmode (insn, CCNOmode)))
9644 : return -1;
9645 : return 719; /* *testqi_extsi_2 */
9646 :
9647 : case E_DImode:
9648 : if (!extract_high_operator (operands[2], E_DImode)
9649 : || !extract_high_operator (operands[3], E_DImode)
9650 : || !(
9651 : #line 12517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9652 : (ix86_match_ccmode (insn, CCNOmode)) &&
9653 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9654 : (TARGET_64BIT)))
9655 : return -1;
9656 : return 720; /* *testqi_extdi_2 */
9657 :
9658 : default:
9659 : return -1;
9660 : }
9661 :
9662 : default:
9663 : return -1;
9664 : }
9665 :
9666 : default:
9667 : return -1;
9668 : }
9669 :
9670 : case NOT:
9671 : if (pnum_clobbers == NULL)
9672 : return -1;
9673 : x8 = XEXP (x5, 0);
9674 : operands[1] = x8;
9675 : x7 = XEXP (x3, 1);
9676 : operands[2] = x7;
9677 : switch (GET_MODE (x3))
9678 : {
9679 : case E_SImode:
9680 : if (GET_MODE (x5) != E_SImode
9681 : || !register_operand (operands[1], E_SImode)
9682 : || !nonimmediate_operand (operands[2], E_SImode)
9683 : || !
9684 : #line 13706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9685 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
9686 : return -1;
9687 : *pnum_clobbers = 1;
9688 : return 845; /* *andn_si_ccno */
9689 :
9690 : case E_DImode:
9691 : if (GET_MODE (x5) != E_DImode
9692 : || !register_operand (operands[1], E_DImode)
9693 : || !nonimmediate_operand (operands[2], E_DImode)
9694 : || !(
9695 : #line 13706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9696 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
9697 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9698 : (TARGET_64BIT)))
9699 : return -1;
9700 : *pnum_clobbers = 1;
9701 : return 846; /* *andn_di_ccno */
9702 :
9703 : default:
9704 : return -1;
9705 : }
9706 :
9707 : case NEG:
9708 : if (pnum_clobbers == NULL)
9709 : return -1;
9710 : switch (pattern761 (x3))
9711 : {
9712 : case 0:
9713 : if (!
9714 : #line 22221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9715 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)))
9716 : return -1;
9717 : *pnum_clobbers = 1;
9718 : return 1610; /* *bmi_blsi_si_ccno */
9719 :
9720 : case 1:
9721 : if (!(
9722 : #line 22221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9723 : (TARGET_BMI && ix86_match_ccmode (insn, CCNOmode)) &&
9724 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9725 : (TARGET_64BIT)))
9726 : return -1;
9727 : *pnum_clobbers = 1;
9728 : return 1611; /* *bmi_blsi_di_ccno */
9729 :
9730 : default:
9731 : return -1;
9732 : }
9733 :
9734 : default:
9735 : return -1;
9736 : }
9737 :
9738 : case ZERO_EXTRACT:
9739 : switch (pattern48 (x1))
9740 : {
9741 : case 0:
9742 : if (!
9743 : #line 12552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9744 : (/* Ensure that resulting mask is zero or sign extended operand. */
9745 : INTVAL (operands[4]) >= 0
9746 : && ((INTVAL (operands[3]) > 0
9747 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9748 : || (HImode == DImode
9749 : && INTVAL (operands[3]) > 32
9750 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9751 : && ix86_match_ccmode (insn,
9752 : /* If zero_extract mode precision is the same
9753 : as len, the SF of the zero_extract
9754 : comparison will be the most significant
9755 : extracted bit, but this could be matched
9756 : after splitting only for pos 0 len all bits
9757 : trivial extractions. Require CCZmode. */
9758 : (GET_MODE_PRECISION (HImode)
9759 : == INTVAL (operands[3]))
9760 : /* Otherwise, require CCZmode if we'd use a mask
9761 : with the most significant bit set and can't
9762 : widen it to wider mode. *testdi_1 also
9763 : requires CCZmode if the mask has bit
9764 : 31 set and all bits above it clear. */
9765 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9766 : >= 32)
9767 : /* We can't widen also if val is not a REG. */
9768 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9769 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9770 : && !register_operand (operands[2],
9771 : GET_MODE (operands[2])))
9772 : /* And we shouldn't widen if
9773 : TARGET_PARTIAL_REG_STALL. */
9774 : || (TARGET_PARTIAL_REG_STALL
9775 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9776 : >= (paradoxical_subreg_p (operands[2])
9777 : && (GET_MODE_CLASS
9778 : (GET_MODE (SUBREG_REG (operands[2])))
9779 : == MODE_INT)
9780 : ? GET_MODE_PRECISION
9781 : (GET_MODE (SUBREG_REG (operands[2])))
9782 : : GET_MODE_PRECISION
9783 : (GET_MODE (operands[2])))))
9784 : ? CCZmode : CCNOmode)))
9785 : return -1;
9786 : return 722; /* *testqi_ext_3 */
9787 :
9788 : case 1:
9789 : if (!
9790 : #line 12552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9791 : (/* Ensure that resulting mask is zero or sign extended operand. */
9792 : INTVAL (operands[4]) >= 0
9793 : && ((INTVAL (operands[3]) > 0
9794 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9795 : || (SImode == DImode
9796 : && INTVAL (operands[3]) > 32
9797 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9798 : && ix86_match_ccmode (insn,
9799 : /* If zero_extract mode precision is the same
9800 : as len, the SF of the zero_extract
9801 : comparison will be the most significant
9802 : extracted bit, but this could be matched
9803 : after splitting only for pos 0 len all bits
9804 : trivial extractions. Require CCZmode. */
9805 : (GET_MODE_PRECISION (SImode)
9806 : == INTVAL (operands[3]))
9807 : /* Otherwise, require CCZmode if we'd use a mask
9808 : with the most significant bit set and can't
9809 : widen it to wider mode. *testdi_1 also
9810 : requires CCZmode if the mask has bit
9811 : 31 set and all bits above it clear. */
9812 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9813 : >= 32)
9814 : /* We can't widen also if val is not a REG. */
9815 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9816 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9817 : && !register_operand (operands[2],
9818 : GET_MODE (operands[2])))
9819 : /* And we shouldn't widen if
9820 : TARGET_PARTIAL_REG_STALL. */
9821 : || (TARGET_PARTIAL_REG_STALL
9822 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9823 : >= (paradoxical_subreg_p (operands[2])
9824 : && (GET_MODE_CLASS
9825 : (GET_MODE (SUBREG_REG (operands[2])))
9826 : == MODE_INT)
9827 : ? GET_MODE_PRECISION
9828 : (GET_MODE (SUBREG_REG (operands[2])))
9829 : : GET_MODE_PRECISION
9830 : (GET_MODE (operands[2])))))
9831 : ? CCZmode : CCNOmode)))
9832 : return -1;
9833 : return 723; /* *testqi_ext_3 */
9834 :
9835 : case 2:
9836 : if (!(
9837 : #line 12552 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9838 : (/* Ensure that resulting mask is zero or sign extended operand. */
9839 : INTVAL (operands[4]) >= 0
9840 : && ((INTVAL (operands[3]) > 0
9841 : && INTVAL (operands[3]) + INTVAL (operands[4]) <= 32)
9842 : || (DImode == DImode
9843 : && INTVAL (operands[3]) > 32
9844 : && INTVAL (operands[3]) + INTVAL (operands[4]) == 64))
9845 : && ix86_match_ccmode (insn,
9846 : /* If zero_extract mode precision is the same
9847 : as len, the SF of the zero_extract
9848 : comparison will be the most significant
9849 : extracted bit, but this could be matched
9850 : after splitting only for pos 0 len all bits
9851 : trivial extractions. Require CCZmode. */
9852 : (GET_MODE_PRECISION (DImode)
9853 : == INTVAL (operands[3]))
9854 : /* Otherwise, require CCZmode if we'd use a mask
9855 : with the most significant bit set and can't
9856 : widen it to wider mode. *testdi_1 also
9857 : requires CCZmode if the mask has bit
9858 : 31 set and all bits above it clear. */
9859 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9860 : >= 32)
9861 : /* We can't widen also if val is not a REG. */
9862 : || (INTVAL (operands[3]) + INTVAL (operands[4])
9863 : == GET_MODE_PRECISION (GET_MODE (operands[2]))
9864 : && !register_operand (operands[2],
9865 : GET_MODE (operands[2])))
9866 : /* And we shouldn't widen if
9867 : TARGET_PARTIAL_REG_STALL. */
9868 : || (TARGET_PARTIAL_REG_STALL
9869 : && (INTVAL (operands[3]) + INTVAL (operands[4])
9870 : >= (paradoxical_subreg_p (operands[2])
9871 : && (GET_MODE_CLASS
9872 : (GET_MODE (SUBREG_REG (operands[2])))
9873 : == MODE_INT)
9874 : ? GET_MODE_PRECISION
9875 : (GET_MODE (SUBREG_REG (operands[2])))
9876 : : GET_MODE_PRECISION
9877 : (GET_MODE (operands[2])))))
9878 : ? CCZmode : CCNOmode)) &&
9879 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9880 : (TARGET_64BIT)))
9881 : return -1;
9882 : return 724; /* *testqi_ext_3 */
9883 :
9884 : default:
9885 : return -1;
9886 : }
9887 :
9888 : case IOR:
9889 : switch (pattern51 (x1, pnum_clobbers))
9890 : {
9891 : case 0:
9892 : if (!
9893 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9894 : (ix86_match_ccmode (insn, CCNOmode)
9895 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9896 : return -1;
9897 : *pnum_clobbers = 1;
9898 : return 916; /* *iorqi_3 */
9899 :
9900 : case 1:
9901 : if (!
9902 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9903 : (ix86_match_ccmode (insn, CCNOmode)
9904 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9905 : return -1;
9906 : *pnum_clobbers = 1;
9907 : return 918; /* *iorhi_3 */
9908 :
9909 : case 2:
9910 : if (!
9911 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9912 : (ix86_match_ccmode (insn, CCNOmode)
9913 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9914 : return -1;
9915 : *pnum_clobbers = 1;
9916 : return 920; /* *iorsi_3 */
9917 :
9918 : case 3:
9919 : if (!(
9920 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9921 : (ix86_match_ccmode (insn, CCNOmode)
9922 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9923 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9924 : (TARGET_64BIT)))
9925 : return -1;
9926 : *pnum_clobbers = 1;
9927 : return 922; /* *iordi_3 */
9928 :
9929 : default:
9930 : return -1;
9931 : }
9932 :
9933 : case XOR:
9934 : switch (pattern51 (x1, pnum_clobbers))
9935 : {
9936 : case 0:
9937 : if (!
9938 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9939 : (ix86_match_ccmode (insn, CCNOmode)
9940 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9941 : return -1;
9942 : *pnum_clobbers = 1;
9943 : return 917; /* *xorqi_3 */
9944 :
9945 : case 1:
9946 : if (!
9947 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9948 : (ix86_match_ccmode (insn, CCNOmode)
9949 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9950 : return -1;
9951 : *pnum_clobbers = 1;
9952 : return 919; /* *xorhi_3 */
9953 :
9954 : case 2:
9955 : if (!
9956 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9957 : (ix86_match_ccmode (insn, CCNOmode)
9958 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
9959 : return -1;
9960 : *pnum_clobbers = 1;
9961 : return 921; /* *xorsi_3 */
9962 :
9963 : case 3:
9964 : if (!(
9965 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9966 : (ix86_match_ccmode (insn, CCNOmode)
9967 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
9968 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9969 : (TARGET_64BIT)))
9970 : return -1;
9971 : *pnum_clobbers = 1;
9972 : return 923; /* *xordi_3 */
9973 :
9974 : default:
9975 : return -1;
9976 : }
9977 :
9978 : case ASHIFT:
9979 : switch (pattern52 (x1, pnum_clobbers))
9980 : {
9981 : case 0:
9982 : if (!
9983 : #line 16786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9984 : ((optimize_function_for_size_p (cfun)
9985 : || !TARGET_PARTIAL_FLAG_REG_STALL
9986 : || (operands[2] == const1_rtx
9987 : && (TARGET_SHIFT1
9988 : || TARGET_DOUBLE_WITH_ADD)))
9989 : && ix86_match_ccmode (insn, CCGOCmode)))
9990 : return -1;
9991 : *pnum_clobbers = 1;
9992 : return 1147; /* *ashlqi3_cconly */
9993 :
9994 : case 1:
9995 : if (!
9996 : #line 16786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9997 : ((optimize_function_for_size_p (cfun)
9998 : || !TARGET_PARTIAL_FLAG_REG_STALL
9999 : || (operands[2] == const1_rtx
10000 : && (TARGET_SHIFT1
10001 : || TARGET_DOUBLE_WITH_ADD)))
10002 : && ix86_match_ccmode (insn, CCGOCmode)))
10003 : return -1;
10004 : *pnum_clobbers = 1;
10005 : return 1148; /* *ashlhi3_cconly */
10006 :
10007 : case 2:
10008 : if (!
10009 : #line 16786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10010 : ((optimize_function_for_size_p (cfun)
10011 : || !TARGET_PARTIAL_FLAG_REG_STALL
10012 : || (operands[2] == const1_rtx
10013 : && (TARGET_SHIFT1
10014 : || TARGET_DOUBLE_WITH_ADD)))
10015 : && ix86_match_ccmode (insn, CCGOCmode)))
10016 : return -1;
10017 : *pnum_clobbers = 1;
10018 : return 1149; /* *ashlsi3_cconly */
10019 :
10020 : case 3:
10021 : if (!(
10022 : #line 16786 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10023 : ((optimize_function_for_size_p (cfun)
10024 : || !TARGET_PARTIAL_FLAG_REG_STALL
10025 : || (operands[2] == const1_rtx
10026 : && (TARGET_SHIFT1
10027 : || TARGET_DOUBLE_WITH_ADD)))
10028 : && ix86_match_ccmode (insn, CCGOCmode)) &&
10029 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10030 : (TARGET_64BIT)))
10031 : return -1;
10032 : *pnum_clobbers = 1;
10033 : return 1150; /* *ashldi3_cconly */
10034 :
10035 : default:
10036 : return -1;
10037 : }
10038 :
10039 : case LSHIFTRT:
10040 : switch (pattern52 (x1, pnum_clobbers))
10041 : {
10042 : case 0:
10043 : if (!
10044 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10045 : ((optimize_function_for_size_p (cfun)
10046 : || !TARGET_PARTIAL_FLAG_REG_STALL
10047 : || (operands[2] == const1_rtx
10048 : && TARGET_SHIFT1))
10049 : && ix86_match_ccmode (insn, CCGOCmode)))
10050 : return -1;
10051 : *pnum_clobbers = 1;
10052 : return 1262; /* *lshrqi3_cconly */
10053 :
10054 : case 1:
10055 : if (!
10056 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10057 : ((optimize_function_for_size_p (cfun)
10058 : || !TARGET_PARTIAL_FLAG_REG_STALL
10059 : || (operands[2] == const1_rtx
10060 : && TARGET_SHIFT1))
10061 : && ix86_match_ccmode (insn, CCGOCmode)))
10062 : return -1;
10063 : *pnum_clobbers = 1;
10064 : return 1264; /* *lshrhi3_cconly */
10065 :
10066 : case 2:
10067 : if (!
10068 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10069 : ((optimize_function_for_size_p (cfun)
10070 : || !TARGET_PARTIAL_FLAG_REG_STALL
10071 : || (operands[2] == const1_rtx
10072 : && TARGET_SHIFT1))
10073 : && ix86_match_ccmode (insn, CCGOCmode)))
10074 : return -1;
10075 : *pnum_clobbers = 1;
10076 : return 1266; /* *lshrsi3_cconly */
10077 :
10078 : case 3:
10079 : if (!(
10080 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10081 : ((optimize_function_for_size_p (cfun)
10082 : || !TARGET_PARTIAL_FLAG_REG_STALL
10083 : || (operands[2] == const1_rtx
10084 : && TARGET_SHIFT1))
10085 : && ix86_match_ccmode (insn, CCGOCmode)) &&
10086 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10087 : (TARGET_64BIT)))
10088 : return -1;
10089 : *pnum_clobbers = 1;
10090 : return 1268; /* *lshrdi3_cconly */
10091 :
10092 : default:
10093 : return -1;
10094 : }
10095 :
10096 : case ASHIFTRT:
10097 : switch (pattern52 (x1, pnum_clobbers))
10098 : {
10099 : case 0:
10100 : if (!
10101 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10102 : ((optimize_function_for_size_p (cfun)
10103 : || !TARGET_PARTIAL_FLAG_REG_STALL
10104 : || (operands[2] == const1_rtx
10105 : && TARGET_SHIFT1))
10106 : && ix86_match_ccmode (insn, CCGOCmode)))
10107 : return -1;
10108 : *pnum_clobbers = 1;
10109 : return 1263; /* *ashrqi3_cconly */
10110 :
10111 : case 1:
10112 : if (!
10113 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10114 : ((optimize_function_for_size_p (cfun)
10115 : || !TARGET_PARTIAL_FLAG_REG_STALL
10116 : || (operands[2] == const1_rtx
10117 : && TARGET_SHIFT1))
10118 : && ix86_match_ccmode (insn, CCGOCmode)))
10119 : return -1;
10120 : *pnum_clobbers = 1;
10121 : return 1265; /* *ashrhi3_cconly */
10122 :
10123 : case 2:
10124 : if (!
10125 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10126 : ((optimize_function_for_size_p (cfun)
10127 : || !TARGET_PARTIAL_FLAG_REG_STALL
10128 : || (operands[2] == const1_rtx
10129 : && TARGET_SHIFT1))
10130 : && ix86_match_ccmode (insn, CCGOCmode)))
10131 : return -1;
10132 : *pnum_clobbers = 1;
10133 : return 1267; /* *ashrsi3_cconly */
10134 :
10135 : case 3:
10136 : if (!(
10137 : #line 18086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10138 : ((optimize_function_for_size_p (cfun)
10139 : || !TARGET_PARTIAL_FLAG_REG_STALL
10140 : || (operands[2] == const1_rtx
10141 : && TARGET_SHIFT1))
10142 : && ix86_match_ccmode (insn, CCGOCmode)) &&
10143 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10144 : (TARGET_64BIT)))
10145 : return -1;
10146 : *pnum_clobbers = 1;
10147 : return 1269; /* *ashrdi3_cconly */
10148 :
10149 : default:
10150 : return -1;
10151 : }
10152 :
10153 : default:
10154 : return -1;
10155 : }
10156 : }
10157 :
10158 : int
10159 : recog_112 (rtx x1 ATTRIBUTE_UNUSED,
10160 : rtx_insn *insn ATTRIBUTE_UNUSED,
10161 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10162 : {
10163 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10164 : rtx x2, x3, x4, x5, x6;
10165 : int res ATTRIBUTE_UNUSED;
10166 : x2 = XEXP (x1, 1);
10167 : switch (XINT (x2, 1))
10168 : {
10169 : case 18:
10170 : if (GET_MODE (x2) != E_BLKmode)
10171 : return -1;
10172 : x3 = XEXP (x1, 0);
10173 : operands[0] = x3;
10174 : x4 = XVECEXP (x2, 0, 0);
10175 : if (!rtx_equal_p (x4, operands[0]))
10176 : return -1;
10177 : return 1519; /* *memory_blockage */
10178 :
10179 : case 15:
10180 : x3 = XEXP (x1, 0);
10181 : operands[0] = x3;
10182 : x4 = XVECEXP (x2, 0, 0);
10183 : switch (GET_CODE (x4))
10184 : {
10185 : case CONST_INT:
10186 : if (XWINT (x4, 0) != 0L)
10187 : return -1;
10188 : switch (GET_MODE (operands[0]))
10189 : {
10190 : case E_SImode:
10191 : if (pnum_clobbers == NULL
10192 : || !register_operand (operands[0], E_SImode)
10193 : || GET_MODE (x2) != E_SImode
10194 : || !
10195 : #line 21124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10196 : (!TARGET_64BIT))
10197 : return -1;
10198 : *pnum_clobbers = 1;
10199 : return 1530; /* *set_got */
10200 :
10201 : case E_DImode:
10202 : if (!register_operand (operands[0], E_DImode)
10203 : || GET_MODE (x2) != E_DImode
10204 : || !
10205 : #line 21154 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10206 : (TARGET_64BIT))
10207 : return -1;
10208 : return 1532; /* set_got_rex64 */
10209 :
10210 : default:
10211 : return -1;
10212 : }
10213 :
10214 : case LABEL_REF:
10215 : if (pnum_clobbers == NULL
10216 : || !register_operand (operands[0], E_SImode)
10217 : || GET_MODE (x2) != E_SImode)
10218 : return -1;
10219 : x5 = XEXP (x4, 0);
10220 : operands[1] = x5;
10221 : if (!
10222 : #line 21146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10223 : (!TARGET_64BIT))
10224 : return -1;
10225 : *pnum_clobbers = 1;
10226 : return 1531; /* *set_got_labelled */
10227 :
10228 : default:
10229 : return -1;
10230 : }
10231 :
10232 : case 16:
10233 : if (GET_MODE (x2) != E_DImode)
10234 : return -1;
10235 : x4 = XVECEXP (x2, 0, 0);
10236 : if (GET_CODE (x4) != LABEL_REF)
10237 : return -1;
10238 : x3 = XEXP (x1, 0);
10239 : operands[0] = x3;
10240 : if (!register_operand (operands[0], E_DImode))
10241 : return -1;
10242 : x5 = XEXP (x4, 0);
10243 : operands[1] = x5;
10244 : if (!
10245 : #line 21163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10246 : (TARGET_64BIT))
10247 : return -1;
10248 : return 1533; /* set_rip_rex64 */
10249 :
10250 : case 17:
10251 : if (GET_MODE (x2) != E_DImode)
10252 : return -1;
10253 : x4 = XVECEXP (x2, 0, 0);
10254 : if (GET_CODE (x4) != LABEL_REF)
10255 : return -1;
10256 : x3 = XEXP (x1, 0);
10257 : operands[0] = x3;
10258 : if (!register_operand (operands[0], E_DImode))
10259 : return -1;
10260 : x5 = XEXP (x4, 0);
10261 : operands[1] = x5;
10262 : if (!
10263 : #line 21174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10264 : (TARGET_LP64))
10265 : return -1;
10266 : return 1534; /* set_got_offset_rex64 */
10267 :
10268 : case 98:
10269 : x3 = XEXP (x1, 0);
10270 : operands[0] = x3;
10271 : switch (pattern303 (x2))
10272 : {
10273 : case 0:
10274 : if ((
10275 : #line 22018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10276 : (TARGET_APX_NF) &&
10277 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10278 : (TARGET_BMI)))
10279 : return 1580; /* tzcnt_si_nf */
10280 : if (pnum_clobbers == NULL
10281 : || !
10282 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10283 : (TARGET_BMI))
10284 : return -1;
10285 : *pnum_clobbers = 1;
10286 : return 1584; /* tzcnt_si */
10287 :
10288 : case 1:
10289 : if ((
10290 : #line 22018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10291 : (TARGET_APX_NF) && (((
10292 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10293 : (TARGET_64BIT) &&
10294 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10295 : (TARGET_BMI)) &&
10296 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10297 : (TARGET_64BIT)) &&
10298 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10299 : (TARGET_BMI))))
10300 : return 1582; /* tzcnt_di_nf */
10301 : if (pnum_clobbers == NULL
10302 : || !(((
10303 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10304 : (TARGET_64BIT) &&
10305 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10306 : (TARGET_BMI)) &&
10307 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10308 : (TARGET_64BIT)) &&
10309 : #line 22000 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10310 : (TARGET_BMI)))
10311 : return -1;
10312 : *pnum_clobbers = 1;
10313 : return 1586; /* tzcnt_di */
10314 :
10315 : default:
10316 : return -1;
10317 : }
10318 :
10319 : case 97:
10320 : x3 = XEXP (x1, 0);
10321 : operands[0] = x3;
10322 : switch (pattern303 (x2))
10323 : {
10324 : case 0:
10325 : if ((
10326 : #line 22018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10327 : (TARGET_APX_NF) &&
10328 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10329 : (TARGET_LZCNT)))
10330 : return 1581; /* lzcnt_si_nf */
10331 : if (pnum_clobbers == NULL
10332 : || !
10333 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10334 : (TARGET_LZCNT))
10335 : return -1;
10336 : *pnum_clobbers = 1;
10337 : return 1585; /* lzcnt_si */
10338 :
10339 : case 1:
10340 : if ((
10341 : #line 22018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10342 : (TARGET_APX_NF) && (((
10343 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10344 : (TARGET_64BIT) &&
10345 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10346 : (TARGET_LZCNT)) &&
10347 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10348 : (TARGET_64BIT)) &&
10349 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10350 : (TARGET_LZCNT))))
10351 : return 1583; /* lzcnt_di_nf */
10352 : if (pnum_clobbers == NULL
10353 : || !(((
10354 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10355 : (TARGET_64BIT) &&
10356 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10357 : (TARGET_LZCNT)) &&
10358 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10359 : (TARGET_64BIT)) &&
10360 : #line 22001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10361 : (TARGET_LZCNT)))
10362 : return -1;
10363 : *pnum_clobbers = 1;
10364 : return 1587; /* lzcnt_di */
10365 :
10366 : default:
10367 : return -1;
10368 : }
10369 :
10370 : case 20:
10371 : x4 = XVECEXP (x2, 0, 0);
10372 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10373 : return -1;
10374 : x3 = XEXP (x1, 0);
10375 : operands[0] = x3;
10376 : switch (pattern24 (x2))
10377 : {
10378 : case 0:
10379 : if (!
10380 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10381 : (ptr_mode == SImode))
10382 : return -1;
10383 : return 1692; /* *load_tp_si */
10384 :
10385 : case 1:
10386 : if (!
10387 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10388 : (ptr_mode == DImode))
10389 : return -1;
10390 : return 1693; /* *load_tp_di */
10391 :
10392 : default:
10393 : return -1;
10394 : }
10395 :
10396 : case 23:
10397 : x3 = XEXP (x1, 0);
10398 : operands[0] = x3;
10399 : x4 = XVECEXP (x2, 0, 0);
10400 : operands[1] = x4;
10401 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
10402 : return -1;
10403 : switch (pattern24 (x2))
10404 : {
10405 : case 0:
10406 : if (!(
10407 : #line 23716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10408 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10409 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10410 : (ptr_mode == SImode)))
10411 : return -1;
10412 : return 1701; /* *tls_dynamic_gnu2_lea_64_si */
10413 :
10414 : case 1:
10415 : if (!(
10416 : #line 23716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10417 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
10418 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10419 : (ptr_mode == DImode)))
10420 : return -1;
10421 : return 1702; /* *tls_dynamic_gnu2_lea_64_di */
10422 :
10423 : default:
10424 : return -1;
10425 : }
10426 :
10427 : case 71:
10428 : x3 = XEXP (x1, 0);
10429 : operands[0] = x3;
10430 : x4 = XVECEXP (x2, 0, 0);
10431 : operands[1] = x4;
10432 : if (!register_operand (operands[1], E_XFmode))
10433 : return -1;
10434 : switch (GET_MODE (operands[0]))
10435 : {
10436 : case E_DImode:
10437 : if (pnum_clobbers == NULL
10438 : || !nonimmediate_operand (operands[0], E_DImode)
10439 : || GET_MODE (x2) != E_DImode
10440 : || !
10441 : #line 25498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10442 : (TARGET_USE_FANCY_MATH_387))
10443 : return -1;
10444 : *pnum_clobbers = 1;
10445 : return 1767; /* lrintxfdi2 */
10446 :
10447 : case E_SImode:
10448 : if (!nonimmediate_operand (operands[0], E_SImode)
10449 : || GET_MODE (x2) != E_SImode
10450 : || !
10451 : #line 25507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10452 : (TARGET_USE_FANCY_MATH_387))
10453 : return -1;
10454 : return 1769; /* lrintxfsi2 */
10455 :
10456 : default:
10457 : return -1;
10458 : }
10459 :
10460 : case 79:
10461 : switch (pattern126 (x1, pnum_clobbers))
10462 : {
10463 : case 0:
10464 : if (!
10465 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10466 : (TARGET_USE_FANCY_MATH_387
10467 : && flag_unsafe_math_optimizations
10468 : && ix86_pre_reload_split ()))
10469 : return -1;
10470 : *pnum_clobbers = 1;
10471 : return 1780; /* *fistsi2_floor_1 */
10472 :
10473 : case 1:
10474 : if (!
10475 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10476 : (TARGET_USE_FANCY_MATH_387
10477 : && flag_unsafe_math_optimizations
10478 : && ix86_pre_reload_split ()))
10479 : return -1;
10480 : *pnum_clobbers = 1;
10481 : return 1782; /* *fistdi2_floor_1 */
10482 :
10483 : default:
10484 : return -1;
10485 : }
10486 :
10487 : case 80:
10488 : switch (pattern126 (x1, pnum_clobbers))
10489 : {
10490 : case 0:
10491 : if (!
10492 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10493 : (TARGET_USE_FANCY_MATH_387
10494 : && flag_unsafe_math_optimizations
10495 : && ix86_pre_reload_split ()))
10496 : return -1;
10497 : *pnum_clobbers = 1;
10498 : return 1781; /* *fistsi2_ceil_1 */
10499 :
10500 : case 1:
10501 : if (!
10502 : #line 25714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10503 : (TARGET_USE_FANCY_MATH_387
10504 : && flag_unsafe_math_optimizations
10505 : && ix86_pre_reload_split ()))
10506 : return -1;
10507 : *pnum_clobbers = 1;
10508 : return 1783; /* *fistdi2_ceil_1 */
10509 :
10510 : default:
10511 : return -1;
10512 : }
10513 :
10514 : case 50:
10515 : return recog_111 (x1, insn, pnum_clobbers);
10516 :
10517 : case 19:
10518 : if (pnum_clobbers == NULL)
10519 : return -1;
10520 : x3 = XEXP (x1, 0);
10521 : operands[0] = x3;
10522 : x4 = XVECEXP (x2, 0, 0);
10523 : operands[1] = x4;
10524 : switch (GET_MODE (operands[0]))
10525 : {
10526 : case E_SImode:
10527 : if (!memory_operand (operands[0], E_SImode)
10528 : || GET_MODE (x2) != E_SImode
10529 : || !const0_operand (operands[1], E_SImode)
10530 : || !
10531 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10532 : (word_mode == SImode))
10533 : return -1;
10534 : *pnum_clobbers = 1;
10535 : return 1915; /* probe_stack_1_si */
10536 :
10537 : case E_DImode:
10538 : if (!memory_operand (operands[0], E_DImode)
10539 : || GET_MODE (x2) != E_DImode
10540 : || !const0_operand (operands[1], E_DImode)
10541 : || !
10542 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10543 : (word_mode == DImode))
10544 : return -1;
10545 : *pnum_clobbers = 1;
10546 : return 1916; /* probe_stack_1_di */
10547 :
10548 : default:
10549 : return -1;
10550 : }
10551 :
10552 : case 34:
10553 : if (GET_MODE (x2) != E_BLKmode)
10554 : return -1;
10555 : x3 = XEXP (x1, 0);
10556 : operands[0] = x3;
10557 : x4 = XVECEXP (x2, 0, 0);
10558 : if (!rtx_equal_p (x4, operands[0]))
10559 : return -1;
10560 : return 2009; /* *pause */
10561 :
10562 : case 103:
10563 : switch (pattern127 (x1))
10564 : {
10565 : case 0:
10566 : if (!
10567 : #line 30508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10568 : (TARGET_MOVDIRI))
10569 : return -1;
10570 : return 2040; /* movdirisi */
10571 :
10572 : case 1:
10573 : if (!(
10574 : #line 30508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10575 : (TARGET_MOVDIRI) &&
10576 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10577 : (TARGET_64BIT)))
10578 : return -1;
10579 : return 2041; /* movdiridi */
10580 :
10581 : default:
10582 : return -1;
10583 : }
10584 :
10585 : case 104:
10586 : if (GET_MODE (x2) != E_XImode)
10587 : return -1;
10588 : x3 = XEXP (x1, 0);
10589 : if (GET_CODE (x3) != MEM
10590 : || GET_MODE (x3) != E_XImode)
10591 : return -1;
10592 : x6 = XEXP (x3, 0);
10593 : operands[0] = x6;
10594 : x4 = XVECEXP (x2, 0, 0);
10595 : operands[1] = x4;
10596 : if (!memory_operand (operands[1], E_XImode))
10597 : return -1;
10598 : switch (GET_MODE (operands[0]))
10599 : {
10600 : case E_SImode:
10601 : if (!register_operand (operands[0], E_SImode)
10602 : || !(
10603 : #line 30516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10604 : (TARGET_MOVDIR64B) &&
10605 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10606 : (Pmode == SImode)))
10607 : return -1;
10608 : return 2042; /* movdir64b_si */
10609 :
10610 : case E_DImode:
10611 : if (!register_operand (operands[0], E_DImode)
10612 : || !(
10613 : #line 30516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10614 : (TARGET_MOVDIR64B) &&
10615 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10616 : (Pmode == DImode)))
10617 : return -1;
10618 : return 2043; /* movdir64b_di */
10619 :
10620 : default:
10621 : return -1;
10622 : }
10623 :
10624 : case 112:
10625 : if (GET_MODE (x2) != E_DImode)
10626 : return -1;
10627 : x3 = XEXP (x1, 0);
10628 : operands[0] = x3;
10629 : if (!memory_operand (operands[0], E_DImode))
10630 : return -1;
10631 : x4 = XVECEXP (x2, 0, 0);
10632 : operands[1] = x4;
10633 : if (!register_operand (operands[1], E_DImode)
10634 : || !
10635 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
10636 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
10637 : && (TARGET_SSE || TARGET_3DNOW_A)))
10638 : return -1;
10639 : return 2105; /* sse_movntq */
10640 :
10641 : case 118:
10642 : switch (pattern127 (x1))
10643 : {
10644 : case 0:
10645 : if (!
10646 : #line 2034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10647 : (TARGET_SSE2))
10648 : return -1;
10649 : return 2624; /* sse2_movntisi */
10650 :
10651 : case 1:
10652 : if (!(
10653 : #line 2034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10654 : (TARGET_SSE2) &&
10655 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10656 : (TARGET_64BIT)))
10657 : return -1;
10658 : return 2625; /* sse2_movntidi */
10659 :
10660 : default:
10661 : return -1;
10662 : }
10663 :
10664 : case 157:
10665 : x3 = XEXP (x1, 0);
10666 : operands[0] = x3;
10667 : x4 = XVECEXP (x2, 0, 0);
10668 : switch (GET_CODE (x4))
10669 : {
10670 : case VEC_SELECT:
10671 : switch (pattern457 (x4))
10672 : {
10673 : case 0:
10674 : switch (pattern1108 (x2,
10675 : E_SImode))
10676 : {
10677 : case 0:
10678 : if (!
10679 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10680 : (TARGET_AVX512FP16))
10681 : return -1;
10682 : return 4584; /* avx512fp16_vcvtsh2usi */
10683 :
10684 : case 1:
10685 : if (!
10686 : #line 9356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10687 : (TARGET_AVX512F))
10688 : return -1;
10689 : return 4944; /* avx512f_vcvtss2usi */
10690 :
10691 : case 2:
10692 : if (!
10693 : #line 9392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10694 : (TARGET_AVX512F))
10695 : return -1;
10696 : return 4956; /* avx512f_vcvtsd2usi */
10697 :
10698 : default:
10699 : return -1;
10700 : }
10701 :
10702 : case 1:
10703 : switch (pattern1108 (x2,
10704 : E_DImode))
10705 : {
10706 : case 0:
10707 : if (!(
10708 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10709 : (TARGET_AVX512FP16) &&
10710 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10711 : (TARGET_64BIT)))
10712 : return -1;
10713 : return 4588; /* avx512fp16_vcvtsh2usiq */
10714 :
10715 : case 1:
10716 : if (!(
10717 : #line 9356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10718 : (TARGET_AVX512F) &&
10719 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10720 : (TARGET_64BIT)))
10721 : return -1;
10722 : return 4946; /* avx512f_vcvtss2usiq */
10723 :
10724 : case 2:
10725 : if (!(
10726 : #line 9392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10727 : (TARGET_AVX512F) &&
10728 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10729 : (TARGET_64BIT)))
10730 : return -1;
10731 : return 4958; /* avx512f_vcvtsd2usiq */
10732 :
10733 : default:
10734 : return -1;
10735 : }
10736 :
10737 : default:
10738 : return -1;
10739 : }
10740 :
10741 : case REG:
10742 : case SUBREG:
10743 : case MEM:
10744 : operands[1] = x4;
10745 : if (!nonimmediate_operand (operands[1], E_HFmode))
10746 : return -1;
10747 : switch (pattern24 (x2))
10748 : {
10749 : case 0:
10750 : if (!
10751 : #line 8169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10752 : (TARGET_AVX512FP16))
10753 : return -1;
10754 : return 4592; /* avx512fp16_vcvtsh2usi_2 */
10755 :
10756 : case 1:
10757 : if (!(
10758 : #line 8169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10759 : (TARGET_AVX512FP16) &&
10760 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10761 : (TARGET_64BIT)))
10762 : return -1;
10763 : return 4594; /* avx512fp16_vcvtsh2usiq_2 */
10764 :
10765 : default:
10766 : return -1;
10767 : }
10768 :
10769 : default:
10770 : return -1;
10771 : }
10772 :
10773 : case 47:
10774 : x3 = XEXP (x1, 0);
10775 : operands[0] = x3;
10776 : x4 = XVECEXP (x2, 0, 0);
10777 : switch (GET_CODE (x4))
10778 : {
10779 : case VEC_SELECT:
10780 : switch (pattern457 (x4))
10781 : {
10782 : case 0:
10783 : switch (pattern1109 (x2,
10784 : E_SImode))
10785 : {
10786 : case 0:
10787 : if (!
10788 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10789 : (TARGET_AVX512FP16))
10790 : return -1;
10791 : return 4586; /* avx512fp16_vcvtsh2si */
10792 :
10793 : case 1:
10794 : if (!
10795 : #line 8885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10796 : (TARGET_SSE))
10797 : return -1;
10798 : return 4833; /* sse_cvtss2si */
10799 :
10800 : case 2:
10801 : if (!
10802 : #line 9428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10803 : (TARGET_SSE2))
10804 : return -1;
10805 : return 4968; /* sse2_cvtsd2si */
10806 :
10807 : default:
10808 : return -1;
10809 : }
10810 :
10811 : case 1:
10812 : switch (pattern1109 (x2,
10813 : E_DImode))
10814 : {
10815 : case 0:
10816 : if (!(
10817 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10818 : (TARGET_AVX512FP16) &&
10819 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10820 : (TARGET_64BIT)))
10821 : return -1;
10822 : return 4590; /* avx512fp16_vcvtsh2siq */
10823 :
10824 : case 1:
10825 : if (!(
10826 : #line 8885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10827 : (TARGET_SSE) &&
10828 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10829 : (TARGET_64BIT)))
10830 : return -1;
10831 : return 4835; /* sse_cvtss2siq */
10832 :
10833 : case 2:
10834 : if (!(
10835 : #line 9428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10836 : (TARGET_SSE2) &&
10837 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10838 : (TARGET_64BIT)))
10839 : return -1;
10840 : return 4970; /* sse2_cvtsd2siq */
10841 :
10842 : default:
10843 : return -1;
10844 : }
10845 :
10846 : default:
10847 : return -1;
10848 : }
10849 :
10850 : case REG:
10851 : case SUBREG:
10852 : case MEM:
10853 : operands[1] = x4;
10854 : switch (GET_MODE (operands[0]))
10855 : {
10856 : case E_SImode:
10857 : switch (pattern772 (x2,
10858 : E_SImode))
10859 : {
10860 : case 0:
10861 : if (!
10862 : #line 8169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10863 : (TARGET_AVX512FP16))
10864 : return -1;
10865 : return 4593; /* avx512fp16_vcvtsh2si_2 */
10866 :
10867 : case 1:
10868 : if (!
10869 : #line 8898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10870 : (TARGET_SSE))
10871 : return -1;
10872 : return 4837; /* sse_cvtss2si_2 */
10873 :
10874 : case 2:
10875 : if (!
10876 : #line 9442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10877 : (TARGET_SSE2))
10878 : return -1;
10879 : return 4972; /* sse2_cvtsd2si_2 */
10880 :
10881 : default:
10882 : return -1;
10883 : }
10884 :
10885 : case E_DImode:
10886 : switch (pattern772 (x2,
10887 : E_DImode))
10888 : {
10889 : case 0:
10890 : if (!(
10891 : #line 8169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10892 : (TARGET_AVX512FP16) &&
10893 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10894 : (TARGET_64BIT)))
10895 : return -1;
10896 : return 4595; /* avx512fp16_vcvtsh2siq_2 */
10897 :
10898 : case 1:
10899 : if (!(
10900 : #line 8898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10901 : (TARGET_SSE) &&
10902 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10903 : (TARGET_64BIT)))
10904 : return -1;
10905 : return 4838; /* sse_cvtss2siq_2 */
10906 :
10907 : case 2:
10908 : if (!(
10909 : #line 9442 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10910 : (TARGET_SSE2) &&
10911 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10912 : (TARGET_64BIT)))
10913 : return -1;
10914 : return 4973; /* sse2_cvtsd2siq_2 */
10915 :
10916 : default:
10917 : return -1;
10918 : }
10919 :
10920 : default:
10921 : return -1;
10922 : }
10923 :
10924 : default:
10925 : return -1;
10926 : }
10927 :
10928 : case 173:
10929 : switch (pattern129 (x1))
10930 : {
10931 : case 0:
10932 : if (!
10933 : #line 8323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10934 : (TARGET_AVX512FP16))
10935 : return -1;
10936 : return 4736; /* unspec_avx512fp16_fix_truncsi2 */
10937 :
10938 : case 1:
10939 : if (!
10940 : #line 8913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10941 : (TARGET_SSE))
10942 : return -1;
10943 : return 4839; /* unspec_sse_cvttss2si */
10944 :
10945 : case 2:
10946 : if (!
10947 : #line 9457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10948 : (TARGET_SSE2))
10949 : return -1;
10950 : return 4974; /* unspec_sse2_cvttsd2si */
10951 :
10952 : case 3:
10953 : if (!(
10954 : #line 8323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10955 : (TARGET_AVX512FP16) &&
10956 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10957 : (TARGET_64BIT)))
10958 : return -1;
10959 : return 4740; /* unspec_avx512fp16_fix_truncdi2 */
10960 :
10961 : case 4:
10962 : if (!(
10963 : #line 8913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10964 : (TARGET_SSE) &&
10965 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10966 : (TARGET_64BIT)))
10967 : return -1;
10968 : return 4841; /* unspec_sse_cvttss2siq */
10969 :
10970 : case 5:
10971 : if (!(
10972 : #line 9457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10973 : (TARGET_SSE2) &&
10974 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
10975 : (TARGET_64BIT)))
10976 : return -1;
10977 : return 4976; /* unspec_sse2_cvttsd2siq */
10978 :
10979 : default:
10980 : return -1;
10981 : }
10982 :
10983 : case 174:
10984 : switch (pattern129 (x1))
10985 : {
10986 : case 0:
10987 : if (!
10988 : #line 8323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10989 : (TARGET_AVX512FP16))
10990 : return -1;
10991 : return 4738; /* unspec_avx512fp16_fixuns_truncsi2 */
10992 :
10993 : case 1:
10994 : if (!
10995 : #line 9367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10996 : (TARGET_AVX512F))
10997 : return -1;
10998 : return 4948; /* unspec_avx512f_vcvttss2usi */
10999 :
11000 : case 2:
11001 : if (!
11002 : #line 9403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11003 : (TARGET_AVX512F))
11004 : return -1;
11005 : return 4960; /* unspec_avx512f_vcvttsd2usi */
11006 :
11007 : case 3:
11008 : if (!(
11009 : #line 8323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11010 : (TARGET_AVX512FP16) &&
11011 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11012 : (TARGET_64BIT)))
11013 : return -1;
11014 : return 4742; /* unspec_avx512fp16_fixuns_truncdi2 */
11015 :
11016 : case 4:
11017 : if (!(
11018 : #line 9367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11019 : (TARGET_AVX512F) &&
11020 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11021 : (TARGET_64BIT)))
11022 : return -1;
11023 : return 4950; /* unspec_avx512f_vcvttss2usiq */
11024 :
11025 : case 5:
11026 : if (!(
11027 : #line 9403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11028 : (TARGET_AVX512F) &&
11029 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11030 : (TARGET_64BIT)))
11031 : return -1;
11032 : return 4962; /* unspec_avx512f_vcvttsd2usiq */
11033 :
11034 : default:
11035 : return -1;
11036 : }
11037 :
11038 : case 192:
11039 : x3 = XEXP (x1, 0);
11040 : operands[0] = x3;
11041 : x4 = XVECEXP (x2, 0, 0);
11042 : operands[1] = x4;
11043 : switch (GET_MODE (operands[0]))
11044 : {
11045 : case E_DImode:
11046 : if (!register_operand (operands[0], E_DImode)
11047 : || GET_MODE (x2) != E_DImode
11048 : || !register_operand (operands[1], E_V64QImode)
11049 : || !
11050 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11051 : (TARGET_AVX512BW))
11052 : return -1;
11053 : return 5209; /* avx512bw_cvtb2maskv64qi */
11054 :
11055 : case E_SImode:
11056 : if (!register_operand (operands[0], E_SImode)
11057 : || GET_MODE (x2) != E_SImode)
11058 : return -1;
11059 : switch (GET_MODE (operands[1]))
11060 : {
11061 : case E_V32QImode:
11062 : if (!register_operand (operands[1], E_V32QImode)
11063 : || !(
11064 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11065 : (TARGET_AVX512BW) &&
11066 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11067 : (TARGET_AVX512VL)))
11068 : return -1;
11069 : return 5211; /* avx512vl_cvtb2maskv32qi */
11070 :
11071 : case E_V32HImode:
11072 : if (!register_operand (operands[1], E_V32HImode)
11073 : || !
11074 : #line 10589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11075 : (TARGET_AVX512BW))
11076 : return -1;
11077 : return 5212; /* avx512bw_cvtw2maskv32hi */
11078 :
11079 : default:
11080 : return -1;
11081 : }
11082 :
11083 : default:
11084 : return -1;
11085 : }
11086 :
11087 : case 276:
11088 : switch (pattern131 (x1))
11089 : {
11090 : case 0:
11091 : if (!
11092 : #line 33315 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11093 : (TARGET_AVX10_2))
11094 : return -1;
11095 : return 10956; /* avx10_2_vcvttsd2sissi */
11096 :
11097 : case 1:
11098 : if (!
11099 : #line 33328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11100 : (TARGET_AVX10_2))
11101 : return -1;
11102 : return 10964; /* avx10_2_vcvttss2sissi */
11103 :
11104 : case 2:
11105 : if (!(
11106 : #line 33315 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11107 : (TARGET_AVX10_2) &&
11108 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11109 : (TARGET_64BIT)))
11110 : return -1;
11111 : return 10960; /* avx10_2_vcvttsd2sisdi */
11112 :
11113 : case 3:
11114 : if (!(
11115 : #line 33328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11116 : (TARGET_AVX10_2) &&
11117 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11118 : (TARGET_64BIT)))
11119 : return -1;
11120 : return 10968; /* avx10_2_vcvttss2sisdi */
11121 :
11122 : default:
11123 : return -1;
11124 : }
11125 :
11126 : case 277:
11127 : switch (pattern131 (x1))
11128 : {
11129 : case 0:
11130 : if (!
11131 : #line 33315 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11132 : (TARGET_AVX10_2))
11133 : return -1;
11134 : return 10958; /* avx10_2_vcvttsd2usissi */
11135 :
11136 : case 1:
11137 : if (!
11138 : #line 33328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11139 : (TARGET_AVX10_2))
11140 : return -1;
11141 : return 10966; /* avx10_2_vcvttss2usissi */
11142 :
11143 : case 2:
11144 : if (!(
11145 : #line 33315 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11146 : (TARGET_AVX10_2) &&
11147 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11148 : (TARGET_64BIT)))
11149 : return -1;
11150 : return 10962; /* avx10_2_vcvttsd2usisdi */
11151 :
11152 : case 3:
11153 : if (!(
11154 : #line 33328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11155 : (TARGET_AVX10_2) &&
11156 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
11157 : (TARGET_64BIT)))
11158 : return -1;
11159 : return 10970; /* avx10_2_vcvttss2usisdi */
11160 :
11161 : default:
11162 : return -1;
11163 : }
11164 :
11165 : case 284:
11166 : if (GET_MODE (x2) != E_BLKmode)
11167 : return -1;
11168 : x3 = XEXP (x1, 0);
11169 : operands[0] = x3;
11170 : x4 = XVECEXP (x2, 0, 0);
11171 : if (!rtx_equal_p (x4, operands[0])
11172 : || !
11173 : #line 60 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11174 : (TARGET_SSE2))
11175 : return -1;
11176 : return 11060; /* *sse2_lfence */
11177 :
11178 : case 285:
11179 : if (GET_MODE (x2) != E_BLKmode)
11180 : return -1;
11181 : x3 = XEXP (x1, 0);
11182 : operands[0] = x3;
11183 : x4 = XVECEXP (x2, 0, 0);
11184 : if (!rtx_equal_p (x4, operands[0])
11185 : || !
11186 : #line 79 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11187 : (TARGET_SSE || TARGET_3DNOW_A))
11188 : return -1;
11189 : return 11061; /* *sse_sfence */
11190 :
11191 : case 286:
11192 : if (GET_MODE (x2) != E_BLKmode)
11193 : return -1;
11194 : x3 = XEXP (x1, 0);
11195 : operands[0] = x3;
11196 : x4 = XVECEXP (x2, 0, 0);
11197 : if (!rtx_equal_p (x4, operands[0]))
11198 : return -1;
11199 : if (
11200 : #line 98 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11201 : (TARGET_64BIT || TARGET_SSE2))
11202 : return 11062; /* mfence_sse2 */
11203 : if (pnum_clobbers == NULL)
11204 : return -1;
11205 : *pnum_clobbers = 1;
11206 : return 11063; /* mfence_nosse */
11207 :
11208 : case 288:
11209 : if (GET_MODE (x2) != E_DImode)
11210 : return -1;
11211 : x3 = XEXP (x1, 0);
11212 : operands[0] = x3;
11213 : if (!memory_operand (operands[0], E_DImode))
11214 : return -1;
11215 : x4 = XVECEXP (x2, 0, 0);
11216 : operands[1] = x4;
11217 : if (!register_operand (operands[1], E_DFmode)
11218 : || !
11219 : #line 356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11220 : (TARGET_80387))
11221 : return -1;
11222 : return 11071; /* storedi_via_fpu */
11223 :
11224 : case 290:
11225 : if (GET_MODE (x2) != E_DImode)
11226 : return -1;
11227 : x3 = XEXP (x1, 0);
11228 : operands[0] = x3;
11229 : if (!memory_operand (operands[0], E_DImode))
11230 : return -1;
11231 : x4 = XVECEXP (x2, 0, 0);
11232 : operands[1] = x4;
11233 : if (!register_operand (operands[1], E_DFmode)
11234 : || !
11235 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
11236 : (TARGET_SSE))
11237 : return -1;
11238 : return 11073; /* storedi_via_sse */
11239 :
11240 : default:
11241 : return -1;
11242 : }
11243 : }
11244 :
11245 : int
11246 : recog_149 (rtx x1 ATTRIBUTE_UNUSED,
11247 : rtx_insn *insn ATTRIBUTE_UNUSED,
11248 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11249 : {
11250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11251 : rtx x2, x3, x4, x5, x6, x7;
11252 : int res ATTRIBUTE_UNUSED;
11253 : x2 = XEXP (x1, 1);
11254 : x3 = XEXP (x2, 0);
11255 : switch (XINT (x3, 1))
11256 : {
11257 : case 64:
11258 : switch (pattern461 (x2))
11259 : {
11260 : case 0:
11261 : if (!(
11262 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11263 : (TARGET_AVX512F) && (
11264 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11265 : (TARGET_SSE
11266 : && (64 == 64 || TARGET_AVX512VL)
11267 : && 1) &&
11268 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11269 : (TARGET_AVX512FP16))))
11270 : return -1;
11271 : return 3116; /* ieee_maxv32hf3_mask */
11272 :
11273 : case 1:
11274 : if (!(
11275 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11276 : (TARGET_AVX512F) && (
11277 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11278 : (TARGET_SSE
11279 : && (32 == 64 || TARGET_AVX512VL)
11280 : && 1) &&
11281 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11282 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11283 : return -1;
11284 : return 3123; /* ieee_maxv16hf3_mask */
11285 :
11286 : case 2:
11287 : if (!(
11288 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11289 : (TARGET_AVX512F) && (
11290 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11291 : (TARGET_SSE
11292 : && (16 == 64 || TARGET_AVX512VL)
11293 : && 1) &&
11294 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11295 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11296 : return -1;
11297 : return 3127; /* ieee_maxv8hf3_mask */
11298 :
11299 : case 3:
11300 : if (!(
11301 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11302 : (TARGET_AVX512F) && (
11303 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11304 : (TARGET_SSE
11305 : && (64 == 64 || TARGET_AVX512VL)
11306 : && 1) &&
11307 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11308 : (TARGET_AVX512F))))
11309 : return -1;
11310 : return 3132; /* ieee_maxv16sf3_mask */
11311 :
11312 : case 4:
11313 : if (!(
11314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11315 : (TARGET_AVX512F) && (
11316 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11317 : (TARGET_SSE
11318 : && (32 == 64 || TARGET_AVX512VL)
11319 : && 1) &&
11320 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11321 : (TARGET_AVX))))
11322 : return -1;
11323 : return 3139; /* ieee_maxv8sf3_mask */
11324 :
11325 : case 5:
11326 : if (!(
11327 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11328 : (TARGET_AVX512F) &&
11329 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11330 : (TARGET_SSE
11331 : && (16 == 64 || TARGET_AVX512VL)
11332 : && 1)))
11333 : return -1;
11334 : return 3143; /* ieee_maxv4sf3_mask */
11335 :
11336 : case 6:
11337 : if (!(
11338 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11339 : (TARGET_AVX512F) && (
11340 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11341 : (TARGET_SSE
11342 : && (64 == 64 || TARGET_AVX512VL)
11343 : && 1) &&
11344 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11345 : (TARGET_AVX512F))))
11346 : return -1;
11347 : return 3148; /* ieee_maxv8df3_mask */
11348 :
11349 : case 7:
11350 : if (!(
11351 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11352 : (TARGET_AVX512F) && (
11353 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11354 : (TARGET_SSE
11355 : && (32 == 64 || TARGET_AVX512VL)
11356 : && 1) &&
11357 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11358 : (TARGET_AVX))))
11359 : return -1;
11360 : return 3155; /* ieee_maxv4df3_mask */
11361 :
11362 : case 8:
11363 : if (!(
11364 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11365 : (TARGET_AVX512F) && (
11366 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11367 : (TARGET_SSE
11368 : && (16 == 64 || TARGET_AVX512VL)
11369 : && 1) &&
11370 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11371 : (TARGET_SSE2))))
11372 : return -1;
11373 : return 3159; /* ieee_maxv2df3_mask */
11374 :
11375 : case 9:
11376 : if (!(
11377 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11378 : (TARGET_SSE) &&
11379 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11380 : (TARGET_AVX512FP16)))
11381 : return -1;
11382 : return 3192; /* avx512fp16_ieee_vmmaxv8hf3 */
11383 :
11384 : case 10:
11385 : if (!
11386 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11387 : (TARGET_SSE))
11388 : return -1;
11389 : return 3200; /* sse_ieee_vmmaxv4sf3 */
11390 :
11391 : case 11:
11392 : if (!(
11393 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11394 : (TARGET_SSE) &&
11395 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11396 : (TARGET_SSE2)))
11397 : return -1;
11398 : return 3208; /* sse2_ieee_vmmaxv2df3 */
11399 :
11400 : default:
11401 : return -1;
11402 : }
11403 :
11404 : case 63:
11405 : switch (pattern461 (x2))
11406 : {
11407 : case 0:
11408 : if (!(
11409 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11410 : (TARGET_AVX512F) && (
11411 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11412 : (TARGET_SSE
11413 : && (64 == 64 || TARGET_AVX512VL)
11414 : && 1) &&
11415 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11416 : (TARGET_AVX512FP16))))
11417 : return -1;
11418 : return 3120; /* ieee_minv32hf3_mask */
11419 :
11420 : case 1:
11421 : if (!(
11422 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11423 : (TARGET_AVX512F) && (
11424 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11425 : (TARGET_SSE
11426 : && (32 == 64 || TARGET_AVX512VL)
11427 : && 1) &&
11428 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11429 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11430 : return -1;
11431 : return 3125; /* ieee_minv16hf3_mask */
11432 :
11433 : case 2:
11434 : if (!(
11435 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11436 : (TARGET_AVX512F) && (
11437 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11438 : (TARGET_SSE
11439 : && (16 == 64 || TARGET_AVX512VL)
11440 : && 1) &&
11441 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11442 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11443 : return -1;
11444 : return 3129; /* ieee_minv8hf3_mask */
11445 :
11446 : case 3:
11447 : if (!(
11448 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11449 : (TARGET_AVX512F) && (
11450 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11451 : (TARGET_SSE
11452 : && (64 == 64 || TARGET_AVX512VL)
11453 : && 1) &&
11454 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11455 : (TARGET_AVX512F))))
11456 : return -1;
11457 : return 3136; /* ieee_minv16sf3_mask */
11458 :
11459 : case 4:
11460 : if (!(
11461 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11462 : (TARGET_AVX512F) && (
11463 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11464 : (TARGET_SSE
11465 : && (32 == 64 || TARGET_AVX512VL)
11466 : && 1) &&
11467 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11468 : (TARGET_AVX))))
11469 : return -1;
11470 : return 3141; /* ieee_minv8sf3_mask */
11471 :
11472 : case 5:
11473 : if (!(
11474 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11475 : (TARGET_AVX512F) &&
11476 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11477 : (TARGET_SSE
11478 : && (16 == 64 || TARGET_AVX512VL)
11479 : && 1)))
11480 : return -1;
11481 : return 3145; /* ieee_minv4sf3_mask */
11482 :
11483 : case 6:
11484 : if (!(
11485 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11486 : (TARGET_AVX512F) && (
11487 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11488 : (TARGET_SSE
11489 : && (64 == 64 || TARGET_AVX512VL)
11490 : && 1) &&
11491 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11492 : (TARGET_AVX512F))))
11493 : return -1;
11494 : return 3152; /* ieee_minv8df3_mask */
11495 :
11496 : case 7:
11497 : if (!(
11498 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11499 : (TARGET_AVX512F) && (
11500 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11501 : (TARGET_SSE
11502 : && (32 == 64 || TARGET_AVX512VL)
11503 : && 1) &&
11504 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11505 : (TARGET_AVX))))
11506 : return -1;
11507 : return 3157; /* ieee_minv4df3_mask */
11508 :
11509 : case 8:
11510 : if (!(
11511 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11512 : (TARGET_AVX512F) && (
11513 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11514 : (TARGET_SSE
11515 : && (16 == 64 || TARGET_AVX512VL)
11516 : && 1) &&
11517 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11518 : (TARGET_SSE2))))
11519 : return -1;
11520 : return 3161; /* ieee_minv2df3_mask */
11521 :
11522 : case 9:
11523 : if (!(
11524 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11525 : (TARGET_SSE) &&
11526 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11527 : (TARGET_AVX512FP16)))
11528 : return -1;
11529 : return 3196; /* avx512fp16_ieee_vmminv8hf3 */
11530 :
11531 : case 10:
11532 : if (!
11533 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11534 : (TARGET_SSE))
11535 : return -1;
11536 : return 3204; /* sse_ieee_vmminv4sf3 */
11537 :
11538 : case 11:
11539 : if (!(
11540 : #line 3555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11541 : (TARGET_SSE) &&
11542 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11543 : (TARGET_SSE2)))
11544 : return -1;
11545 : return 3212; /* sse2_ieee_vmminv2df3 */
11546 :
11547 : default:
11548 : return -1;
11549 : }
11550 :
11551 : case 193:
11552 : x4 = XVECEXP (x3, 0, 0);
11553 : operands[1] = x4;
11554 : x5 = XVECEXP (x3, 0, 1);
11555 : operands[2] = x5;
11556 : if (!const_0_to_255_operand (operands[2], E_SImode))
11557 : return -1;
11558 : x6 = XEXP (x2, 1);
11559 : operands[3] = x6;
11560 : x7 = XEXP (x2, 2);
11561 : operands[4] = x7;
11562 : switch (GET_MODE (operands[0]))
11563 : {
11564 : case E_V32HFmode:
11565 : if (pattern1221 (x2,
11566 : E_V32HFmode,
11567 : E_SImode) != 0
11568 : || !(
11569 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11570 : (TARGET_AVX512F) && (
11571 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11572 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
11573 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11574 : (TARGET_AVX512FP16))))
11575 : return -1;
11576 : return 3232; /* reducepv32hf_mask */
11577 :
11578 : case E_V16HFmode:
11579 : if (pattern1221 (x2,
11580 : E_V16HFmode,
11581 : E_HImode) != 0
11582 : || !(
11583 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11584 : (TARGET_AVX512F) && (
11585 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11586 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
11587 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11588 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11589 : return -1;
11590 : return 3236; /* reducepv16hf_mask */
11591 :
11592 : case E_V8HFmode:
11593 : if (pattern1221 (x2,
11594 : E_V8HFmode,
11595 : E_QImode) != 0
11596 : || !(
11597 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11598 : (TARGET_AVX512F) && (
11599 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11600 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
11601 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11602 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
11603 : return -1;
11604 : return 3240; /* reducepv8hf_mask */
11605 :
11606 : case E_V16SFmode:
11607 : if (pattern1221 (x2,
11608 : E_V16SFmode,
11609 : E_HImode) != 0
11610 : || !(
11611 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11612 : (TARGET_AVX512F) &&
11613 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11614 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode)))))
11615 : return -1;
11616 : return 3244; /* reducepv16sf_mask */
11617 :
11618 : case E_V8SFmode:
11619 : if (pattern1221 (x2,
11620 : E_V8SFmode,
11621 : E_QImode) != 0
11622 : || !(
11623 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11624 : (TARGET_AVX512F) && (
11625 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11626 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
11627 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11628 : (TARGET_AVX512VL))))
11629 : return -1;
11630 : return 3248; /* reducepv8sf_mask */
11631 :
11632 : case E_V4SFmode:
11633 : if (pattern1221 (x2,
11634 : E_V4SFmode,
11635 : E_QImode) != 0
11636 : || !(
11637 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11638 : (TARGET_AVX512F) && (
11639 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11640 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
11641 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11642 : (TARGET_AVX512VL))))
11643 : return -1;
11644 : return 3252; /* reducepv4sf_mask */
11645 :
11646 : case E_V8DFmode:
11647 : if (pattern1221 (x2,
11648 : E_V8DFmode,
11649 : E_QImode) != 0
11650 : || !(
11651 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11652 : (TARGET_AVX512F) &&
11653 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11654 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode)))))
11655 : return -1;
11656 : return 3256; /* reducepv8df_mask */
11657 :
11658 : case E_V4DFmode:
11659 : if (pattern1221 (x2,
11660 : E_V4DFmode,
11661 : E_QImode) != 0
11662 : || !(
11663 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11664 : (TARGET_AVX512F) && (
11665 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11666 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
11667 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11668 : (TARGET_AVX512VL))))
11669 : return -1;
11670 : return 3260; /* reducepv4df_mask */
11671 :
11672 : case E_V2DFmode:
11673 : if (pattern1221 (x2,
11674 : E_V2DFmode,
11675 : E_QImode) != 0
11676 : || !(
11677 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11678 : (TARGET_AVX512F) && (
11679 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11680 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
11681 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11682 : (TARGET_AVX512VL))))
11683 : return -1;
11684 : return 3264; /* reducepv2df_mask */
11685 :
11686 : default:
11687 : return -1;
11688 : }
11689 :
11690 : case 222:
11691 : switch (pattern463 (x2))
11692 : {
11693 : case 0:
11694 : if (!(
11695 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11696 : (TARGET_AVX512F) &&
11697 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11698 : (TARGET_AVX512FP16 && 1)))
11699 : return -1;
11700 : return 4411; /* avx512bw_fmulc_v32hf_mask */
11701 :
11702 : case 1:
11703 : if (!(
11704 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11705 : (TARGET_AVX512F) && (
11706 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11707 : (TARGET_AVX512FP16 && 1) &&
11708 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11709 : (TARGET_AVX512VL))))
11710 : return -1;
11711 : return 4419; /* avx512vl_fmulc_v16hf_mask */
11712 :
11713 : case 2:
11714 : if (!(
11715 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11716 : (TARGET_AVX512F) && (
11717 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11718 : (TARGET_AVX512FP16 && 1) &&
11719 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11720 : (TARGET_AVX512VL))))
11721 : return -1;
11722 : return 4423; /* avx512fp16_fmulc_v8hf_mask */
11723 :
11724 : case 3:
11725 : if (!
11726 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11727 : (TARGET_AVX512FP16))
11728 : return -1;
11729 : return 4438; /* avx512fp16_fmulcsh_v8hf */
11730 :
11731 : default:
11732 : return -1;
11733 : }
11734 :
11735 : case 223:
11736 : switch (pattern463 (x2))
11737 : {
11738 : case 0:
11739 : if (!(
11740 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11741 : (TARGET_AVX512F) &&
11742 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11743 : (TARGET_AVX512FP16 && 1)))
11744 : return -1;
11745 : return 4415; /* avx512bw_fcmulc_v32hf_mask */
11746 :
11747 : case 1:
11748 : if (!(
11749 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11750 : (TARGET_AVX512F) && (
11751 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11752 : (TARGET_AVX512FP16 && 1) &&
11753 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11754 : (TARGET_AVX512VL))))
11755 : return -1;
11756 : return 4421; /* avx512vl_fcmulc_v16hf_mask */
11757 :
11758 : case 2:
11759 : if (!(
11760 : #line 106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11761 : (TARGET_AVX512F) && (
11762 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11763 : (TARGET_AVX512FP16 && 1) &&
11764 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11765 : (TARGET_AVX512VL))))
11766 : return -1;
11767 : return 4425; /* avx512fp16_fcmulc_v8hf_mask */
11768 :
11769 : case 3:
11770 : if (!
11771 : #line 7869 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11772 : (TARGET_AVX512FP16))
11773 : return -1;
11774 : return 4442; /* avx512fp16_fcmulcsh_v8hf */
11775 :
11776 : default:
11777 : return -1;
11778 : }
11779 :
11780 : case 59:
11781 : return recog_134 (x1, insn, pnum_clobbers);
11782 :
11783 : case 166:
11784 : x7 = XEXP (x2, 2);
11785 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11786 : return -1;
11787 : x4 = XVECEXP (x3, 0, 0);
11788 : operands[1] = x4;
11789 : x5 = XVECEXP (x3, 0, 1);
11790 : operands[2] = x5;
11791 : switch (pattern460 (x2))
11792 : {
11793 : case 0:
11794 : if (!(
11795 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11796 : (TARGET_AVX512F) &&
11797 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11798 : (TARGET_AVX512FP16)))
11799 : return -1;
11800 : return 7092; /* avx512f_sgetexpv8hf */
11801 :
11802 : case 1:
11803 : if (!
11804 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11805 : (TARGET_AVX512F))
11806 : return -1;
11807 : return 7096; /* avx512f_sgetexpv4sf */
11808 :
11809 : case 2:
11810 : if (!(
11811 : #line 14370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11812 : (TARGET_AVX512F) &&
11813 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11814 : (TARGET_SSE2)))
11815 : return -1;
11816 : return 7100; /* avx512f_sgetexpv2df */
11817 :
11818 : default:
11819 : return -1;
11820 : }
11821 :
11822 : case 95:
11823 : return recog_133 (x1, insn, pnum_clobbers);
11824 :
11825 : case 189:
11826 : x4 = XVECEXP (x3, 0, 0);
11827 : operands[1] = x4;
11828 : x5 = XVECEXP (x3, 0, 1);
11829 : operands[2] = x5;
11830 : x6 = XEXP (x2, 1);
11831 : operands[3] = x6;
11832 : x7 = XEXP (x2, 2);
11833 : operands[4] = x7;
11834 : switch (GET_MODE (operands[0]))
11835 : {
11836 : case E_V16SImode:
11837 : if (pattern466 (x2,
11838 : E_HImode,
11839 : E_V16SImode,
11840 : E_V32HImode) != 0
11841 : || !(
11842 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11843 : (TARGET_AVX512F) && (
11844 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11845 : (TARGET_AVX512BW && (64 == 64 || TARGET_AVX512VL)) &&
11846 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11847 : (TARGET_AVX512BW))))
11848 : return -1;
11849 : return 7626; /* avx512bw_pmaddwd512v32hi_mask */
11850 :
11851 : case E_V8SImode:
11852 : if (pattern466 (x2,
11853 : E_QImode,
11854 : E_V8SImode,
11855 : E_V16HImode) != 0
11856 : || !(
11857 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11858 : (TARGET_AVX512F) && (
11859 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11860 : (TARGET_AVX512BW && (32 == 64 || TARGET_AVX512VL)) &&
11861 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11862 : (TARGET_AVX2))))
11863 : return -1;
11864 : return 7628; /* avx512bw_pmaddwd512v16hi_mask */
11865 :
11866 : case E_V4SImode:
11867 : if (pattern466 (x2,
11868 : E_QImode,
11869 : E_V4SImode,
11870 : E_V8HImode) != 0
11871 : || !(
11872 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11873 : (TARGET_AVX512F) &&
11874 : #line 16996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11875 : (TARGET_AVX512BW && (16 == 64 || TARGET_AVX512VL))))
11876 : return -1;
11877 : return 7630; /* avx512bw_pmaddwd512v8hi_mask */
11878 :
11879 : default:
11880 : return -1;
11881 : }
11882 :
11883 : case 58:
11884 : x4 = XVECEXP (x3, 0, 0);
11885 : operands[1] = x4;
11886 : x5 = XVECEXP (x3, 0, 1);
11887 : operands[2] = x5;
11888 : x6 = XEXP (x2, 1);
11889 : operands[3] = x6;
11890 : x7 = XEXP (x2, 2);
11891 : operands[4] = x7;
11892 : switch (GET_MODE (operands[0]))
11893 : {
11894 : case E_V64QImode:
11895 : if (pattern1116 (x2,
11896 : E_DImode,
11897 : E_V64QImode,
11898 : E_V32HImode) != 0
11899 : || !(
11900 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11901 : (TARGET_AVX512F) && (
11902 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11903 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11904 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11905 : (TARGET_AVX512BW))))
11906 : return -1;
11907 : return 8359; /* avx512bw_packuswb_mask */
11908 :
11909 : case E_V32QImode:
11910 : if (pattern1116 (x2,
11911 : E_SImode,
11912 : E_V32QImode,
11913 : E_V16HImode) != 0
11914 : || !(
11915 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11916 : (TARGET_AVX512F) && (
11917 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11918 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11919 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11920 : (TARGET_AVX2))))
11921 : return -1;
11922 : return 8361; /* avx2_packuswb_mask */
11923 :
11924 : case E_V16QImode:
11925 : if (pattern1116 (x2,
11926 : E_HImode,
11927 : E_V16QImode,
11928 : E_V8HImode) != 0
11929 : || !(
11930 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11931 : (TARGET_AVX512F) &&
11932 : #line 19714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11933 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
11934 : return -1;
11935 : return 8363; /* sse2_packuswb_mask */
11936 :
11937 : case E_V32HImode:
11938 : if (pattern1116 (x2,
11939 : E_SImode,
11940 : E_V32HImode,
11941 : E_V16SImode) != 0
11942 : || !(
11943 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11944 : (TARGET_AVX512F) && (
11945 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11946 : (TARGET_SSE4_1 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11947 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11948 : (TARGET_AVX512BW))))
11949 : return -1;
11950 : return 8774; /* avx512bw_packusdw_mask */
11951 :
11952 : case E_V16HImode:
11953 : if (pattern1116 (x2,
11954 : E_HImode,
11955 : E_V16HImode,
11956 : E_V8SImode) != 0
11957 : || !(
11958 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11959 : (TARGET_AVX512F) && (
11960 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11961 : (TARGET_SSE4_1 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
11962 : #line 646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11963 : (TARGET_AVX2))))
11964 : return -1;
11965 : return 8776; /* avx2_packusdw_mask */
11966 :
11967 : case E_V8HImode:
11968 : if (pattern1116 (x2,
11969 : E_QImode,
11970 : E_V8HImode,
11971 : E_V4SImode) != 0
11972 : || !(
11973 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11974 : (TARGET_AVX512F) &&
11975 : #line 24189 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11976 : (TARGET_SSE4_1 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
11977 : return -1;
11978 : return 8778; /* sse4_1_packusdw_mask */
11979 :
11980 : default:
11981 : return -1;
11982 : }
11983 :
11984 : case 191:
11985 : if (pattern464 (x2) != 0
11986 : || !(
11987 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11988 : (TARGET_AVX512F) &&
11989 : #line 21053 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11990 : (TARGET_AVX512BW)))
11991 : return -1;
11992 : return 8489; /* avx512bw_pshuflwv32hi_mask */
11993 :
11994 : case 190:
11995 : if (pattern464 (x2) != 0
11996 : || !(
11997 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11998 : (TARGET_AVX512F) &&
11999 : #line 21229 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12000 : (TARGET_AVX512BW)))
12001 : return -1;
12002 : return 8495; /* avx512bw_pshufhwv32hi_mask */
12003 :
12004 : case 188:
12005 : x4 = XVECEXP (x3, 0, 0);
12006 : operands[1] = x4;
12007 : x5 = XVECEXP (x3, 0, 1);
12008 : operands[2] = x5;
12009 : x6 = XEXP (x2, 1);
12010 : operands[3] = x6;
12011 : x7 = XEXP (x2, 2);
12012 : operands[4] = x7;
12013 : switch (GET_MODE (operands[0]))
12014 : {
12015 : case E_V8HImode:
12016 : if (pattern466 (x2,
12017 : E_QImode,
12018 : E_V8HImode,
12019 : E_V16QImode) != 0
12020 : || !(
12021 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12022 : (TARGET_AVX512F) && (
12023 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12024 : (TARGET_AVX512BW) &&
12025 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12026 : (TARGET_AVX512VL))))
12027 : return -1;
12028 : return 8652; /* avx512bw_pmaddubsw512v8hi_mask */
12029 :
12030 : case E_V16HImode:
12031 : if (pattern466 (x2,
12032 : E_HImode,
12033 : E_V16HImode,
12034 : E_V32QImode) != 0
12035 : || !(
12036 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12037 : (TARGET_AVX512F) && (
12038 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12039 : (TARGET_AVX512BW) &&
12040 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12041 : (TARGET_AVX512VL))))
12042 : return -1;
12043 : return 8654; /* avx512bw_pmaddubsw512v16hi_mask */
12044 :
12045 : case E_V32HImode:
12046 : if (pattern466 (x2,
12047 : E_SImode,
12048 : E_V32HImode,
12049 : E_V64QImode) != 0
12050 : || !(
12051 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12052 : (TARGET_AVX512F) &&
12053 : #line 23147 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12054 : (TARGET_AVX512BW)))
12055 : return -1;
12056 : return 8656; /* avx512bw_pmaddubsw512v32hi_mask */
12057 :
12058 : default:
12059 : return -1;
12060 : }
12061 :
12062 : case 53:
12063 : switch (pattern465 (x2))
12064 : {
12065 : case 0:
12066 : if (!(
12067 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12068 : (TARGET_AVX512F) && (
12069 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12070 : (TARGET_SSSE3 && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12071 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12072 : (TARGET_AVX512BW))))
12073 : return -1;
12074 : return 8670; /* avx512bw_pshufbv64qi3_mask */
12075 :
12076 : case 1:
12077 : if (!(
12078 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12079 : (TARGET_AVX512F) && (
12080 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12081 : (TARGET_SSSE3 && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12082 : #line 626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12083 : (TARGET_AVX2))))
12084 : return -1;
12085 : return 8672; /* avx2_pshufbv32qi3_mask */
12086 :
12087 : case 2:
12088 : if (!(
12089 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12090 : (TARGET_AVX512F) &&
12091 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12092 : (TARGET_SSSE3 && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12093 : return -1;
12094 : return 8674; /* ssse3_pshufbv16qi3_mask */
12095 :
12096 : default:
12097 : return -1;
12098 : }
12099 :
12100 : case 152:
12101 : return recog_132 (x1, insn, pnum_clobbers);
12102 :
12103 : case 145:
12104 : x4 = XVECEXP (x3, 0, 0);
12105 : operands[1] = x4;
12106 : x5 = XVECEXP (x3, 0, 1);
12107 : operands[2] = x5;
12108 : x6 = XEXP (x2, 1);
12109 : operands[3] = x6;
12110 : x7 = XEXP (x2, 2);
12111 : operands[4] = x7;
12112 : switch (GET_MODE (operands[0]))
12113 : {
12114 : case E_V16SFmode:
12115 : if (pattern1119 (x2,
12116 : E_V16SFmode,
12117 : E_V16SImode,
12118 : E_HImode) != 0
12119 : || !(
12120 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12121 : (TARGET_AVX512F) && (
12122 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12123 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
12124 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12125 : (TARGET_AVX512F))))
12126 : return -1;
12127 : return 9427; /* avx512f_vpermilvarv16sf3_mask */
12128 :
12129 : case E_V8SFmode:
12130 : if (pattern1119 (x2,
12131 : E_V8SFmode,
12132 : E_V8SImode,
12133 : E_QImode) != 0
12134 : || !(
12135 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12136 : (TARGET_AVX512F) && (
12137 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12138 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
12139 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12140 : (TARGET_AVX))))
12141 : return -1;
12142 : return 9429; /* avx_vpermilvarv8sf3_mask */
12143 :
12144 : case E_V4SFmode:
12145 : if (pattern1119 (x2,
12146 : E_V4SFmode,
12147 : E_V4SImode,
12148 : E_QImode) != 0
12149 : || !(
12150 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12151 : (TARGET_AVX512F) &&
12152 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12153 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL))))
12154 : return -1;
12155 : return 9431; /* avx_vpermilvarv4sf3_mask */
12156 :
12157 : case E_V8DFmode:
12158 : if (pattern1119 (x2,
12159 : E_V8DFmode,
12160 : E_V8DImode,
12161 : E_QImode) != 0
12162 : || !(
12163 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12164 : (TARGET_AVX512F) && (
12165 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12166 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
12167 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12168 : (TARGET_AVX512F))))
12169 : return -1;
12170 : return 9433; /* avx512f_vpermilvarv8df3_mask */
12171 :
12172 : case E_V4DFmode:
12173 : if (pattern1119 (x2,
12174 : E_V4DFmode,
12175 : E_V4DImode,
12176 : E_QImode) != 0
12177 : || !(
12178 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12179 : (TARGET_AVX512F) && (
12180 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12181 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL)) &&
12182 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12183 : (TARGET_AVX))))
12184 : return -1;
12185 : return 9435; /* avx_vpermilvarv4df3_mask */
12186 :
12187 : case E_V2DFmode:
12188 : if (pattern1119 (x2,
12189 : E_V2DFmode,
12190 : E_V2DImode,
12191 : E_QImode) != 0
12192 : || !(
12193 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12194 : (TARGET_AVX512F) && (
12195 : #line 28825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12196 : (TARGET_AVX && (16 == 64 || TARGET_AVX512VL)) &&
12197 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12198 : (TARGET_SSE2))))
12199 : return -1;
12200 : return 9437; /* avx_vpermilvarv2df3_mask */
12201 :
12202 : default:
12203 : return -1;
12204 : }
12205 :
12206 : case 151:
12207 : x4 = XVECEXP (x3, 0, 0);
12208 : operands[1] = x4;
12209 : x5 = XVECEXP (x3, 0, 1);
12210 : operands[2] = x5;
12211 : if (!const_0_to_255_operand (operands[2], E_SImode))
12212 : return -1;
12213 : switch (GET_MODE (operands[0]))
12214 : {
12215 : case E_V8HImode:
12216 : if (pattern1005 (x2,
12217 : E_QImode,
12218 : E_V8SFmode,
12219 : E_V8HImode) != 0)
12220 : return -1;
12221 : x7 = XEXP (x2, 2);
12222 : operands[4] = x7;
12223 : if (register_operand (operands[0], E_V8HImode))
12224 : {
12225 : x6 = XEXP (x2, 1);
12226 : operands[3] = x6;
12227 : if (nonimm_or_0_operand (operands[3], E_V8HImode)
12228 : && (
12229 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12230 : (TARGET_AVX512F) &&
12231 : #line 29868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12232 : (TARGET_F16C || TARGET_AVX512VL)))
12233 : return 9735; /* vcvtps2ph256_mask */
12234 : }
12235 : operands[3] = x7;
12236 : if (!memory_operand (operands[0], E_V8HImode))
12237 : return -1;
12238 : x6 = XEXP (x2, 1);
12239 : if (!rtx_equal_p (x6, operands[0])
12240 : || !(
12241 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12242 : (TARGET_AVX512F) &&
12243 : #line 29880 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12244 : (TARGET_F16C || TARGET_AVX512VL)))
12245 : return -1;
12246 : return 9737; /* *vcvtps2ph256_merge_mask */
12247 :
12248 : case E_V16HImode:
12249 : if (pattern1005 (x2,
12250 : E_HImode,
12251 : E_V16SFmode,
12252 : E_V16HImode) != 0)
12253 : return -1;
12254 : x7 = XEXP (x2, 2);
12255 : operands[4] = x7;
12256 : if (register_operand (operands[0], E_V16HImode))
12257 : {
12258 : x6 = XEXP (x2, 1);
12259 : operands[3] = x6;
12260 : if (nonimm_or_0_operand (operands[3], E_V16HImode)
12261 : &&
12262 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12263 : (TARGET_AVX512F))
12264 : return 9740; /* avx512f_vcvtps2ph512_mask */
12265 : }
12266 : operands[3] = x7;
12267 : if (!memory_operand (operands[0], E_V16HImode))
12268 : return -1;
12269 : x6 = XEXP (x2, 1);
12270 : if (!rtx_equal_p (x6, operands[0])
12271 : || !
12272 : #line 96 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12273 : (TARGET_AVX512F))
12274 : return -1;
12275 : return 9743; /* *avx512f_vcvtps2ph512_merge_mask */
12276 :
12277 : default:
12278 : return -1;
12279 : }
12280 :
12281 : case 167:
12282 : return recog_135 (x1, insn, pnum_clobbers);
12283 :
12284 : case 198:
12285 : x4 = XVECEXP (x3, 0, 0);
12286 : operands[1] = x4;
12287 : x5 = XVECEXP (x3, 0, 1);
12288 : operands[2] = x5;
12289 : x6 = XEXP (x2, 1);
12290 : operands[3] = x6;
12291 : x7 = XEXP (x2, 2);
12292 : operands[4] = x7;
12293 : switch (GET_MODE (operands[0]))
12294 : {
12295 : case E_V64QImode:
12296 : if (pattern1120 (x2,
12297 : E_V64QImode,
12298 : E_DImode) != 0
12299 : || !(
12300 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12301 : (TARGET_AVX512F) &&
12302 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12303 : (TARGET_AVX512VBMI)))
12304 : return -1;
12305 : return 10202; /* vpmultishiftqbv64qi_mask */
12306 :
12307 : case E_V16QImode:
12308 : if (pattern1120 (x2,
12309 : E_V16QImode,
12310 : E_HImode) != 0
12311 : || !(
12312 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12313 : (TARGET_AVX512F) && (
12314 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12315 : (TARGET_AVX512VBMI) &&
12316 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12317 : (TARGET_AVX512VL))))
12318 : return -1;
12319 : return 10204; /* vpmultishiftqbv16qi_mask */
12320 :
12321 : case E_V32QImode:
12322 : if (pattern1120 (x2,
12323 : E_V32QImode,
12324 : E_SImode) != 0
12325 : || !(
12326 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12327 : (TARGET_AVX512F) && (
12328 : #line 30971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12329 : (TARGET_AVX512VBMI) &&
12330 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12331 : (TARGET_AVX512VL))))
12332 : return -1;
12333 : return 10206; /* vpmultishiftqbv32qi_mask */
12334 :
12335 : default:
12336 : return -1;
12337 : }
12338 :
12339 : case 201:
12340 : switch (pattern465 (x2))
12341 : {
12342 : case 0:
12343 : if (!(
12344 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12345 : (TARGET_AVX512F) && (
12346 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12347 : (TARGET_GFNI) &&
12348 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12349 : (TARGET_AVX512F))))
12350 : return -1;
12351 : return 10252; /* vgf2p8mulb_v64qi_mask */
12352 :
12353 : case 1:
12354 : if (!(
12355 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12356 : (TARGET_AVX512F) && (
12357 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12358 : (TARGET_GFNI) &&
12359 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12360 : (TARGET_AVX))))
12361 : return -1;
12362 : return 10254; /* vgf2p8mulb_v32qi_mask */
12363 :
12364 : case 2:
12365 : if (!(
12366 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12367 : (TARGET_AVX512F) &&
12368 : #line 31080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12369 : (TARGET_GFNI)))
12370 : return -1;
12371 : return 10256; /* vgf2p8mulb_v16qi_mask */
12372 :
12373 : default:
12374 : return -1;
12375 : }
12376 :
12377 : case 250:
12378 : switch (pattern467 (x2))
12379 : {
12380 : case 0:
12381 : if (!(
12382 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12383 : (TARGET_AVX512F) &&
12384 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12385 : (TARGET_AVX10_2)))
12386 : return -1;
12387 : return 10520; /* vcvt2ph2bf8v32hf_mask */
12388 :
12389 : case 1:
12390 : if (!(
12391 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12392 : (TARGET_AVX512F) && (
12393 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12394 : (TARGET_AVX10_2) &&
12395 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12396 : (TARGET_AVX512VL))))
12397 : return -1;
12398 : return 10528; /* vcvt2ph2bf8v16hf_mask */
12399 :
12400 : case 2:
12401 : if (!(
12402 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12403 : (TARGET_AVX512F) && (
12404 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12405 : (TARGET_AVX10_2) &&
12406 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12407 : (TARGET_AVX512VL))))
12408 : return -1;
12409 : return 10536; /* vcvt2ph2bf8v8hf_mask */
12410 :
12411 : default:
12412 : return -1;
12413 : }
12414 :
12415 : case 251:
12416 : switch (pattern467 (x2))
12417 : {
12418 : case 0:
12419 : if (!(
12420 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12421 : (TARGET_AVX512F) &&
12422 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12423 : (TARGET_AVX10_2)))
12424 : return -1;
12425 : return 10522; /* vcvt2ph2bf8sv32hf_mask */
12426 :
12427 : case 1:
12428 : if (!(
12429 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12430 : (TARGET_AVX512F) && (
12431 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12432 : (TARGET_AVX10_2) &&
12433 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12434 : (TARGET_AVX512VL))))
12435 : return -1;
12436 : return 10530; /* vcvt2ph2bf8sv16hf_mask */
12437 :
12438 : case 2:
12439 : if (!(
12440 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12441 : (TARGET_AVX512F) && (
12442 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12443 : (TARGET_AVX10_2) &&
12444 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12445 : (TARGET_AVX512VL))))
12446 : return -1;
12447 : return 10538; /* vcvt2ph2bf8sv8hf_mask */
12448 :
12449 : default:
12450 : return -1;
12451 : }
12452 :
12453 : case 252:
12454 : switch (pattern467 (x2))
12455 : {
12456 : case 0:
12457 : if (!(
12458 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12459 : (TARGET_AVX512F) &&
12460 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12461 : (TARGET_AVX10_2)))
12462 : return -1;
12463 : return 10524; /* vcvt2ph2hf8v32hf_mask */
12464 :
12465 : case 1:
12466 : if (!(
12467 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12468 : (TARGET_AVX512F) && (
12469 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12470 : (TARGET_AVX10_2) &&
12471 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12472 : (TARGET_AVX512VL))))
12473 : return -1;
12474 : return 10532; /* vcvt2ph2hf8v16hf_mask */
12475 :
12476 : case 2:
12477 : if (!(
12478 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12479 : (TARGET_AVX512F) && (
12480 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12481 : (TARGET_AVX10_2) &&
12482 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12483 : (TARGET_AVX512VL))))
12484 : return -1;
12485 : return 10540; /* vcvt2ph2hf8v8hf_mask */
12486 :
12487 : default:
12488 : return -1;
12489 : }
12490 :
12491 : case 253:
12492 : switch (pattern467 (x2))
12493 : {
12494 : case 0:
12495 : if (!(
12496 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12497 : (TARGET_AVX512F) &&
12498 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12499 : (TARGET_AVX10_2)))
12500 : return -1;
12501 : return 10526; /* vcvt2ph2hf8sv32hf_mask */
12502 :
12503 : case 1:
12504 : if (!(
12505 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12506 : (TARGET_AVX512F) && (
12507 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12508 : (TARGET_AVX10_2) &&
12509 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12510 : (TARGET_AVX512VL))))
12511 : return -1;
12512 : return 10534; /* vcvt2ph2hf8sv16hf_mask */
12513 :
12514 : case 2:
12515 : if (!(
12516 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12517 : (TARGET_AVX512F) && (
12518 : #line 32446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12519 : (TARGET_AVX10_2) &&
12520 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12521 : (TARGET_AVX512VL))))
12522 : return -1;
12523 : return 10542; /* vcvt2ph2hf8sv8hf_mask */
12524 :
12525 : default:
12526 : return -1;
12527 : }
12528 :
12529 : case 246:
12530 : switch (pattern469 (x2))
12531 : {
12532 : case 0:
12533 : if (!(
12534 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12535 : (TARGET_AVX512F) &&
12536 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12537 : (TARGET_AVX10_2)))
12538 : return -1;
12539 : return 10552; /* vcvtbiasph2bf8v32hf_mask */
12540 :
12541 : case 1:
12542 : if (!(
12543 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12544 : (TARGET_AVX512F) &&
12545 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12546 : (TARGET_AVX10_2)))
12547 : return -1;
12548 : return 10560; /* vcvtbiasph2bf8v16hf_mask */
12549 :
12550 : default:
12551 : return -1;
12552 : }
12553 :
12554 : case 247:
12555 : switch (pattern469 (x2))
12556 : {
12557 : case 0:
12558 : if (!(
12559 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12560 : (TARGET_AVX512F) &&
12561 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12562 : (TARGET_AVX10_2)))
12563 : return -1;
12564 : return 10554; /* vcvtbiasph2bf8sv32hf_mask */
12565 :
12566 : case 1:
12567 : if (!(
12568 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12569 : (TARGET_AVX512F) &&
12570 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12571 : (TARGET_AVX10_2)))
12572 : return -1;
12573 : return 10562; /* vcvtbiasph2bf8sv16hf_mask */
12574 :
12575 : default:
12576 : return -1;
12577 : }
12578 :
12579 : case 248:
12580 : switch (pattern469 (x2))
12581 : {
12582 : case 0:
12583 : if (!(
12584 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12585 : (TARGET_AVX512F) &&
12586 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12587 : (TARGET_AVX10_2)))
12588 : return -1;
12589 : return 10556; /* vcvtbiasph2hf8v32hf_mask */
12590 :
12591 : case 1:
12592 : if (!(
12593 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12594 : (TARGET_AVX512F) &&
12595 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12596 : (TARGET_AVX10_2)))
12597 : return -1;
12598 : return 10564; /* vcvtbiasph2hf8v16hf_mask */
12599 :
12600 : default:
12601 : return -1;
12602 : }
12603 :
12604 : case 249:
12605 : switch (pattern469 (x2))
12606 : {
12607 : case 0:
12608 : if (!(
12609 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12610 : (TARGET_AVX512F) &&
12611 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12612 : (TARGET_AVX10_2)))
12613 : return -1;
12614 : return 10558; /* vcvtbiasph2hf8sv32hf_mask */
12615 :
12616 : case 1:
12617 : if (!(
12618 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12619 : (TARGET_AVX512F) &&
12620 : #line 32535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12621 : (TARGET_AVX10_2)))
12622 : return -1;
12623 : return 10566; /* vcvtbiasph2hf8sv16hf_mask */
12624 :
12625 : default:
12626 : return -1;
12627 : }
12628 :
12629 : case 259:
12630 : x4 = XVECEXP (x3, 0, 0);
12631 : operands[1] = x4;
12632 : x5 = XVECEXP (x3, 0, 1);
12633 : operands[2] = x5;
12634 : x6 = XEXP (x2, 1);
12635 : operands[3] = x6;
12636 : x7 = XEXP (x2, 2);
12637 : operands[4] = x7;
12638 : switch (GET_MODE (operands[0]))
12639 : {
12640 : case E_V32BFmode:
12641 : if (pattern1120 (x2,
12642 : E_V32BFmode,
12643 : E_SImode) != 0
12644 : || !(
12645 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12646 : (TARGET_AVX512F) &&
12647 : #line 32802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12648 : (TARGET_AVX10_2)))
12649 : return -1;
12650 : return 10661; /* avx10_2_scalefbf16_v32bf_mask */
12651 :
12652 : case E_V16BFmode:
12653 : if (pattern1120 (x2,
12654 : E_V16BFmode,
12655 : E_HImode) != 0
12656 : || !(
12657 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12658 : (TARGET_AVX512F) &&
12659 : #line 32802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12660 : (TARGET_AVX10_2)))
12661 : return -1;
12662 : return 10663; /* avx10_2_scalefbf16_v16bf_mask */
12663 :
12664 : case E_V8BFmode:
12665 : if (pattern1120 (x2,
12666 : E_V8BFmode,
12667 : E_QImode) != 0
12668 : || !(
12669 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12670 : (TARGET_AVX512F) &&
12671 : #line 32802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12672 : (TARGET_AVX10_2)))
12673 : return -1;
12674 : return 10665; /* avx10_2_scalefbf16_v8bf_mask */
12675 :
12676 : default:
12677 : return -1;
12678 : }
12679 :
12680 : case 260:
12681 : switch (pattern471 (x2))
12682 : {
12683 : case 0:
12684 : if (!(
12685 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12686 : (TARGET_AVX512F) &&
12687 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12688 : (TARGET_AVX10_2)))
12689 : return -1;
12690 : return 10775; /* avx10_2_rndscalebf16_v32bf_mask */
12691 :
12692 : case 1:
12693 : if (!(
12694 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12695 : (TARGET_AVX512F) &&
12696 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12697 : (TARGET_AVX10_2)))
12698 : return -1;
12699 : return 10781; /* avx10_2_rndscalebf16_v16bf_mask */
12700 :
12701 : case 2:
12702 : if (!(
12703 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12704 : (TARGET_AVX512F) &&
12705 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12706 : (TARGET_AVX10_2)))
12707 : return -1;
12708 : return 10787; /* avx10_2_rndscalebf16_v8bf_mask */
12709 :
12710 : default:
12711 : return -1;
12712 : }
12713 :
12714 : case 261:
12715 : switch (pattern471 (x2))
12716 : {
12717 : case 0:
12718 : if (!(
12719 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12720 : (TARGET_AVX512F) &&
12721 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12722 : (TARGET_AVX10_2)))
12723 : return -1;
12724 : return 10777; /* avx10_2_reducebf16_v32bf_mask */
12725 :
12726 : case 1:
12727 : if (!(
12728 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12729 : (TARGET_AVX512F) &&
12730 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12731 : (TARGET_AVX10_2)))
12732 : return -1;
12733 : return 10783; /* avx10_2_reducebf16_v16bf_mask */
12734 :
12735 : case 2:
12736 : if (!(
12737 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12738 : (TARGET_AVX512F) &&
12739 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12740 : (TARGET_AVX10_2)))
12741 : return -1;
12742 : return 10789; /* avx10_2_reducebf16_v8bf_mask */
12743 :
12744 : default:
12745 : return -1;
12746 : }
12747 :
12748 : case 262:
12749 : switch (pattern471 (x2))
12750 : {
12751 : case 0:
12752 : if (!(
12753 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12754 : (TARGET_AVX512F) &&
12755 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12756 : (TARGET_AVX10_2)))
12757 : return -1;
12758 : return 10779; /* avx10_2_getmantbf16_v32bf_mask */
12759 :
12760 : case 1:
12761 : if (!(
12762 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12763 : (TARGET_AVX512F) &&
12764 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12765 : (TARGET_AVX10_2)))
12766 : return -1;
12767 : return 10785; /* avx10_2_getmantbf16_v16bf_mask */
12768 :
12769 : case 2:
12770 : if (!(
12771 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12772 : (TARGET_AVX512F) &&
12773 : #line 33143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12774 : (TARGET_AVX10_2)))
12775 : return -1;
12776 : return 10791; /* avx10_2_getmantbf16_v8bf_mask */
12777 :
12778 : default:
12779 : return -1;
12780 : }
12781 :
12782 : default:
12783 : return -1;
12784 : }
12785 : }
12786 :
12787 : int
12788 : recog_185 (rtx x1 ATTRIBUTE_UNUSED,
12789 : rtx_insn *insn ATTRIBUTE_UNUSED,
12790 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12791 : {
12792 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12793 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12794 : rtx x10, x11, x12, x13, x14, x15;
12795 : int res ATTRIBUTE_UNUSED;
12796 : x2 = XEXP (x1, 1);
12797 : x3 = XEXP (x2, 0);
12798 : x4 = XEXP (x3, 0);
12799 : switch (GET_CODE (x4))
12800 : {
12801 : case REG:
12802 : case SUBREG:
12803 : x5 = XEXP (x3, 1);
12804 : switch (GET_CODE (x5))
12805 : {
12806 : case CONST_INT:
12807 : case CONST_DOUBLE:
12808 : case CONST_VECTOR:
12809 : case REG:
12810 : case SUBREG:
12811 : case MEM:
12812 : operands[3] = x5;
12813 : x6 = XEXP (x2, 2);
12814 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12815 : return -1;
12816 : operands[2] = x4;
12817 : x7 = XEXP (x3, 2);
12818 : operands[4] = x7;
12819 : if (!register_operand (operands[4], E_QImode))
12820 : return -1;
12821 : x8 = XEXP (x2, 1);
12822 : operands[1] = x8;
12823 : switch (GET_MODE (operands[0]))
12824 : {
12825 : case E_V8HFmode:
12826 : if (pattern1286 (x2,
12827 : E_V8HFmode) != 0
12828 : || !(
12829 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12830 : (TARGET_AVX512F) &&
12831 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12832 : (TARGET_AVX512FP16)))
12833 : return -1;
12834 : return 2560; /* avx512f_movhf_mask */
12835 :
12836 : case E_V4SFmode:
12837 : if (pattern1286 (x2,
12838 : E_V4SFmode) != 0
12839 : || !
12840 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12841 : (TARGET_AVX512F))
12842 : return -1;
12843 : return 2561; /* avx512f_movsf_mask */
12844 :
12845 : case E_V2DFmode:
12846 : if (pattern1286 (x2,
12847 : E_V2DFmode) != 0
12848 : || !(
12849 : #line 1717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12850 : (TARGET_AVX512F) &&
12851 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12852 : (TARGET_SSE2)))
12853 : return -1;
12854 : return 2562; /* avx512f_movdf_mask */
12855 :
12856 : default:
12857 : return -1;
12858 : }
12859 :
12860 : case VEC_DUPLICATE:
12861 : operands[1] = x4;
12862 : x9 = XEXP (x5, 0);
12863 : operands[2] = x9;
12864 : x7 = XEXP (x3, 2);
12865 : operands[3] = x7;
12866 : if (!const_int_operand (operands[3], E_SImode))
12867 : return -1;
12868 : x8 = XEXP (x2, 1);
12869 : operands[4] = x8;
12870 : x6 = XEXP (x2, 2);
12871 : operands[5] = x6;
12872 : switch (GET_MODE (operands[0]))
12873 : {
12874 : case E_V8DFmode:
12875 : if (pattern1287 (x2,
12876 : E_V8DFmode,
12877 : E_V2DFmode,
12878 : E_QImode) != 0
12879 : || !(
12880 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12881 : (TARGET_AVX512F) && (
12882 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12883 : (TARGET_AVX512F) &&
12884 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12885 : (TARGET_AVX512DQ))))
12886 : return -1;
12887 : return 8435; /* avx512dq_vinsertf64x2_1_mask */
12888 :
12889 : case E_V8DImode:
12890 : if (pattern1287 (x2,
12891 : E_V8DImode,
12892 : E_V2DImode,
12893 : E_QImode) != 0
12894 : || !(
12895 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12896 : (TARGET_AVX512F) && (
12897 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12898 : (TARGET_AVX512F) &&
12899 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12900 : (TARGET_AVX512DQ))))
12901 : return -1;
12902 : return 8437; /* avx512dq_vinserti64x2_1_mask */
12903 :
12904 : case E_V16SFmode:
12905 : if (pattern1287 (x2,
12906 : E_V16SFmode,
12907 : E_V4SFmode,
12908 : E_HImode) != 0
12909 : || !
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F))
12912 : return -1;
12913 : return 8439; /* avx512f_vinsertf32x4_1_mask */
12914 :
12915 : case E_V16SImode:
12916 : if (pattern1287 (x2,
12917 : E_V16SImode,
12918 : E_V4SImode,
12919 : E_HImode) != 0
12920 : || !
12921 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12922 : (TARGET_AVX512F))
12923 : return -1;
12924 : return 8441; /* avx512f_vinserti32x4_1_mask */
12925 :
12926 : default:
12927 : return -1;
12928 : }
12929 :
12930 : default:
12931 : return -1;
12932 : }
12933 :
12934 : case VEC_DUPLICATE:
12935 : x10 = XEXP (x4, 0);
12936 : switch (GET_CODE (x10))
12937 : {
12938 : case SUBREG:
12939 : case MEM:
12940 : operands[1] = x10;
12941 : x6 = XEXP (x2, 2);
12942 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12943 : return -1;
12944 : x5 = XEXP (x3, 1);
12945 : operands[2] = x5;
12946 : x7 = XEXP (x3, 2);
12947 : operands[3] = x7;
12948 : if (!register_operand (operands[3], E_QImode))
12949 : return -1;
12950 : x8 = XEXP (x2, 1);
12951 : operands[4] = x8;
12952 : switch (GET_MODE (operands[0]))
12953 : {
12954 : case E_V8HFmode:
12955 : if (pattern1288 (x2,
12956 : E_V8HFmode,
12957 : E_HFmode) != 0
12958 : || !(
12959 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12960 : (TARGET_AVX512F) &&
12961 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
12962 : (TARGET_AVX512FP16)))
12963 : return -1;
12964 : return 2563; /* *avx512f_loadhf_mask */
12965 :
12966 : case E_V4SFmode:
12967 : if (pattern1288 (x2,
12968 : E_V4SFmode,
12969 : E_SFmode) != 0
12970 : || !
12971 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12972 : (TARGET_AVX512F))
12973 : return -1;
12974 : return 2564; /* *avx512f_loadsf_mask */
12975 :
12976 : case E_V2DFmode:
12977 : if (pattern1288 (x2,
12978 : E_V2DFmode,
12979 : E_DFmode) != 0
12980 : || !
12981 : #line 1746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12982 : (TARGET_AVX512F))
12983 : return -1;
12984 : return 2565; /* *avx512f_loaddf_mask */
12985 :
12986 : default:
12987 : return -1;
12988 : }
12989 :
12990 : case SQRT:
12991 : x6 = XEXP (x2, 2);
12992 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12993 : return -1;
12994 : x11 = XEXP (x10, 0);
12995 : operands[1] = x11;
12996 : x5 = XEXP (x3, 1);
12997 : operands[3] = x5;
12998 : x7 = XEXP (x3, 2);
12999 : operands[4] = x7;
13000 : if (!register_operand (operands[4], E_QImode))
13001 : return -1;
13002 : x8 = XEXP (x2, 1);
13003 : operands[2] = x8;
13004 : switch (GET_MODE (operands[0]))
13005 : {
13006 : case E_V8HFmode:
13007 : if (pattern1289 (x2,
13008 : E_V8HFmode,
13009 : E_HFmode) != 0
13010 : || !(
13011 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13012 : (TARGET_AVX512F) && (
13013 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13014 : (TARGET_SSE) &&
13015 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13016 : (TARGET_AVX512FP16))))
13017 : return -1;
13018 : return 3005; /* *avx512fp16_vmsqrtv8hf2_mask */
13019 :
13020 : case E_V4SFmode:
13021 : if (pattern1289 (x2,
13022 : E_V4SFmode,
13023 : E_SFmode) != 0
13024 : || !(
13025 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13026 : (TARGET_AVX512F) &&
13027 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13028 : (TARGET_SSE)))
13029 : return -1;
13030 : return 3009; /* *sse_vmsqrtv4sf2_mask */
13031 :
13032 : case E_V2DFmode:
13033 : if (pattern1289 (x2,
13034 : E_V2DFmode,
13035 : E_DFmode) != 0
13036 : || !(
13037 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13038 : (TARGET_AVX512F) && (
13039 : #line 3125 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13040 : (TARGET_SSE) &&
13041 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13042 : (TARGET_SSE2))))
13043 : return -1;
13044 : return 3013; /* *sse2_vmsqrtv2df2_mask */
13045 :
13046 : default:
13047 : return -1;
13048 : }
13049 :
13050 : case UNSPEC:
13051 : if (XVECLEN (x10, 0) != 1
13052 : || XINT (x10, 1) != 56
13053 : || GET_MODE (x10) != E_HFmode)
13054 : return -1;
13055 : x6 = XEXP (x2, 2);
13056 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13057 : || pattern1007 (x2,
13058 : E_V8HFmode) != 0)
13059 : return -1;
13060 : x12 = XVECEXP (x10, 0, 0);
13061 : operands[1] = x12;
13062 : if (!nonimmediate_operand (operands[1], E_HFmode))
13063 : return -1;
13064 : x5 = XEXP (x3, 1);
13065 : operands[3] = x5;
13066 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13067 : return -1;
13068 : x7 = XEXP (x3, 2);
13069 : operands[4] = x7;
13070 : if (!register_operand (operands[4], E_QImode))
13071 : return -1;
13072 : x8 = XEXP (x2, 1);
13073 : operands[2] = x8;
13074 : if (!register_operand (operands[2], E_V8HFmode)
13075 : || !(
13076 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13077 : (TARGET_AVX512F) &&
13078 : #line 3274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13079 : (TARGET_AVX512FP16)))
13080 : return -1;
13081 : return 3044; /* *avx512fp16_vmrsqrtv8hf2 */
13082 :
13083 : case FLOAT_EXTEND:
13084 : x6 = XEXP (x2, 2);
13085 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13086 : return -1;
13087 : x5 = XEXP (x3, 1);
13088 : operands[3] = x5;
13089 : x7 = XEXP (x3, 2);
13090 : operands[4] = x7;
13091 : if (!register_operand (operands[4], E_QImode))
13092 : return -1;
13093 : x8 = XEXP (x2, 1);
13094 : operands[2] = x8;
13095 : x11 = XEXP (x10, 0);
13096 : switch (GET_CODE (x11))
13097 : {
13098 : case VEC_SELECT:
13099 : if (GET_MODE (x11) != E_HFmode)
13100 : return -1;
13101 : x13 = XEXP (x11, 1);
13102 : if (GET_CODE (x13) != PARALLEL
13103 : || XVECLEN (x13, 0) != 1)
13104 : return -1;
13105 : x14 = XVECEXP (x13, 0, 0);
13106 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
13107 : return -1;
13108 : x15 = XEXP (x11, 0);
13109 : operands[1] = x15;
13110 : if (!register_operand (operands[1], E_V8HFmode))
13111 : return -1;
13112 : switch (GET_MODE (operands[0]))
13113 : {
13114 : case E_V2DFmode:
13115 : if (pattern1470 (x2,
13116 : E_V2DFmode,
13117 : E_DFmode) != 0
13118 : || !(
13119 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13120 : (TARGET_AVX512F) &&
13121 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX512FP16)))
13123 : return -1;
13124 : return 4802; /* avx512fp16_vcvtsh2sd_mask */
13125 :
13126 : case E_V4SFmode:
13127 : if (pattern1470 (x2,
13128 : E_V4SFmode,
13129 : E_SFmode) != 0
13130 : || !(
13131 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13132 : (TARGET_AVX512F) &&
13133 : #line 8632 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13134 : (TARGET_AVX512FP16)))
13135 : return -1;
13136 : return 4806; /* avx512fp16_vcvtsh2ss_mask */
13137 :
13138 : default:
13139 : return -1;
13140 : }
13141 :
13142 : case SUBREG:
13143 : case MEM:
13144 : operands[1] = x11;
13145 : if (!memory_operand (operands[1], E_HFmode))
13146 : return -1;
13147 : switch (GET_MODE (operands[0]))
13148 : {
13149 : case E_V2DFmode:
13150 : if (pattern1470 (x2,
13151 : E_V2DFmode,
13152 : E_DFmode) != 0
13153 : || !(
13154 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13155 : (TARGET_AVX512F) &&
13156 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13157 : (TARGET_AVX512FP16)))
13158 : return -1;
13159 : return 4810; /* avx512fp16_vcvtsh2sd_mask_mem */
13160 :
13161 : case E_V4SFmode:
13162 : if (pattern1470 (x2,
13163 : E_V4SFmode,
13164 : E_SFmode) != 0
13165 : || !(
13166 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13167 : (TARGET_AVX512F) &&
13168 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13169 : (TARGET_AVX512FP16)))
13170 : return -1;
13171 : return 4812; /* avx512fp16_vcvtsh2ss_mask_mem */
13172 :
13173 : default:
13174 : return -1;
13175 : }
13176 :
13177 : default:
13178 : return -1;
13179 : }
13180 :
13181 : case FLOAT_TRUNCATE:
13182 : x11 = XEXP (x10, 0);
13183 : switch (GET_CODE (x11))
13184 : {
13185 : case VEC_SELECT:
13186 : x13 = XEXP (x11, 1);
13187 : if (GET_CODE (x13) != PARALLEL
13188 : || XVECLEN (x13, 0) != 1)
13189 : return -1;
13190 : x14 = XVECEXP (x13, 0, 0);
13191 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
13192 : return -1;
13193 : x6 = XEXP (x2, 2);
13194 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13195 : || pattern893 (x2,
13196 : E_HFmode,
13197 : E_V8HFmode) != 0)
13198 : return -1;
13199 : x15 = XEXP (x11, 0);
13200 : operands[1] = x15;
13201 : x5 = XEXP (x3, 1);
13202 : operands[3] = x5;
13203 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13204 : return -1;
13205 : x7 = XEXP (x3, 2);
13206 : operands[4] = x7;
13207 : if (!register_operand (operands[4], E_QImode))
13208 : return -1;
13209 : x8 = XEXP (x2, 1);
13210 : operands[2] = x8;
13211 : if (!register_operand (operands[2], E_V8HFmode))
13212 : return -1;
13213 : switch (GET_MODE (x11))
13214 : {
13215 : case E_DFmode:
13216 : if (!register_operand (operands[1], E_V2DFmode)
13217 : || !(
13218 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13219 : (TARGET_AVX512F) &&
13220 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13221 : (TARGET_AVX512FP16)))
13222 : return -1;
13223 : return 4815; /* avx512fp16_vcvtsd2sh_mask */
13224 :
13225 : case E_SFmode:
13226 : if (!register_operand (operands[1], E_V4SFmode)
13227 : || !(
13228 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13229 : (TARGET_AVX512F) &&
13230 : #line 8662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13231 : (TARGET_AVX512FP16)))
13232 : return -1;
13233 : return 4819; /* avx512fp16_vcvtss2sh_mask */
13234 :
13235 : default:
13236 : return -1;
13237 : }
13238 :
13239 : case REG:
13240 : case SUBREG:
13241 : case MEM:
13242 : x7 = XEXP (x3, 2);
13243 : switch (GET_CODE (x7))
13244 : {
13245 : case REG:
13246 : case SUBREG:
13247 : operands[4] = x7;
13248 : if (!register_operand (operands[4], E_QImode))
13249 : return -1;
13250 : x6 = XEXP (x2, 2);
13251 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13252 : || pattern893 (x2,
13253 : E_HFmode,
13254 : E_V8HFmode) != 0)
13255 : return -1;
13256 : operands[1] = x11;
13257 : x5 = XEXP (x3, 1);
13258 : operands[3] = x5;
13259 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
13260 : return -1;
13261 : x8 = XEXP (x2, 1);
13262 : operands[2] = x8;
13263 : if (!register_operand (operands[2], E_V8HFmode))
13264 : return -1;
13265 : switch (GET_MODE (operands[1]))
13266 : {
13267 : case E_SFmode:
13268 : if (!memory_operand (operands[1], E_SFmode)
13269 : || !(
13270 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13271 : (TARGET_AVX512F) &&
13272 : #line 8676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13273 : (TARGET_AVX512FP16)))
13274 : return -1;
13275 : return 4822; /* avx512fp16_vcvtss2sh_mask_mem */
13276 :
13277 : case E_DFmode:
13278 : if (!memory_operand (operands[1], E_DFmode)
13279 : || !(
13280 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13281 : (TARGET_AVX512F) &&
13282 : #line 8676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13283 : (TARGET_AVX512FP16)))
13284 : return -1;
13285 : return 4824; /* avx512fp16_vcvtsd2sh_mask_mem */
13286 :
13287 : default:
13288 : return -1;
13289 : }
13290 :
13291 : case CONST_INT:
13292 : if (XWINT (x7, 0) != 1L
13293 : || pattern893 (x2,
13294 : E_V2SFmode,
13295 : E_V4SFmode) != 0
13296 : || pattern1381 (x2,
13297 : E_V4SFmode,
13298 : E_V2DFmode) != 0
13299 : || !(
13300 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13301 : (TARGET_AVX512F) &&
13302 : #line 10333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13303 : (TARGET_SSE2)))
13304 : return -1;
13305 : return 5183; /* sse2_cvtsd2ss_mask */
13306 :
13307 : default:
13308 : return -1;
13309 : }
13310 :
13311 : default:
13312 : return -1;
13313 : }
13314 :
13315 : default:
13316 : return -1;
13317 : }
13318 :
13319 : case PLUS:
13320 : switch (pattern309 (x2))
13321 : {
13322 : case 0:
13323 : if (!(
13324 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13325 : (TARGET_AVX512F) && (
13326 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13327 : (TARGET_SSE) &&
13328 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13329 : (TARGET_AVX512FP16))))
13330 : return -1;
13331 : return 2826; /* avx512fp16_vmaddv8hf3_mask */
13332 :
13333 : case 1:
13334 : if (!(
13335 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13336 : (TARGET_AVX512F) &&
13337 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13338 : (TARGET_SSE)))
13339 : return -1;
13340 : return 2834; /* sse_vmaddv4sf3_mask */
13341 :
13342 : case 2:
13343 : if (!(
13344 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13345 : (TARGET_AVX512F) && (
13346 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13347 : (TARGET_SSE) &&
13348 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13349 : (TARGET_SSE2))))
13350 : return -1;
13351 : return 2842; /* sse2_vmaddv2df3_mask */
13352 :
13353 : default:
13354 : return -1;
13355 : }
13356 :
13357 : case MINUS:
13358 : switch (pattern309 (x2))
13359 : {
13360 : case 0:
13361 : if (!(
13362 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13363 : (TARGET_AVX512F) && (
13364 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13365 : (TARGET_SSE) &&
13366 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13367 : (TARGET_AVX512FP16))))
13368 : return -1;
13369 : return 2830; /* avx512fp16_vmsubv8hf3_mask */
13370 :
13371 : case 1:
13372 : if (!(
13373 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13374 : (TARGET_AVX512F) &&
13375 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13376 : (TARGET_SSE)))
13377 : return -1;
13378 : return 2838; /* sse_vmsubv4sf3_mask */
13379 :
13380 : case 2:
13381 : if (!(
13382 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13383 : (TARGET_AVX512F) && (
13384 : #line 2733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13385 : (TARGET_SSE) &&
13386 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13387 : (TARGET_SSE2))))
13388 : return -1;
13389 : return 2846; /* sse2_vmsubv2df3_mask */
13390 :
13391 : default:
13392 : return -1;
13393 : }
13394 :
13395 : case MULT:
13396 : switch (pattern309 (x2))
13397 : {
13398 : case 0:
13399 : if (!(
13400 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13401 : (TARGET_AVX512F) && (
13402 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13403 : (TARGET_SSE) &&
13404 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13405 : (TARGET_AVX512FP16))))
13406 : return -1;
13407 : return 2892; /* avx512fp16_vmmulv8hf3_mask */
13408 :
13409 : case 1:
13410 : if (!(
13411 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13412 : (TARGET_AVX512F) &&
13413 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13414 : (TARGET_SSE)))
13415 : return -1;
13416 : return 2900; /* sse_vmmulv4sf3_mask */
13417 :
13418 : case 2:
13419 : if (!(
13420 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13421 : (TARGET_AVX512F) && (
13422 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13423 : (TARGET_SSE) &&
13424 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13425 : (TARGET_SSE2))))
13426 : return -1;
13427 : return 2908; /* sse2_vmmulv2df3_mask */
13428 :
13429 : default:
13430 : return -1;
13431 : }
13432 :
13433 : case DIV:
13434 : switch (pattern309 (x2))
13435 : {
13436 : case 0:
13437 : if (!(
13438 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13439 : (TARGET_AVX512F) && (
13440 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13441 : (TARGET_SSE) &&
13442 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13443 : (TARGET_AVX512FP16))))
13444 : return -1;
13445 : return 2896; /* avx512fp16_vmdivv8hf3_mask */
13446 :
13447 : case 1:
13448 : if (!(
13449 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13450 : (TARGET_AVX512F) &&
13451 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13452 : (TARGET_SSE)))
13453 : return -1;
13454 : return 2904; /* sse_vmdivv4sf3_mask */
13455 :
13456 : case 2:
13457 : if (!(
13458 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13459 : (TARGET_AVX512F) && (
13460 : #line 2824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13461 : (TARGET_SSE) &&
13462 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13463 : (TARGET_SSE2))))
13464 : return -1;
13465 : return 2912; /* sse2_vmdivv2df3_mask */
13466 :
13467 : default:
13468 : return -1;
13469 : }
13470 :
13471 : case UNSPEC:
13472 : return recog_151 (x1, insn, pnum_clobbers);
13473 :
13474 : case SQRT:
13475 : x6 = XEXP (x2, 2);
13476 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13477 : return -1;
13478 : x10 = XEXP (x4, 0);
13479 : operands[1] = x10;
13480 : x5 = XEXP (x3, 1);
13481 : operands[3] = x5;
13482 : x7 = XEXP (x3, 2);
13483 : operands[4] = x7;
13484 : if (!register_operand (operands[4], E_QImode))
13485 : return -1;
13486 : x8 = XEXP (x2, 1);
13487 : operands[2] = x8;
13488 : switch (GET_MODE (operands[0]))
13489 : {
13490 : case E_V8HFmode:
13491 : if (pattern1223 (x2,
13492 : E_V8HFmode) != 0
13493 : || !(
13494 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13495 : (TARGET_AVX512F) && (
13496 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13497 : (TARGET_SSE) &&
13498 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13499 : (TARGET_AVX512FP16))))
13500 : return -1;
13501 : return 2993; /* avx512fp16_vmsqrtv8hf2_mask */
13502 :
13503 : case E_V4SFmode:
13504 : if (pattern1223 (x2,
13505 : E_V4SFmode) != 0
13506 : || !(
13507 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13508 : (TARGET_AVX512F) &&
13509 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13510 : (TARGET_SSE)))
13511 : return -1;
13512 : return 2997; /* sse_vmsqrtv4sf2_mask */
13513 :
13514 : case E_V2DFmode:
13515 : if (pattern1223 (x2,
13516 : E_V2DFmode) != 0
13517 : || !(
13518 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13519 : (TARGET_AVX512F) && (
13520 : #line 3106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13521 : (TARGET_SSE) &&
13522 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13523 : (TARGET_SSE2))))
13524 : return -1;
13525 : return 3001; /* sse2_vmsqrtv2df2_mask */
13526 :
13527 : default:
13528 : return -1;
13529 : }
13530 :
13531 : case SMAX:
13532 : switch (pattern309 (x2))
13533 : {
13534 : case 0:
13535 : if (!(
13536 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13537 : (TARGET_AVX512F) && (
13538 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13539 : (TARGET_SSE) &&
13540 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13541 : (TARGET_AVX512FP16))))
13542 : return -1;
13543 : return 3169; /* *avx512fp16_vmsmaxv8hf3_mask */
13544 :
13545 : case 1:
13546 : if (!(
13547 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13548 : (TARGET_AVX512F) &&
13549 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13550 : (TARGET_SSE)))
13551 : return -1;
13552 : return 3177; /* *sse_vmsmaxv4sf3_mask */
13553 :
13554 : case 2:
13555 : if (!(
13556 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13557 : (TARGET_AVX512F) && (
13558 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13559 : (TARGET_SSE) &&
13560 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13561 : (TARGET_SSE2))))
13562 : return -1;
13563 : return 3185; /* *sse2_vmsmaxv2df3_mask */
13564 :
13565 : default:
13566 : return -1;
13567 : }
13568 :
13569 : case SMIN:
13570 : switch (pattern309 (x2))
13571 : {
13572 : case 0:
13573 : if (!(
13574 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13575 : (TARGET_AVX512F) && (
13576 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13577 : (TARGET_SSE) &&
13578 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13579 : (TARGET_AVX512FP16))))
13580 : return -1;
13581 : return 3173; /* *avx512fp16_vmsminv8hf3_mask */
13582 :
13583 : case 1:
13584 : if (!(
13585 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13586 : (TARGET_AVX512F) &&
13587 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13588 : (TARGET_SSE)))
13589 : return -1;
13590 : return 3181; /* *sse_vmsminv4sf3_mask */
13591 :
13592 : case 2:
13593 : if (!(
13594 : #line 355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13595 : (TARGET_AVX512F) && (
13596 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13597 : (TARGET_SSE) &&
13598 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13599 : (TARGET_SSE2))))
13600 : return -1;
13601 : return 3189; /* *sse2_vmsminv2df3_mask */
13602 :
13603 : default:
13604 : return -1;
13605 : }
13606 :
13607 : case FMA:
13608 : return recog_150 (x1, insn, pnum_clobbers);
13609 :
13610 : case FLOAT_EXTEND:
13611 : if (pattern310 (x4,
13612 : 1,
13613 : E_V2SFmode,
13614 : E_V2DFmode) != 0)
13615 : return -1;
13616 : x7 = XEXP (x3, 2);
13617 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
13618 : || !register_operand (operands[0], E_V2DFmode)
13619 : || GET_MODE (x2) != E_V2DFmode
13620 : || GET_MODE (x3) != E_V2DFmode
13621 : || pattern1381 (x2,
13622 : E_V2DFmode,
13623 : E_V4SFmode) != 0
13624 : || !(
13625 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13626 : (TARGET_AVX512F) &&
13627 : #line 10377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13628 : (TARGET_SSE2)))
13629 : return -1;
13630 : return 5188; /* sse2_cvtss2sd_mask */
13631 :
13632 : default:
13633 : return -1;
13634 : }
13635 : }
13636 :
13637 : int
13638 : recog_201 (rtx x1 ATTRIBUTE_UNUSED,
13639 : rtx_insn *insn ATTRIBUTE_UNUSED,
13640 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13641 : {
13642 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13643 : rtx x2;
13644 : int res ATTRIBUTE_UNUSED;
13645 : x2 = XEXP (x1, 1);
13646 : switch (pattern139 (x2))
13647 : {
13648 : case 0:
13649 : if (!(
13650 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13651 : (TARGET_AVX512F) && (
13652 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13653 : (TARGET_SSE
13654 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13655 : && (64 == 64 || TARGET_AVX512VL)
13656 : && 1) &&
13657 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13658 : (TARGET_AVX512FP16))))
13659 : return -1;
13660 : return 3051; /* *sminv32hf3_mask */
13661 :
13662 : case 1:
13663 : if (!(
13664 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13665 : (TARGET_AVX512F) && (
13666 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13667 : (TARGET_SSE
13668 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13669 : && (32 == 64 || TARGET_AVX512VL)
13670 : && 1) &&
13671 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13672 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13673 : return -1;
13674 : return 3056; /* *sminv16hf3_mask */
13675 :
13676 : case 2:
13677 : if (!(
13678 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13679 : (TARGET_AVX512F) && (
13680 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13681 : (TARGET_SSE
13682 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13683 : && (16 == 64 || TARGET_AVX512VL)
13684 : && 1) &&
13685 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13686 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
13687 : return -1;
13688 : return 3060; /* *sminv8hf3_mask */
13689 :
13690 : case 3:
13691 : if (!(
13692 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13693 : (TARGET_AVX512F) && (
13694 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13695 : (TARGET_SSE
13696 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13697 : && (64 == 64 || TARGET_AVX512VL)
13698 : && 1) &&
13699 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13700 : (TARGET_AVX512F))))
13701 : return -1;
13702 : return 3067; /* *sminv16sf3_mask */
13703 :
13704 : case 4:
13705 : if (!(
13706 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13707 : (TARGET_AVX512F) && (
13708 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13709 : (TARGET_SSE
13710 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13711 : && (32 == 64 || TARGET_AVX512VL)
13712 : && 1) &&
13713 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13714 : (TARGET_AVX))))
13715 : return -1;
13716 : return 3072; /* *sminv8sf3_mask */
13717 :
13718 : case 5:
13719 : if (!(
13720 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13721 : (TARGET_AVX512F) &&
13722 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13723 : (TARGET_SSE
13724 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13725 : && (16 == 64 || TARGET_AVX512VL)
13726 : && 1)))
13727 : return -1;
13728 : return 3076; /* *sminv4sf3_mask */
13729 :
13730 : case 6:
13731 : if (!(
13732 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13733 : (TARGET_AVX512F) && (
13734 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13735 : (TARGET_SSE
13736 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13737 : && (64 == 64 || TARGET_AVX512VL)
13738 : && 1) &&
13739 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13740 : (TARGET_AVX512F))))
13741 : return -1;
13742 : return 3083; /* *sminv8df3_mask */
13743 :
13744 : case 7:
13745 : if (!(
13746 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13747 : (TARGET_AVX512F) && (
13748 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13749 : (TARGET_SSE
13750 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13751 : && (32 == 64 || TARGET_AVX512VL)
13752 : && 1) &&
13753 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13754 : (TARGET_AVX))))
13755 : return -1;
13756 : return 3088; /* *sminv4df3_mask */
13757 :
13758 : case 8:
13759 : if (!(
13760 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13761 : (TARGET_AVX512F) && (
13762 : #line 3329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13763 : (TARGET_SSE
13764 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13765 : && (16 == 64 || TARGET_AVX512VL)
13766 : && 1) &&
13767 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13768 : (TARGET_SSE2))))
13769 : return -1;
13770 : return 3092; /* *sminv2df3_mask */
13771 :
13772 : case 9:
13773 : if (!(
13774 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13775 : (TARGET_AVX512F) &&
13776 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13777 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13778 : return -1;
13779 : return 7810; /* *avx512f_sminv16si3_mask */
13780 :
13781 : case 10:
13782 : if (!(
13783 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13784 : (TARGET_AVX512F) && (
13785 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13786 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13787 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13788 : (TARGET_AVX512VL))))
13789 : return -1;
13790 : return 7818; /* *avx512f_sminv8si3_mask */
13791 :
13792 : case 11:
13793 : if (nonimmediate_operand (operands[1], E_V4SImode)
13794 : && nonimmediate_operand (operands[2], E_V4SImode)
13795 : && (
13796 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13797 : (TARGET_AVX512F) && (
13798 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13799 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13800 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13801 : (TARGET_AVX512VL))))
13802 : return 7826; /* *avx512f_sminv4si3_mask */
13803 : if (!vector_operand (operands[1], E_V4SImode)
13804 : || !vector_operand (operands[2], E_V4SImode)
13805 : || !(
13806 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13807 : (TARGET_AVX512F) &&
13808 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13809 : (TARGET_SSE4_1
13810 : && (16 == 64 || TARGET_AVX512VL)
13811 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13812 : return -1;
13813 : return 7910; /* *sse4_1_sminv4si3_mask */
13814 :
13815 : case 12:
13816 : if (!(
13817 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13818 : (TARGET_AVX512F) &&
13819 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13820 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13821 : return -1;
13822 : return 7834; /* *avx512f_sminv8di3_mask */
13823 :
13824 : case 13:
13825 : if (!(
13826 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13827 : (TARGET_AVX512F) && (
13828 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13829 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13830 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13831 : (TARGET_AVX512VL))))
13832 : return -1;
13833 : return 7842; /* *avx512f_sminv4di3_mask */
13834 :
13835 : case 14:
13836 : if (!(
13837 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13838 : (TARGET_AVX512F) && (
13839 : #line 18033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13840 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13841 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13842 : (TARGET_AVX512VL))))
13843 : return -1;
13844 : return 7850; /* *avx512f_sminv2di3_mask */
13845 :
13846 : case 15:
13847 : if (!(
13848 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13849 : (TARGET_AVX512F) &&
13850 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13851 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13852 : return -1;
13853 : return 7858; /* *avx512bw_sminv64qi3_mask */
13854 :
13855 : case 16:
13856 : if (nonimmediate_operand (operands[1], E_V16QImode)
13857 : && nonimmediate_operand (operands[2], E_V16QImode)
13858 : && (
13859 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13860 : (TARGET_AVX512F) && (
13861 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13862 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13863 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13864 : (TARGET_AVX512VL))))
13865 : return 7866; /* *avx512bw_sminv16qi3_mask */
13866 : if (!vector_operand (operands[1], E_V16QImode)
13867 : || !vector_operand (operands[2], E_V16QImode)
13868 : || !(
13869 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13870 : (TARGET_AVX512F) &&
13871 : #line 18136 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13872 : (TARGET_SSE4_1
13873 : && (16 == 64 || TARGET_AVX512VL)
13874 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13875 : return -1;
13876 : return 7906; /* *sse4_1_sminv16qi3_mask */
13877 :
13878 : case 17:
13879 : if (!(
13880 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13881 : (TARGET_AVX512F) && (
13882 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13883 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13884 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13885 : (TARGET_AVX512VL))))
13886 : return -1;
13887 : return 7874; /* *avx512bw_sminv32qi3_mask */
13888 :
13889 : case 18:
13890 : if (!(
13891 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13892 : (TARGET_AVX512F) &&
13893 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13894 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
13895 : return -1;
13896 : return 7882; /* *avx512bw_sminv32hi3_mask */
13897 :
13898 : case 19:
13899 : if (!(
13900 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13901 : (TARGET_AVX512F) && (
13902 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13903 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13904 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13905 : (TARGET_AVX512VL))))
13906 : return -1;
13907 : return 7890; /* *avx512bw_sminv16hi3_mask */
13908 :
13909 : case 20:
13910 : if (!(
13911 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13912 : (TARGET_AVX512F) && (
13913 : #line 18044 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13914 : (TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
13915 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13916 : (TARGET_AVX512VL))))
13917 : return -1;
13918 : return 7898; /* *avx512bw_sminv8hi3_mask */
13919 :
13920 : case 21:
13921 : if (!(
13922 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13923 : (TARGET_AVX512F) &&
13924 : #line 32818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13925 : (TARGET_AVX10_2)))
13926 : return -1;
13927 : return 10669; /* avx10_2_sminbf16_v32bf_mask */
13928 :
13929 : case 22:
13930 : if (!(
13931 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13932 : (TARGET_AVX512F) &&
13933 : #line 32818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13934 : (TARGET_AVX10_2)))
13935 : return -1;
13936 : return 10673; /* avx10_2_sminbf16_v16bf_mask */
13937 :
13938 : case 23:
13939 : if (!(
13940 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13941 : (TARGET_AVX512F) &&
13942 : #line 32818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13943 : (TARGET_AVX10_2)))
13944 : return -1;
13945 : return 10677; /* avx10_2_sminbf16_v8bf_mask */
13946 :
13947 : case 24:
13948 : if (!(
13949 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13950 : (TARGET_SSE) &&
13951 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13952 : (TARGET_AVX512FP16)))
13953 : return -1;
13954 : return 3172; /* *avx512fp16_vmsminv8hf3 */
13955 :
13956 : case 25:
13957 : if (!
13958 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13959 : (TARGET_SSE))
13960 : return -1;
13961 : return 3180; /* *sse_vmsminv4sf3 */
13962 :
13963 : case 26:
13964 : if (!(
13965 : #line 3536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13966 : (TARGET_SSE) &&
13967 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13968 : (TARGET_SSE2)))
13969 : return -1;
13970 : return 3188; /* *sse2_vmsminv2df3 */
13971 :
13972 : default:
13973 : return -1;
13974 : }
13975 : }
13976 :
13977 : int
13978 : recog_214 (rtx x1 ATTRIBUTE_UNUSED,
13979 : rtx_insn *insn ATTRIBUTE_UNUSED,
13980 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13981 : {
13982 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13983 : rtx x2;
13984 : int res ATTRIBUTE_UNUSED;
13985 : x2 = XEXP (x1, 1);
13986 : switch (pattern326 (x2))
13987 : {
13988 : case 0:
13989 : if (!register_operand (operands[0], E_V32HImode)
13990 : || GET_MODE (x2) != E_V32HImode
13991 : || !vector_operand (operands[1], E_V32HFmode)
13992 : || !
13993 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13994 : (TARGET_AVX512FP16))
13995 : return -1;
13996 : return 4446; /* avx512fp16_vcvtph2uw_v32hi */
13997 :
13998 : case 1:
13999 : if (!register_operand (operands[0], E_V16SImode)
14000 : || GET_MODE (x2) != E_V16SImode)
14001 : return -1;
14002 : switch (GET_MODE (operands[1]))
14003 : {
14004 : case E_V16HFmode:
14005 : if (!vector_operand (operands[1], E_V16HFmode)
14006 : || !
14007 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14008 : (TARGET_AVX512FP16))
14009 : return -1;
14010 : return 4454; /* avx512fp16_vcvtph2udq_v16si */
14011 :
14012 : case E_V16SFmode:
14013 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
14014 : || !
14015 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14016 : (TARGET_AVX512F))
14017 : return -1;
14018 : return 4882; /* *avx512f_fixuns_notruncv16sfv16si */
14019 :
14020 : default:
14021 : return -1;
14022 : }
14023 :
14024 : case 2:
14025 : switch (pattern779 (x2,
14026 : E_V8DImode))
14027 : {
14028 : case 0:
14029 : if (!
14030 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14031 : (TARGET_AVX512FP16))
14032 : return -1;
14033 : return 4462; /* avx512fp16_vcvtph2uqq_v8di */
14034 :
14035 : case 1:
14036 : if (!
14037 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14038 : (TARGET_AVX512DQ && 1))
14039 : return -1;
14040 : return 4902; /* *avx512dq_cvtps2uqqv8di */
14041 :
14042 : case 2:
14043 : if (!
14044 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14045 : (TARGET_AVX512DQ && 1))
14046 : return -1;
14047 : return 5128; /* fixuns_notruncv8dfv8di2 */
14048 :
14049 : default:
14050 : return -1;
14051 : }
14052 :
14053 : case 3:
14054 : if (!register_operand (operands[0], E_V16HImode)
14055 : || GET_MODE (x2) != E_V16HImode
14056 : || !vector_operand (operands[1], E_V16HFmode)
14057 : || !(
14058 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14059 : (TARGET_AVX512FP16) &&
14060 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14061 : (TARGET_AVX512VL)))
14062 : return -1;
14063 : return 4470; /* avx512fp16_vcvtph2uw_v16hi */
14064 :
14065 : case 4:
14066 : switch (pattern779 (x2,
14067 : E_V8SImode))
14068 : {
14069 : case 0:
14070 : if (!(
14071 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14072 : (TARGET_AVX512FP16) &&
14073 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14074 : (TARGET_AVX512VL)))
14075 : return -1;
14076 : return 4478; /* avx512fp16_vcvtph2udq_v8si */
14077 :
14078 : case 1:
14079 : if (!(
14080 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14081 : (TARGET_AVX512F) &&
14082 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14083 : (TARGET_AVX512VL)))
14084 : return -1;
14085 : return 4886; /* *avx512vl_fixuns_notruncv8sfv8si */
14086 :
14087 : case 2:
14088 : if (!
14089 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14090 : (TARGET_AVX512F))
14091 : return -1;
14092 : return 5048; /* fixuns_notruncv8dfv8si2 */
14093 :
14094 : default:
14095 : return -1;
14096 : }
14097 :
14098 : case 5:
14099 : switch (pattern780 (x2,
14100 : E_V4DImode))
14101 : {
14102 : case 0:
14103 : if (!(
14104 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14105 : (TARGET_AVX512FP16) &&
14106 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14107 : (TARGET_AVX512VL)))
14108 : return -1;
14109 : return 4486; /* avx512fp16_vcvtph2uqq_v4di */
14110 :
14111 : case 1:
14112 : if (!(
14113 : #line 9073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14114 : (TARGET_AVX512DQ && 1) &&
14115 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14116 : (TARGET_AVX512VL)))
14117 : return -1;
14118 : return 4906; /* *avx512dq_cvtps2uqqv4di */
14119 :
14120 : case 2:
14121 : if (!(
14122 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14123 : (TARGET_AVX512DQ && 1) &&
14124 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14125 : (TARGET_AVX512VL)))
14126 : return -1;
14127 : return 5132; /* fixuns_notruncv4dfv4di2 */
14128 :
14129 : default:
14130 : return -1;
14131 : }
14132 :
14133 : case 6:
14134 : if (!register_operand (operands[0], E_V8HImode)
14135 : || GET_MODE (x2) != E_V8HImode
14136 : || !vector_operand (operands[1], E_V8HFmode)
14137 : || !(
14138 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14139 : (TARGET_AVX512FP16) &&
14140 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14141 : (TARGET_AVX512VL)))
14142 : return -1;
14143 : return 4494; /* avx512fp16_vcvtph2uw_v8hi */
14144 :
14145 : case 7:
14146 : switch (pattern780 (x2,
14147 : E_V4SImode))
14148 : {
14149 : case 0:
14150 : if (!(
14151 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14152 : (TARGET_AVX512FP16) &&
14153 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14154 : (TARGET_AVX512VL)))
14155 : return -1;
14156 : return 4502; /* avx512fp16_vcvtph2udq_v4si */
14157 :
14158 : case 1:
14159 : if (!(
14160 : #line 9040 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14161 : (TARGET_AVX512F) &&
14162 : #line 668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14163 : (TARGET_AVX512VL)))
14164 : return -1;
14165 : return 4890; /* *avx512vl_fixuns_notruncv4sfv4si */
14166 :
14167 : case 2:
14168 : if (!(
14169 : #line 9832 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14170 : (TARGET_AVX512F) &&
14171 : #line 469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14172 : (TARGET_AVX512VL)))
14173 : return -1;
14174 : return 5052; /* fixuns_notruncv4dfv4si2 */
14175 :
14176 : default:
14177 : return -1;
14178 : }
14179 :
14180 : case 8:
14181 : if (!register_operand (operands[0], E_V2DImode)
14182 : || GET_MODE (x2) != E_V2DImode)
14183 : return -1;
14184 : switch (GET_MODE (operands[1]))
14185 : {
14186 : case E_V8HFmode:
14187 : if (!vector_operand (operands[1], E_V8HFmode)
14188 : || !(
14189 : #line 7977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14190 : (TARGET_AVX512FP16) &&
14191 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14192 : (TARGET_AVX512VL)))
14193 : return -1;
14194 : return 4510; /* avx512fp16_vcvtph2uqq_v2di */
14195 :
14196 : case E_V2DFmode:
14197 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
14198 : || !(
14199 : #line 10051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14200 : (TARGET_AVX512DQ && 1) &&
14201 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14202 : (TARGET_AVX512VL)))
14203 : return -1;
14204 : return 5134; /* fixuns_notruncv2dfv2di2 */
14205 :
14206 : default:
14207 : return -1;
14208 : }
14209 :
14210 : case 9:
14211 : if (!
14212 : #line 9086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14213 : (TARGET_AVX512DQ && TARGET_AVX512VL))
14214 : return -1;
14215 : return 4908; /* *avx512dq_cvtps2uqqv2di */
14216 :
14217 : default:
14218 : return -1;
14219 : }
14220 : }
14221 :
14222 : int
14223 : recog_229 (rtx x1 ATTRIBUTE_UNUSED,
14224 : rtx_insn *insn ATTRIBUTE_UNUSED,
14225 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14226 : {
14227 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14228 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14229 : rtx x10, x11;
14230 : int res ATTRIBUTE_UNUSED;
14231 : x2 = XEXP (x1, 1);
14232 : x3 = XVECEXP (x2, 0, 0);
14233 : x4 = XEXP (x3, 0);
14234 : switch (XVECLEN (x4, 0))
14235 : {
14236 : case 2:
14237 : return recog_224 (x1, insn, pnum_clobbers);
14238 :
14239 : case 3:
14240 : x5 = XVECEXP (x4, 0, 0);
14241 : operands[1] = x5;
14242 : x6 = XVECEXP (x4, 0, 1);
14243 : operands[2] = x6;
14244 : switch (XINT (x4, 1))
14245 : {
14246 : case 193:
14247 : x7 = XEXP (x3, 2);
14248 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14249 : return -1;
14250 : x8 = XVECEXP (x4, 0, 2);
14251 : operands[3] = x8;
14252 : if (!const_0_to_255_operand (operands[3], E_SImode))
14253 : return -1;
14254 : switch (pattern1418 (x2))
14255 : {
14256 : case 0:
14257 : if (!(
14258 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14259 : (TARGET_AVX512F) && (
14260 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14261 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
14262 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14263 : (TARGET_AVX512FP16))))
14264 : return -1;
14265 : return 3268; /* reducesv8hf_round */
14266 :
14267 : case 1:
14268 : if (!(
14269 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14270 : (TARGET_AVX512F) &&
14271 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14272 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode)))))
14273 : return -1;
14274 : return 3272; /* reducesv4sf_round */
14275 :
14276 : case 2:
14277 : if (!(
14278 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14279 : (TARGET_AVX512F) && (
14280 : #line 4269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14281 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
14282 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14283 : (TARGET_SSE2))))
14284 : return -1;
14285 : return 3276; /* reducesv2df_round */
14286 :
14287 : default:
14288 : return -1;
14289 : }
14290 :
14291 : case 134:
14292 : return recog_223 (x1, insn, pnum_clobbers);
14293 :
14294 : case 218:
14295 : switch (pattern1142 (x2))
14296 : {
14297 : case 0:
14298 : if (!(
14299 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14300 : (TARGET_AVX512F) &&
14301 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14302 : (TARGET_AVX512FP16 && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14303 : || V32HFmode == V8DFmode
14304 : || V32HFmode == V8DImode
14305 : || V32HFmode == V16SImode
14306 : || V32HFmode == V32HFmode))))
14307 : return -1;
14308 : return 4365; /* fma_fmaddc_v32hf_maskz_1_round */
14309 :
14310 : case 1:
14311 : if (!(
14312 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14313 : (TARGET_AVX512F) &&
14314 : #line 7645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14315 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14316 : || V32HFmode == V8DFmode
14317 : || V32HFmode == V8DImode
14318 : || V32HFmode == V16SImode
14319 : || V32HFmode == V32HFmode))))
14320 : return -1;
14321 : return 4403; /* avx512bw_fmaddc_v32hf_mask_round */
14322 :
14323 : case 2:
14324 : if (!(
14325 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14326 : (TARGET_AVX512F) &&
14327 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_AVX512FP16)))
14329 : return -1;
14330 : return 4428; /* avx512fp16_fma_fmaddcsh_v8hf_round */
14331 :
14332 : default:
14333 : return -1;
14334 : }
14335 :
14336 : case 220:
14337 : switch (pattern1142 (x2))
14338 : {
14339 : case 0:
14340 : if (!(
14341 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14342 : (TARGET_AVX512F) &&
14343 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14344 : (TARGET_AVX512FP16 && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
14345 : || V32HFmode == V8DFmode
14346 : || V32HFmode == V8DImode
14347 : || V32HFmode == V16SImode
14348 : || V32HFmode == V32HFmode))))
14349 : return -1;
14350 : return 4369; /* fma_fcmaddc_v32hf_maskz_1_round */
14351 :
14352 : case 1:
14353 : if (!(
14354 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14355 : (TARGET_AVX512F) &&
14356 : #line 7645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14357 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14358 : || V32HFmode == V8DFmode
14359 : || V32HFmode == V8DImode
14360 : || V32HFmode == V16SImode
14361 : || V32HFmode == V32HFmode))))
14362 : return -1;
14363 : return 4405; /* avx512bw_fcmaddc_v32hf_mask_round */
14364 :
14365 : case 2:
14366 : if (!(
14367 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14368 : (TARGET_AVX512F) &&
14369 : #line 7834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14370 : (TARGET_AVX512FP16)))
14371 : return -1;
14372 : return 4432; /* avx512fp16_fma_fcmaddcsh_v8hf_round */
14373 :
14374 : default:
14375 : return -1;
14376 : }
14377 :
14378 : case 195:
14379 : x8 = XVECEXP (x4, 0, 2);
14380 : operands[3] = x8;
14381 : if (!const_0_to_15_operand (operands[3], E_SImode))
14382 : return -1;
14383 : x9 = XVECEXP (x2, 0, 1);
14384 : if (!const48_operand (x9, E_SImode))
14385 : return -1;
14386 : x7 = XEXP (x3, 2);
14387 : switch (GET_CODE (x7))
14388 : {
14389 : case REG:
14390 : case SUBREG:
14391 : operands[5] = x7;
14392 : x10 = XEXP (x3, 1);
14393 : operands[4] = x10;
14394 : operands[6] = x9;
14395 : switch (GET_MODE (operands[0]))
14396 : {
14397 : case E_V16SFmode:
14398 : if (pattern1665 (x2,
14399 : E_V16SFmode,
14400 : E_HImode) != 0
14401 : || !(
14402 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14403 : (TARGET_AVX512F) && (
14404 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14405 : (TARGET_AVX512F) &&
14406 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14407 : (TARGET_AVX512DQ && (V16SFmode == V16SFmode
14408 : || V16SFmode == V8DFmode
14409 : || V16SFmode == V8DImode
14410 : || V16SFmode == V16SImode
14411 : || V16SFmode == V32HFmode)))))
14412 : return -1;
14413 : return 10035; /* avx512dq_rangepv16sf_mask_round */
14414 :
14415 : case E_V8DFmode:
14416 : if (pattern1665 (x2,
14417 : E_V8DFmode,
14418 : E_QImode) != 0
14419 : || !(
14420 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14421 : (TARGET_AVX512F) && (
14422 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14423 : (TARGET_AVX512F) &&
14424 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14425 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14426 : || V8DFmode == V8DFmode
14427 : || V8DFmode == V8DImode
14428 : || V8DFmode == V16SImode
14429 : || V8DFmode == V32HFmode)))))
14430 : return -1;
14431 : return 10043; /* avx512dq_rangepv8df_mask_round */
14432 :
14433 : default:
14434 : return -1;
14435 : }
14436 :
14437 : case CONST_INT:
14438 : if (XWINT (x7, 0) != 1L)
14439 : return -1;
14440 : operands[4] = x9;
14441 : x10 = XEXP (x3, 1);
14442 : if (!rtx_equal_p (x10, operands[1]))
14443 : return -1;
14444 : switch (GET_MODE (operands[0]))
14445 : {
14446 : case E_V4SFmode:
14447 : if (pattern1416 (x2,
14448 : E_V4SFmode) != 0
14449 : || !(
14450 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14451 : (TARGET_AVX512F) &&
14452 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14453 : (TARGET_AVX512DQ)))
14454 : return -1;
14455 : return 10050; /* avx512dq_rangesv4sf_round */
14456 :
14457 : case E_V2DFmode:
14458 : if (pattern1416 (x2,
14459 : E_V2DFmode) != 0
14460 : || !(
14461 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14462 : (TARGET_AVX512F) && (
14463 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14464 : (TARGET_AVX512DQ) &&
14465 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14466 : (TARGET_SSE2))))
14467 : return -1;
14468 : return 10054; /* avx512dq_rangesv2df_round */
14469 :
14470 : default:
14471 : return -1;
14472 : }
14473 :
14474 : default:
14475 : return -1;
14476 : }
14477 :
14478 : case 167:
14479 : x7 = XEXP (x3, 2);
14480 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
14481 : return -1;
14482 : x8 = XVECEXP (x4, 0, 2);
14483 : operands[3] = x8;
14484 : if (!const_0_to_15_operand (operands[3], E_SImode))
14485 : return -1;
14486 : switch (pattern1418 (x2))
14487 : {
14488 : case 0:
14489 : if (!(
14490 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14491 : (TARGET_AVX512F) && (
14492 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14493 : (TARGET_AVX512F) &&
14494 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14495 : (TARGET_AVX512FP16))))
14496 : return -1;
14497 : return 10118; /* avx512f_vgetmantv8hf_round */
14498 :
14499 : case 1:
14500 : if (!
14501 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14502 : (TARGET_AVX512F))
14503 : return -1;
14504 : return 10122; /* avx512f_vgetmantv4sf_round */
14505 :
14506 : case 2:
14507 : if (!(
14508 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14509 : (TARGET_AVX512F) && (
14510 : #line 30604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14511 : (TARGET_AVX512F) &&
14512 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14513 : (TARGET_SSE2))))
14514 : return -1;
14515 : return 10126; /* avx512f_vgetmantv2df_round */
14516 :
14517 : default:
14518 : return -1;
14519 : }
14520 :
14521 : case 279:
14522 : x8 = XVECEXP (x4, 0, 2);
14523 : operands[3] = x8;
14524 : if (!const_0_to_255_operand (operands[3], E_SImode))
14525 : return -1;
14526 : x9 = XVECEXP (x2, 0, 1);
14527 : if (!const48_operand (x9, E_SImode))
14528 : return -1;
14529 : x7 = XEXP (x3, 2);
14530 : switch (GET_CODE (x7))
14531 : {
14532 : case REG:
14533 : case SUBREG:
14534 : operands[5] = x7;
14535 : x10 = XEXP (x3, 1);
14536 : operands[4] = x10;
14537 : operands[6] = x9;
14538 : switch (GET_MODE (operands[0]))
14539 : {
14540 : case E_V32HFmode:
14541 : if (pattern1665 (x2,
14542 : E_V32HFmode,
14543 : E_SImode) != 0
14544 : || !(
14545 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14546 : (TARGET_AVX512F) && (
14547 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14548 : (TARGET_AVX512F) && (
14549 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14550 : (TARGET_AVX10_2) &&
14551 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14552 : (TARGET_AVX512FP16)))))
14553 : return -1;
14554 : return 10981; /* avx10_2_minmaxpv32hf_mask_round */
14555 :
14556 : case E_V16HFmode:
14557 : if (pattern1665 (x2,
14558 : E_V16HFmode,
14559 : E_HImode) != 0
14560 : || !(
14561 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14562 : (TARGET_AVX512F) && (
14563 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14564 : (TARGET_AVX512F) && (
14565 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14566 : (TARGET_AVX10_2) &&
14567 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14568 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14569 : return -1;
14570 : return 10985; /* avx10_2_minmaxpv16hf_mask_round */
14571 :
14572 : case E_V8HFmode:
14573 : if (pattern1665 (x2,
14574 : E_V8HFmode,
14575 : E_QImode) != 0
14576 : || !(
14577 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14578 : (TARGET_AVX512F) && (
14579 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14580 : (TARGET_AVX512F) && (
14581 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14582 : (TARGET_AVX10_2) &&
14583 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14584 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))))
14585 : return -1;
14586 : return 10989; /* avx10_2_minmaxpv8hf_mask_round */
14587 :
14588 : case E_V16SFmode:
14589 : if (pattern1665 (x2,
14590 : E_V16SFmode,
14591 : E_HImode) != 0
14592 : || !(
14593 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14594 : (TARGET_AVX512F) && (
14595 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14596 : (TARGET_AVX512F) &&
14597 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14598 : (TARGET_AVX10_2))))
14599 : return -1;
14600 : return 10993; /* avx10_2_minmaxpv16sf_mask_round */
14601 :
14602 : case E_V8SFmode:
14603 : if (pattern1665 (x2,
14604 : E_V8SFmode,
14605 : E_QImode) != 0
14606 : || !(
14607 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14608 : (TARGET_AVX512F) && (
14609 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14610 : (TARGET_AVX512F) && (
14611 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14612 : (TARGET_AVX10_2) &&
14613 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14614 : (TARGET_AVX512VL)))))
14615 : return -1;
14616 : return 10997; /* avx10_2_minmaxpv8sf_mask_round */
14617 :
14618 : case E_V4SFmode:
14619 : if (pattern1665 (x2,
14620 : E_V4SFmode,
14621 : E_QImode) != 0
14622 : || !(
14623 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14624 : (TARGET_AVX512F) && (
14625 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14626 : (TARGET_AVX512F) && (
14627 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14628 : (TARGET_AVX10_2) &&
14629 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14630 : (TARGET_AVX512VL)))))
14631 : return -1;
14632 : return 11001; /* avx10_2_minmaxpv4sf_mask_round */
14633 :
14634 : case E_V8DFmode:
14635 : if (pattern1665 (x2,
14636 : E_V8DFmode,
14637 : E_QImode) != 0
14638 : || !(
14639 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14640 : (TARGET_AVX512F) && (
14641 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14642 : (TARGET_AVX512F) &&
14643 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14644 : (TARGET_AVX10_2))))
14645 : return -1;
14646 : return 11005; /* avx10_2_minmaxpv8df_mask_round */
14647 :
14648 : case E_V4DFmode:
14649 : if (pattern1665 (x2,
14650 : E_V4DFmode,
14651 : E_QImode) != 0
14652 : || !(
14653 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14654 : (TARGET_AVX512F) && (
14655 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14656 : (TARGET_AVX512F) && (
14657 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14658 : (TARGET_AVX10_2) &&
14659 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14660 : (TARGET_AVX512VL)))))
14661 : return -1;
14662 : return 11009; /* avx10_2_minmaxpv4df_mask_round */
14663 :
14664 : case E_V2DFmode:
14665 : if (pattern1665 (x2,
14666 : E_V2DFmode,
14667 : E_QImode) != 0
14668 : || !(
14669 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14670 : (TARGET_AVX512F) && (
14671 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14672 : (TARGET_AVX512F) && (
14673 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14674 : (TARGET_AVX10_2) &&
14675 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14676 : (TARGET_AVX512VL)))))
14677 : return -1;
14678 : return 11013; /* avx10_2_minmaxpv2df_mask_round */
14679 :
14680 : default:
14681 : return -1;
14682 : }
14683 :
14684 : case CONST_INT:
14685 : if (XWINT (x7, 0) != 1L)
14686 : return -1;
14687 : operands[4] = x9;
14688 : switch (pattern1417 (x2))
14689 : {
14690 : case 0:
14691 : if (!(
14692 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14693 : (TARGET_AVX512F) && (
14694 : #line 33368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14695 : (TARGET_AVX10_2) &&
14696 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14697 : (TARGET_AVX512FP16))))
14698 : return -1;
14699 : return 11016; /* avx10_2_minmaxsv8hf_round */
14700 :
14701 : case 1:
14702 : if (!(
14703 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14704 : (TARGET_AVX512F) &&
14705 : #line 33368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14706 : (TARGET_AVX10_2)))
14707 : return -1;
14708 : return 11020; /* avx10_2_minmaxsv4sf_round */
14709 :
14710 : case 2:
14711 : if (!(
14712 : #line 463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14713 : (TARGET_AVX512F) && (
14714 : #line 33368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14715 : (TARGET_AVX10_2) &&
14716 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14717 : (TARGET_SSE2))))
14718 : return -1;
14719 : return 11024; /* avx10_2_minmaxsv2df_round */
14720 :
14721 : default:
14722 : return -1;
14723 : }
14724 :
14725 : default:
14726 : return -1;
14727 : }
14728 :
14729 : default:
14730 : return -1;
14731 : }
14732 :
14733 : case 1:
14734 : return recog_225 (x1, insn, pnum_clobbers);
14735 :
14736 : case 4:
14737 : if (XINT (x4, 1) != 164)
14738 : return -1;
14739 : x5 = XVECEXP (x4, 0, 0);
14740 : operands[1] = x5;
14741 : x6 = XVECEXP (x4, 0, 1);
14742 : operands[2] = x6;
14743 : x8 = XVECEXP (x4, 0, 2);
14744 : operands[3] = x8;
14745 : x11 = XVECEXP (x4, 0, 3);
14746 : operands[4] = x11;
14747 : if (!const_0_to_255_operand (operands[4], E_SImode))
14748 : return -1;
14749 : x9 = XVECEXP (x2, 0, 1);
14750 : if (!const48_operand (x9, E_SImode))
14751 : return -1;
14752 : x10 = XEXP (x3, 1);
14753 : switch (GET_CODE (x10))
14754 : {
14755 : case CONST_INT:
14756 : case CONST_DOUBLE:
14757 : case CONST_VECTOR:
14758 : operands[5] = x10;
14759 : x7 = XEXP (x3, 2);
14760 : operands[6] = x7;
14761 : operands[7] = x9;
14762 : switch (GET_MODE (operands[0]))
14763 : {
14764 : case E_V16SFmode:
14765 : if (pattern1694 (x2,
14766 : E_V16SFmode,
14767 : E_V16SImode,
14768 : E_HImode) != 0
14769 : || !
14770 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14771 : (TARGET_AVX512F))
14772 : return -1;
14773 : return 7127; /* avx512f_fixupimmv16sf_maskz_1_round */
14774 :
14775 : case E_V8SFmode:
14776 : if (pattern1694 (x2,
14777 : E_V8SFmode,
14778 : E_V8SImode,
14779 : E_QImode) != 0
14780 : || !(
14781 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14782 : (TARGET_AVX512F) && (
14783 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14784 : (TARGET_AVX512F) &&
14785 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14786 : (TARGET_AVX512VL))))
14787 : return -1;
14788 : return 7131; /* avx512vl_fixupimmv8sf_maskz_1_round */
14789 :
14790 : case E_V4SFmode:
14791 : if (pattern1694 (x2,
14792 : E_V4SFmode,
14793 : E_V4SImode,
14794 : E_QImode) != 0
14795 : || !(
14796 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14797 : (TARGET_AVX512F) && (
14798 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14799 : (TARGET_AVX512F) &&
14800 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14801 : (TARGET_AVX512VL))))
14802 : return -1;
14803 : return 7135; /* avx512vl_fixupimmv4sf_maskz_1_round */
14804 :
14805 : case E_V8DFmode:
14806 : if (pattern1694 (x2,
14807 : E_V8DFmode,
14808 : E_V8DImode,
14809 : E_QImode) != 0
14810 : || !
14811 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14812 : (TARGET_AVX512F))
14813 : return -1;
14814 : return 7139; /* avx512f_fixupimmv8df_maskz_1_round */
14815 :
14816 : case E_V4DFmode:
14817 : if (pattern1694 (x2,
14818 : E_V4DFmode,
14819 : E_V4DImode,
14820 : E_QImode) != 0
14821 : || !(
14822 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14823 : (TARGET_AVX512F) && (
14824 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14825 : (TARGET_AVX512F) &&
14826 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14827 : (TARGET_AVX512VL))))
14828 : return -1;
14829 : return 7143; /* avx512vl_fixupimmv4df_maskz_1_round */
14830 :
14831 : case E_V2DFmode:
14832 : if (pattern1694 (x2,
14833 : E_V2DFmode,
14834 : E_V2DImode,
14835 : E_QImode) != 0
14836 : || !(
14837 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14838 : (TARGET_AVX512F) && (
14839 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14840 : (TARGET_AVX512F) &&
14841 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14842 : (TARGET_AVX512VL))))
14843 : return -1;
14844 : return 7147; /* avx512vl_fixupimmv2df_maskz_1_round */
14845 :
14846 : default:
14847 : return -1;
14848 : }
14849 :
14850 : case REG:
14851 : case SUBREG:
14852 : x7 = XEXP (x3, 2);
14853 : switch (GET_CODE (x7))
14854 : {
14855 : case REG:
14856 : case SUBREG:
14857 : operands[5] = x7;
14858 : operands[6] = x9;
14859 : if (!rtx_equal_p (x10, operands[1]))
14860 : return -1;
14861 : switch (GET_MODE (operands[0]))
14862 : {
14863 : case E_V16SFmode:
14864 : if (pattern1718 (x2,
14865 : E_V16SImode,
14866 : E_V16SFmode,
14867 : E_HImode) != 0
14868 : || !
14869 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14870 : (TARGET_AVX512F))
14871 : return -1;
14872 : return 7149; /* avx512f_fixupimmv16sf_mask_round */
14873 :
14874 : case E_V8SFmode:
14875 : if (pattern1718 (x2,
14876 : E_V8SImode,
14877 : E_V8SFmode,
14878 : E_QImode) != 0
14879 : || !(
14880 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14881 : (TARGET_AVX512F) && (
14882 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14883 : (TARGET_AVX512F) &&
14884 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14885 : (TARGET_AVX512VL))))
14886 : return -1;
14887 : return 7151; /* avx512vl_fixupimmv8sf_mask_round */
14888 :
14889 : case E_V4SFmode:
14890 : if (pattern1718 (x2,
14891 : E_V4SImode,
14892 : E_V4SFmode,
14893 : E_QImode) != 0
14894 : || !(
14895 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14896 : (TARGET_AVX512F) && (
14897 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14898 : (TARGET_AVX512F) &&
14899 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14900 : (TARGET_AVX512VL))))
14901 : return -1;
14902 : return 7153; /* avx512vl_fixupimmv4sf_mask_round */
14903 :
14904 : case E_V8DFmode:
14905 : if (pattern1718 (x2,
14906 : E_V8DImode,
14907 : E_V8DFmode,
14908 : E_QImode) != 0
14909 : || !
14910 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14911 : (TARGET_AVX512F))
14912 : return -1;
14913 : return 7155; /* avx512f_fixupimmv8df_mask_round */
14914 :
14915 : case E_V4DFmode:
14916 : if (pattern1718 (x2,
14917 : E_V4DImode,
14918 : E_V4DFmode,
14919 : E_QImode) != 0
14920 : || !(
14921 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14922 : (TARGET_AVX512F) && (
14923 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14924 : (TARGET_AVX512F) &&
14925 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14926 : (TARGET_AVX512VL))))
14927 : return -1;
14928 : return 7157; /* avx512vl_fixupimmv4df_mask_round */
14929 :
14930 : case E_V2DFmode:
14931 : if (pattern1718 (x2,
14932 : E_V2DImode,
14933 : E_V2DFmode,
14934 : E_QImode) != 0
14935 : || !(
14936 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14937 : (TARGET_AVX512F) && (
14938 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14939 : (TARGET_AVX512F) &&
14940 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14941 : (TARGET_AVX512VL))))
14942 : return -1;
14943 : return 7159; /* avx512vl_fixupimmv2df_mask_round */
14944 :
14945 : default:
14946 : return -1;
14947 : }
14948 :
14949 : case CONST_INT:
14950 : if (XWINT (x7, 0) != 1L)
14951 : return -1;
14952 : operands[5] = x9;
14953 : if (!rtx_equal_p (x10, operands[2]))
14954 : return -1;
14955 : switch (GET_MODE (operands[0]))
14956 : {
14957 : case E_V4SFmode:
14958 : if (pattern1719 (x2,
14959 : E_V4SImode,
14960 : E_V4SFmode) != 0
14961 : || !
14962 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14963 : (TARGET_AVX512F))
14964 : return -1;
14965 : return 7161; /* avx512f_sfixupimmv4sf_round */
14966 :
14967 : case E_V2DFmode:
14968 : if (pattern1719 (x2,
14969 : E_V2DImode,
14970 : E_V2DFmode) != 0
14971 : || !(
14972 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14973 : (TARGET_AVX512F) && (
14974 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14975 : (TARGET_AVX512F) &&
14976 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14977 : (TARGET_SSE2))))
14978 : return -1;
14979 : return 7165; /* avx512f_sfixupimmv2df_round */
14980 :
14981 : default:
14982 : return -1;
14983 : }
14984 :
14985 : default:
14986 : return -1;
14987 : }
14988 :
14989 : default:
14990 : return -1;
14991 : }
14992 :
14993 : default:
14994 : return -1;
14995 : }
14996 : }
14997 :
14998 : int
14999 : recog_237 (rtx x1 ATTRIBUTE_UNUSED,
15000 : rtx_insn *insn ATTRIBUTE_UNUSED,
15001 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15002 : {
15003 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15004 : rtx x2, x3, x4, x5;
15005 : int res ATTRIBUTE_UNUSED;
15006 : x2 = XEXP (x1, 0);
15007 : if (GET_CODE (x2) != REG
15008 : || REGNO (x2) != 17)
15009 : return -1;
15010 : x3 = XEXP (x1, 1);
15011 : x4 = XVECEXP (x3, 0, 0);
15012 : operands[0] = x4;
15013 : x5 = XVECEXP (x3, 0, 1);
15014 : operands[1] = x5;
15015 : switch (GET_MODE (operands[0]))
15016 : {
15017 : case E_V16QImode:
15018 : if (!register_operand (operands[0], E_V16QImode)
15019 : || !vector_operand (operands[1], E_V16QImode)
15020 : || !
15021 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15022 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15023 : return -1;
15024 : return 8985; /* *sse4_1_ptestv16qi */
15025 :
15026 : case E_V8HImode:
15027 : if (!register_operand (operands[0], E_V8HImode)
15028 : || !vector_operand (operands[1], E_V8HImode)
15029 : || !
15030 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15031 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15032 : return -1;
15033 : return 8986; /* *sse4_1_ptestv8hi */
15034 :
15035 : case E_V4SImode:
15036 : if (!register_operand (operands[0], E_V4SImode)
15037 : || !vector_operand (operands[1], E_V4SImode)
15038 : || !
15039 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15040 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15041 : return -1;
15042 : return 8987; /* *sse4_1_ptestv4si */
15043 :
15044 : case E_V2DImode:
15045 : if (!register_operand (operands[0], E_V2DImode)
15046 : || !vector_operand (operands[1], E_V2DImode)
15047 : || !
15048 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15049 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15050 : return -1;
15051 : return 8988; /* *sse4_1_ptestv2di */
15052 :
15053 : case E_V1TImode:
15054 : if (!register_operand (operands[0], E_V1TImode)
15055 : || !vector_operand (operands[1], E_V1TImode)
15056 : || !
15057 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15058 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15059 : return -1;
15060 : return 8989; /* *sse4_1_ptestv1ti */
15061 :
15062 : case E_V4SFmode:
15063 : if (!register_operand (operands[0], E_V4SFmode)
15064 : || !vector_operand (operands[1], E_V4SFmode)
15065 : || !
15066 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15067 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15068 : return -1;
15069 : return 8990; /* *sse4_1_ptestv4sf */
15070 :
15071 : case E_V2DFmode:
15072 : if (!register_operand (operands[0], E_V2DFmode)
15073 : || !vector_operand (operands[1], E_V2DFmode)
15074 : || !
15075 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15076 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)))
15077 : return -1;
15078 : return 8991; /* *sse4_1_ptestv2df */
15079 :
15080 : case E_V32QImode:
15081 : if (!register_operand (operands[0], E_V32QImode)
15082 : || !vector_operand (operands[1], E_V32QImode)
15083 : || !(
15084 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15085 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15086 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15087 : (TARGET_AVX)))
15088 : return -1;
15089 : return 8992; /* *avx_ptestv32qi */
15090 :
15091 : case E_V16HImode:
15092 : if (!register_operand (operands[0], E_V16HImode)
15093 : || !vector_operand (operands[1], E_V16HImode)
15094 : || !(
15095 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15096 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15097 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15098 : (TARGET_AVX)))
15099 : return -1;
15100 : return 8993; /* *avx_ptestv16hi */
15101 :
15102 : case E_V8SImode:
15103 : if (!register_operand (operands[0], E_V8SImode)
15104 : || !vector_operand (operands[1], E_V8SImode)
15105 : || !(
15106 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15107 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15108 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15109 : (TARGET_AVX)))
15110 : return -1;
15111 : return 8994; /* *avx_ptestv8si */
15112 :
15113 : case E_V4DImode:
15114 : if (!register_operand (operands[0], E_V4DImode)
15115 : || !vector_operand (operands[1], E_V4DImode)
15116 : || !(
15117 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15118 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15119 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15120 : (TARGET_AVX)))
15121 : return -1;
15122 : return 8995; /* *avx_ptestv4di */
15123 :
15124 : case E_V2TImode:
15125 : if (!register_operand (operands[0], E_V2TImode)
15126 : || !vector_operand (operands[1], E_V2TImode)
15127 : || !(
15128 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15129 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15130 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15131 : (TARGET_AVX)))
15132 : return -1;
15133 : return 8996; /* *avx_ptestv2ti */
15134 :
15135 : case E_V8SFmode:
15136 : if (!register_operand (operands[0], E_V8SFmode)
15137 : || !vector_operand (operands[1], E_V8SFmode)
15138 : || !(
15139 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15140 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15141 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15142 : (TARGET_AVX)))
15143 : return -1;
15144 : return 8997; /* *avx_ptestv8sf */
15145 :
15146 : case E_V4DFmode:
15147 : if (!register_operand (operands[0], E_V4DFmode)
15148 : || !vector_operand (operands[1], E_V4DFmode)
15149 : || !(
15150 : #line 25902 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15151 : (TARGET_SSE4_1 && ix86_match_ptest_ccmode (insn)) &&
15152 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15153 : (TARGET_AVX)))
15154 : return -1;
15155 : return 8998; /* *avx_ptestv4df */
15156 :
15157 : default:
15158 : return -1;
15159 : }
15160 : }
15161 :
15162 : int
15163 : recog_239 (rtx x1 ATTRIBUTE_UNUSED,
15164 : rtx_insn *insn ATTRIBUTE_UNUSED,
15165 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15166 : {
15167 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15168 : rtx x2, x3, x4, x5;
15169 : int res ATTRIBUTE_UNUSED;
15170 : x2 = XEXP (x1, 0);
15171 : operands[0] = x2;
15172 : x3 = XEXP (x1, 1);
15173 : x4 = XVECEXP (x3, 0, 0);
15174 : operands[1] = x4;
15175 : x5 = XVECEXP (x3, 0, 1);
15176 : operands[2] = x5;
15177 : switch (GET_MODE (operands[0]))
15178 : {
15179 : case E_V8SImode:
15180 : if (pattern787 (x3,
15181 : E_V8SImode) != 0
15182 : || !
15183 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15184 : (TARGET_AVX2 && 1))
15185 : return -1;
15186 : return 9169; /* avx2_permvarv8si */
15187 :
15188 : case E_V8SFmode:
15189 : if (pattern788 (x3,
15190 : E_V8SImode,
15191 : E_V8SFmode) != 0
15192 : || !
15193 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15194 : (TARGET_AVX2 && 1))
15195 : return -1;
15196 : return 9171; /* avx2_permvarv8sf */
15197 :
15198 : case E_V16SImode:
15199 : if (pattern787 (x3,
15200 : E_V16SImode) != 0
15201 : || !(
15202 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15203 : (TARGET_AVX2 && 1) &&
15204 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15205 : (TARGET_AVX512F)))
15206 : return -1;
15207 : return 9173; /* avx512f_permvarv16si */
15208 :
15209 : case E_V16SFmode:
15210 : if (pattern788 (x3,
15211 : E_V16SImode,
15212 : E_V16SFmode) != 0
15213 : || !(
15214 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15215 : (TARGET_AVX2 && 1) &&
15216 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15217 : (TARGET_AVX512F)))
15218 : return -1;
15219 : return 9175; /* avx512f_permvarv16sf */
15220 :
15221 : case E_V8DImode:
15222 : if (pattern787 (x3,
15223 : E_V8DImode) != 0
15224 : || !(
15225 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15226 : (TARGET_AVX2 && 1) &&
15227 : #line 983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15228 : (TARGET_AVX512F)))
15229 : return -1;
15230 : return 9177; /* avx512f_permvarv8di */
15231 :
15232 : case E_V8DFmode:
15233 : if (pattern788 (x3,
15234 : E_V8DImode,
15235 : E_V8DFmode) != 0
15236 : || !(
15237 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15238 : (TARGET_AVX2 && 1) &&
15239 : #line 983 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15240 : (TARGET_AVX512F)))
15241 : return -1;
15242 : return 9179; /* avx512f_permvarv8df */
15243 :
15244 : case E_V4DImode:
15245 : if (pattern787 (x3,
15246 : E_V4DImode) != 0
15247 : || !(
15248 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15249 : (TARGET_AVX2 && 1) &&
15250 : #line 984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15251 : (TARGET_AVX512VL)))
15252 : return -1;
15253 : return 9181; /* avx2_permvarv4di */
15254 :
15255 : case E_V4DFmode:
15256 : if (pattern788 (x3,
15257 : E_V4DImode,
15258 : E_V4DFmode) != 0
15259 : || !(
15260 : #line 28004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15261 : (TARGET_AVX2 && 1) &&
15262 : #line 984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15263 : (TARGET_AVX512VL)))
15264 : return -1;
15265 : return 9183; /* avx2_permvarv4df */
15266 :
15267 : case E_V64QImode:
15268 : if (pattern787 (x3,
15269 : E_V64QImode) != 0
15270 : || !
15271 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15272 : (TARGET_AVX512VBMI && 1))
15273 : return -1;
15274 : return 9185; /* avx512bw_permvarv64qi */
15275 :
15276 : case E_V16QImode:
15277 : if (pattern787 (x3,
15278 : E_V16QImode) != 0
15279 : || !(
15280 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15281 : (TARGET_AVX512VBMI && 1) &&
15282 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15283 : (TARGET_AVX512VL)))
15284 : return -1;
15285 : return 9187; /* avx512vl_permvarv16qi */
15286 :
15287 : case E_V32QImode:
15288 : if (pattern787 (x3,
15289 : E_V32QImode) != 0
15290 : || !(
15291 : #line 28023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15292 : (TARGET_AVX512VBMI && 1) &&
15293 : #line 338 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15294 : (TARGET_AVX512VL)))
15295 : return -1;
15296 : return 9189; /* avx512vl_permvarv32qi */
15297 :
15298 : case E_V8HImode:
15299 : if (pattern787 (x3,
15300 : E_V8HImode) != 0
15301 : || !(
15302 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15303 : (TARGET_AVX512BW && 1) &&
15304 : #line 682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15305 : (TARGET_AVX512VL)))
15306 : return -1;
15307 : return 9191; /* avx512vl_permvarv8hi */
15308 :
15309 : case E_V16HImode:
15310 : if (pattern787 (x3,
15311 : E_V16HImode) != 0
15312 : || !(
15313 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15314 : (TARGET_AVX512BW && 1) &&
15315 : #line 682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15316 : (TARGET_AVX512VL)))
15317 : return -1;
15318 : return 9193; /* avx512vl_permvarv16hi */
15319 :
15320 : case E_V32HImode:
15321 : if (pattern787 (x3,
15322 : E_V32HImode) != 0
15323 : || !
15324 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15325 : (TARGET_AVX512BW && 1))
15326 : return -1;
15327 : return 9195; /* avx512bw_permvarv32hi */
15328 :
15329 : case E_V8HFmode:
15330 : if (pattern788 (x3,
15331 : E_V8HImode,
15332 : E_V8HFmode) != 0
15333 : || !(
15334 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15335 : (TARGET_AVX512BW && 1) &&
15336 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15337 : (TARGET_AVX512VL)))
15338 : return -1;
15339 : return 9197; /* avx512fp16_permvarv8hf */
15340 :
15341 : case E_V16HFmode:
15342 : if (pattern788 (x3,
15343 : E_V16HImode,
15344 : E_V16HFmode) != 0
15345 : || !(
15346 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15347 : (TARGET_AVX512BW && 1) &&
15348 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15349 : (TARGET_AVX512VL)))
15350 : return -1;
15351 : return 9199; /* avx512vl_permvarv16hf */
15352 :
15353 : case E_V32HFmode:
15354 : if (pattern788 (x3,
15355 : E_V32HImode,
15356 : E_V32HFmode) != 0
15357 : || !
15358 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15359 : (TARGET_AVX512BW && 1))
15360 : return -1;
15361 : return 9201; /* avx512bw_permvarv32hf */
15362 :
15363 : case E_V8BFmode:
15364 : if (pattern788 (x3,
15365 : E_V8HImode,
15366 : E_V8BFmode) != 0
15367 : || !(
15368 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15369 : (TARGET_AVX512BW && 1) &&
15370 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15371 : (TARGET_AVX512VL)))
15372 : return -1;
15373 : return 9203; /* avx512vl_permvarv8bf */
15374 :
15375 : case E_V16BFmode:
15376 : if (pattern788 (x3,
15377 : E_V16HImode,
15378 : E_V16BFmode) != 0
15379 : || !(
15380 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15381 : (TARGET_AVX512BW && 1) &&
15382 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15383 : (TARGET_AVX512VL)))
15384 : return -1;
15385 : return 9205; /* avx512vl_permvarv16bf */
15386 :
15387 : case E_V32BFmode:
15388 : if (pattern788 (x3,
15389 : E_V32HImode,
15390 : E_V32BFmode) != 0
15391 : || !
15392 : #line 28035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15393 : (TARGET_AVX512BW && 1))
15394 : return -1;
15395 : return 9207; /* avx512bw_permvarv32bf */
15396 :
15397 : default:
15398 : return -1;
15399 : }
15400 : }
15401 :
15402 : int
15403 : recog_242 (rtx x1 ATTRIBUTE_UNUSED,
15404 : rtx_insn *insn ATTRIBUTE_UNUSED,
15405 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15406 : {
15407 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15408 : rtx x2, x3, x4, x5;
15409 : int res ATTRIBUTE_UNUSED;
15410 : x2 = XEXP (x1, 0);
15411 : if (GET_CODE (x2) != REG
15412 : || REGNO (x2) != 17)
15413 : return -1;
15414 : x3 = XEXP (x1, 1);
15415 : x4 = XVECEXP (x3, 0, 0);
15416 : operands[0] = x4;
15417 : x5 = XVECEXP (x3, 0, 1);
15418 : operands[1] = x5;
15419 : switch (GET_MODE (operands[0]))
15420 : {
15421 : case E_QImode:
15422 : if (register_operand (operands[0], E_QImode)
15423 : && register_operand (operands[1], E_QImode)
15424 : && (
15425 : #line 2370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15426 : (TARGET_AVX512F) &&
15427 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15428 : (TARGET_AVX512DQ)))
15429 : return 2677; /* *kortestqi */
15430 : break;
15431 :
15432 : case E_HImode:
15433 : if (register_operand (operands[0], E_HImode)
15434 : && register_operand (operands[1], E_HImode)
15435 : &&
15436 : #line 2370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15437 : (TARGET_AVX512F))
15438 : return 2678; /* *kortesthi */
15439 : break;
15440 :
15441 : case E_SImode:
15442 : if (register_operand (operands[0], E_SImode)
15443 : && register_operand (operands[1], E_SImode)
15444 : && (
15445 : #line 2370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15446 : (TARGET_AVX512F) &&
15447 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15448 : (TARGET_AVX512BW)))
15449 : return 2679; /* *kortestsi */
15450 : break;
15451 :
15452 : case E_DImode:
15453 : if (register_operand (operands[0], E_DImode)
15454 : && register_operand (operands[1], E_DImode)
15455 : && (
15456 : #line 2370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15457 : (TARGET_AVX512F) &&
15458 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15459 : (TARGET_AVX512BW)))
15460 : return 2680; /* *kortestdi */
15461 : break;
15462 :
15463 : default:
15464 : break;
15465 : }
15466 : switch (GET_MODE (x2))
15467 : {
15468 : case E_CCCmode:
15469 : if (GET_MODE (x3) != E_CCCmode)
15470 : return -1;
15471 : switch (pattern966 ())
15472 : {
15473 : case 0:
15474 : if (!(
15475 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15476 : (TARGET_AVX512F) &&
15477 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15478 : (TARGET_AVX512DQ)))
15479 : return -1;
15480 : return 2681; /* kortestqi_ccc */
15481 :
15482 : case 1:
15483 : if (!
15484 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15485 : (TARGET_AVX512F))
15486 : return -1;
15487 : return 2682; /* kortesthi_ccc */
15488 :
15489 : case 2:
15490 : if (!(
15491 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15492 : (TARGET_AVX512F) &&
15493 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15494 : (TARGET_AVX512BW)))
15495 : return -1;
15496 : return 2683; /* kortestsi_ccc */
15497 :
15498 : case 3:
15499 : if (!(
15500 : #line 2382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15501 : (TARGET_AVX512F) &&
15502 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15503 : (TARGET_AVX512BW)))
15504 : return -1;
15505 : return 2684; /* kortestdi_ccc */
15506 :
15507 : default:
15508 : return -1;
15509 : }
15510 :
15511 : case E_CCZmode:
15512 : if (GET_MODE (x3) != E_CCZmode)
15513 : return -1;
15514 : switch (pattern966 ())
15515 : {
15516 : case 0:
15517 : if (!(
15518 : #line 2390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15519 : (TARGET_AVX512F) &&
15520 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15521 : (TARGET_AVX512DQ)))
15522 : return -1;
15523 : return 2685; /* kortestqi_ccz */
15524 :
15525 : case 1:
15526 : if (!
15527 : #line 2390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15528 : (TARGET_AVX512F))
15529 : return -1;
15530 : return 2686; /* kortesthi_ccz */
15531 :
15532 : case 2:
15533 : if (!(
15534 : #line 2390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15535 : (TARGET_AVX512F) &&
15536 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15537 : (TARGET_AVX512BW)))
15538 : return -1;
15539 : return 2687; /* kortestsi_ccz */
15540 :
15541 : case 3:
15542 : if (!(
15543 : #line 2390 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15544 : (TARGET_AVX512F) &&
15545 : #line 2093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15546 : (TARGET_AVX512BW)))
15547 : return -1;
15548 : return 2688; /* kortestdi_ccz */
15549 :
15550 : default:
15551 : return -1;
15552 : }
15553 :
15554 : default:
15555 : return -1;
15556 : }
15557 : }
15558 :
15559 : int
15560 : recog_251 (rtx x1 ATTRIBUTE_UNUSED,
15561 : rtx_insn *insn ATTRIBUTE_UNUSED,
15562 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15563 : {
15564 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15565 : rtx x2, x3, x4, x5, x6, x7, x8;
15566 : int res ATTRIBUTE_UNUSED;
15567 : x2 = XEXP (x1, 0);
15568 : operands[0] = x2;
15569 : x3 = XEXP (x1, 1);
15570 : x4 = XVECEXP (x3, 0, 2);
15571 : switch (GET_CODE (x4))
15572 : {
15573 : case LT:
15574 : x5 = XVECEXP (x3, 0, 0);
15575 : operands[1] = x5;
15576 : switch (pattern668 (x3))
15577 : {
15578 : case 0:
15579 : if ((
15580 : #line 3386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15581 : (TARGET_SSE && ix86_pre_reload_split ()
15582 : && ((rtx_equal_p (operands[1], operands[3])
15583 : && rtx_equal_p (operands[2], operands[4]))
15584 : || (rtx_equal_p (operands[1], operands[4])
15585 : && rtx_equal_p (operands[2], operands[3])))) &&
15586 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15587 : (TARGET_AVX)))
15588 : return 3102; /* *minmaxv8sf3_2 */
15589 : break;
15590 :
15591 : case 1:
15592 : if (
15593 : #line 3386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15594 : (TARGET_SSE && ix86_pre_reload_split ()
15595 : && ((rtx_equal_p (operands[1], operands[3])
15596 : && rtx_equal_p (operands[2], operands[4]))
15597 : || (rtx_equal_p (operands[1], operands[4])
15598 : && rtx_equal_p (operands[2], operands[3])))))
15599 : return 3103; /* *minmaxv4sf3_2 */
15600 : break;
15601 :
15602 : case 2:
15603 : if ((
15604 : #line 3386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15605 : (TARGET_SSE && ix86_pre_reload_split ()
15606 : && ((rtx_equal_p (operands[1], operands[3])
15607 : && rtx_equal_p (operands[2], operands[4]))
15608 : || (rtx_equal_p (operands[1], operands[4])
15609 : && rtx_equal_p (operands[2], operands[3])))) &&
15610 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15611 : (TARGET_AVX)))
15612 : return 3104; /* *minmaxv4df3_2 */
15613 : break;
15614 :
15615 : case 3:
15616 : if ((
15617 : #line 3386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15618 : (TARGET_SSE && ix86_pre_reload_split ()
15619 : && ((rtx_equal_p (operands[1], operands[3])
15620 : && rtx_equal_p (operands[2], operands[4]))
15621 : || (rtx_equal_p (operands[1], operands[4])
15622 : && rtx_equal_p (operands[2], operands[3])))) &&
15623 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15624 : (TARGET_SSE2)))
15625 : return 3105; /* *minmaxv2df3_2 */
15626 : break;
15627 :
15628 : case 4:
15629 : if ((
15630 : #line 23936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15631 : (TARGET_SSE4_1) &&
15632 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15633 : (TARGET_AVX)))
15634 : return 8734; /* *avx_blendvps256_lt */
15635 : break;
15636 :
15637 : case 5:
15638 : if (
15639 : #line 23936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15640 : (TARGET_SSE4_1))
15641 : return 8735; /* *sse4_1_blendvps_lt */
15642 : break;
15643 :
15644 : case 6:
15645 : if ((
15646 : #line 23936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15647 : (TARGET_SSE4_1) &&
15648 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15649 : (TARGET_AVX)))
15650 : return 8736; /* *avx_blendvpd256_lt */
15651 : break;
15652 :
15653 : case 7:
15654 : if ((
15655 : #line 23936 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15656 : (TARGET_SSE4_1) &&
15657 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15658 : (TARGET_SSE2)))
15659 : return 8737; /* *sse4_1_blendvpd_lt */
15660 : break;
15661 :
15662 : case 8:
15663 : if ((
15664 : #line 24259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15665 : (TARGET_SSE4_1) &&
15666 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15667 : (TARGET_AVX2)))
15668 : return 8781; /* *avx2_pblendvb_lt */
15669 : break;
15670 :
15671 : case 9:
15672 : if (
15673 : #line 24259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15674 : (TARGET_SSE4_1))
15675 : return 8782; /* *sse4_1_pblendvb_lt */
15676 : break;
15677 :
15678 : default:
15679 : break;
15680 : }
15681 : x6 = XEXP (x4, 0);
15682 : if (GET_CODE (x6) != SUBREG)
15683 : return -1;
15684 : switch (pattern670 (x3))
15685 : {
15686 : case 0:
15687 : if (!(
15688 : #line 24309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15689 : (TARGET_SSE4_1
15690 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
15691 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
15692 : && ix86_pre_reload_split ()) &&
15693 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15694 : (TARGET_AVX2)))
15695 : return -1;
15696 : return 8785; /* *avx2_pblendvb_lt_subreg_not */
15697 :
15698 : case 1:
15699 : if (!
15700 : #line 24309 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15701 : (TARGET_SSE4_1
15702 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
15703 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
15704 : && ix86_pre_reload_split ()))
15705 : return -1;
15706 : return 8786; /* *sse4_1_pblendvb_lt_subreg_not */
15707 :
15708 : default:
15709 : return -1;
15710 : }
15711 :
15712 : case REG:
15713 : case SUBREG:
15714 : operands[3] = x4;
15715 : x5 = XVECEXP (x3, 0, 0);
15716 : operands[1] = x5;
15717 : x7 = XVECEXP (x3, 0, 1);
15718 : operands[2] = x7;
15719 : switch (GET_MODE (operands[0]))
15720 : {
15721 : case E_V8SFmode:
15722 : if (pattern1035 (x3,
15723 : E_V8SFmode) == 0
15724 : && (
15725 : #line 23872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15726 : (TARGET_SSE4_1) &&
15727 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15728 : (TARGET_AVX)))
15729 : return 8728; /* avx_blendvps256 */
15730 : break;
15731 :
15732 : case E_V4SFmode:
15733 : if (pattern1035 (x3,
15734 : E_V4SFmode) == 0
15735 : &&
15736 : #line 23872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15737 : (TARGET_SSE4_1))
15738 : return 8729; /* sse4_1_blendvps */
15739 : break;
15740 :
15741 : case E_V4DFmode:
15742 : if (pattern1035 (x3,
15743 : E_V4DFmode) == 0
15744 : && (
15745 : #line 23872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15746 : (TARGET_SSE4_1) &&
15747 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15748 : (TARGET_AVX)))
15749 : return 8730; /* avx_blendvpd256 */
15750 : break;
15751 :
15752 : case E_V2DFmode:
15753 : if (pattern1035 (x3,
15754 : E_V2DFmode) == 0
15755 : && (
15756 : #line 23872 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15757 : (TARGET_SSE4_1) &&
15758 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15759 : (TARGET_SSE2)))
15760 : return 8731; /* sse4_1_blendvpd */
15761 : break;
15762 :
15763 : default:
15764 : break;
15765 : }
15766 : operands[1] = x5;
15767 : operands[2] = x7;
15768 : if (GET_CODE (x4) == SUBREG
15769 : && known_eq (SUBREG_BYTE (x4), 0))
15770 : {
15771 : x6 = XEXP (x4, 0);
15772 : switch (GET_CODE (x6))
15773 : {
15774 : case LT:
15775 : x8 = XEXP (x6, 0);
15776 : operands[3] = x8;
15777 : switch (pattern1233 (x3))
15778 : {
15779 : case 0:
15780 : if (
15781 : #line 23989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15782 : (TARGET_SSE4_1))
15783 : return 8742; /* *sse4_1_blendvps_ltint */
15784 : break;
15785 :
15786 : case 1:
15787 : if (
15788 : #line 23989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15789 : (TARGET_SSE4_1))
15790 : return 8743; /* *sse4_1_blendvpd_ltint */
15791 : break;
15792 :
15793 : case 2:
15794 : if ((
15795 : #line 23989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15796 : (TARGET_SSE4_1) &&
15797 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15798 : (TARGET_AVX)))
15799 : return 8744; /* *avx_blendvps256_ltint */
15800 : break;
15801 :
15802 : case 3:
15803 : if ((
15804 : #line 23989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15805 : (TARGET_SSE4_1) &&
15806 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15807 : (TARGET_AVX)))
15808 : return 8745; /* *avx_blendvpd256_ltint */
15809 : break;
15810 :
15811 : default:
15812 : break;
15813 : }
15814 : if (GET_CODE (x8) == SUBREG)
15815 : {
15816 : switch (pattern1234 (x3))
15817 : {
15818 : case 0:
15819 : if (
15820 : #line 24056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15821 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15822 : return 8750; /* *sse4_1_blendvps_not_ltint */
15823 : break;
15824 :
15825 : case 1:
15826 : if (
15827 : #line 24056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15828 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15829 : return 8751; /* *sse4_1_blendvpd_not_ltint */
15830 : break;
15831 :
15832 : case 2:
15833 : if ((
15834 : #line 24056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15835 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15836 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15837 : (TARGET_AVX)))
15838 : return 8752; /* *avx_blendvps256_not_ltint */
15839 : break;
15840 :
15841 : case 3:
15842 : if ((
15843 : #line 24056 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15844 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15845 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15846 : (TARGET_AVX)))
15847 : return 8753; /* *avx_blendvpd256_not_ltint */
15848 : break;
15849 :
15850 : default:
15851 : break;
15852 : }
15853 : }
15854 : break;
15855 :
15856 : case GT:
15857 : x8 = XEXP (x6, 0);
15858 : operands[3] = x8;
15859 : switch (pattern1235 (x3))
15860 : {
15861 : case 0:
15862 : if (
15863 : #line 24021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15864 : (TARGET_SSE4_1))
15865 : return 8746; /* *sse4_1_blendvps_gtint */
15866 : break;
15867 :
15868 : case 1:
15869 : if (
15870 : #line 24021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15871 : (TARGET_SSE4_1))
15872 : return 8747; /* *sse4_1_blendvpd_gtint */
15873 : break;
15874 :
15875 : case 2:
15876 : if ((
15877 : #line 24021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15878 : (TARGET_SSE4_1) &&
15879 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15880 : (TARGET_AVX)))
15881 : return 8748; /* *avx_blendvps256_gtint */
15882 : break;
15883 :
15884 : case 3:
15885 : if ((
15886 : #line 24021 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15887 : (TARGET_SSE4_1) &&
15888 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15889 : (TARGET_AVX)))
15890 : return 8749; /* *avx_blendvpd256_gtint */
15891 : break;
15892 :
15893 : default:
15894 : break;
15895 : }
15896 : if (GET_CODE (x8) == SUBREG)
15897 : {
15898 : switch (pattern1236 (x3))
15899 : {
15900 : case 0:
15901 : if (
15902 : #line 24082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15903 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15904 : return 8754; /* *sse4_1_blendvps_not_gtint */
15905 : break;
15906 :
15907 : case 1:
15908 : if (
15909 : #line 24082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15910 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15911 : return 8755; /* *sse4_1_blendvpd_not_gtint */
15912 : break;
15913 :
15914 : case 2:
15915 : if ((
15916 : #line 24082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15917 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15918 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15919 : (TARGET_AVX)))
15920 : return 8756; /* *avx_blendvps256_not_gtint */
15921 : break;
15922 :
15923 : case 3:
15924 : if ((
15925 : #line 24082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15926 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15927 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15928 : (TARGET_AVX)))
15929 : return 8757; /* *avx_blendvpd256_not_gtint */
15930 : break;
15931 :
15932 : default:
15933 : break;
15934 : }
15935 : }
15936 : break;
15937 :
15938 : default:
15939 : break;
15940 : }
15941 : }
15942 : operands[3] = x4;
15943 : switch (GET_MODE (operands[0]))
15944 : {
15945 : case E_V32QImode:
15946 : if (pattern1035 (x3,
15947 : E_V32QImode) != 0
15948 : || !(
15949 : #line 24208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15950 : (TARGET_SSE4_1) &&
15951 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15952 : (TARGET_AVX2)))
15953 : return -1;
15954 : return 8779; /* avx2_pblendvb */
15955 :
15956 : case E_V16QImode:
15957 : if (pattern1035 (x3,
15958 : E_V16QImode) != 0
15959 : || !
15960 : #line 24208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15961 : (TARGET_SSE4_1))
15962 : return -1;
15963 : return 8780; /* sse4_1_pblendvb */
15964 :
15965 : default:
15966 : return -1;
15967 : }
15968 :
15969 : case GT:
15970 : x5 = XVECEXP (x3, 0, 0);
15971 : operands[1] = x5;
15972 : switch (pattern673 (x3))
15973 : {
15974 : case 0:
15975 : if ((
15976 : #line 23962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15977 : (TARGET_SSE4_1) &&
15978 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15979 : (TARGET_AVX)))
15980 : return 8738; /* *avx_blendvps256_gt */
15981 : break;
15982 :
15983 : case 1:
15984 : if (
15985 : #line 23962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15986 : (TARGET_SSE4_1))
15987 : return 8739; /* *sse4_1_blendvps_gt */
15988 : break;
15989 :
15990 : case 2:
15991 : if ((
15992 : #line 23962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15993 : (TARGET_SSE4_1) &&
15994 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15995 : (TARGET_AVX)))
15996 : return 8740; /* *avx_blendvpd256_gt */
15997 : break;
15998 :
15999 : case 3:
16000 : if ((
16001 : #line 23962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16002 : (TARGET_SSE4_1) &&
16003 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16004 : (TARGET_SSE2)))
16005 : return 8741; /* *sse4_1_blendvpd_gt */
16006 : break;
16007 :
16008 : case 4:
16009 : if ((
16010 : #line 24283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16011 : (TARGET_SSE4_1) &&
16012 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16013 : (TARGET_AVX2)))
16014 : return 8783; /* *avx2_pblendvb_gt */
16015 : break;
16016 :
16017 : case 5:
16018 : if (
16019 : #line 24283 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16020 : (TARGET_SSE4_1))
16021 : return 8784; /* *sse4_1_pblendvb_gt */
16022 : break;
16023 :
16024 : default:
16025 : break;
16026 : }
16027 : x6 = XEXP (x4, 0);
16028 : if (GET_CODE (x6) != SUBREG)
16029 : return -1;
16030 : switch (pattern675 (x3))
16031 : {
16032 : case 0:
16033 : if (!(
16034 : #line 24331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16035 : (TARGET_SSE4_1
16036 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
16037 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
16038 : && ix86_pre_reload_split ()) &&
16039 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16040 : (TARGET_AVX2)))
16041 : return -1;
16042 : return 8787; /* *avx2_pblendvb_gt_subreg_not */
16043 :
16044 : case 1:
16045 : if (!
16046 : #line 24331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16047 : (TARGET_SSE4_1
16048 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
16049 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
16050 : && ix86_pre_reload_split ()))
16051 : return -1;
16052 : return 8788; /* *sse4_1_pblendvb_gt_subreg_not */
16053 :
16054 : default:
16055 : return -1;
16056 : }
16057 :
16058 : default:
16059 : return -1;
16060 : }
16061 : }
16062 :
16063 : int
16064 : recog_260 (rtx x1 ATTRIBUTE_UNUSED,
16065 : rtx_insn *insn ATTRIBUTE_UNUSED,
16066 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16067 : {
16068 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16069 : int res ATTRIBUTE_UNUSED;
16070 : switch (pattern181 (x1))
16071 : {
16072 : case 0:
16073 : if (!
16074 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16075 : (TARGET_AVX512VBMI2))
16076 : return -1;
16077 : return 10275; /* vpshld_v32hi */
16078 :
16079 : case 1:
16080 : if (!
16081 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16082 : (TARGET_AVX512VBMI2))
16083 : return -1;
16084 : return 10277; /* vpshld_v16si */
16085 :
16086 : case 2:
16087 : if (!
16088 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16089 : (TARGET_AVX512VBMI2))
16090 : return -1;
16091 : return 10279; /* vpshld_v8di */
16092 :
16093 : case 3:
16094 : if (!(
16095 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16096 : (TARGET_AVX512VBMI2) &&
16097 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16098 : (TARGET_AVX512VL)))
16099 : return -1;
16100 : return 10281; /* vpshld_v16hi */
16101 :
16102 : case 4:
16103 : if (!(
16104 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16105 : (TARGET_AVX512VBMI2) &&
16106 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16107 : (TARGET_AVX512VL)))
16108 : return -1;
16109 : return 10283; /* vpshld_v8si */
16110 :
16111 : case 5:
16112 : if (!(
16113 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16114 : (TARGET_AVX512VBMI2) &&
16115 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16116 : (TARGET_AVX512VL)))
16117 : return -1;
16118 : return 10285; /* vpshld_v4di */
16119 :
16120 : case 6:
16121 : if (!(
16122 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16123 : (TARGET_AVX512VBMI2) &&
16124 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16125 : (TARGET_AVX512VL)))
16126 : return -1;
16127 : return 10287; /* vpshld_v8hi */
16128 :
16129 : case 7:
16130 : if (!(
16131 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16132 : (TARGET_AVX512VBMI2) &&
16133 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16134 : (TARGET_AVX512VL)))
16135 : return -1;
16136 : return 10289; /* vpshld_v4si */
16137 :
16138 : case 8:
16139 : if (!(
16140 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16141 : (TARGET_AVX512VBMI2) &&
16142 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16143 : (TARGET_AVX512VL)))
16144 : return -1;
16145 : return 10291; /* vpshld_v2di */
16146 :
16147 : default:
16148 : return -1;
16149 : }
16150 : }
16151 :
16152 : int
16153 : recog_266 (rtx x1 ATTRIBUTE_UNUSED,
16154 : rtx_insn *insn ATTRIBUTE_UNUSED,
16155 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16156 : {
16157 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16158 : rtx x2, x3, x4, x5;
16159 : int res ATTRIBUTE_UNUSED;
16160 : x2 = XEXP (x1, 0);
16161 : operands[0] = x2;
16162 : x3 = XEXP (x1, 1);
16163 : x4 = XVECEXP (x3, 0, 0);
16164 : operands[1] = x4;
16165 : x5 = XVECEXP (x3, 0, 1);
16166 : operands[2] = x5;
16167 : switch (pattern677 (x3))
16168 : {
16169 : case 0:
16170 : if (
16171 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16172 : (TARGET_AVX512FP16 && 1 && 1))
16173 : return 4362; /* fma_fmaddc_v32hf */
16174 : break;
16175 :
16176 : case 1:
16177 : if ((
16178 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16179 : (TARGET_AVX512FP16 && 1 && 1) &&
16180 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16181 : (TARGET_AVX512VL)))
16182 : return 4370; /* fma_fmaddc_v16hf */
16183 : break;
16184 :
16185 : case 2:
16186 : if ((
16187 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16188 : (TARGET_AVX512FP16 && 1 && 1) &&
16189 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16190 : (TARGET_AVX512VL)))
16191 : return 4374; /* fma_fmaddc_v8hf */
16192 : break;
16193 :
16194 : default:
16195 : break;
16196 : }
16197 : if (GET_CODE (x5) != SUBREG
16198 : || maybe_ne (SUBREG_BYTE (x5), 0))
16199 : return -1;
16200 : switch (pattern602 (x3))
16201 : {
16202 : case 0:
16203 : if (!
16204 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16205 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
16206 : return -1;
16207 : return 4396; /* fma_v32hf_fmaddc_bcst */
16208 :
16209 : case 1:
16210 : if (!(
16211 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16212 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
16213 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16214 : (TARGET_AVX512VL)))
16215 : return -1;
16216 : return 4397; /* fma_v16hf_fmaddc_bcst */
16217 :
16218 : case 2:
16219 : if (!(
16220 : #line 7586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16221 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
16222 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16223 : (TARGET_AVX512VL)))
16224 : return -1;
16225 : return 4398; /* fma_v8hf_fmaddc_bcst */
16226 :
16227 : default:
16228 : return -1;
16229 : }
16230 : }
16231 :
16232 : int
16233 : recog_273 (rtx x1 ATTRIBUTE_UNUSED,
16234 : rtx_insn *insn ATTRIBUTE_UNUSED,
16235 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16236 : {
16237 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16238 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16239 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
16240 : int res ATTRIBUTE_UNUSED;
16241 : x2 = XEXP (x1, 1);
16242 : x3 = XEXP (x2, 0);
16243 : x4 = XEXP (x3, 2);
16244 : if (!register_operand (x4, E_QImode))
16245 : return -1;
16246 : x5 = XEXP (x3, 0);
16247 : switch (GET_CODE (x5))
16248 : {
16249 : case FLOAT:
16250 : switch (pattern503 (x2))
16251 : {
16252 : case 0:
16253 : if (!
16254 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16255 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16256 : return -1;
16257 : return 4570; /* *avx512fp16_vcvtdq2ph_v4si_mask */
16258 :
16259 : case 1:
16260 : if (!
16261 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16262 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16263 : return -1;
16264 : return 4572; /* *avx512fp16_vcvtqq2ph_v4di_mask */
16265 :
16266 : case 2:
16267 : if (!
16268 : #line 8130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16269 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16270 : return -1;
16271 : return 4580; /* *avx512fp16_vcvtqq2ph_v2di_mask */
16272 :
16273 : case 3:
16274 : if (!
16275 : #line 9643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16276 : (TARGET_AVX512DQ && TARGET_AVX512VL))
16277 : return -1;
16278 : return 5024; /* *floatv2div2sf2_mask */
16279 :
16280 : case 4:
16281 : if (!
16282 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16283 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16284 : return -1;
16285 : return 4574; /* *avx512fp16_vcvtdq2ph_v4si_mask_1 */
16286 :
16287 : case 5:
16288 : if (!
16289 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16290 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16291 : return -1;
16292 : return 4576; /* *avx512fp16_vcvtqq2ph_v4di_mask_1 */
16293 :
16294 : case 6:
16295 : if (!
16296 : #line 8145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16297 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16298 : return -1;
16299 : return 4582; /* *avx512fp16_vcvtqq2ph_v2di_mask_1 */
16300 :
16301 : case 7:
16302 : if (!
16303 : #line 9658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16304 : (TARGET_AVX512DQ && TARGET_AVX512VL))
16305 : return -1;
16306 : return 5026; /* *floatv2div2sf2_mask_1 */
16307 :
16308 : default:
16309 : return -1;
16310 : }
16311 :
16312 : case UNSIGNED_FLOAT:
16313 : switch (pattern503 (x2))
16314 : {
16315 : case 0:
16316 : if (!
16317 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16318 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16319 : return -1;
16320 : return 4571; /* *avx512fp16_vcvtudq2ph_v4si_mask */
16321 :
16322 : case 1:
16323 : if (!
16324 : #line 8054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16325 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16326 : return -1;
16327 : return 4573; /* *avx512fp16_vcvtuqq2ph_v4di_mask */
16328 :
16329 : case 2:
16330 : if (!
16331 : #line 8130 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16332 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16333 : return -1;
16334 : return 4581; /* *avx512fp16_vcvtuqq2ph_v2di_mask */
16335 :
16336 : case 3:
16337 : if (!
16338 : #line 9643 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16339 : (TARGET_AVX512DQ && TARGET_AVX512VL))
16340 : return -1;
16341 : return 5025; /* *floatunsv2div2sf2_mask */
16342 :
16343 : case 4:
16344 : if (!
16345 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16346 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16347 : return -1;
16348 : return 4575; /* *avx512fp16_vcvtudq2ph_v4si_mask_1 */
16349 :
16350 : case 5:
16351 : if (!
16352 : #line 8069 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16353 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16354 : return -1;
16355 : return 4577; /* *avx512fp16_vcvtuqq2ph_v4di_mask_1 */
16356 :
16357 : case 6:
16358 : if (!
16359 : #line 8145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16360 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16361 : return -1;
16362 : return 4583; /* *avx512fp16_vcvtuqq2ph_v2di_mask_1 */
16363 :
16364 : case 7:
16365 : if (!
16366 : #line 9658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16367 : (TARGET_AVX512DQ && TARGET_AVX512VL))
16368 : return -1;
16369 : return 5027; /* *floatunsv2div2sf2_mask_1 */
16370 :
16371 : default:
16372 : return -1;
16373 : }
16374 :
16375 : case FLOAT_TRUNCATE:
16376 : x6 = XEXP (x5, 0);
16377 : operands[1] = x6;
16378 : x7 = XEXP (x2, 1);
16379 : operands[4] = x7;
16380 : x8 = XEXP (x3, 1);
16381 : switch (GET_CODE (x8))
16382 : {
16383 : case VEC_SELECT:
16384 : x9 = XEXP (x8, 1);
16385 : if (GET_CODE (x9) != PARALLEL)
16386 : return -1;
16387 : x10 = XEXP (x8, 0);
16388 : operands[2] = x10;
16389 : operands[3] = x4;
16390 : switch (XVECLEN (x9, 0))
16391 : {
16392 : case 4:
16393 : if (pattern1227 (x9,
16394 : 3,
16395 : 2,
16396 : 1,
16397 : 0) != 0)
16398 : return -1;
16399 : switch (GET_MODE (operands[0]))
16400 : {
16401 : case E_V8HFmode:
16402 : if (!register_operand (operands[0], E_V8HFmode)
16403 : || GET_MODE (x2) != E_V8HFmode
16404 : || GET_MODE (x3) != E_V4HFmode
16405 : || GET_MODE (x5) != E_V4HFmode
16406 : || GET_MODE (x8) != E_V4HFmode
16407 : || !nonimm_or_0_operand (operands[2], E_V8HFmode))
16408 : return -1;
16409 : switch (pattern1566 ())
16410 : {
16411 : case 0:
16412 : if (!
16413 : #line 8525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16414 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16415 : return -1;
16416 : return 4794; /* *avx512fp16_vcvtpd2ph_v4df_mask */
16417 :
16418 : case 1:
16419 : if (!
16420 : #line 8525 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16421 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16422 : return -1;
16423 : return 4795; /* *avx512fp16_vcvtps2ph_v4sf_mask */
16424 :
16425 : default:
16426 : return -1;
16427 : }
16428 :
16429 : case E_V8BFmode:
16430 : if (pattern499 (x2,
16431 : E_V4BFmode,
16432 : E_V8BFmode,
16433 : E_V4SFmode) != 0
16434 : || !
16435 : #line 31807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16436 : (TARGET_AVX512BF16 && TARGET_AVX512VL))
16437 : return -1;
16438 : return 10419; /* avx512f_cvtneps2bf16_v4sf_mask_1 */
16439 :
16440 : default:
16441 : return -1;
16442 : }
16443 :
16444 : case 2:
16445 : switch (pattern500 (x2,
16446 : E_V2DFmode))
16447 : {
16448 : case 0:
16449 : if (!
16450 : #line 8601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16451 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16452 : return -1;
16453 : return 4799; /* *avx512fp16_vcvtpd2ph_v2df_mask */
16454 :
16455 : case 1:
16456 : if (!
16457 : #line 10507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16458 : (TARGET_AVX512VL))
16459 : return -1;
16460 : return 5199; /* *sse2_cvtpd2ps_mask */
16461 :
16462 : default:
16463 : return -1;
16464 : }
16465 :
16466 : default:
16467 : return -1;
16468 : }
16469 :
16470 : case CONST_INT:
16471 : case CONST_DOUBLE:
16472 : case CONST_VECTOR:
16473 : operands[3] = x8;
16474 : operands[2] = x4;
16475 : switch (GET_MODE (operands[0]))
16476 : {
16477 : case E_V8HFmode:
16478 : if (!register_operand (operands[0], E_V8HFmode)
16479 : || GET_MODE (x2) != E_V8HFmode)
16480 : return -1;
16481 : switch (GET_MODE (x3))
16482 : {
16483 : case E_V4HFmode:
16484 : if (GET_MODE (x5) != E_V4HFmode
16485 : || !const0_operand (operands[3], E_V4HFmode))
16486 : return -1;
16487 : switch (pattern1566 ())
16488 : {
16489 : case 0:
16490 : if (!
16491 : #line 8540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16492 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16493 : return -1;
16494 : return 4796; /* *avx512fp16_vcvtpd2ph_v4df_mask_1 */
16495 :
16496 : case 1:
16497 : if (!
16498 : #line 8540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16499 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16500 : return -1;
16501 : return 4797; /* *avx512fp16_vcvtps2ph_v4sf_mask_1 */
16502 :
16503 : default:
16504 : return -1;
16505 : }
16506 :
16507 : case E_V2HFmode:
16508 : if (pattern501 (x5,
16509 : E_V2DFmode) != 0
16510 : || !
16511 : #line 8616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16512 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
16513 : return -1;
16514 : return 4800; /* *avx512fp16_vcvtpd2ph_v2df_mask_1 */
16515 :
16516 : default:
16517 : return -1;
16518 : }
16519 :
16520 : case E_V4SFmode:
16521 : if (pattern502 (x2,
16522 : E_V2DFmode) != 0
16523 : || !
16524 : #line 10522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16525 : (TARGET_AVX512VL))
16526 : return -1;
16527 : return 5200; /* *sse2_cvtpd2ps_mask_1 */
16528 :
16529 : default:
16530 : return -1;
16531 : }
16532 :
16533 : default:
16534 : return -1;
16535 : }
16536 :
16537 : case UNSPEC:
16538 : switch (XVECLEN (x5, 0))
16539 : {
16540 : case 1:
16541 : x11 = XVECEXP (x5, 0, 0);
16542 : operands[1] = x11;
16543 : switch (XINT (x5, 1))
16544 : {
16545 : case 47:
16546 : switch (pattern920 (x2))
16547 : {
16548 : case 0:
16549 : if (!
16550 : #line 9802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16551 : (TARGET_AVX512VL))
16552 : return -1;
16553 : return 5046; /* sse2_cvtpd2dq_mask */
16554 :
16555 : case 1:
16556 : if (!
16557 : #line 9817 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16558 : (TARGET_AVX512VL))
16559 : return -1;
16560 : return 5047; /* *sse2_cvtpd2dq_mask_1 */
16561 :
16562 : default:
16563 : return -1;
16564 : }
16565 :
16566 : case 157:
16567 : switch (pattern920 (x2))
16568 : {
16569 : case 0:
16570 : if (!
16571 : #line 9863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16572 : (TARGET_AVX512VL))
16573 : return -1;
16574 : return 5057; /* fixuns_notruncv2dfv2si2_mask */
16575 :
16576 : case 1:
16577 : if (!
16578 : #line 9879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16579 : (TARGET_AVX512VL))
16580 : return -1;
16581 : return 5058; /* *fixuns_notruncv2dfv2si2_mask_1 */
16582 :
16583 : default:
16584 : return -1;
16585 : }
16586 :
16587 : case 174:
16588 : if (GET_MODE (x5) != E_V2SImode)
16589 : return -1;
16590 : x8 = XEXP (x3, 1);
16591 : if (pattern678 (x8,
16592 : 2,
16593 : E_V2SImode) != 0)
16594 : return -1;
16595 : x9 = XEXP (x8, 1);
16596 : x12 = XVECEXP (x9, 0, 0);
16597 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16598 : return -1;
16599 : x13 = XVECEXP (x9, 0, 1);
16600 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
16601 : return -1;
16602 : x7 = XEXP (x2, 1);
16603 : if (GET_CODE (x7) != CONST_VECTOR
16604 : || XVECLEN (x7, 0) != 2
16605 : || GET_MODE (x7) != E_V2SImode)
16606 : return -1;
16607 : x14 = XVECEXP (x7, 0, 0);
16608 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16609 : return -1;
16610 : x15 = XVECEXP (x7, 0, 1);
16611 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
16612 : || !register_operand (operands[0], E_V4SImode)
16613 : || GET_MODE (x2) != E_V4SImode
16614 : || GET_MODE (x3) != E_V2SImode
16615 : || !nonimmediate_operand (operands[1], E_V2DFmode))
16616 : return -1;
16617 : x10 = XEXP (x8, 0);
16618 : operands[2] = x10;
16619 : if (!nonimm_or_0_operand (operands[2], E_V4SImode))
16620 : return -1;
16621 : operands[3] = x4;
16622 : if (!
16623 : #line 9940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16624 : (TARGET_AVX512VL))
16625 : return -1;
16626 : return 5077; /* unspec_fixuns_truncv2dfv2si2_mask */
16627 :
16628 : case 254:
16629 : if (pattern921 (x2) != 0
16630 : || !
16631 : #line 32610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16632 : (TARGET_AVX10_2))
16633 : return -1;
16634 : return 10571; /* *vcvtph2bf8v8hf_mask */
16635 :
16636 : case 255:
16637 : if (pattern921 (x2) != 0
16638 : || !
16639 : #line 32610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16640 : (TARGET_AVX10_2))
16641 : return -1;
16642 : return 10572; /* *vcvtph2bf8sv8hf_mask */
16643 :
16644 : case 256:
16645 : if (pattern921 (x2) != 0
16646 : || !
16647 : #line 32610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16648 : (TARGET_AVX10_2))
16649 : return -1;
16650 : return 10573; /* *vcvtph2hf8v8hf_mask */
16651 :
16652 : case 257:
16653 : if (pattern921 (x2) != 0
16654 : || !
16655 : #line 32610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16656 : (TARGET_AVX10_2))
16657 : return -1;
16658 : return 10574; /* *vcvtph2hf8sv8hf_mask */
16659 :
16660 : default:
16661 : return -1;
16662 : }
16663 :
16664 : case 2:
16665 : x8 = XEXP (x3, 1);
16666 : if (pattern678 (x8,
16667 : 8,
16668 : E_V8QImode) != 0)
16669 : return -1;
16670 : x9 = XEXP (x8, 1);
16671 : x12 = XVECEXP (x9, 0, 0);
16672 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
16673 : return -1;
16674 : x13 = XVECEXP (x9, 0, 1);
16675 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
16676 : return -1;
16677 : x16 = XVECEXP (x9, 0, 2);
16678 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
16679 : || pattern1424 (x9,
16680 : 7,
16681 : 6,
16682 : 5,
16683 : 4,
16684 : 3) != 0
16685 : || !register_operand (operands[0], E_V16QImode)
16686 : || GET_MODE (x2) != E_V16QImode
16687 : || GET_MODE (x3) != E_V8QImode
16688 : || GET_MODE (x5) != E_V8QImode)
16689 : return -1;
16690 : x11 = XVECEXP (x5, 0, 0);
16691 : operands[1] = x11;
16692 : if (!register_operand (operands[1], E_V16QImode))
16693 : return -1;
16694 : x17 = XVECEXP (x5, 0, 1);
16695 : operands[2] = x17;
16696 : if (!nonimmediate_operand (operands[2], E_V8HFmode))
16697 : return -1;
16698 : x10 = XEXP (x8, 0);
16699 : operands[3] = x10;
16700 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
16701 : return -1;
16702 : operands[4] = x4;
16703 : x7 = XEXP (x2, 1);
16704 : operands[5] = x7;
16705 : if (!const0_operand (operands[5], E_V8QImode))
16706 : return -1;
16707 : switch (XINT (x5, 1))
16708 : {
16709 : case 246:
16710 : if (!
16711 : #line 32522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16712 : (TARGET_AVX10_2))
16713 : return -1;
16714 : return 10547; /* *vcvtbiasph2bf8v8hf_mask */
16715 :
16716 : case 247:
16717 : if (!
16718 : #line 32522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16719 : (TARGET_AVX10_2))
16720 : return -1;
16721 : return 10548; /* *vcvtbiasph2bf8sv8hf_mask */
16722 :
16723 : case 248:
16724 : if (!
16725 : #line 32522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16726 : (TARGET_AVX10_2))
16727 : return -1;
16728 : return 10549; /* *vcvtbiasph2hf8v8hf_mask */
16729 :
16730 : case 249:
16731 : if (!
16732 : #line 32522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16733 : (TARGET_AVX10_2))
16734 : return -1;
16735 : return 10550; /* *vcvtbiasph2hf8sv8hf_mask */
16736 :
16737 : default:
16738 : return -1;
16739 : }
16740 :
16741 : default:
16742 : return -1;
16743 : }
16744 :
16745 : case UNSIGNED_FIX:
16746 : switch (pattern505 (x2))
16747 : {
16748 : case 0:
16749 : if (!
16750 : #line 9956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_AVX512VL))
16752 : return -1;
16753 : return 5078; /* fixuns_truncv2dfv2si2_mask */
16754 :
16755 : case 1:
16756 : if (!
16757 : #line 9970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16758 : (TARGET_AVX512VL))
16759 : return -1;
16760 : return 5079; /* *fixuns_truncv2dfv2si2_mask_1 */
16761 :
16762 : default:
16763 : return -1;
16764 : }
16765 :
16766 : case FIX:
16767 : switch (pattern505 (x2))
16768 : {
16769 : case 0:
16770 : if (!
16771 : #line 10305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16772 : (TARGET_AVX512VL))
16773 : return -1;
16774 : return 5179; /* sse2_cvttpd2dq_mask */
16775 :
16776 : case 1:
16777 : if (!
16778 : #line 10319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16779 : (TARGET_AVX512VL))
16780 : return -1;
16781 : return 5180; /* *sse2_cvttpd2dq_mask_1 */
16782 :
16783 : default:
16784 : return -1;
16785 : }
16786 :
16787 : case SS_TRUNCATE:
16788 : switch (pattern511 (x2))
16789 : {
16790 : case 0:
16791 : if (!
16792 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16793 : (TARGET_AVX512VL))
16794 : return -1;
16795 : return 7338; /* avx512vl_ss_truncatev2div2qi2_mask */
16796 :
16797 : case 1:
16798 : if (!
16799 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16800 : (TARGET_AVX512VL))
16801 : return -1;
16802 : return 7453; /* avx512vl_ss_truncatev2div2hi2_mask */
16803 :
16804 : case 2:
16805 : if (!
16806 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16807 : (TARGET_AVX512VL))
16808 : return -1;
16809 : return 7472; /* avx512vl_ss_truncatev2div2si2_mask */
16810 :
16811 : case 3:
16812 : if (!
16813 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16814 : (TARGET_AVX512VL))
16815 : return -1;
16816 : return 7359; /* avx512vl_ss_truncatev4siv4qi2_mask */
16817 :
16818 : case 4:
16819 : if (!
16820 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16821 : (TARGET_AVX512VL))
16822 : return -1;
16823 : return 7362; /* avx512vl_ss_truncatev4div4qi2_mask */
16824 :
16825 : case 5:
16826 : if (!
16827 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16828 : (TARGET_AVX512VL))
16829 : return -1;
16830 : return 7429; /* avx512vl_ss_truncatev4siv4hi2_mask */
16831 :
16832 : case 6:
16833 : if (!
16834 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16835 : (TARGET_AVX512VL))
16836 : return -1;
16837 : return 7432; /* avx512vl_ss_truncatev4div4hi2_mask */
16838 :
16839 : case 7:
16840 : if (!(
16841 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16842 : (TARGET_AVX512VL) &&
16843 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16844 : (TARGET_AVX512BW)))
16845 : return -1;
16846 : return 7389; /* avx512vl_ss_truncatev8hiv8qi2_mask */
16847 :
16848 : case 8:
16849 : if (!
16850 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16851 : (TARGET_AVX512VL))
16852 : return -1;
16853 : return 7392; /* avx512vl_ss_truncatev8siv8qi2_mask */
16854 :
16855 : case 9:
16856 : if (!
16857 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16858 : (TARGET_AVX512F))
16859 : return -1;
16860 : return 7490; /* avx512f_ss_truncatev8div16qi2_mask */
16861 :
16862 : case 10:
16863 : if (!
16864 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16865 : (TARGET_AVX512VL))
16866 : return -1;
16867 : return 7341; /* *avx512vl_ss_truncatev2div2qi2_mask_1 */
16868 :
16869 : case 11:
16870 : if (!
16871 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16872 : (TARGET_AVX512VL))
16873 : return -1;
16874 : return 7456; /* *avx512vl_ss_truncatev2div2hi2_mask_1 */
16875 :
16876 : case 12:
16877 : if (!
16878 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16879 : (TARGET_AVX512VL))
16880 : return -1;
16881 : return 7475; /* *avx512vl_ss_truncatev2div2si2_mask_1 */
16882 :
16883 : case 13:
16884 : if (!
16885 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16886 : (TARGET_AVX512VL))
16887 : return -1;
16888 : return 7365; /* *avx512vl_ss_truncatev4siv4qi2_mask_1 */
16889 :
16890 : case 14:
16891 : if (!
16892 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16893 : (TARGET_AVX512VL))
16894 : return -1;
16895 : return 7368; /* *avx512vl_ss_truncatev4div4qi2_mask_1 */
16896 :
16897 : case 15:
16898 : if (!
16899 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16900 : (TARGET_AVX512VL))
16901 : return -1;
16902 : return 7435; /* *avx512vl_ss_truncatev4siv4hi2_mask_1 */
16903 :
16904 : case 16:
16905 : if (!
16906 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16907 : (TARGET_AVX512VL))
16908 : return -1;
16909 : return 7438; /* *avx512vl_ss_truncatev4div4hi2_mask_1 */
16910 :
16911 : case 17:
16912 : if (!(
16913 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16914 : (TARGET_AVX512VL) &&
16915 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16916 : (TARGET_AVX512BW)))
16917 : return -1;
16918 : return 7395; /* *avx512vl_ss_truncatev8hiv8qi2_mask_1 */
16919 :
16920 : case 18:
16921 : if (!
16922 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16923 : (TARGET_AVX512VL))
16924 : return -1;
16925 : return 7398; /* *avx512vl_ss_truncatev8siv8qi2_mask_1 */
16926 :
16927 : case 19:
16928 : if (!
16929 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16930 : (TARGET_AVX512F))
16931 : return -1;
16932 : return 7493; /* *avx512f_ss_truncatev8div16qi2_mask_1 */
16933 :
16934 : default:
16935 : return -1;
16936 : }
16937 :
16938 : case TRUNCATE:
16939 : switch (pattern511 (x2))
16940 : {
16941 : case 0:
16942 : if (!
16943 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16944 : (TARGET_AVX512VL))
16945 : return -1;
16946 : return 7339; /* avx512vl_truncatev2div2qi2_mask */
16947 :
16948 : case 1:
16949 : if (!
16950 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16951 : (TARGET_AVX512VL))
16952 : return -1;
16953 : return 7454; /* avx512vl_truncatev2div2hi2_mask */
16954 :
16955 : case 2:
16956 : if (!
16957 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16958 : (TARGET_AVX512VL))
16959 : return -1;
16960 : return 7473; /* avx512vl_truncatev2div2si2_mask */
16961 :
16962 : case 3:
16963 : if (!
16964 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16965 : (TARGET_AVX512VL))
16966 : return -1;
16967 : return 7360; /* avx512vl_truncatev4siv4qi2_mask */
16968 :
16969 : case 4:
16970 : if (!
16971 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16972 : (TARGET_AVX512VL))
16973 : return -1;
16974 : return 7363; /* avx512vl_truncatev4div4qi2_mask */
16975 :
16976 : case 5:
16977 : if (!
16978 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16979 : (TARGET_AVX512VL))
16980 : return -1;
16981 : return 7430; /* avx512vl_truncatev4siv4hi2_mask */
16982 :
16983 : case 6:
16984 : if (!
16985 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16986 : (TARGET_AVX512VL))
16987 : return -1;
16988 : return 7433; /* avx512vl_truncatev4div4hi2_mask */
16989 :
16990 : case 7:
16991 : if (!(
16992 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16993 : (TARGET_AVX512VL) &&
16994 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16995 : (TARGET_AVX512BW)))
16996 : return -1;
16997 : return 7390; /* avx512vl_truncatev8hiv8qi2_mask */
16998 :
16999 : case 8:
17000 : if (!
17001 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17002 : (TARGET_AVX512VL))
17003 : return -1;
17004 : return 7393; /* avx512vl_truncatev8siv8qi2_mask */
17005 :
17006 : case 9:
17007 : if (!
17008 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17009 : (TARGET_AVX512F))
17010 : return -1;
17011 : return 7491; /* avx512f_truncatev8div16qi2_mask */
17012 :
17013 : case 10:
17014 : if (!
17015 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17016 : (TARGET_AVX512VL))
17017 : return -1;
17018 : return 7342; /* *avx512vl_truncatev2div2qi2_mask_1 */
17019 :
17020 : case 11:
17021 : if (!
17022 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17023 : (TARGET_AVX512VL))
17024 : return -1;
17025 : return 7457; /* *avx512vl_truncatev2div2hi2_mask_1 */
17026 :
17027 : case 12:
17028 : if (!
17029 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17030 : (TARGET_AVX512VL))
17031 : return -1;
17032 : return 7476; /* *avx512vl_truncatev2div2si2_mask_1 */
17033 :
17034 : case 13:
17035 : if (!
17036 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17037 : (TARGET_AVX512VL))
17038 : return -1;
17039 : return 7366; /* *avx512vl_truncatev4siv4qi2_mask_1 */
17040 :
17041 : case 14:
17042 : if (!
17043 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17044 : (TARGET_AVX512VL))
17045 : return -1;
17046 : return 7369; /* *avx512vl_truncatev4div4qi2_mask_1 */
17047 :
17048 : case 15:
17049 : if (!
17050 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17051 : (TARGET_AVX512VL))
17052 : return -1;
17053 : return 7436; /* *avx512vl_truncatev4siv4hi2_mask_1 */
17054 :
17055 : case 16:
17056 : if (!
17057 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17058 : (TARGET_AVX512VL))
17059 : return -1;
17060 : return 7439; /* *avx512vl_truncatev4div4hi2_mask_1 */
17061 :
17062 : case 17:
17063 : if (!(
17064 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17065 : (TARGET_AVX512VL) &&
17066 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17067 : (TARGET_AVX512BW)))
17068 : return -1;
17069 : return 7396; /* *avx512vl_truncatev8hiv8qi2_mask_1 */
17070 :
17071 : case 18:
17072 : if (!
17073 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17074 : (TARGET_AVX512VL))
17075 : return -1;
17076 : return 7399; /* *avx512vl_truncatev8siv8qi2_mask_1 */
17077 :
17078 : case 19:
17079 : if (!
17080 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17081 : (TARGET_AVX512F))
17082 : return -1;
17083 : return 7494; /* *avx512f_truncatev8div16qi2_mask_1 */
17084 :
17085 : default:
17086 : return -1;
17087 : }
17088 :
17089 : case US_TRUNCATE:
17090 : switch (pattern511 (x2))
17091 : {
17092 : case 0:
17093 : if (!
17094 : #line 15761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17095 : (TARGET_AVX512VL))
17096 : return -1;
17097 : return 7340; /* avx512vl_us_truncatev2div2qi2_mask */
17098 :
17099 : case 1:
17100 : if (!
17101 : #line 16203 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17102 : (TARGET_AVX512VL))
17103 : return -1;
17104 : return 7455; /* avx512vl_us_truncatev2div2hi2_mask */
17105 :
17106 : case 2:
17107 : if (!
17108 : #line 16351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17109 : (TARGET_AVX512VL))
17110 : return -1;
17111 : return 7474; /* avx512vl_us_truncatev2div2si2_mask */
17112 :
17113 : case 3:
17114 : if (!
17115 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17116 : (TARGET_AVX512VL))
17117 : return -1;
17118 : return 7361; /* avx512vl_us_truncatev4siv4qi2_mask */
17119 :
17120 : case 4:
17121 : if (!
17122 : #line 15856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17123 : (TARGET_AVX512VL))
17124 : return -1;
17125 : return 7364; /* avx512vl_us_truncatev4div4qi2_mask */
17126 :
17127 : case 5:
17128 : if (!
17129 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17130 : (TARGET_AVX512VL))
17131 : return -1;
17132 : return 7431; /* avx512vl_us_truncatev4siv4hi2_mask */
17133 :
17134 : case 6:
17135 : if (!
17136 : #line 16112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17137 : (TARGET_AVX512VL))
17138 : return -1;
17139 : return 7434; /* avx512vl_us_truncatev4div4hi2_mask */
17140 :
17141 : case 7:
17142 : if (!(
17143 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17144 : (TARGET_AVX512VL) &&
17145 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17146 : (TARGET_AVX512BW)))
17147 : return -1;
17148 : return 7391; /* avx512vl_us_truncatev8hiv8qi2_mask */
17149 :
17150 : case 8:
17151 : if (!
17152 : #line 15954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17153 : (TARGET_AVX512VL))
17154 : return -1;
17155 : return 7394; /* avx512vl_us_truncatev8siv8qi2_mask */
17156 :
17157 : case 9:
17158 : if (!
17159 : #line 16470 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17160 : (TARGET_AVX512F))
17161 : return -1;
17162 : return 7492; /* avx512f_us_truncatev8div16qi2_mask */
17163 :
17164 : case 10:
17165 : if (!
17166 : #line 15782 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17167 : (TARGET_AVX512VL))
17168 : return -1;
17169 : return 7343; /* *avx512vl_us_truncatev2div2qi2_mask_1 */
17170 :
17171 : case 11:
17172 : if (!
17173 : #line 16220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17174 : (TARGET_AVX512VL))
17175 : return -1;
17176 : return 7458; /* *avx512vl_us_truncatev2div2hi2_mask_1 */
17177 :
17178 : case 12:
17179 : if (!
17180 : #line 16366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17181 : (TARGET_AVX512VL))
17182 : return -1;
17183 : return 7477; /* *avx512vl_us_truncatev2div2si2_mask_1 */
17184 :
17185 : case 13:
17186 : if (!
17187 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17188 : (TARGET_AVX512VL))
17189 : return -1;
17190 : return 7367; /* *avx512vl_us_truncatev4siv4qi2_mask_1 */
17191 :
17192 : case 14:
17193 : if (!
17194 : #line 15877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17195 : (TARGET_AVX512VL))
17196 : return -1;
17197 : return 7370; /* *avx512vl_us_truncatev4div4qi2_mask_1 */
17198 :
17199 : case 15:
17200 : if (!
17201 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17202 : (TARGET_AVX512VL))
17203 : return -1;
17204 : return 7437; /* *avx512vl_us_truncatev4siv4hi2_mask_1 */
17205 :
17206 : case 16:
17207 : if (!
17208 : #line 16129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17209 : (TARGET_AVX512VL))
17210 : return -1;
17211 : return 7440; /* *avx512vl_us_truncatev4div4hi2_mask_1 */
17212 :
17213 : case 17:
17214 : if (!(
17215 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17216 : (TARGET_AVX512VL) &&
17217 : #line 15912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17218 : (TARGET_AVX512BW)))
17219 : return -1;
17220 : return 7397; /* *avx512vl_us_truncatev8hiv8qi2_mask_1 */
17221 :
17222 : case 18:
17223 : if (!
17224 : #line 15975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17225 : (TARGET_AVX512VL))
17226 : return -1;
17227 : return 7400; /* *avx512vl_us_truncatev8siv8qi2_mask_1 */
17228 :
17229 : case 19:
17230 : if (!
17231 : #line 16491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17232 : (TARGET_AVX512F))
17233 : return -1;
17234 : return 7495; /* *avx512f_us_truncatev8div16qi2_mask_1 */
17235 :
17236 : default:
17237 : return -1;
17238 : }
17239 :
17240 : default:
17241 : return -1;
17242 : }
17243 : }
17244 :
17245 : int
17246 : recog_292 (rtx x1 ATTRIBUTE_UNUSED,
17247 : rtx_insn *insn ATTRIBUTE_UNUSED,
17248 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17249 : {
17250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17251 : rtx x2, x3, x4, x5, x6, x7;
17252 : int res ATTRIBUTE_UNUSED;
17253 : x2 = XEXP (x1, 1);
17254 : x3 = XEXP (x2, 1);
17255 : x4 = XVECEXP (x3, 0, 0);
17256 : if (GET_CODE (x4) != CONST_INT)
17257 : return -1;
17258 : operands[2] = x4;
17259 : res = recog_291 (x1, insn, pnum_clobbers);
17260 : if (res >= 0)
17261 : return res;
17262 : x5 = XVECEXP (x3, 0, 1);
17263 : if (GET_CODE (x5) != CONST_INT)
17264 : return -1;
17265 : x6 = XVECEXP (x3, 0, 2);
17266 : if (GET_CODE (x6) != CONST_INT)
17267 : return -1;
17268 : x7 = XVECEXP (x3, 0, 3);
17269 : if (GET_CODE (x7) != CONST_INT)
17270 : return -1;
17271 : switch (XWINT (x4, 0))
17272 : {
17273 : case 0L:
17274 : if (XWINT (x5, 0) != 1L
17275 : || XWINT (x6, 0) != 2L
17276 : || XWINT (x7, 0) != 3L)
17277 : return -1;
17278 : switch (GET_MODE (operands[0]))
17279 : {
17280 : case E_V4DFmode:
17281 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
17282 : || GET_MODE (x2) != E_V4DFmode
17283 : || !nonimmediate_operand (operands[1], E_V8DFmode)
17284 : || !
17285 : #line 12962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17286 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17287 : return -1;
17288 : return 5360; /* vec_extract_lo_v8df */
17289 :
17290 : case E_V4DImode:
17291 : if (!nonimmediate_operand (operands[0], E_V4DImode)
17292 : || GET_MODE (x2) != E_V4DImode
17293 : || !nonimmediate_operand (operands[1], E_V8DImode)
17294 : || !
17295 : #line 12962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17296 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17297 : return -1;
17298 : return 5361; /* vec_extract_lo_v8di */
17299 :
17300 : case E_V4SImode:
17301 : if (!nonimmediate_operand (operands[0], E_V4SImode)
17302 : || GET_MODE (x2) != E_V4SImode
17303 : || !nonimmediate_operand (operands[1], E_V8SImode)
17304 : || !
17305 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17306 : (TARGET_AVX
17307 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17308 : return -1;
17309 : return 5384; /* vec_extract_lo_v8si */
17310 :
17311 : case E_V4SFmode:
17312 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
17313 : || GET_MODE (x2) != E_V4SFmode
17314 : || !nonimmediate_operand (operands[1], E_V8SFmode)
17315 : || !
17316 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17317 : (TARGET_AVX
17318 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
17319 : return -1;
17320 : return 5385; /* vec_extract_lo_v8sf */
17321 :
17322 : default:
17323 : return -1;
17324 : }
17325 :
17326 : case 4L:
17327 : if (XWINT (x5, 0) != 5L
17328 : || XWINT (x6, 0) != 6L
17329 : || XWINT (x7, 0) != 7L)
17330 : return -1;
17331 : switch (GET_MODE (operands[0]))
17332 : {
17333 : case E_V4DFmode:
17334 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
17335 : || GET_MODE (x2) != E_V4DFmode
17336 : || !register_operand (operands[1], E_V8DFmode)
17337 : || !
17338 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17339 : (TARGET_AVX512F))
17340 : return -1;
17341 : return 5364; /* vec_extract_hi_v8df */
17342 :
17343 : case E_V4DImode:
17344 : if (!nonimmediate_operand (operands[0], E_V4DImode)
17345 : || GET_MODE (x2) != E_V4DImode
17346 : || !register_operand (operands[1], E_V8DImode)
17347 : || !
17348 : #line 12998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17349 : (TARGET_AVX512F))
17350 : return -1;
17351 : return 5365; /* vec_extract_hi_v8di */
17352 :
17353 : case E_V4SImode:
17354 : if (!nonimmediate_operand (operands[0], E_V4SImode)
17355 : || GET_MODE (x2) != E_V4SImode
17356 : || !register_operand (operands[1], E_V8SImode)
17357 : || !
17358 : #line 13327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17359 : (TARGET_AVX))
17360 : return -1;
17361 : return 5388; /* vec_extract_hi_v8si */
17362 :
17363 : case E_V4SFmode:
17364 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
17365 : || GET_MODE (x2) != E_V4SFmode
17366 : || !register_operand (operands[1], E_V8SFmode)
17367 : || !
17368 : #line 13327 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17369 : (TARGET_AVX))
17370 : return -1;
17371 : return 5389; /* vec_extract_hi_v8sf */
17372 :
17373 : default:
17374 : return -1;
17375 : }
17376 :
17377 : default:
17378 : return -1;
17379 : }
17380 : }
17381 :
17382 : int
17383 : recog_299 (rtx x1 ATTRIBUTE_UNUSED,
17384 : rtx_insn *insn ATTRIBUTE_UNUSED,
17385 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17386 : {
17387 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17388 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
17389 : rtx x10, x11;
17390 : int res ATTRIBUTE_UNUSED;
17391 : x2 = XEXP (x1, 1);
17392 : x3 = XEXP (x2, 1);
17393 : x4 = XVECEXP (x3, 0, 4);
17394 : if (GET_CODE (x4) != CONST_INT)
17395 : return -1;
17396 : operands[6] = x4;
17397 : res = recog_298 (x1, insn, pnum_clobbers);
17398 : if (res >= 0)
17399 : return res;
17400 : if (XWINT (x4, 0) != 4L)
17401 : return -1;
17402 : x5 = XVECEXP (x3, 0, 5);
17403 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
17404 : return -1;
17405 : x6 = XVECEXP (x3, 0, 6);
17406 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
17407 : return -1;
17408 : x7 = XVECEXP (x3, 0, 7);
17409 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
17410 : || pattern1426 (x3) != 0
17411 : || !register_operand (operands[0], E_V16HImode)
17412 : || GET_MODE (x2) != E_V16HImode
17413 : || !nonimmediate_operand (operands[1], E_V16HImode)
17414 : || pattern754 (x3) != 0)
17415 : return -1;
17416 : x8 = XVECEXP (x3, 0, 8);
17417 : operands[6] = x8;
17418 : if (!const_8_to_11_operand (operands[6], E_VOIDmode))
17419 : return -1;
17420 : x9 = XVECEXP (x3, 0, 9);
17421 : operands[7] = x9;
17422 : if (!const_8_to_11_operand (operands[7], E_VOIDmode))
17423 : return -1;
17424 : x10 = XVECEXP (x3, 0, 10);
17425 : operands[8] = x10;
17426 : if (!const_8_to_11_operand (operands[8], E_VOIDmode))
17427 : return -1;
17428 : x11 = XVECEXP (x3, 0, 11);
17429 : operands[9] = x11;
17430 : if (!const_8_to_11_operand (operands[9], E_VOIDmode)
17431 : || !
17432 : #line 21120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17433 : (TARGET_AVX2
17434 : && 1 && 1
17435 : && INTVAL (operands[2]) + 8 == INTVAL (operands[6])
17436 : && INTVAL (operands[3]) + 8 == INTVAL (operands[7])
17437 : && INTVAL (operands[4]) + 8 == INTVAL (operands[8])
17438 : && INTVAL (operands[5]) + 8 == INTVAL (operands[9])))
17439 : return -1;
17440 : return 8490; /* avx2_pshuflw_1 */
17441 : }
17442 :
17443 : int
17444 : recog_304 (rtx x1 ATTRIBUTE_UNUSED,
17445 : rtx_insn *insn ATTRIBUTE_UNUSED,
17446 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17447 : {
17448 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17449 : rtx x2, x3, x4, x5, x6, x7;
17450 : int res ATTRIBUTE_UNUSED;
17451 : x2 = XEXP (x1, 1);
17452 : x3 = XEXP (x2, 0);
17453 : x4 = XEXP (x3, 1);
17454 : if (GET_CODE (x4) != PARALLEL)
17455 : return -1;
17456 : x5 = XEXP (x3, 0);
17457 : operands[1] = x5;
17458 : switch (XVECLEN (x4, 0))
17459 : {
17460 : case 1:
17461 : x6 = XVECEXP (x4, 0, 0);
17462 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
17463 : return -1;
17464 : switch (GET_MODE (operands[0]))
17465 : {
17466 : case E_V8SFmode:
17467 : if (!register_operand (operands[0], E_V8SFmode)
17468 : || GET_MODE (x2) != E_V8SFmode
17469 : || GET_MODE (x3) != E_SFmode)
17470 : return -1;
17471 : switch (GET_MODE (operands[1]))
17472 : {
17473 : case E_V4SFmode:
17474 : if (register_operand (operands[1], E_V4SFmode)
17475 : && (
17476 : #line 12042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17477 : (TARGET_AVX2) &&
17478 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17479 : (TARGET_AVX)))
17480 : return 5295; /* avx2_vec_dupv8sf */
17481 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17482 : || !(
17483 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17484 : (TARGET_AVX512F) &&
17485 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17486 : (TARGET_AVX512VL)))
17487 : return -1;
17488 : return 9266; /* avx512vl_vec_dupv8sf */
17489 :
17490 : case E_V8SFmode:
17491 : if (!register_operand (operands[1], E_V8SFmode)
17492 : || !
17493 : #line 12054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17494 : (TARGET_AVX2))
17495 : return -1;
17496 : return 5297; /* avx2_vec_dupv8sf_1 */
17497 :
17498 : default:
17499 : return -1;
17500 : }
17501 :
17502 : case E_V4SFmode:
17503 : if (!register_operand (operands[0], E_V4SFmode)
17504 : || GET_MODE (x2) != E_V4SFmode
17505 : || GET_MODE (x3) != E_SFmode)
17506 : return -1;
17507 : if (register_operand (operands[1], E_V4SFmode)
17508 : &&
17509 : #line 12042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17510 : (TARGET_AVX2))
17511 : return 5296; /* avx2_vec_dupv4sf */
17512 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17513 : || !(
17514 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17515 : (TARGET_AVX512F) &&
17516 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17517 : (TARGET_AVX512VL)))
17518 : return -1;
17519 : return 9268; /* avx512vl_vec_dupv4sf */
17520 :
17521 : case E_V16SFmode:
17522 : if (!register_operand (operands[0], E_V16SFmode)
17523 : || GET_MODE (x2) != E_V16SFmode
17524 : || GET_MODE (x3) != E_SFmode)
17525 : return -1;
17526 : switch (GET_MODE (operands[1]))
17527 : {
17528 : case E_V16SFmode:
17529 : if (!register_operand (operands[1], E_V16SFmode)
17530 : || !
17531 : #line 12066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17532 : (TARGET_AVX512F))
17533 : return -1;
17534 : return 5298; /* avx512f_vec_dupv16sf_1 */
17535 :
17536 : case E_V4SFmode:
17537 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
17538 : || !
17539 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17540 : (TARGET_AVX512F))
17541 : return -1;
17542 : return 9264; /* avx512f_vec_dupv16sf */
17543 :
17544 : default:
17545 : return -1;
17546 : }
17547 :
17548 : case E_V8DFmode:
17549 : if (!register_operand (operands[0], E_V8DFmode)
17550 : || GET_MODE (x2) != E_V8DFmode
17551 : || GET_MODE (x3) != E_DFmode)
17552 : return -1;
17553 : switch (GET_MODE (operands[1]))
17554 : {
17555 : case E_V8DFmode:
17556 : if (!register_operand (operands[1], E_V8DFmode)
17557 : || !
17558 : #line 12066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17559 : (TARGET_AVX512F))
17560 : return -1;
17561 : return 5299; /* avx512f_vec_dupv8df_1 */
17562 :
17563 : case E_V2DFmode:
17564 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
17565 : || !
17566 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17567 : (TARGET_AVX512F))
17568 : return -1;
17569 : return 9270; /* avx512f_vec_dupv8df */
17570 :
17571 : default:
17572 : return -1;
17573 : }
17574 :
17575 : case E_V16SImode:
17576 : if (!register_operand (operands[0], E_V16SImode)
17577 : || GET_MODE (x2) != E_V16SImode
17578 : || GET_MODE (x3) != E_SImode)
17579 : return -1;
17580 : switch (GET_MODE (operands[1]))
17581 : {
17582 : case E_V4SImode:
17583 : if (!nonimmediate_operand (operands[1], E_V4SImode))
17584 : return -1;
17585 : if ((
17586 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17587 : (TARGET_AVX2) &&
17588 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17589 : (TARGET_AVX512F)))
17590 : return 9145; /* avx2_pbroadcastv16si */
17591 : if (!
17592 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17593 : (TARGET_AVX512F))
17594 : return -1;
17595 : return 9252; /* avx512f_vec_dupv16si */
17596 :
17597 : case E_V16SImode:
17598 : if (!nonimmediate_operand (operands[1], E_V16SImode)
17599 : || !
17600 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17601 : (TARGET_AVX512F))
17602 : return -1;
17603 : return 9246; /* avx512f_vec_dupv16si_1 */
17604 :
17605 : default:
17606 : return -1;
17607 : }
17608 :
17609 : case E_V8DImode:
17610 : if (!register_operand (operands[0], E_V8DImode)
17611 : || GET_MODE (x2) != E_V8DImode
17612 : || GET_MODE (x3) != E_DImode)
17613 : return -1;
17614 : switch (GET_MODE (operands[1]))
17615 : {
17616 : case E_V2DImode:
17617 : if (!nonimmediate_operand (operands[1], E_V2DImode))
17618 : return -1;
17619 : if ((
17620 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17621 : (TARGET_AVX2) &&
17622 : #line 564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17623 : (TARGET_AVX512F)))
17624 : return 9146; /* avx2_pbroadcastv8di */
17625 : if (!
17626 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17627 : (TARGET_AVX512F))
17628 : return -1;
17629 : return 9258; /* avx512f_vec_dupv8di */
17630 :
17631 : case E_V8DImode:
17632 : if (!nonimmediate_operand (operands[1], E_V8DImode)
17633 : || !
17634 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17635 : (TARGET_AVX512F))
17636 : return -1;
17637 : return 9247; /* avx512f_vec_dupv8di_1 */
17638 :
17639 : default:
17640 : return -1;
17641 : }
17642 :
17643 : case E_V64QImode:
17644 : if (!register_operand (operands[0], E_V64QImode)
17645 : || GET_MODE (x2) != E_V64QImode
17646 : || GET_MODE (x3) != E_QImode)
17647 : return -1;
17648 : switch (GET_MODE (operands[1]))
17649 : {
17650 : case E_V16QImode:
17651 : if (!nonimmediate_operand (operands[1], E_V16QImode))
17652 : return -1;
17653 : if ((
17654 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17655 : (TARGET_AVX2) &&
17656 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17657 : (TARGET_AVX512BW)))
17658 : return 9147; /* avx2_pbroadcastv64qi */
17659 : if (!
17660 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17661 : (TARGET_AVX512BW))
17662 : return -1;
17663 : return 9276; /* avx512bw_vec_dupv64qi */
17664 :
17665 : case E_V64QImode:
17666 : if (!nonimmediate_operand (operands[1], E_V64QImode)
17667 : || !(
17668 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17669 : (TARGET_AVX512F) &&
17670 : #line 968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17671 : (TARGET_AVX512BW)))
17672 : return -1;
17673 : return 9249; /* avx512bw_vec_dupv64qi_1 */
17674 :
17675 : default:
17676 : return -1;
17677 : }
17678 :
17679 : case E_V32QImode:
17680 : if (!register_operand (operands[0], E_V32QImode)
17681 : || GET_MODE (x2) != E_V32QImode
17682 : || GET_MODE (x3) != E_QImode)
17683 : return -1;
17684 : switch (GET_MODE (operands[1]))
17685 : {
17686 : case E_V16QImode:
17687 : if (!nonimmediate_operand (operands[1], E_V16QImode))
17688 : return -1;
17689 : if ((
17690 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17691 : (TARGET_AVX2) &&
17692 : #line 565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17693 : (TARGET_AVX)))
17694 : return 9148; /* avx2_pbroadcastv32qi */
17695 : if (!(
17696 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17697 : (TARGET_AVX512BW) &&
17698 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17699 : (TARGET_AVX512VL)))
17700 : return -1;
17701 : return 9280; /* avx512vl_vec_dupv32qi */
17702 :
17703 : case E_V32QImode:
17704 : if (!nonimmediate_operand (operands[1], E_V32QImode)
17705 : || !
17706 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17707 : (TARGET_AVX2))
17708 : return -1;
17709 : return 9163; /* avx2_pbroadcastv32qi_1 */
17710 :
17711 : default:
17712 : return -1;
17713 : }
17714 :
17715 : case E_V16QImode:
17716 : if (pattern932 (x2,
17717 : E_V16QImode,
17718 : E_QImode) != 0)
17719 : return -1;
17720 : if (
17721 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17722 : (TARGET_AVX2))
17723 : return 9149; /* avx2_pbroadcastv16qi */
17724 : if (!(
17725 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17726 : (TARGET_AVX512BW) &&
17727 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17728 : (TARGET_AVX512VL)))
17729 : return -1;
17730 : return 9278; /* avx512vl_vec_dupv16qi */
17731 :
17732 : case E_V32HImode:
17733 : if (!register_operand (operands[0], E_V32HImode)
17734 : || GET_MODE (x2) != E_V32HImode
17735 : || GET_MODE (x3) != E_HImode)
17736 : return -1;
17737 : switch (GET_MODE (operands[1]))
17738 : {
17739 : case E_V8HImode:
17740 : if (!nonimmediate_operand (operands[1], E_V8HImode))
17741 : return -1;
17742 : if ((
17743 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17744 : (TARGET_AVX2) &&
17745 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17746 : (TARGET_AVX512BW)))
17747 : return 9150; /* avx2_pbroadcastv32hi */
17748 : if (!
17749 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17750 : (TARGET_AVX512BW))
17751 : return -1;
17752 : return 9282; /* avx512bw_vec_dupv32hi */
17753 :
17754 : case E_V32HImode:
17755 : if (!nonimmediate_operand (operands[1], E_V32HImode)
17756 : || !(
17757 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17758 : (TARGET_AVX512F) &&
17759 : #line 968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17760 : (TARGET_AVX512BW)))
17761 : return -1;
17762 : return 9248; /* avx512bw_vec_dupv32hi_1 */
17763 :
17764 : default:
17765 : return -1;
17766 : }
17767 :
17768 : case E_V16HImode:
17769 : if (!register_operand (operands[0], E_V16HImode)
17770 : || GET_MODE (x2) != E_V16HImode
17771 : || GET_MODE (x3) != E_HImode)
17772 : return -1;
17773 : switch (GET_MODE (operands[1]))
17774 : {
17775 : case E_V8HImode:
17776 : if (!nonimmediate_operand (operands[1], E_V8HImode))
17777 : return -1;
17778 : if ((
17779 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17780 : (TARGET_AVX2) &&
17781 : #line 566 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17782 : (TARGET_AVX)))
17783 : return 9151; /* avx2_pbroadcastv16hi */
17784 : if (!(
17785 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17786 : (TARGET_AVX512BW) &&
17787 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17788 : (TARGET_AVX512VL)))
17789 : return -1;
17790 : return 9284; /* avx512vl_vec_dupv16hi */
17791 :
17792 : case E_V16HImode:
17793 : if (!nonimmediate_operand (operands[1], E_V16HImode)
17794 : || !
17795 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17796 : (TARGET_AVX2))
17797 : return -1;
17798 : return 9164; /* avx2_pbroadcastv16hi_1 */
17799 :
17800 : default:
17801 : return -1;
17802 : }
17803 :
17804 : case E_V8HImode:
17805 : if (pattern932 (x2,
17806 : E_V8HImode,
17807 : E_HImode) != 0)
17808 : return -1;
17809 : if (
17810 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17811 : (TARGET_AVX2))
17812 : return 9152; /* avx2_pbroadcastv8hi */
17813 : if (!(
17814 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17815 : (TARGET_AVX512BW) &&
17816 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17817 : (TARGET_AVX512VL)))
17818 : return -1;
17819 : return 9286; /* avx512vl_vec_dupv8hi */
17820 :
17821 : case E_V8SImode:
17822 : if (!register_operand (operands[0], E_V8SImode)
17823 : || GET_MODE (x2) != E_V8SImode
17824 : || GET_MODE (x3) != E_SImode)
17825 : return -1;
17826 : switch (GET_MODE (operands[1]))
17827 : {
17828 : case E_V4SImode:
17829 : if (!nonimmediate_operand (operands[1], E_V4SImode))
17830 : return -1;
17831 : if ((
17832 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17833 : (TARGET_AVX2) &&
17834 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17835 : (TARGET_AVX)))
17836 : return 9153; /* avx2_pbroadcastv8si */
17837 : if (!(
17838 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17839 : (TARGET_AVX512F) &&
17840 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17841 : (TARGET_AVX512VL)))
17842 : return -1;
17843 : return 9254; /* avx512vl_vec_dupv8si */
17844 :
17845 : case E_V8SImode:
17846 : if (!nonimmediate_operand (operands[1], E_V8SImode)
17847 : || !
17848 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17849 : (TARGET_AVX2))
17850 : return -1;
17851 : return 9165; /* avx2_pbroadcastv8si_1 */
17852 :
17853 : default:
17854 : return -1;
17855 : }
17856 :
17857 : case E_V4SImode:
17858 : if (pattern932 (x2,
17859 : E_V4SImode,
17860 : E_SImode) != 0)
17861 : return -1;
17862 : if (
17863 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17864 : (TARGET_AVX2))
17865 : return 9154; /* avx2_pbroadcastv4si */
17866 : if (!(
17867 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17868 : (TARGET_AVX512F) &&
17869 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17870 : (TARGET_AVX512VL)))
17871 : return -1;
17872 : return 9256; /* avx512vl_vec_dupv4si */
17873 :
17874 : case E_V4DImode:
17875 : if (!register_operand (operands[0], E_V4DImode)
17876 : || GET_MODE (x2) != E_V4DImode
17877 : || GET_MODE (x3) != E_DImode)
17878 : return -1;
17879 : switch (GET_MODE (operands[1]))
17880 : {
17881 : case E_V2DImode:
17882 : if (!nonimmediate_operand (operands[1], E_V2DImode))
17883 : return -1;
17884 : if ((
17885 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17886 : (TARGET_AVX2) &&
17887 : #line 567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17888 : (TARGET_AVX)))
17889 : return 9155; /* avx2_pbroadcastv4di */
17890 : if (!(
17891 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17892 : (TARGET_AVX512F) &&
17893 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17894 : (TARGET_AVX512VL)))
17895 : return -1;
17896 : return 9260; /* avx512vl_vec_dupv4di */
17897 :
17898 : case E_V4DImode:
17899 : if (!nonimmediate_operand (operands[1], E_V4DImode)
17900 : || !
17901 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17902 : (TARGET_AVX2))
17903 : return -1;
17904 : return 9166; /* avx2_pbroadcastv4di_1 */
17905 :
17906 : default:
17907 : return -1;
17908 : }
17909 :
17910 : case E_V2DImode:
17911 : if (pattern932 (x2,
17912 : E_V2DImode,
17913 : E_DImode) != 0)
17914 : return -1;
17915 : if (
17916 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17917 : (TARGET_AVX2))
17918 : return 9156; /* avx2_pbroadcastv2di */
17919 : if (!(
17920 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17921 : (TARGET_AVX512F) &&
17922 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17923 : (TARGET_AVX512VL)))
17924 : return -1;
17925 : return 9262; /* avx512vl_vec_dupv2di */
17926 :
17927 : case E_V32HFmode:
17928 : if (!register_operand (operands[0], E_V32HFmode)
17929 : || GET_MODE (x2) != E_V32HFmode
17930 : || GET_MODE (x3) != E_HFmode)
17931 : return -1;
17932 : switch (GET_MODE (operands[1]))
17933 : {
17934 : case E_V8HFmode:
17935 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17936 : return -1;
17937 : if ((
17938 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17939 : (TARGET_AVX2) &&
17940 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17941 : (TARGET_AVX512BW)))
17942 : return 9157; /* avx2_pbroadcastv32hf */
17943 : if (!
17944 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17945 : (TARGET_AVX512BW))
17946 : return -1;
17947 : return 9288; /* avx512bw_vec_dupv32hf */
17948 :
17949 : case E_V32HFmode:
17950 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
17951 : || !(
17952 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17953 : (TARGET_AVX512F) &&
17954 : #line 969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17955 : (TARGET_AVX512BW)))
17956 : return -1;
17957 : return 9250; /* avx512bw_vec_dupv32hf_1 */
17958 :
17959 : default:
17960 : return -1;
17961 : }
17962 :
17963 : case E_V16HFmode:
17964 : if (!register_operand (operands[0], E_V16HFmode)
17965 : || GET_MODE (x2) != E_V16HFmode
17966 : || GET_MODE (x3) != E_HFmode)
17967 : return -1;
17968 : switch (GET_MODE (operands[1]))
17969 : {
17970 : case E_V8HFmode:
17971 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
17972 : return -1;
17973 : if ((
17974 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17975 : (TARGET_AVX2) &&
17976 : #line 568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17977 : (TARGET_AVX)))
17978 : return 9158; /* avx2_pbroadcastv16hf */
17979 : if (!(
17980 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17981 : (TARGET_AVX512BW) &&
17982 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17983 : (TARGET_AVX512VL)))
17984 : return -1;
17985 : return 9290; /* avx512vl_vec_dupv16hf */
17986 :
17987 : case E_V16HFmode:
17988 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
17989 : || !
17990 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17991 : (TARGET_AVX2))
17992 : return -1;
17993 : return 9167; /* avx2_pbroadcastv16hf_1 */
17994 :
17995 : default:
17996 : return -1;
17997 : }
17998 :
17999 : case E_V8HFmode:
18000 : if (pattern932 (x2,
18001 : E_V8HFmode,
18002 : E_HFmode) != 0)
18003 : return -1;
18004 : if (
18005 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18006 : (TARGET_AVX2))
18007 : return 9159; /* avx2_pbroadcastv8hf */
18008 : if (!(
18009 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18010 : (TARGET_AVX512BW) &&
18011 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18012 : (TARGET_AVX512VL)))
18013 : return -1;
18014 : return 9292; /* avx512fp16_vec_dupv8hf */
18015 :
18016 : case E_V32BFmode:
18017 : if (!register_operand (operands[0], E_V32BFmode)
18018 : || GET_MODE (x2) != E_V32BFmode
18019 : || GET_MODE (x3) != E_BFmode)
18020 : return -1;
18021 : switch (GET_MODE (operands[1]))
18022 : {
18023 : case E_V8BFmode:
18024 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
18025 : return -1;
18026 : if ((
18027 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18028 : (TARGET_AVX2) &&
18029 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18030 : (TARGET_AVX512BW)))
18031 : return 9160; /* avx2_pbroadcastv32bf */
18032 : if (!
18033 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18034 : (TARGET_AVX512BW))
18035 : return -1;
18036 : return 9294; /* avx512bw_vec_dupv32bf */
18037 :
18038 : case E_V32BFmode:
18039 : if (!nonimmediate_operand (operands[1], E_V32BFmode)
18040 : || !(
18041 : #line 28389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18042 : (TARGET_AVX512F) &&
18043 : #line 969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18044 : (TARGET_AVX512BW)))
18045 : return -1;
18046 : return 9251; /* avx512bw_vec_dupv32bf_1 */
18047 :
18048 : default:
18049 : return -1;
18050 : }
18051 :
18052 : case E_V16BFmode:
18053 : if (!register_operand (operands[0], E_V16BFmode)
18054 : || GET_MODE (x2) != E_V16BFmode
18055 : || GET_MODE (x3) != E_BFmode)
18056 : return -1;
18057 : switch (GET_MODE (operands[1]))
18058 : {
18059 : case E_V8BFmode:
18060 : if (!nonimmediate_operand (operands[1], E_V8BFmode))
18061 : return -1;
18062 : if ((
18063 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18064 : (TARGET_AVX2) &&
18065 : #line 569 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18066 : (TARGET_AVX)))
18067 : return 9161; /* avx2_pbroadcastv16bf */
18068 : if (!(
18069 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18070 : (TARGET_AVX512BW) &&
18071 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18072 : (TARGET_AVX512VL)))
18073 : return -1;
18074 : return 9296; /* avx512vl_vec_dupv16bf */
18075 :
18076 : case E_V16BFmode:
18077 : if (!nonimmediate_operand (operands[1], E_V16BFmode)
18078 : || !
18079 : #line 27986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18080 : (TARGET_AVX2))
18081 : return -1;
18082 : return 9168; /* avx2_pbroadcastv16bf_1 */
18083 :
18084 : default:
18085 : return -1;
18086 : }
18087 :
18088 : case E_V8BFmode:
18089 : if (pattern932 (x2,
18090 : E_V8BFmode,
18091 : E_BFmode) != 0)
18092 : return -1;
18093 : if (
18094 : #line 27972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18095 : (TARGET_AVX2))
18096 : return 9162; /* avx2_pbroadcastv8bf */
18097 : if (!(
18098 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18099 : (TARGET_AVX512BW) &&
18100 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18101 : (TARGET_AVX512VL)))
18102 : return -1;
18103 : return 9298; /* avx512vl_vec_dupv8bf */
18104 :
18105 : case E_V4DFmode:
18106 : if (!register_operand (operands[0], E_V4DFmode)
18107 : || GET_MODE (x2) != E_V4DFmode
18108 : || GET_MODE (x3) != E_DFmode)
18109 : return -1;
18110 : if (register_operand (operands[1], E_V2DFmode)
18111 : &&
18112 : #line 28377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18113 : (TARGET_AVX2))
18114 : return 9245; /* avx2_vec_dupv4df */
18115 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
18116 : || !(
18117 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18118 : (TARGET_AVX512F) &&
18119 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18120 : (TARGET_AVX512VL)))
18121 : return -1;
18122 : return 9272; /* avx512vl_vec_dupv4df */
18123 :
18124 : case E_V2DFmode:
18125 : if (pattern932 (x2,
18126 : E_V2DFmode,
18127 : E_DFmode) != 0
18128 : || !(
18129 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18130 : (TARGET_AVX512F) &&
18131 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18132 : (TARGET_AVX512VL)))
18133 : return -1;
18134 : return 9274; /* avx512vl_vec_dupv2df */
18135 :
18136 : default:
18137 : return -1;
18138 : }
18139 :
18140 : case 2:
18141 : x6 = XVECEXP (x4, 0, 0);
18142 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
18143 : return -1;
18144 : x7 = XVECEXP (x4, 0, 1);
18145 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18146 : return -1;
18147 : switch (GET_MODE (operands[0]))
18148 : {
18149 : case E_V16SImode:
18150 : if (pattern928 (x2,
18151 : E_V4SImode,
18152 : E_V2SImode,
18153 : E_V16SImode) != 0
18154 : || !
18155 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18156 : (TARGET_AVX512DQ))
18157 : return -1;
18158 : return 9394; /* *avx512dq_broadcastv16si */
18159 :
18160 : case E_V8SImode:
18161 : if (pattern928 (x2,
18162 : E_V4SImode,
18163 : E_V2SImode,
18164 : E_V8SImode) != 0
18165 : || !(
18166 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18167 : (TARGET_AVX512DQ) &&
18168 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18169 : (TARGET_AVX512VL)))
18170 : return -1;
18171 : return 9396; /* *avx512dq_broadcastv8si */
18172 :
18173 : case E_V4SImode:
18174 : if (pattern932 (x2,
18175 : E_V4SImode,
18176 : E_V2SImode) != 0
18177 : || !(
18178 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18179 : (TARGET_AVX512DQ) &&
18180 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18181 : (TARGET_AVX512VL)))
18182 : return -1;
18183 : return 9398; /* *avx512dq_broadcastv4si */
18184 :
18185 : case E_V16SFmode:
18186 : if (pattern928 (x2,
18187 : E_V4SFmode,
18188 : E_V2SFmode,
18189 : E_V16SFmode) != 0
18190 : || !
18191 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18192 : (TARGET_AVX512DQ))
18193 : return -1;
18194 : return 9400; /* *avx512dq_broadcastv16sf */
18195 :
18196 : case E_V8SFmode:
18197 : if (pattern928 (x2,
18198 : E_V4SFmode,
18199 : E_V2SFmode,
18200 : E_V8SFmode) != 0
18201 : || !(
18202 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18203 : (TARGET_AVX512DQ) &&
18204 : #line 28728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18205 : (TARGET_AVX512VL)))
18206 : return -1;
18207 : return 9402; /* *avx512dq_broadcastv8sf */
18208 :
18209 : default:
18210 : return -1;
18211 : }
18212 :
18213 : default:
18214 : return -1;
18215 : }
18216 : }
18217 :
18218 : int
18219 : recog_315 (rtx x1 ATTRIBUTE_UNUSED,
18220 : rtx_insn *insn ATTRIBUTE_UNUSED,
18221 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18222 : {
18223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18224 : rtx x2, x3, x4;
18225 : int res ATTRIBUTE_UNUSED;
18226 : x2 = XEXP (x1, 1);
18227 : x3 = XEXP (x2, 0);
18228 : x4 = XEXP (x3, 0);
18229 : switch (GET_CODE (x4))
18230 : {
18231 : case REG:
18232 : case SUBREG:
18233 : case MEM:
18234 : case NOT:
18235 : switch (pattern541 (x2))
18236 : {
18237 : case 0:
18238 : if (!(
18239 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18240 : ((64 == 64 || TARGET_AVX512VL
18241 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18242 : && ix86_pre_reload_split ()
18243 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18244 : STRIP_UNARY (operands[4]))
18245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18246 : STRIP_UNARY (operands[4]))
18247 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18248 : STRIP_UNARY (operands[3]))
18249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18250 : STRIP_UNARY (operands[3])))) &&
18251 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18252 : (TARGET_AVX512F)))
18253 : return -1;
18254 : return 5881; /* *avx512bw_vpternlogv32hf_1 */
18255 :
18256 : case 1:
18257 : if (!(
18258 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18259 : ((32 == 64 || TARGET_AVX512VL
18260 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18261 : && ix86_pre_reload_split ()
18262 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18263 : STRIP_UNARY (operands[4]))
18264 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18265 : STRIP_UNARY (operands[4]))
18266 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18267 : STRIP_UNARY (operands[3]))
18268 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18269 : STRIP_UNARY (operands[3])))) &&
18270 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18271 : (TARGET_AVX)))
18272 : return -1;
18273 : return 5908; /* *avx512vl_vpternlogv16hf_1 */
18274 :
18275 : case 2:
18276 : if (!
18277 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18278 : ((16 == 64 || TARGET_AVX512VL
18279 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18280 : && ix86_pre_reload_split ()
18281 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18282 : STRIP_UNARY (operands[4]))
18283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18284 : STRIP_UNARY (operands[4]))
18285 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18286 : STRIP_UNARY (operands[3]))
18287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18288 : STRIP_UNARY (operands[3])))))
18289 : return -1;
18290 : return 5935; /* *avx512fp16_vpternlogv8hf_1 */
18291 :
18292 : case 3:
18293 : if (!(
18294 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18295 : ((64 == 64 || TARGET_AVX512VL
18296 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18297 : && ix86_pre_reload_split ()
18298 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18299 : STRIP_UNARY (operands[4]))
18300 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18301 : STRIP_UNARY (operands[4]))
18302 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18303 : STRIP_UNARY (operands[3]))
18304 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18305 : STRIP_UNARY (operands[3])))) &&
18306 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18307 : (TARGET_AVX512F)))
18308 : return -1;
18309 : return 5962; /* *avx512bw_vpternlogv32bf_1 */
18310 :
18311 : case 4:
18312 : if (!(
18313 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18314 : ((32 == 64 || TARGET_AVX512VL
18315 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18316 : && ix86_pre_reload_split ()
18317 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18318 : STRIP_UNARY (operands[4]))
18319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18320 : STRIP_UNARY (operands[4]))
18321 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18322 : STRIP_UNARY (operands[3]))
18323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18324 : STRIP_UNARY (operands[3])))) &&
18325 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18326 : (TARGET_AVX)))
18327 : return -1;
18328 : return 5989; /* *avx512vl_vpternlogv16bf_1 */
18329 :
18330 : case 5:
18331 : if (!
18332 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18333 : ((16 == 64 || TARGET_AVX512VL
18334 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18335 : && ix86_pre_reload_split ()
18336 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18337 : STRIP_UNARY (operands[4]))
18338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18339 : STRIP_UNARY (operands[4]))
18340 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18341 : STRIP_UNARY (operands[3]))
18342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18343 : STRIP_UNARY (operands[3])))))
18344 : return -1;
18345 : return 6016; /* *avx512vl_vpternlogv8bf_1 */
18346 :
18347 : case 6:
18348 : if (!(
18349 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18350 : ((64 == 64 || TARGET_AVX512VL
18351 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18352 : && ix86_pre_reload_split ()
18353 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18354 : STRIP_UNARY (operands[4]))
18355 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18356 : STRIP_UNARY (operands[4]))
18357 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18358 : STRIP_UNARY (operands[3]))
18359 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18360 : STRIP_UNARY (operands[3])))) &&
18361 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18362 : (TARGET_AVX512F)))
18363 : return -1;
18364 : return 6043; /* *avx512f_vpternlogv16sf_1 */
18365 :
18366 : case 7:
18367 : if (!(
18368 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18369 : ((32 == 64 || TARGET_AVX512VL
18370 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18371 : && ix86_pre_reload_split ()
18372 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18373 : STRIP_UNARY (operands[4]))
18374 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18375 : STRIP_UNARY (operands[4]))
18376 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18377 : STRIP_UNARY (operands[3]))
18378 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18379 : STRIP_UNARY (operands[3])))) &&
18380 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18381 : (TARGET_AVX)))
18382 : return -1;
18383 : return 6070; /* *avx512vl_vpternlogv8sf_1 */
18384 :
18385 : case 8:
18386 : if (!
18387 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18388 : ((16 == 64 || TARGET_AVX512VL
18389 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18390 : && ix86_pre_reload_split ()
18391 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18392 : STRIP_UNARY (operands[4]))
18393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18394 : STRIP_UNARY (operands[4]))
18395 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18396 : STRIP_UNARY (operands[3]))
18397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18398 : STRIP_UNARY (operands[3])))))
18399 : return -1;
18400 : return 6097; /* *avx512vl_vpternlogv4sf_1 */
18401 :
18402 : case 9:
18403 : if (!(
18404 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18405 : ((64 == 64 || TARGET_AVX512VL
18406 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18407 : && ix86_pre_reload_split ()
18408 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18409 : STRIP_UNARY (operands[4]))
18410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18411 : STRIP_UNARY (operands[4]))
18412 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18413 : STRIP_UNARY (operands[3]))
18414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18415 : STRIP_UNARY (operands[3])))) &&
18416 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18417 : (TARGET_AVX512F)))
18418 : return -1;
18419 : return 6124; /* *avx512f_vpternlogv8df_1 */
18420 :
18421 : case 10:
18422 : if (!(
18423 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18424 : ((32 == 64 || TARGET_AVX512VL
18425 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18426 : && ix86_pre_reload_split ()
18427 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18428 : STRIP_UNARY (operands[4]))
18429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18430 : STRIP_UNARY (operands[4]))
18431 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18432 : STRIP_UNARY (operands[3]))
18433 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18434 : STRIP_UNARY (operands[3])))) &&
18435 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18436 : (TARGET_AVX)))
18437 : return -1;
18438 : return 6151; /* *avx512vl_vpternlogv4df_1 */
18439 :
18440 : case 11:
18441 : if (!(
18442 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18443 : ((16 == 64 || TARGET_AVX512VL
18444 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18445 : && ix86_pre_reload_split ()
18446 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18447 : STRIP_UNARY (operands[4]))
18448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18449 : STRIP_UNARY (operands[4]))
18450 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18451 : STRIP_UNARY (operands[3]))
18452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18453 : STRIP_UNARY (operands[3])))) &&
18454 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18455 : (TARGET_SSE2)))
18456 : return -1;
18457 : return 6178; /* *avx512vl_vpternlogv2df_1 */
18458 :
18459 : case 12:
18460 : if (!(
18461 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18462 : ((64 == 64 || TARGET_AVX512VL
18463 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18464 : && ix86_pre_reload_split ()
18465 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18466 : STRIP_UNARY (operands[4]))
18467 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18468 : STRIP_UNARY (operands[4]))
18469 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18470 : STRIP_UNARY (operands[3]))
18471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18472 : STRIP_UNARY (operands[3])))) &&
18473 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18474 : (TARGET_AVX512F)))
18475 : return -1;
18476 : return 5884; /* *avx512bw_vpternlogv32hf_1 */
18477 :
18478 : case 13:
18479 : if (!(
18480 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18481 : ((32 == 64 || TARGET_AVX512VL
18482 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18483 : && ix86_pre_reload_split ()
18484 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18485 : STRIP_UNARY (operands[4]))
18486 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18487 : STRIP_UNARY (operands[4]))
18488 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18489 : STRIP_UNARY (operands[3]))
18490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18491 : STRIP_UNARY (operands[3])))) &&
18492 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18493 : (TARGET_AVX)))
18494 : return -1;
18495 : return 5911; /* *avx512vl_vpternlogv16hf_1 */
18496 :
18497 : case 14:
18498 : if (!
18499 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18500 : ((16 == 64 || TARGET_AVX512VL
18501 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18502 : && ix86_pre_reload_split ()
18503 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18504 : STRIP_UNARY (operands[4]))
18505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18506 : STRIP_UNARY (operands[4]))
18507 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18508 : STRIP_UNARY (operands[3]))
18509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18510 : STRIP_UNARY (operands[3])))))
18511 : return -1;
18512 : return 5938; /* *avx512fp16_vpternlogv8hf_1 */
18513 :
18514 : case 15:
18515 : if (!(
18516 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18517 : ((64 == 64 || TARGET_AVX512VL
18518 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18519 : && ix86_pre_reload_split ()
18520 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18521 : STRIP_UNARY (operands[4]))
18522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18523 : STRIP_UNARY (operands[4]))
18524 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18525 : STRIP_UNARY (operands[3]))
18526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18527 : STRIP_UNARY (operands[3])))) &&
18528 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18529 : (TARGET_AVX512F)))
18530 : return -1;
18531 : return 5965; /* *avx512bw_vpternlogv32bf_1 */
18532 :
18533 : case 16:
18534 : if (!(
18535 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18536 : ((32 == 64 || TARGET_AVX512VL
18537 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18538 : && ix86_pre_reload_split ()
18539 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18540 : STRIP_UNARY (operands[4]))
18541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18542 : STRIP_UNARY (operands[4]))
18543 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18544 : STRIP_UNARY (operands[3]))
18545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18546 : STRIP_UNARY (operands[3])))) &&
18547 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18548 : (TARGET_AVX)))
18549 : return -1;
18550 : return 5992; /* *avx512vl_vpternlogv16bf_1 */
18551 :
18552 : case 17:
18553 : if (!
18554 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18555 : ((16 == 64 || TARGET_AVX512VL
18556 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18557 : && ix86_pre_reload_split ()
18558 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18559 : STRIP_UNARY (operands[4]))
18560 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18561 : STRIP_UNARY (operands[4]))
18562 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18563 : STRIP_UNARY (operands[3]))
18564 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18565 : STRIP_UNARY (operands[3])))))
18566 : return -1;
18567 : return 6019; /* *avx512vl_vpternlogv8bf_1 */
18568 :
18569 : case 18:
18570 : if (!(
18571 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18572 : ((64 == 64 || TARGET_AVX512VL
18573 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18574 : && ix86_pre_reload_split ()
18575 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18576 : STRIP_UNARY (operands[4]))
18577 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18578 : STRIP_UNARY (operands[4]))
18579 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18580 : STRIP_UNARY (operands[3]))
18581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18582 : STRIP_UNARY (operands[3])))) &&
18583 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18584 : (TARGET_AVX512F)))
18585 : return -1;
18586 : return 6046; /* *avx512f_vpternlogv16sf_1 */
18587 :
18588 : case 19:
18589 : if (!(
18590 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18591 : ((32 == 64 || TARGET_AVX512VL
18592 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18593 : && ix86_pre_reload_split ()
18594 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18595 : STRIP_UNARY (operands[4]))
18596 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18597 : STRIP_UNARY (operands[4]))
18598 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18599 : STRIP_UNARY (operands[3]))
18600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18601 : STRIP_UNARY (operands[3])))) &&
18602 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18603 : (TARGET_AVX)))
18604 : return -1;
18605 : return 6073; /* *avx512vl_vpternlogv8sf_1 */
18606 :
18607 : case 20:
18608 : if (!
18609 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18610 : ((16 == 64 || TARGET_AVX512VL
18611 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18612 : && ix86_pre_reload_split ()
18613 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18614 : STRIP_UNARY (operands[4]))
18615 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18616 : STRIP_UNARY (operands[4]))
18617 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18618 : STRIP_UNARY (operands[3]))
18619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18620 : STRIP_UNARY (operands[3])))))
18621 : return -1;
18622 : return 6100; /* *avx512vl_vpternlogv4sf_1 */
18623 :
18624 : case 21:
18625 : if (!(
18626 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18627 : ((64 == 64 || TARGET_AVX512VL
18628 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18629 : && ix86_pre_reload_split ()
18630 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18631 : STRIP_UNARY (operands[4]))
18632 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18633 : STRIP_UNARY (operands[4]))
18634 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18635 : STRIP_UNARY (operands[3]))
18636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18637 : STRIP_UNARY (operands[3])))) &&
18638 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18639 : (TARGET_AVX512F)))
18640 : return -1;
18641 : return 6127; /* *avx512f_vpternlogv8df_1 */
18642 :
18643 : case 22:
18644 : if (!(
18645 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18646 : ((32 == 64 || TARGET_AVX512VL
18647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18648 : && ix86_pre_reload_split ()
18649 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18650 : STRIP_UNARY (operands[4]))
18651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18652 : STRIP_UNARY (operands[4]))
18653 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18654 : STRIP_UNARY (operands[3]))
18655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18656 : STRIP_UNARY (operands[3])))) &&
18657 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18658 : (TARGET_AVX)))
18659 : return -1;
18660 : return 6154; /* *avx512vl_vpternlogv4df_1 */
18661 :
18662 : case 23:
18663 : if (!(
18664 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18665 : ((16 == 64 || TARGET_AVX512VL
18666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18667 : && ix86_pre_reload_split ()
18668 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18669 : STRIP_UNARY (operands[4]))
18670 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18671 : STRIP_UNARY (operands[4]))
18672 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18673 : STRIP_UNARY (operands[3]))
18674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18675 : STRIP_UNARY (operands[3])))) &&
18676 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18677 : (TARGET_SSE2)))
18678 : return -1;
18679 : return 6181; /* *avx512vl_vpternlogv2df_1 */
18680 :
18681 : case 24:
18682 : if (!(
18683 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18684 : ((64 == 64 || TARGET_AVX512VL
18685 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18686 : && ix86_pre_reload_split ()
18687 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18688 : STRIP_UNARY (operands[4]))
18689 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18690 : STRIP_UNARY (operands[4]))
18691 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18692 : STRIP_UNARY (operands[3]))
18693 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18694 : STRIP_UNARY (operands[3])))) &&
18695 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18696 : (TARGET_AVX512F)))
18697 : return -1;
18698 : return 5887; /* *avx512bw_vpternlogv32hf_1 */
18699 :
18700 : case 25:
18701 : if (!(
18702 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18703 : ((32 == 64 || TARGET_AVX512VL
18704 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18705 : && ix86_pre_reload_split ()
18706 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18707 : STRIP_UNARY (operands[4]))
18708 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18709 : STRIP_UNARY (operands[4]))
18710 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18711 : STRIP_UNARY (operands[3]))
18712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18713 : STRIP_UNARY (operands[3])))) &&
18714 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18715 : (TARGET_AVX)))
18716 : return -1;
18717 : return 5914; /* *avx512vl_vpternlogv16hf_1 */
18718 :
18719 : case 26:
18720 : if (!
18721 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18722 : ((16 == 64 || TARGET_AVX512VL
18723 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18724 : && ix86_pre_reload_split ()
18725 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18726 : STRIP_UNARY (operands[4]))
18727 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18728 : STRIP_UNARY (operands[4]))
18729 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18730 : STRIP_UNARY (operands[3]))
18731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18732 : STRIP_UNARY (operands[3])))))
18733 : return -1;
18734 : return 5941; /* *avx512fp16_vpternlogv8hf_1 */
18735 :
18736 : case 27:
18737 : if (!(
18738 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18739 : ((64 == 64 || TARGET_AVX512VL
18740 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18741 : && ix86_pre_reload_split ()
18742 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18743 : STRIP_UNARY (operands[4]))
18744 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18745 : STRIP_UNARY (operands[4]))
18746 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18747 : STRIP_UNARY (operands[3]))
18748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18749 : STRIP_UNARY (operands[3])))) &&
18750 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18751 : (TARGET_AVX512F)))
18752 : return -1;
18753 : return 5968; /* *avx512bw_vpternlogv32bf_1 */
18754 :
18755 : case 28:
18756 : if (!(
18757 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18758 : ((32 == 64 || TARGET_AVX512VL
18759 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18760 : && ix86_pre_reload_split ()
18761 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18762 : STRIP_UNARY (operands[4]))
18763 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18764 : STRIP_UNARY (operands[4]))
18765 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18766 : STRIP_UNARY (operands[3]))
18767 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18768 : STRIP_UNARY (operands[3])))) &&
18769 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18770 : (TARGET_AVX)))
18771 : return -1;
18772 : return 5995; /* *avx512vl_vpternlogv16bf_1 */
18773 :
18774 : case 29:
18775 : if (!
18776 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18777 : ((16 == 64 || TARGET_AVX512VL
18778 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18779 : && ix86_pre_reload_split ()
18780 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18781 : STRIP_UNARY (operands[4]))
18782 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18783 : STRIP_UNARY (operands[4]))
18784 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18785 : STRIP_UNARY (operands[3]))
18786 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18787 : STRIP_UNARY (operands[3])))))
18788 : return -1;
18789 : return 6022; /* *avx512vl_vpternlogv8bf_1 */
18790 :
18791 : case 30:
18792 : if (!(
18793 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18794 : ((64 == 64 || TARGET_AVX512VL
18795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18796 : && ix86_pre_reload_split ()
18797 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18798 : STRIP_UNARY (operands[4]))
18799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18800 : STRIP_UNARY (operands[4]))
18801 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18802 : STRIP_UNARY (operands[3]))
18803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18804 : STRIP_UNARY (operands[3])))) &&
18805 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18806 : (TARGET_AVX512F)))
18807 : return -1;
18808 : return 6049; /* *avx512f_vpternlogv16sf_1 */
18809 :
18810 : case 31:
18811 : if (!(
18812 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18813 : ((32 == 64 || TARGET_AVX512VL
18814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18815 : && ix86_pre_reload_split ()
18816 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18817 : STRIP_UNARY (operands[4]))
18818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18819 : STRIP_UNARY (operands[4]))
18820 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18821 : STRIP_UNARY (operands[3]))
18822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18823 : STRIP_UNARY (operands[3])))) &&
18824 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18825 : (TARGET_AVX)))
18826 : return -1;
18827 : return 6076; /* *avx512vl_vpternlogv8sf_1 */
18828 :
18829 : case 32:
18830 : if (!
18831 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18832 : ((16 == 64 || TARGET_AVX512VL
18833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18834 : && ix86_pre_reload_split ()
18835 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18836 : STRIP_UNARY (operands[4]))
18837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18838 : STRIP_UNARY (operands[4]))
18839 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18840 : STRIP_UNARY (operands[3]))
18841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18842 : STRIP_UNARY (operands[3])))))
18843 : return -1;
18844 : return 6103; /* *avx512vl_vpternlogv4sf_1 */
18845 :
18846 : case 33:
18847 : if (!(
18848 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18849 : ((64 == 64 || TARGET_AVX512VL
18850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18851 : && ix86_pre_reload_split ()
18852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18853 : STRIP_UNARY (operands[4]))
18854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18855 : STRIP_UNARY (operands[4]))
18856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18857 : STRIP_UNARY (operands[3]))
18858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18859 : STRIP_UNARY (operands[3])))) &&
18860 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18861 : (TARGET_AVX512F)))
18862 : return -1;
18863 : return 6130; /* *avx512f_vpternlogv8df_1 */
18864 :
18865 : case 34:
18866 : if (!(
18867 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18868 : ((32 == 64 || TARGET_AVX512VL
18869 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18870 : && ix86_pre_reload_split ()
18871 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18872 : STRIP_UNARY (operands[4]))
18873 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18874 : STRIP_UNARY (operands[4]))
18875 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18876 : STRIP_UNARY (operands[3]))
18877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18878 : STRIP_UNARY (operands[3])))) &&
18879 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18880 : (TARGET_AVX)))
18881 : return -1;
18882 : return 6157; /* *avx512vl_vpternlogv4df_1 */
18883 :
18884 : case 35:
18885 : if (!(
18886 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18887 : ((16 == 64 || TARGET_AVX512VL
18888 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18889 : && ix86_pre_reload_split ()
18890 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18891 : STRIP_UNARY (operands[4]))
18892 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18893 : STRIP_UNARY (operands[4]))
18894 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18895 : STRIP_UNARY (operands[3]))
18896 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18897 : STRIP_UNARY (operands[3])))) &&
18898 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18899 : (TARGET_SSE2)))
18900 : return -1;
18901 : return 6184; /* *avx512vl_vpternlogv2df_1 */
18902 :
18903 : case 36:
18904 : if (!(
18905 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18906 : ((64 == 64 || TARGET_AVX512VL
18907 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18908 : && ix86_pre_reload_split ()) &&
18909 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18910 : (TARGET_AVX512F)))
18911 : return -1;
18912 : return 6949; /* *avx512bw_vpternlogv32hf_3 */
18913 :
18914 : case 37:
18915 : if (!(
18916 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18917 : ((32 == 64 || TARGET_AVX512VL
18918 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18919 : && ix86_pre_reload_split ()) &&
18920 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18921 : (TARGET_AVX)))
18922 : return -1;
18923 : return 6958; /* *avx512vl_vpternlogv16hf_3 */
18924 :
18925 : case 38:
18926 : if (!
18927 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18928 : ((16 == 64 || TARGET_AVX512VL
18929 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18930 : && ix86_pre_reload_split ()))
18931 : return -1;
18932 : return 6967; /* *avx512fp16_vpternlogv8hf_3 */
18933 :
18934 : case 39:
18935 : if (!(
18936 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18937 : ((64 == 64 || TARGET_AVX512VL
18938 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18939 : && ix86_pre_reload_split ()) &&
18940 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18941 : (TARGET_AVX512F)))
18942 : return -1;
18943 : return 6976; /* *avx512bw_vpternlogv32bf_3 */
18944 :
18945 : case 40:
18946 : if (!(
18947 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18948 : ((32 == 64 || TARGET_AVX512VL
18949 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18950 : && ix86_pre_reload_split ()) &&
18951 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18952 : (TARGET_AVX)))
18953 : return -1;
18954 : return 6985; /* *avx512vl_vpternlogv16bf_3 */
18955 :
18956 : case 41:
18957 : if (!
18958 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18959 : ((16 == 64 || TARGET_AVX512VL
18960 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18961 : && ix86_pre_reload_split ()))
18962 : return -1;
18963 : return 6994; /* *avx512vl_vpternlogv8bf_3 */
18964 :
18965 : case 42:
18966 : if (!(
18967 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18968 : ((64 == 64 || TARGET_AVX512VL
18969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18970 : && ix86_pre_reload_split ()) &&
18971 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18972 : (TARGET_AVX512F)))
18973 : return -1;
18974 : return 7003; /* *avx512f_vpternlogv16sf_3 */
18975 :
18976 : case 43:
18977 : if (!(
18978 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18979 : ((32 == 64 || TARGET_AVX512VL
18980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18981 : && ix86_pre_reload_split ()) &&
18982 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18983 : (TARGET_AVX)))
18984 : return -1;
18985 : return 7012; /* *avx512vl_vpternlogv8sf_3 */
18986 :
18987 : case 44:
18988 : if (!
18989 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18990 : ((16 == 64 || TARGET_AVX512VL
18991 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18992 : && ix86_pre_reload_split ()))
18993 : return -1;
18994 : return 7021; /* *avx512vl_vpternlogv4sf_3 */
18995 :
18996 : case 45:
18997 : if (!(
18998 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18999 : ((64 == 64 || TARGET_AVX512VL
19000 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19001 : && ix86_pre_reload_split ()) &&
19002 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : (TARGET_AVX512F)))
19004 : return -1;
19005 : return 7030; /* *avx512f_vpternlogv8df_3 */
19006 :
19007 : case 46:
19008 : if (!(
19009 : #line 14271 "/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 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19014 : (TARGET_AVX)))
19015 : return -1;
19016 : return 7039; /* *avx512vl_vpternlogv4df_3 */
19017 :
19018 : case 47:
19019 : if (!(
19020 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19021 : ((16 == 64 || TARGET_AVX512VL
19022 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19023 : && ix86_pre_reload_split ()) &&
19024 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19025 : (TARGET_SSE2)))
19026 : return -1;
19027 : return 7048; /* *avx512vl_vpternlogv2df_3 */
19028 :
19029 : default:
19030 : return -1;
19031 : }
19032 :
19033 : case AND:
19034 : switch (pattern542 (x2))
19035 : {
19036 : case 0:
19037 : if (!(
19038 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19039 : ((64 == 64 || TARGET_AVX512VL
19040 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19041 : && ix86_pre_reload_split ()
19042 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19043 : STRIP_UNARY (operands[4]))
19044 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19045 : STRIP_UNARY (operands[4]))
19046 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19047 : STRIP_UNARY (operands[3]))
19048 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19049 : STRIP_UNARY (operands[3])))) &&
19050 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19051 : (TARGET_AVX512F)))
19052 : return -1;
19053 : return 6529; /* *avx512bw_vpternlogv32hf_2 */
19054 :
19055 : case 1:
19056 : if (!(
19057 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19058 : ((32 == 64 || TARGET_AVX512VL
19059 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19060 : && ix86_pre_reload_split ()
19061 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19062 : STRIP_UNARY (operands[4]))
19063 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19064 : STRIP_UNARY (operands[4]))
19065 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19066 : STRIP_UNARY (operands[3]))
19067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19068 : STRIP_UNARY (operands[3])))) &&
19069 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19070 : (TARGET_AVX)))
19071 : return -1;
19072 : return 6556; /* *avx512vl_vpternlogv16hf_2 */
19073 :
19074 : case 2:
19075 : if (!
19076 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19077 : ((16 == 64 || TARGET_AVX512VL
19078 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19079 : && ix86_pre_reload_split ()
19080 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19081 : STRIP_UNARY (operands[4]))
19082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19083 : STRIP_UNARY (operands[4]))
19084 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19085 : STRIP_UNARY (operands[3]))
19086 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19087 : STRIP_UNARY (operands[3])))))
19088 : return -1;
19089 : return 6583; /* *avx512fp16_vpternlogv8hf_2 */
19090 :
19091 : case 3:
19092 : if (!(
19093 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19094 : ((64 == 64 || TARGET_AVX512VL
19095 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19096 : && ix86_pre_reload_split ()
19097 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19098 : STRIP_UNARY (operands[4]))
19099 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19100 : STRIP_UNARY (operands[4]))
19101 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19102 : STRIP_UNARY (operands[3]))
19103 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19104 : STRIP_UNARY (operands[3])))) &&
19105 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19106 : (TARGET_AVX512F)))
19107 : return -1;
19108 : return 6610; /* *avx512bw_vpternlogv32bf_2 */
19109 :
19110 : case 4:
19111 : if (!(
19112 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19113 : ((32 == 64 || TARGET_AVX512VL
19114 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19115 : && ix86_pre_reload_split ()
19116 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19117 : STRIP_UNARY (operands[4]))
19118 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19119 : STRIP_UNARY (operands[4]))
19120 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19121 : STRIP_UNARY (operands[3]))
19122 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19123 : STRIP_UNARY (operands[3])))) &&
19124 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19125 : (TARGET_AVX)))
19126 : return -1;
19127 : return 6637; /* *avx512vl_vpternlogv16bf_2 */
19128 :
19129 : case 5:
19130 : if (!
19131 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19132 : ((16 == 64 || TARGET_AVX512VL
19133 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19134 : && ix86_pre_reload_split ()
19135 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19136 : STRIP_UNARY (operands[4]))
19137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19138 : STRIP_UNARY (operands[4]))
19139 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19140 : STRIP_UNARY (operands[3]))
19141 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19142 : STRIP_UNARY (operands[3])))))
19143 : return -1;
19144 : return 6664; /* *avx512vl_vpternlogv8bf_2 */
19145 :
19146 : case 6:
19147 : if (!(
19148 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19149 : ((64 == 64 || TARGET_AVX512VL
19150 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19151 : && ix86_pre_reload_split ()
19152 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19153 : STRIP_UNARY (operands[4]))
19154 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19155 : STRIP_UNARY (operands[4]))
19156 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19157 : STRIP_UNARY (operands[3]))
19158 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19159 : STRIP_UNARY (operands[3])))) &&
19160 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19161 : (TARGET_AVX512F)))
19162 : return -1;
19163 : return 6691; /* *avx512f_vpternlogv16sf_2 */
19164 :
19165 : case 7:
19166 : if (!(
19167 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19168 : ((32 == 64 || TARGET_AVX512VL
19169 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19170 : && ix86_pre_reload_split ()
19171 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19172 : STRIP_UNARY (operands[4]))
19173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19174 : STRIP_UNARY (operands[4]))
19175 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19176 : STRIP_UNARY (operands[3]))
19177 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19178 : STRIP_UNARY (operands[3])))) &&
19179 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19180 : (TARGET_AVX)))
19181 : return -1;
19182 : return 6718; /* *avx512vl_vpternlogv8sf_2 */
19183 :
19184 : case 8:
19185 : if (!
19186 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19187 : ((16 == 64 || TARGET_AVX512VL
19188 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19189 : && ix86_pre_reload_split ()
19190 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19191 : STRIP_UNARY (operands[4]))
19192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19193 : STRIP_UNARY (operands[4]))
19194 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19195 : STRIP_UNARY (operands[3]))
19196 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19197 : STRIP_UNARY (operands[3])))))
19198 : return -1;
19199 : return 6745; /* *avx512vl_vpternlogv4sf_2 */
19200 :
19201 : case 9:
19202 : if (!(
19203 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19204 : ((64 == 64 || TARGET_AVX512VL
19205 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19206 : && ix86_pre_reload_split ()
19207 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19208 : STRIP_UNARY (operands[4]))
19209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19210 : STRIP_UNARY (operands[4]))
19211 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19212 : STRIP_UNARY (operands[3]))
19213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19214 : STRIP_UNARY (operands[3])))) &&
19215 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19216 : (TARGET_AVX512F)))
19217 : return -1;
19218 : return 6772; /* *avx512f_vpternlogv8df_2 */
19219 :
19220 : case 10:
19221 : if (!(
19222 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19223 : ((32 == 64 || TARGET_AVX512VL
19224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19225 : && ix86_pre_reload_split ()
19226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19227 : STRIP_UNARY (operands[4]))
19228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19229 : STRIP_UNARY (operands[4]))
19230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19231 : STRIP_UNARY (operands[3]))
19232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19233 : STRIP_UNARY (operands[3])))) &&
19234 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19235 : (TARGET_AVX)))
19236 : return -1;
19237 : return 6799; /* *avx512vl_vpternlogv4df_2 */
19238 :
19239 : case 11:
19240 : if (!(
19241 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19242 : ((16 == 64 || TARGET_AVX512VL
19243 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19244 : && ix86_pre_reload_split ()
19245 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19246 : STRIP_UNARY (operands[4]))
19247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19248 : STRIP_UNARY (operands[4]))
19249 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19250 : STRIP_UNARY (operands[3]))
19251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19252 : STRIP_UNARY (operands[3])))) &&
19253 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19254 : (TARGET_SSE2)))
19255 : return -1;
19256 : return 6826; /* *avx512vl_vpternlogv2df_2 */
19257 :
19258 : default:
19259 : return -1;
19260 : }
19261 :
19262 : case IOR:
19263 : switch (pattern542 (x2))
19264 : {
19265 : case 0:
19266 : if (!(
19267 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19268 : ((64 == 64 || TARGET_AVX512VL
19269 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19270 : && ix86_pre_reload_split ()
19271 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19272 : STRIP_UNARY (operands[4]))
19273 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19274 : STRIP_UNARY (operands[4]))
19275 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19276 : STRIP_UNARY (operands[3]))
19277 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19278 : STRIP_UNARY (operands[3])))) &&
19279 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19280 : (TARGET_AVX512F)))
19281 : return -1;
19282 : return 6532; /* *avx512bw_vpternlogv32hf_2 */
19283 :
19284 : case 1:
19285 : if (!(
19286 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19287 : ((32 == 64 || TARGET_AVX512VL
19288 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19289 : && ix86_pre_reload_split ()
19290 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19291 : STRIP_UNARY (operands[4]))
19292 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19293 : STRIP_UNARY (operands[4]))
19294 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19295 : STRIP_UNARY (operands[3]))
19296 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19297 : STRIP_UNARY (operands[3])))) &&
19298 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19299 : (TARGET_AVX)))
19300 : return -1;
19301 : return 6559; /* *avx512vl_vpternlogv16hf_2 */
19302 :
19303 : case 2:
19304 : if (!
19305 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19306 : ((16 == 64 || TARGET_AVX512VL
19307 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19308 : && ix86_pre_reload_split ()
19309 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19310 : STRIP_UNARY (operands[4]))
19311 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19312 : STRIP_UNARY (operands[4]))
19313 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19314 : STRIP_UNARY (operands[3]))
19315 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19316 : STRIP_UNARY (operands[3])))))
19317 : return -1;
19318 : return 6586; /* *avx512fp16_vpternlogv8hf_2 */
19319 :
19320 : case 3:
19321 : if (!(
19322 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19323 : ((64 == 64 || TARGET_AVX512VL
19324 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19325 : && ix86_pre_reload_split ()
19326 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19327 : STRIP_UNARY (operands[4]))
19328 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19329 : STRIP_UNARY (operands[4]))
19330 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19331 : STRIP_UNARY (operands[3]))
19332 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19333 : STRIP_UNARY (operands[3])))) &&
19334 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19335 : (TARGET_AVX512F)))
19336 : return -1;
19337 : return 6613; /* *avx512bw_vpternlogv32bf_2 */
19338 :
19339 : case 4:
19340 : if (!(
19341 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19342 : ((32 == 64 || TARGET_AVX512VL
19343 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19344 : && ix86_pre_reload_split ()
19345 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19346 : STRIP_UNARY (operands[4]))
19347 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19348 : STRIP_UNARY (operands[4]))
19349 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19350 : STRIP_UNARY (operands[3]))
19351 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19352 : STRIP_UNARY (operands[3])))) &&
19353 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19354 : (TARGET_AVX)))
19355 : return -1;
19356 : return 6640; /* *avx512vl_vpternlogv16bf_2 */
19357 :
19358 : case 5:
19359 : if (!
19360 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19361 : ((16 == 64 || TARGET_AVX512VL
19362 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19363 : && ix86_pre_reload_split ()
19364 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19365 : STRIP_UNARY (operands[4]))
19366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19367 : STRIP_UNARY (operands[4]))
19368 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19369 : STRIP_UNARY (operands[3]))
19370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19371 : STRIP_UNARY (operands[3])))))
19372 : return -1;
19373 : return 6667; /* *avx512vl_vpternlogv8bf_2 */
19374 :
19375 : case 6:
19376 : if (!(
19377 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19378 : ((64 == 64 || TARGET_AVX512VL
19379 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19380 : && ix86_pre_reload_split ()
19381 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19382 : STRIP_UNARY (operands[4]))
19383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19384 : STRIP_UNARY (operands[4]))
19385 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19386 : STRIP_UNARY (operands[3]))
19387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19388 : STRIP_UNARY (operands[3])))) &&
19389 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19390 : (TARGET_AVX512F)))
19391 : return -1;
19392 : return 6694; /* *avx512f_vpternlogv16sf_2 */
19393 :
19394 : case 7:
19395 : if (!(
19396 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19397 : ((32 == 64 || TARGET_AVX512VL
19398 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19399 : && ix86_pre_reload_split ()
19400 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19401 : STRIP_UNARY (operands[4]))
19402 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19403 : STRIP_UNARY (operands[4]))
19404 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19405 : STRIP_UNARY (operands[3]))
19406 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19407 : STRIP_UNARY (operands[3])))) &&
19408 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19409 : (TARGET_AVX)))
19410 : return -1;
19411 : return 6721; /* *avx512vl_vpternlogv8sf_2 */
19412 :
19413 : case 8:
19414 : if (!
19415 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19416 : ((16 == 64 || TARGET_AVX512VL
19417 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19418 : && ix86_pre_reload_split ()
19419 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19420 : STRIP_UNARY (operands[4]))
19421 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19422 : STRIP_UNARY (operands[4]))
19423 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19424 : STRIP_UNARY (operands[3]))
19425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19426 : STRIP_UNARY (operands[3])))))
19427 : return -1;
19428 : return 6748; /* *avx512vl_vpternlogv4sf_2 */
19429 :
19430 : case 9:
19431 : if (!(
19432 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19433 : ((64 == 64 || TARGET_AVX512VL
19434 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19435 : && ix86_pre_reload_split ()
19436 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19437 : STRIP_UNARY (operands[4]))
19438 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19439 : STRIP_UNARY (operands[4]))
19440 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19441 : STRIP_UNARY (operands[3]))
19442 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19443 : STRIP_UNARY (operands[3])))) &&
19444 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19445 : (TARGET_AVX512F)))
19446 : return -1;
19447 : return 6775; /* *avx512f_vpternlogv8df_2 */
19448 :
19449 : case 10:
19450 : if (!(
19451 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19452 : ((32 == 64 || TARGET_AVX512VL
19453 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19454 : && ix86_pre_reload_split ()
19455 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19456 : STRIP_UNARY (operands[4]))
19457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19458 : STRIP_UNARY (operands[4]))
19459 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19460 : STRIP_UNARY (operands[3]))
19461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19462 : STRIP_UNARY (operands[3])))) &&
19463 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19464 : (TARGET_AVX)))
19465 : return -1;
19466 : return 6802; /* *avx512vl_vpternlogv4df_2 */
19467 :
19468 : case 11:
19469 : if (!(
19470 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19471 : ((16 == 64 || TARGET_AVX512VL
19472 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19473 : && ix86_pre_reload_split ()
19474 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19475 : STRIP_UNARY (operands[4]))
19476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19477 : STRIP_UNARY (operands[4]))
19478 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19479 : STRIP_UNARY (operands[3]))
19480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19481 : STRIP_UNARY (operands[3])))) &&
19482 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19483 : (TARGET_SSE2)))
19484 : return -1;
19485 : return 6829; /* *avx512vl_vpternlogv2df_2 */
19486 :
19487 : default:
19488 : return -1;
19489 : }
19490 :
19491 : case XOR:
19492 : switch (pattern542 (x2))
19493 : {
19494 : case 0:
19495 : if (!(
19496 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19497 : ((64 == 64 || TARGET_AVX512VL
19498 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19499 : && ix86_pre_reload_split ()
19500 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19501 : STRIP_UNARY (operands[4]))
19502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19503 : STRIP_UNARY (operands[4]))
19504 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19505 : STRIP_UNARY (operands[3]))
19506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19507 : STRIP_UNARY (operands[3])))) &&
19508 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19509 : (TARGET_AVX512F)))
19510 : return -1;
19511 : return 6535; /* *avx512bw_vpternlogv32hf_2 */
19512 :
19513 : case 1:
19514 : if (!(
19515 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19516 : ((32 == 64 || TARGET_AVX512VL
19517 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19518 : && ix86_pre_reload_split ()
19519 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19520 : STRIP_UNARY (operands[4]))
19521 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19522 : STRIP_UNARY (operands[4]))
19523 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19524 : STRIP_UNARY (operands[3]))
19525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19526 : STRIP_UNARY (operands[3])))) &&
19527 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19528 : (TARGET_AVX)))
19529 : return -1;
19530 : return 6562; /* *avx512vl_vpternlogv16hf_2 */
19531 :
19532 : case 2:
19533 : if (!
19534 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19535 : ((16 == 64 || TARGET_AVX512VL
19536 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19537 : && ix86_pre_reload_split ()
19538 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19539 : STRIP_UNARY (operands[4]))
19540 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19541 : STRIP_UNARY (operands[4]))
19542 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19543 : STRIP_UNARY (operands[3]))
19544 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19545 : STRIP_UNARY (operands[3])))))
19546 : return -1;
19547 : return 6589; /* *avx512fp16_vpternlogv8hf_2 */
19548 :
19549 : case 3:
19550 : if (!(
19551 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19552 : ((64 == 64 || TARGET_AVX512VL
19553 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19554 : && ix86_pre_reload_split ()
19555 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19556 : STRIP_UNARY (operands[4]))
19557 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19558 : STRIP_UNARY (operands[4]))
19559 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19560 : STRIP_UNARY (operands[3]))
19561 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19562 : STRIP_UNARY (operands[3])))) &&
19563 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19564 : (TARGET_AVX512F)))
19565 : return -1;
19566 : return 6616; /* *avx512bw_vpternlogv32bf_2 */
19567 :
19568 : case 4:
19569 : if (!(
19570 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19571 : ((32 == 64 || TARGET_AVX512VL
19572 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19573 : && ix86_pre_reload_split ()
19574 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19575 : STRIP_UNARY (operands[4]))
19576 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19577 : STRIP_UNARY (operands[4]))
19578 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19579 : STRIP_UNARY (operands[3]))
19580 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19581 : STRIP_UNARY (operands[3])))) &&
19582 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19583 : (TARGET_AVX)))
19584 : return -1;
19585 : return 6643; /* *avx512vl_vpternlogv16bf_2 */
19586 :
19587 : case 5:
19588 : if (!
19589 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19590 : ((16 == 64 || TARGET_AVX512VL
19591 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19592 : && ix86_pre_reload_split ()
19593 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19594 : STRIP_UNARY (operands[4]))
19595 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19596 : STRIP_UNARY (operands[4]))
19597 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19598 : STRIP_UNARY (operands[3]))
19599 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19600 : STRIP_UNARY (operands[3])))))
19601 : return -1;
19602 : return 6670; /* *avx512vl_vpternlogv8bf_2 */
19603 :
19604 : case 6:
19605 : if (!(
19606 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19607 : ((64 == 64 || TARGET_AVX512VL
19608 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19609 : && ix86_pre_reload_split ()
19610 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19611 : STRIP_UNARY (operands[4]))
19612 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19613 : STRIP_UNARY (operands[4]))
19614 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19615 : STRIP_UNARY (operands[3]))
19616 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19617 : STRIP_UNARY (operands[3])))) &&
19618 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19619 : (TARGET_AVX512F)))
19620 : return -1;
19621 : return 6697; /* *avx512f_vpternlogv16sf_2 */
19622 :
19623 : case 7:
19624 : if (!(
19625 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19626 : ((32 == 64 || TARGET_AVX512VL
19627 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19628 : && ix86_pre_reload_split ()
19629 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19630 : STRIP_UNARY (operands[4]))
19631 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19632 : STRIP_UNARY (operands[4]))
19633 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19634 : STRIP_UNARY (operands[3]))
19635 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19636 : STRIP_UNARY (operands[3])))) &&
19637 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19638 : (TARGET_AVX)))
19639 : return -1;
19640 : return 6724; /* *avx512vl_vpternlogv8sf_2 */
19641 :
19642 : case 8:
19643 : if (!
19644 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19645 : ((16 == 64 || TARGET_AVX512VL
19646 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19647 : && ix86_pre_reload_split ()
19648 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19649 : STRIP_UNARY (operands[4]))
19650 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19651 : STRIP_UNARY (operands[4]))
19652 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19653 : STRIP_UNARY (operands[3]))
19654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19655 : STRIP_UNARY (operands[3])))))
19656 : return -1;
19657 : return 6751; /* *avx512vl_vpternlogv4sf_2 */
19658 :
19659 : case 9:
19660 : if (!(
19661 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19662 : ((64 == 64 || TARGET_AVX512VL
19663 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19664 : && ix86_pre_reload_split ()
19665 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19666 : STRIP_UNARY (operands[4]))
19667 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19668 : STRIP_UNARY (operands[4]))
19669 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19670 : STRIP_UNARY (operands[3]))
19671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19672 : STRIP_UNARY (operands[3])))) &&
19673 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19674 : (TARGET_AVX512F)))
19675 : return -1;
19676 : return 6778; /* *avx512f_vpternlogv8df_2 */
19677 :
19678 : case 10:
19679 : if (!(
19680 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19681 : ((32 == 64 || TARGET_AVX512VL
19682 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19683 : && ix86_pre_reload_split ()
19684 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19685 : STRIP_UNARY (operands[4]))
19686 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19687 : STRIP_UNARY (operands[4]))
19688 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19689 : STRIP_UNARY (operands[3]))
19690 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19691 : STRIP_UNARY (operands[3])))) &&
19692 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19693 : (TARGET_AVX)))
19694 : return -1;
19695 : return 6805; /* *avx512vl_vpternlogv4df_2 */
19696 :
19697 : case 11:
19698 : if (!(
19699 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19700 : ((16 == 64 || TARGET_AVX512VL
19701 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
19702 : && ix86_pre_reload_split ()
19703 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
19704 : STRIP_UNARY (operands[4]))
19705 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19706 : STRIP_UNARY (operands[4]))
19707 : || rtx_equal_p (STRIP_UNARY (operands[1]),
19708 : STRIP_UNARY (operands[3]))
19709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
19710 : STRIP_UNARY (operands[3])))) &&
19711 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19712 : (TARGET_SSE2)))
19713 : return -1;
19714 : return 6832; /* *avx512vl_vpternlogv2df_2 */
19715 :
19716 : default:
19717 : return -1;
19718 : }
19719 :
19720 : default:
19721 : return -1;
19722 : }
19723 : }
19724 :
19725 : int
19726 : recog_325 (rtx x1 ATTRIBUTE_UNUSED,
19727 : rtx_insn *insn ATTRIBUTE_UNUSED,
19728 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19729 : {
19730 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19731 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19732 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
19733 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
19734 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
19735 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
19736 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
19737 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
19738 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
19739 : rtx x66, x67, x68, x69;
19740 : int res ATTRIBUTE_UNUSED;
19741 : x2 = XEXP (x1, 1);
19742 : x3 = XEXP (x2, 1);
19743 : if (GET_CODE (x3) != PARALLEL)
19744 : return -1;
19745 : x4 = XEXP (x1, 0);
19746 : operands[0] = x4;
19747 : x5 = XEXP (x2, 0);
19748 : switch (GET_CODE (x5))
19749 : {
19750 : case VEC_CONCAT:
19751 : x6 = XEXP (x5, 0);
19752 : switch (GET_CODE (x6))
19753 : {
19754 : case REG:
19755 : case SUBREG:
19756 : case MEM:
19757 : operands[1] = x6;
19758 : res = recog_289 (x1, insn, pnum_clobbers);
19759 : if (res >= 0)
19760 : return res;
19761 : if (XVECLEN (x3, 0) < 1)
19762 : return -1;
19763 : operands[4] = x3;
19764 : switch (pattern813 (x2))
19765 : {
19766 : case 0:
19767 : if (
19768 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19769 : (TARGET_AVX2))
19770 : return 8803; /* *avx2_zero_extendv16qiv16hi2_2 */
19771 : break;
19772 :
19773 : case 1:
19774 : if (
19775 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19776 : (TARGET_AVX2))
19777 : return 8804; /* *avx2_zero_extendv16qiv16hi2_2 */
19778 : break;
19779 :
19780 : case 2:
19781 : if (
19782 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19783 : (TARGET_AVX2))
19784 : return 8805; /* *avx2_zero_extendv16qiv16hi2_2 */
19785 : break;
19786 :
19787 : case 3:
19788 : if (
19789 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19790 : (TARGET_AVX512BW))
19791 : return 8811; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19792 : break;
19793 :
19794 : case 4:
19795 : if (
19796 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19797 : (TARGET_AVX512BW))
19798 : return 8812; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19799 : break;
19800 :
19801 : case 5:
19802 : if (
19803 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19804 : (TARGET_AVX512BW))
19805 : return 8813; /* *avx512bw_zero_extendv32qiv32hi2_2 */
19806 : break;
19807 :
19808 : case 6:
19809 : if (
19810 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19811 : (TARGET_SSE4_1))
19812 : return 8827; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19813 : break;
19814 :
19815 : case 7:
19816 : if (
19817 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19818 : (TARGET_SSE4_1))
19819 : return 8828; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19820 : break;
19821 :
19822 : case 8:
19823 : if (
19824 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19825 : (TARGET_SSE4_1))
19826 : return 8829; /* *sse4_1_zero_extendv8qiv8hi2_4 */
19827 : break;
19828 :
19829 : case 9:
19830 : if (
19831 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19832 : (TARGET_AVX512F))
19833 : return 8865; /* *avx512f_zero_extendv16hiv16si2_2 */
19834 : break;
19835 :
19836 : case 10:
19837 : if (
19838 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19839 : (TARGET_AVX512F))
19840 : return 8866; /* *avx512f_zero_extendv16hiv16si2_2 */
19841 : break;
19842 :
19843 : case 11:
19844 : if (
19845 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19846 : (TARGET_AVX512F))
19847 : return 8867; /* *avx512f_zero_extendv16hiv16si2_2 */
19848 : break;
19849 :
19850 : case 12:
19851 : if (
19852 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19853 : (TARGET_AVX2))
19854 : return 8873; /* *avx2_zero_extendv8hiv8si2_2 */
19855 : break;
19856 :
19857 : case 13:
19858 : if (
19859 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19860 : (TARGET_AVX2))
19861 : return 8874; /* *avx2_zero_extendv8hiv8si2_2 */
19862 : break;
19863 :
19864 : case 14:
19865 : if (
19866 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19867 : (TARGET_AVX2))
19868 : return 8875; /* *avx2_zero_extendv8hiv8si2_2 */
19869 : break;
19870 :
19871 : case 15:
19872 : if (
19873 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19874 : (TARGET_SSE4_1))
19875 : return 8889; /* *sse4_1_zero_extendv4hiv4si2_4 */
19876 : break;
19877 :
19878 : case 16:
19879 : if (
19880 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19881 : (TARGET_SSE4_1))
19882 : return 8890; /* *sse4_1_zero_extendv4hiv4si2_4 */
19883 : break;
19884 :
19885 : case 17:
19886 : if (
19887 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19888 : (TARGET_SSE4_1))
19889 : return 8891; /* *sse4_1_zero_extendv4hiv4si2_4 */
19890 : break;
19891 :
19892 : default:
19893 : break;
19894 : }
19895 : operands[3] = x3;
19896 : switch (pattern814 (x2))
19897 : {
19898 : case 0:
19899 : if (!(
19900 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19901 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19902 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19903 : (TARGET_AVX512F)))
19904 : return -1;
19905 : return 9697; /* *vec_concatv64qi_0_1 */
19906 :
19907 : case 1:
19908 : if (!(
19909 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19910 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19911 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19912 : (TARGET_AVX)))
19913 : return -1;
19914 : return 9698; /* *vec_concatv32qi_0_1 */
19915 :
19916 : case 2:
19917 : if (!
19918 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19919 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19920 : return -1;
19921 : return 9699; /* *vec_concatv16qi_0_1 */
19922 :
19923 : case 3:
19924 : if (!(
19925 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19926 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19927 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19928 : (TARGET_AVX512F)))
19929 : return -1;
19930 : return 9700; /* *vec_concatv32hi_0_1 */
19931 :
19932 : case 4:
19933 : if (!(
19934 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19935 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
19936 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19937 : (TARGET_AVX)))
19938 : return -1;
19939 : return 9701; /* *vec_concatv16hi_0_1 */
19940 :
19941 : case 5:
19942 : if (!
19943 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19944 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19945 : return -1;
19946 : return 9702; /* *vec_concatv8hi_0_1 */
19947 :
19948 : default:
19949 : return -1;
19950 : }
19951 :
19952 : case SS_TRUNCATE:
19953 : x7 = XEXP (x5, 1);
19954 : if (GET_CODE (x7) != SS_TRUNCATE)
19955 : return -1;
19956 : x8 = XEXP (x6, 0);
19957 : operands[1] = x8;
19958 : x9 = XEXP (x7, 0);
19959 : operands[2] = x9;
19960 : switch (XVECLEN (x3, 0))
19961 : {
19962 : case 32:
19963 : if (pattern845 (x3) != 0)
19964 : return -1;
19965 : x10 = XVECEXP (x3, 0, 4);
19966 : if (GET_CODE (x10) != CONST_INT)
19967 : return -1;
19968 : x11 = XVECEXP (x3, 0, 5);
19969 : if (GET_CODE (x11) != CONST_INT)
19970 : return -1;
19971 : x12 = XVECEXP (x3, 0, 6);
19972 : if (GET_CODE (x12) != CONST_INT)
19973 : return -1;
19974 : x13 = XVECEXP (x3, 0, 7);
19975 : if (GET_CODE (x13) != CONST_INT)
19976 : return -1;
19977 : x14 = XVECEXP (x3, 0, 8);
19978 : if (GET_CODE (x14) != CONST_INT)
19979 : return -1;
19980 : x15 = XVECEXP (x3, 0, 9);
19981 : if (GET_CODE (x15) != CONST_INT)
19982 : return -1;
19983 : x16 = XVECEXP (x3, 0, 10);
19984 : if (GET_CODE (x16) != CONST_INT)
19985 : return -1;
19986 : x17 = XVECEXP (x3, 0, 11);
19987 : if (GET_CODE (x17) != CONST_INT
19988 : || pattern1711 (x3,
19989 : 23,
19990 : 22,
19991 : 21,
19992 : 20,
19993 : 8) != 0)
19994 : return -1;
19995 : x18 = XVECEXP (x3, 0, 17);
19996 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
19997 : return -1;
19998 : x19 = XVECEXP (x3, 0, 18);
19999 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
20000 : return -1;
20001 : x20 = XVECEXP (x3, 0, 19);
20002 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
20003 : return -1;
20004 : x21 = XVECEXP (x3, 0, 20);
20005 : if (GET_CODE (x21) != CONST_INT)
20006 : return -1;
20007 : x22 = XVECEXP (x3, 0, 21);
20008 : if (GET_CODE (x22) != CONST_INT)
20009 : return -1;
20010 : x23 = XVECEXP (x3, 0, 22);
20011 : if (GET_CODE (x23) != CONST_INT)
20012 : return -1;
20013 : x24 = XVECEXP (x3, 0, 23);
20014 : if (GET_CODE (x24) != CONST_INT)
20015 : return -1;
20016 : x25 = XVECEXP (x3, 0, 24);
20017 : if (GET_CODE (x25) != CONST_INT)
20018 : return -1;
20019 : x26 = XVECEXP (x3, 0, 25);
20020 : if (GET_CODE (x26) != CONST_INT)
20021 : return -1;
20022 : x27 = XVECEXP (x3, 0, 26);
20023 : if (GET_CODE (x27) != CONST_INT)
20024 : return -1;
20025 : x28 = XVECEXP (x3, 0, 27);
20026 : if (GET_CODE (x28) != CONST_INT
20027 : || pattern1891 (x3,
20028 : 31,
20029 : 30,
20030 : 29,
20031 : 28) != 0)
20032 : return -1;
20033 : switch (XWINT (x10, 0))
20034 : {
20035 : case 4L:
20036 : if (XWINT (x11, 0) != 5L
20037 : || XWINT (x12, 0) != 6L
20038 : || XWINT (x13, 0) != 7L
20039 : || XWINT (x14, 0) != 16L
20040 : || XWINT (x15, 0) != 17L
20041 : || XWINT (x16, 0) != 18L
20042 : || XWINT (x17, 0) != 19L
20043 : || XWINT (x21, 0) != 12L
20044 : || XWINT (x22, 0) != 13L
20045 : || XWINT (x23, 0) != 14L
20046 : || XWINT (x24, 0) != 15L
20047 : || pattern1916 (x3) != 0
20048 : || pattern1846 (x2,
20049 : E_V16HImode,
20050 : E_V16QImode,
20051 : E_V32QImode) != 0
20052 : || !
20053 : #line 19584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20054 : (TARGET_AVX2 && 1 && 1))
20055 : return -1;
20056 : return 8348; /* avx2_packsswb */
20057 :
20058 : case 16L:
20059 : if (XWINT (x11, 0) != 17L
20060 : || XWINT (x12, 0) != 18L
20061 : || XWINT (x13, 0) != 19L
20062 : || XWINT (x14, 0) != 4L
20063 : || XWINT (x15, 0) != 5L
20064 : || XWINT (x16, 0) != 6L
20065 : || XWINT (x17, 0) != 7L
20066 : || XWINT (x21, 0) != 24L
20067 : || XWINT (x22, 0) != 25L
20068 : || XWINT (x23, 0) != 26L
20069 : || XWINT (x24, 0) != 27L
20070 : || XWINT (x25, 0) != 12L
20071 : || XWINT (x26, 0) != 13L
20072 : || XWINT (x27, 0) != 14L
20073 : || XWINT (x28, 0) != 15L
20074 : || pattern1846 (x2,
20075 : E_V16SImode,
20076 : E_V16HImode,
20077 : E_V32HImode) != 0
20078 : || !
20079 : #line 19700 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20080 : (TARGET_AVX512BW))
20081 : return -1;
20082 : return 8356; /* avx512bw_packssdw */
20083 :
20084 : default:
20085 : return -1;
20086 : }
20087 :
20088 : case 64:
20089 : if (pattern848 (x3,
20090 : 35,
20091 : 34,
20092 : 33,
20093 : 32) != 0
20094 : || pattern1711 (x3,
20095 : 39,
20096 : 38,
20097 : 37,
20098 : 36,
20099 : 8) != 0
20100 : || pattern1831 (x3,
20101 : 13,
20102 : 12,
20103 : 11,
20104 : 10,
20105 : 9) != 0
20106 : || pattern1873 (x3,
20107 : 42,
20108 : 41,
20109 : 40,
20110 : 15,
20111 : 14) != 0)
20112 : return -1;
20113 : x28 = XVECEXP (x3, 0, 27);
20114 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 43]
20115 : || pattern1891 (x3,
20116 : 47,
20117 : 46,
20118 : 45,
20119 : 44) != 0)
20120 : return -1;
20121 : x29 = XVECEXP (x3, 0, 32);
20122 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
20123 : return -1;
20124 : x30 = XVECEXP (x3, 0, 33);
20125 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
20126 : return -1;
20127 : x31 = XVECEXP (x3, 0, 34);
20128 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
20129 : return -1;
20130 : x32 = XVECEXP (x3, 0, 35);
20131 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
20132 : return -1;
20133 : x33 = XVECEXP (x3, 0, 36);
20134 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
20135 : return -1;
20136 : x34 = XVECEXP (x3, 0, 37);
20137 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
20138 : return -1;
20139 : x35 = XVECEXP (x3, 0, 38);
20140 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
20141 : return -1;
20142 : x36 = XVECEXP (x3, 0, 39);
20143 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
20144 : return -1;
20145 : x37 = XVECEXP (x3, 0, 40);
20146 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 48])
20147 : return -1;
20148 : x38 = XVECEXP (x3, 0, 41);
20149 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 49])
20150 : return -1;
20151 : x39 = XVECEXP (x3, 0, 42);
20152 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 50])
20153 : return -1;
20154 : x40 = XVECEXP (x3, 0, 43);
20155 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 51])
20156 : return -1;
20157 : x41 = XVECEXP (x3, 0, 44);
20158 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 52])
20159 : return -1;
20160 : x42 = XVECEXP (x3, 0, 45);
20161 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 53])
20162 : return -1;
20163 : x43 = XVECEXP (x3, 0, 46);
20164 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 54])
20165 : return -1;
20166 : x44 = XVECEXP (x3, 0, 47);
20167 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 55])
20168 : return -1;
20169 : x45 = XVECEXP (x3, 0, 48);
20170 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
20171 : return -1;
20172 : x46 = XVECEXP (x3, 0, 49);
20173 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
20174 : return -1;
20175 : x47 = XVECEXP (x3, 0, 50);
20176 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
20177 : return -1;
20178 : x48 = XVECEXP (x3, 0, 51);
20179 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
20180 : return -1;
20181 : x49 = XVECEXP (x3, 0, 52);
20182 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
20183 : return -1;
20184 : x50 = XVECEXP (x3, 0, 53);
20185 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
20186 : return -1;
20187 : x51 = XVECEXP (x3, 0, 54);
20188 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
20189 : return -1;
20190 : x52 = XVECEXP (x3, 0, 55);
20191 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
20192 : return -1;
20193 : x53 = XVECEXP (x3, 0, 56);
20194 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 56])
20195 : return -1;
20196 : x54 = XVECEXP (x3, 0, 57);
20197 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 57])
20198 : return -1;
20199 : x55 = XVECEXP (x3, 0, 58);
20200 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 58])
20201 : return -1;
20202 : x56 = XVECEXP (x3, 0, 59);
20203 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 59])
20204 : return -1;
20205 : x57 = XVECEXP (x3, 0, 60);
20206 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 60])
20207 : return -1;
20208 : x58 = XVECEXP (x3, 0, 61);
20209 : if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 61])
20210 : return -1;
20211 : x59 = XVECEXP (x3, 0, 62);
20212 : if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 62])
20213 : return -1;
20214 : x60 = XVECEXP (x3, 0, 63);
20215 : if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
20216 : || pattern1846 (x2,
20217 : E_V32HImode,
20218 : E_V32QImode,
20219 : E_V64QImode) != 0
20220 : || !
20221 : #line 19631 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20222 : (TARGET_AVX512BW))
20223 : return -1;
20224 : return 8350; /* avx512bw_packsswb */
20225 :
20226 : case 16:
20227 : if (pattern846 (x3,
20228 : 10,
20229 : 9,
20230 : 8) != 0
20231 : || pattern1514 (x3,
20232 : 7,
20233 : 6,
20234 : 5,
20235 : 4,
20236 : 11) != 0
20237 : || pattern1846 (x2,
20238 : E_V8SImode,
20239 : E_V8HImode,
20240 : E_V16HImode) != 0
20241 : || !
20242 : #line 19670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20243 : (TARGET_AVX2 && 1 && 1))
20244 : return -1;
20245 : return 8354; /* avx2_packssdw */
20246 :
20247 : default:
20248 : return -1;
20249 : }
20250 :
20251 : case VEC_CONCAT:
20252 : switch (pattern523 (x2))
20253 : {
20254 : case 0:
20255 : if (!
20256 : #line 25668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20257 : (TARGET_AVX512F))
20258 : return -1;
20259 : return 8960; /* *avx512f_zero_extendv8siv8di2_2 */
20260 :
20261 : case 1:
20262 : if (!
20263 : #line 25720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20264 : (TARGET_AVX2))
20265 : return -1;
20266 : return 8966; /* *avx2_zero_extendv4siv4di2_2 */
20267 :
20268 : case 2:
20269 : if (!
20270 : #line 25839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20271 : (TARGET_SSE4_1))
20272 : return -1;
20273 : return 8980; /* *sse4_1_zero_extendv2siv2di2_4 */
20274 :
20275 : default:
20276 : return -1;
20277 : }
20278 :
20279 : default:
20280 : return -1;
20281 : }
20282 :
20283 : case REG:
20284 : case SUBREG:
20285 : case MEM:
20286 : operands[1] = x5;
20287 : res = recog_303 (x1, insn, pnum_clobbers);
20288 : if (res >= 0)
20289 : return res;
20290 : if (GET_CODE (x5) != SUBREG)
20291 : return -1;
20292 : switch (pattern525 (x2))
20293 : {
20294 : case 0:
20295 : if (!
20296 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20297 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
20298 : return -1;
20299 : return 7273; /* *avx512bw_permvar_truncv16siv16hi_1_hf */
20300 :
20301 : case 1:
20302 : if (!
20303 : #line 15413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20304 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
20305 : return -1;
20306 : return 7275; /* *avx512f_permvar_truncv8siv8hi_1_hf */
20307 :
20308 : default:
20309 : return -1;
20310 : }
20311 :
20312 : case UNSPEC:
20313 : switch (XVECLEN (x5, 0))
20314 : {
20315 : case 2:
20316 : switch (pattern527 (x2))
20317 : {
20318 : case 0:
20319 : if (!
20320 : #line 15335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20321 : (TARGET_AVX512BW && ix86_pre_reload_split ()))
20322 : return -1;
20323 : return 7272; /* *avx512bw_permvar_truncv16siv16hi_1 */
20324 :
20325 : case 1:
20326 : if (!
20327 : #line 15597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20328 : (TARGET_AVX512VL && TARGET_AVX512VBMI
20329 : && ix86_pre_reload_split ()))
20330 : return -1;
20331 : return 7305; /* *avx512f_permvar_truncv16hiv16qi_1 */
20332 :
20333 : case 2:
20334 : if (!
20335 : #line 15392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20336 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()))
20337 : return -1;
20338 : return 7274; /* *avx512f_permvar_truncv8siv8hi_1 */
20339 :
20340 : case 3:
20341 : if (!
20342 : #line 15444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20343 : (TARGET_AVX512F && ix86_pre_reload_split ()))
20344 : return -1;
20345 : return 7276; /* *avx512f_vpermvar_truncv8div8si_1 */
20346 :
20347 : case 4:
20348 : if (!
20349 : #line 15516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20350 : (TARGET_AVX512VBMI && ix86_pre_reload_split ()))
20351 : return -1;
20352 : return 7292; /* *avx512f_permvar_truncv32hiv32qi_1 */
20353 :
20354 : case 5:
20355 : if (!
20356 : #line 15616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20357 : (TARGET_AVX512VL && ix86_pre_reload_split ()))
20358 : return -1;
20359 : return 7306; /* *avx512f_permvar_truncv4div4si_1 */
20360 :
20361 : default:
20362 : return -1;
20363 : }
20364 :
20365 : case 1:
20366 : if (XINT (x5, 1) != 150
20367 : || GET_MODE (x5) != E_V8SFmode
20368 : || XVECLEN (x3, 0) != 4
20369 : || pattern845 (x3) != 0
20370 : || !register_operand (operands[0], E_V4SFmode)
20371 : || GET_MODE (x2) != E_V4SFmode)
20372 : return -1;
20373 : x61 = XVECEXP (x5, 0, 0);
20374 : operands[1] = x61;
20375 : if (!register_operand (operands[1], E_V8HImode)
20376 : || !
20377 : #line 29778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20378 : (TARGET_F16C || TARGET_AVX512VL))
20379 : return -1;
20380 : return 9721; /* vcvtph2ps */
20381 :
20382 : case 4:
20383 : if (pnum_clobbers == NULL
20384 : || XINT (x5, 1) != 154)
20385 : return -1;
20386 : x62 = XVECEXP (x5, 0, 1);
20387 : if (GET_CODE (x62) != MEM)
20388 : return -1;
20389 : x63 = XEXP (x62, 0);
20390 : if (GET_CODE (x63) != UNSPEC
20391 : || XVECLEN (x63, 0) != 3
20392 : || XINT (x63, 1) != 155)
20393 : return -1;
20394 : x64 = XVECEXP (x5, 0, 2);
20395 : if (GET_CODE (x64) != MEM
20396 : || GET_MODE (x64) != E_BLKmode)
20397 : return -1;
20398 : x65 = XEXP (x64, 0);
20399 : if (GET_CODE (x65) != SCRATCH
20400 : || XVECLEN (x3, 0) != 4
20401 : || pattern845 (x3) != 0)
20402 : return -1;
20403 : x66 = XVECEXP (x63, 0, 1);
20404 : if (!register_operand (x66, E_V4DImode))
20405 : return -1;
20406 : x67 = XVECEXP (x63, 0, 2);
20407 : if (!const1248_operand (x67, E_SImode))
20408 : return -1;
20409 : x61 = XVECEXP (x5, 0, 0);
20410 : switch (GET_CODE (x61))
20411 : {
20412 : case REG:
20413 : case SUBREG:
20414 : operands[2] = x61;
20415 : operands[7] = x62;
20416 : x68 = XVECEXP (x63, 0, 0);
20417 : operands[3] = x68;
20418 : operands[4] = x66;
20419 : operands[6] = x67;
20420 : x69 = XVECEXP (x5, 0, 3);
20421 : operands[5] = x69;
20422 : switch (GET_MODE (operands[0]))
20423 : {
20424 : case E_V4SImode:
20425 : switch (pattern1868 (x2,
20426 : E_V4SImode,
20427 : E_SImode,
20428 : E_V8SImode))
20429 : {
20430 : case 0:
20431 : if (!(
20432 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20433 : (TARGET_AVX2) &&
20434 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20435 : (Pmode == SImode)))
20436 : return -1;
20437 : *pnum_clobbers = 1;
20438 : return 9808; /* *avx2_gatherdiv8si_3 */
20439 :
20440 : case 1:
20441 : if (!(
20442 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20443 : (TARGET_AVX2) &&
20444 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20445 : (Pmode == DImode)))
20446 : return -1;
20447 : *pnum_clobbers = 1;
20448 : return 9810; /* *avx2_gatherdiv8si_3 */
20449 :
20450 : default:
20451 : return -1;
20452 : }
20453 :
20454 : case E_V4SFmode:
20455 : switch (pattern1868 (x2,
20456 : E_V4SFmode,
20457 : E_SFmode,
20458 : E_V8SFmode))
20459 : {
20460 : case 0:
20461 : if (!(
20462 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20463 : (TARGET_AVX2) &&
20464 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20465 : (Pmode == SImode)))
20466 : return -1;
20467 : *pnum_clobbers = 1;
20468 : return 9809; /* *avx2_gatherdiv8sf_3 */
20469 :
20470 : case 1:
20471 : if (!(
20472 : #line 30105 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20473 : (TARGET_AVX2) &&
20474 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20475 : (Pmode == DImode)))
20476 : return -1;
20477 : *pnum_clobbers = 1;
20478 : return 9811; /* *avx2_gatherdiv8sf_3 */
20479 :
20480 : default:
20481 : return -1;
20482 : }
20483 :
20484 : default:
20485 : return -1;
20486 : }
20487 :
20488 : case PC:
20489 : operands[6] = x62;
20490 : x68 = XVECEXP (x63, 0, 0);
20491 : operands[2] = x68;
20492 : operands[3] = x66;
20493 : operands[5] = x67;
20494 : x69 = XVECEXP (x5, 0, 3);
20495 : operands[4] = x69;
20496 : switch (GET_MODE (operands[0]))
20497 : {
20498 : case E_V4SImode:
20499 : switch (pattern1862 (x2,
20500 : E_V4SImode,
20501 : E_SImode,
20502 : E_V8SImode))
20503 : {
20504 : case 0:
20505 : if (!(
20506 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20507 : (TARGET_AVX2) &&
20508 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20509 : (Pmode == SImode)))
20510 : return -1;
20511 : *pnum_clobbers = 1;
20512 : return 9812; /* *avx2_gatherdiv8si_4 */
20513 :
20514 : case 1:
20515 : if (!(
20516 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20517 : (TARGET_AVX2) &&
20518 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20519 : (Pmode == DImode)))
20520 : return -1;
20521 : *pnum_clobbers = 1;
20522 : return 9814; /* *avx2_gatherdiv8si_4 */
20523 :
20524 : default:
20525 : return -1;
20526 : }
20527 :
20528 : case E_V4SFmode:
20529 : switch (pattern1862 (x2,
20530 : E_V4SFmode,
20531 : E_SFmode,
20532 : E_V8SFmode))
20533 : {
20534 : case 0:
20535 : if (!(
20536 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20537 : (TARGET_AVX2) &&
20538 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20539 : (Pmode == SImode)))
20540 : return -1;
20541 : *pnum_clobbers = 1;
20542 : return 9813; /* *avx2_gatherdiv8sf_4 */
20543 :
20544 : case 1:
20545 : if (!(
20546 : #line 30129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20547 : (TARGET_AVX2) &&
20548 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
20549 : (Pmode == DImode)))
20550 : return -1;
20551 : *pnum_clobbers = 1;
20552 : return 9815; /* *avx2_gatherdiv8sf_4 */
20553 :
20554 : default:
20555 : return -1;
20556 : }
20557 :
20558 : default:
20559 : return -1;
20560 : }
20561 :
20562 : default:
20563 : return -1;
20564 : }
20565 :
20566 : default:
20567 : return -1;
20568 : }
20569 :
20570 : default:
20571 : return -1;
20572 : }
20573 : }
20574 :
20575 : int
20576 : recog_330 (rtx x1 ATTRIBUTE_UNUSED,
20577 : rtx_insn *insn ATTRIBUTE_UNUSED,
20578 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20579 : {
20580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20581 : rtx x2, x3, x4, x5, x6, x7, x8;
20582 : int res ATTRIBUTE_UNUSED;
20583 : x2 = XEXP (x1, 0);
20584 : operands[0] = x2;
20585 : x3 = XEXP (x1, 1);
20586 : x4 = XEXP (x3, 1);
20587 : operands[2] = x4;
20588 : x5 = XEXP (x3, 0);
20589 : switch (GET_CODE (x5))
20590 : {
20591 : case REG:
20592 : case SUBREG:
20593 : case MEM:
20594 : case VEC_DUPLICATE:
20595 : return recog_278 (x1, insn, pnum_clobbers);
20596 :
20597 : case NEG:
20598 : x6 = XEXP (x5, 0);
20599 : operands[1] = x6;
20600 : x7 = XEXP (x3, 2);
20601 : switch (GET_CODE (x7))
20602 : {
20603 : case REG:
20604 : case SUBREG:
20605 : case MEM:
20606 : case VEC_DUPLICATE:
20607 : operands[3] = x7;
20608 : switch (GET_MODE (operands[0]))
20609 : {
20610 : case E_V4SFmode:
20611 : if (!register_operand (operands[0], E_V4SFmode)
20612 : || GET_MODE (x3) != E_V4SFmode
20613 : || GET_MODE (x5) != E_V4SFmode)
20614 : return -1;
20615 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20616 : && nonimmediate_operand (operands[2], E_V4SFmode)
20617 : && nonimmediate_operand (operands[3], E_V4SFmode)
20618 : &&
20619 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20620 : (TARGET_FMA || TARGET_FMA4))
20621 : return 3998; /* *fma_fnmadd_v4sf */
20622 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20623 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20624 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20625 : || !(
20626 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20627 : (TARGET_AVX512F && 1 && 1) &&
20628 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20629 : (TARGET_AVX512VL)))
20630 : return -1;
20631 : return 4018; /* *fma_fnmadd_v4sf */
20632 :
20633 : case E_V2DFmode:
20634 : if (!register_operand (operands[0], E_V2DFmode)
20635 : || GET_MODE (x3) != E_V2DFmode
20636 : || GET_MODE (x5) != E_V2DFmode)
20637 : return -1;
20638 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20639 : && nonimmediate_operand (operands[2], E_V2DFmode)
20640 : && nonimmediate_operand (operands[3], E_V2DFmode)
20641 : &&
20642 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20643 : (TARGET_FMA || TARGET_FMA4))
20644 : return 3999; /* *fma_fnmadd_v2df */
20645 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20646 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20647 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20648 : || !(
20649 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20650 : (TARGET_AVX512F && 1 && 1) &&
20651 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20652 : (TARGET_AVX512VL)))
20653 : return -1;
20654 : return 4027; /* *fma_fnmadd_v2df */
20655 :
20656 : case E_V8SFmode:
20657 : if (!register_operand (operands[0], E_V8SFmode)
20658 : || GET_MODE (x3) != E_V8SFmode
20659 : || GET_MODE (x5) != E_V8SFmode)
20660 : return -1;
20661 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20662 : && nonimmediate_operand (operands[2], E_V8SFmode)
20663 : && nonimmediate_operand (operands[3], E_V8SFmode)
20664 : &&
20665 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20666 : (TARGET_FMA || TARGET_FMA4))
20667 : return 4000; /* *fma_fnmadd_v8sf */
20668 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20669 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20670 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20671 : || !(
20672 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20673 : (TARGET_AVX512F && 1 && 1) &&
20674 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20675 : (TARGET_AVX512VL)))
20676 : return -1;
20677 : return 4016; /* *fma_fnmadd_v8sf */
20678 :
20679 : case E_V4DFmode:
20680 : if (!register_operand (operands[0], E_V4DFmode)
20681 : || GET_MODE (x3) != E_V4DFmode
20682 : || GET_MODE (x5) != E_V4DFmode)
20683 : return -1;
20684 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20685 : && nonimmediate_operand (operands[2], E_V4DFmode)
20686 : && nonimmediate_operand (operands[3], E_V4DFmode)
20687 : &&
20688 : #line 6466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20689 : (TARGET_FMA || TARGET_FMA4))
20690 : return 4001; /* *fma_fnmadd_v4df */
20691 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20692 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20693 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20694 : || !(
20695 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20696 : (TARGET_AVX512F && 1 && 1) &&
20697 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20698 : (TARGET_AVX512VL)))
20699 : return -1;
20700 : return 4025; /* *fma_fnmadd_v4df */
20701 :
20702 : case E_V32HFmode:
20703 : if (pattern876 (x3,
20704 : E_V32HFmode) != 0
20705 : || !(
20706 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20707 : (TARGET_AVX512F && 1 && 1) &&
20708 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20709 : (TARGET_AVX512FP16)))
20710 : return -1;
20711 : return 4002; /* *fma_fnmadd_v32hf */
20712 :
20713 : case E_V16HFmode:
20714 : if (pattern876 (x3,
20715 : E_V16HFmode) != 0
20716 : || !(
20717 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20718 : (TARGET_AVX512F && 1 && 1) &&
20719 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20720 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20721 : return -1;
20722 : return 4006; /* *fma_fnmadd_v16hf */
20723 :
20724 : case E_V8HFmode:
20725 : if (pattern876 (x3,
20726 : E_V8HFmode) != 0
20727 : || !(
20728 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20729 : (TARGET_AVX512F && 1 && 1) &&
20730 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20731 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20732 : return -1;
20733 : return 4008; /* *fma_fnmadd_v8hf */
20734 :
20735 : case E_V16SFmode:
20736 : if (pattern876 (x3,
20737 : E_V16SFmode) != 0
20738 : || !
20739 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20740 : (TARGET_AVX512F && 1 && 1))
20741 : return -1;
20742 : return 4012; /* *fma_fnmadd_v16sf */
20743 :
20744 : case E_V8DFmode:
20745 : if (pattern876 (x3,
20746 : E_V8DFmode) != 0
20747 : || !
20748 : #line 6498 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20749 : (TARGET_AVX512F && 1 && 1))
20750 : return -1;
20751 : return 4021; /* *fma_fnmadd_v8df */
20752 :
20753 : case E_V32BFmode:
20754 : if (pattern926 (x3,
20755 : E_V32BFmode) != 0
20756 : || !
20757 : #line 32916 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20758 : (TARGET_AVX10_2))
20759 : return -1;
20760 : return 10714; /* avx10_2_fnmaddbf16_v32bf */
20761 :
20762 : case E_V16BFmode:
20763 : if (pattern926 (x3,
20764 : E_V16BFmode) != 0
20765 : || !
20766 : #line 32916 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20767 : (TARGET_AVX10_2))
20768 : return -1;
20769 : return 10716; /* avx10_2_fnmaddbf16_v16bf */
20770 :
20771 : case E_V8BFmode:
20772 : if (pattern926 (x3,
20773 : E_V8BFmode) != 0
20774 : || !
20775 : #line 32916 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20776 : (TARGET_AVX10_2))
20777 : return -1;
20778 : return 10718; /* avx10_2_fnmaddbf16_v8bf */
20779 :
20780 : default:
20781 : return -1;
20782 : }
20783 :
20784 : case NEG:
20785 : x8 = XEXP (x7, 0);
20786 : operands[3] = x8;
20787 : switch (GET_MODE (operands[0]))
20788 : {
20789 : case E_V4SFmode:
20790 : if (pattern877 (x3,
20791 : E_V4SFmode) != 0)
20792 : return -1;
20793 : if (nonimmediate_operand (operands[1], E_V4SFmode)
20794 : && nonimmediate_operand (operands[2], E_V4SFmode)
20795 : && nonimmediate_operand (operands[3], E_V4SFmode)
20796 : &&
20797 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20798 : (TARGET_FMA || TARGET_FMA4))
20799 : return 4057; /* *fma_fnmsub_v4sf */
20800 : if (!bcst_vector_operand (operands[1], E_V4SFmode)
20801 : || !bcst_vector_operand (operands[2], E_V4SFmode)
20802 : || !bcst_vector_operand (operands[3], E_V4SFmode)
20803 : || !(
20804 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20805 : (TARGET_AVX512F && 1 && 1) &&
20806 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20807 : (TARGET_AVX512VL)))
20808 : return -1;
20809 : return 4089; /* *fma_fnmsub_v4sf */
20810 :
20811 : case E_V2DFmode:
20812 : if (pattern877 (x3,
20813 : E_V2DFmode) != 0)
20814 : return -1;
20815 : if (nonimmediate_operand (operands[1], E_V2DFmode)
20816 : && nonimmediate_operand (operands[2], E_V2DFmode)
20817 : && nonimmediate_operand (operands[3], E_V2DFmode)
20818 : &&
20819 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20820 : (TARGET_FMA || TARGET_FMA4))
20821 : return 4061; /* *fma_fnmsub_v2df */
20822 : if (!bcst_vector_operand (operands[1], E_V2DFmode)
20823 : || !bcst_vector_operand (operands[2], E_V2DFmode)
20824 : || !bcst_vector_operand (operands[3], E_V2DFmode)
20825 : || !(
20826 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20827 : (TARGET_AVX512F && 1 && 1) &&
20828 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20829 : (TARGET_AVX512VL)))
20830 : return -1;
20831 : return 4098; /* *fma_fnmsub_v2df */
20832 :
20833 : case E_V8SFmode:
20834 : if (pattern877 (x3,
20835 : E_V8SFmode) != 0)
20836 : return -1;
20837 : if (nonimmediate_operand (operands[1], E_V8SFmode)
20838 : && nonimmediate_operand (operands[2], E_V8SFmode)
20839 : && nonimmediate_operand (operands[3], E_V8SFmode)
20840 : &&
20841 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20842 : (TARGET_FMA || TARGET_FMA4))
20843 : return 4065; /* *fma_fnmsub_v8sf */
20844 : if (!bcst_vector_operand (operands[1], E_V8SFmode)
20845 : || !bcst_vector_operand (operands[2], E_V8SFmode)
20846 : || !bcst_vector_operand (operands[3], E_V8SFmode)
20847 : || !(
20848 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20849 : (TARGET_AVX512F && 1 && 1) &&
20850 : #line 6280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20851 : (TARGET_AVX512VL)))
20852 : return -1;
20853 : return 4087; /* *fma_fnmsub_v8sf */
20854 :
20855 : case E_V4DFmode:
20856 : if (pattern877 (x3,
20857 : E_V4DFmode) != 0)
20858 : return -1;
20859 : if (nonimmediate_operand (operands[1], E_V4DFmode)
20860 : && nonimmediate_operand (operands[2], E_V4DFmode)
20861 : && nonimmediate_operand (operands[3], E_V4DFmode)
20862 : &&
20863 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20864 : (TARGET_FMA || TARGET_FMA4))
20865 : return 4069; /* *fma_fnmsub_v4df */
20866 : if (!bcst_vector_operand (operands[1], E_V4DFmode)
20867 : || !bcst_vector_operand (operands[2], E_V4DFmode)
20868 : || !bcst_vector_operand (operands[3], E_V4DFmode)
20869 : || !(
20870 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20871 : (TARGET_AVX512F && 1 && 1) &&
20872 : #line 6281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20873 : (TARGET_AVX512VL)))
20874 : return -1;
20875 : return 4096; /* *fma_fnmsub_v4df */
20876 :
20877 : case E_V32HFmode:
20878 : if (pattern878 (x3,
20879 : E_V32HFmode) != 0
20880 : || !(
20881 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20882 : (TARGET_AVX512F && 1 && 1) &&
20883 : #line 6276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20884 : (TARGET_AVX512FP16)))
20885 : return -1;
20886 : return 4073; /* *fma_fnmsub_v32hf */
20887 :
20888 : case E_V16HFmode:
20889 : if (pattern878 (x3,
20890 : E_V16HFmode) != 0
20891 : || !(
20892 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20893 : (TARGET_AVX512F && 1 && 1) &&
20894 : #line 6277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20895 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20896 : return -1;
20897 : return 4077; /* *fma_fnmsub_v16hf */
20898 :
20899 : case E_V8HFmode:
20900 : if (pattern878 (x3,
20901 : E_V8HFmode) != 0
20902 : || !(
20903 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20904 : (TARGET_AVX512F && 1 && 1) &&
20905 : #line 6278 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20906 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20907 : return -1;
20908 : return 4079; /* *fma_fnmsub_v8hf */
20909 :
20910 : case E_V16SFmode:
20911 : if (pattern878 (x3,
20912 : E_V16SFmode) != 0
20913 : || !
20914 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20915 : (TARGET_AVX512F && 1 && 1))
20916 : return -1;
20917 : return 4083; /* *fma_fnmsub_v16sf */
20918 :
20919 : case E_V8DFmode:
20920 : if (pattern878 (x3,
20921 : E_V8DFmode) != 0
20922 : || !
20923 : #line 6606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20924 : (TARGET_AVX512F && 1 && 1))
20925 : return -1;
20926 : return 4092; /* *fma_fnmsub_v8df */
20927 :
20928 : case E_V32BFmode:
20929 : if (pattern927 (x3,
20930 : E_V32BFmode) != 0
20931 : || !
20932 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20933 : (TARGET_AVX10_2))
20934 : return -1;
20935 : return 10738; /* avx10_2_fnmsubbf16_v32bf */
20936 :
20937 : case E_V16BFmode:
20938 : if (pattern927 (x3,
20939 : E_V16BFmode) != 0
20940 : || !
20941 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20942 : (TARGET_AVX10_2))
20943 : return -1;
20944 : return 10740; /* avx10_2_fnmsubbf16_v16bf */
20945 :
20946 : case E_V8BFmode:
20947 : if (pattern927 (x3,
20948 : E_V8BFmode) != 0
20949 : || !
20950 : #line 33047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20951 : (TARGET_AVX10_2))
20952 : return -1;
20953 : return 10742; /* avx10_2_fnmsubbf16_v8bf */
20954 :
20955 : default:
20956 : return -1;
20957 : }
20958 :
20959 : default:
20960 : return -1;
20961 : }
20962 :
20963 : default:
20964 : return -1;
20965 : }
20966 : }
20967 :
20968 : int
20969 : recog_333 (rtx x1 ATTRIBUTE_UNUSED,
20970 : rtx_insn *insn ATTRIBUTE_UNUSED,
20971 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20972 : {
20973 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20974 : int res ATTRIBUTE_UNUSED;
20975 : switch (pattern30 (x1))
20976 : {
20977 : case 0:
20978 : if (nonimmediate_operand (operands[1], E_V16HImode)
20979 : && nonmemory_operand (operands[2], E_DImode)
20980 : && (
20981 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20982 : (TARGET_AVX512VL) &&
20983 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20984 : (TARGET_AVX512BW)))
20985 : return 7682; /* *lshrv16hi3 */
20986 : if (!register_operand (operands[1], E_V16HImode))
20987 : return -1;
20988 : if (nonmemory_operand (operands[2], E_DImode)
20989 : && (
20990 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20991 : (TARGET_SSE2) &&
20992 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20993 : (TARGET_AVX2)))
20994 : return 7705; /* lshrv16hi3 */
20995 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20996 : || !(
20997 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20998 : (TARGET_AVX512BW) &&
20999 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21000 : (TARGET_AVX512VL)))
21001 : return -1;
21002 : return 9675; /* avx512vl_lshrvv16hi */
21003 :
21004 : case 1:
21005 : if (nonimmediate_operand (operands[1], E_V8HImode)
21006 : && nonmemory_operand (operands[2], E_DImode)
21007 : && (
21008 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21009 : (TARGET_AVX512VL) &&
21010 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21011 : (TARGET_AVX512BW)))
21012 : return 7686; /* *lshrv8hi3 */
21013 : if (!register_operand (operands[1], E_V8HImode))
21014 : return -1;
21015 : if (nonmemory_operand (operands[2], E_DImode)
21016 : &&
21017 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21018 : (TARGET_SSE2))
21019 : return 7707; /* lshrv8hi3 */
21020 : if (!nonimmediate_operand (operands[2], E_V8HImode)
21021 : || !(
21022 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21023 : (TARGET_AVX512BW) &&
21024 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21025 : (TARGET_AVX512VL)))
21026 : return -1;
21027 : return 9671; /* avx512vl_lshrvv8hi */
21028 :
21029 : case 2:
21030 : if (nonimmediate_operand (operands[1], E_V8SImode)
21031 : && nonmemory_operand (operands[2], E_DImode)
21032 : &&
21033 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21034 : (TARGET_AVX512VL))
21035 : return 7690; /* *lshrv8si3 */
21036 : if (!register_operand (operands[1], E_V8SImode))
21037 : return -1;
21038 : if (nonmemory_operand (operands[2], E_DImode)
21039 : && (
21040 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21041 : (TARGET_SSE2) &&
21042 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21043 : (TARGET_AVX2)))
21044 : return 7709; /* lshrv8si3 */
21045 : if (!nonimmediate_operand (operands[2], E_V8SImode)
21046 : || !
21047 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21048 : (TARGET_AVX2 && 1))
21049 : return -1;
21050 : return 9651; /* avx2_lshrvv8si */
21051 :
21052 : case 3:
21053 : if (nonimmediate_operand (operands[1], E_V4SImode)
21054 : && nonmemory_operand (operands[2], E_DImode)
21055 : &&
21056 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21057 : (TARGET_AVX512VL))
21058 : return 7694; /* *lshrv4si3 */
21059 : if (!register_operand (operands[1], E_V4SImode))
21060 : return -1;
21061 : if (nonmemory_operand (operands[2], E_DImode)
21062 : &&
21063 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21064 : (TARGET_SSE2))
21065 : return 7711; /* lshrv4si3 */
21066 : if (!nonimmediate_operand (operands[2], E_V4SImode)
21067 : || !
21068 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21069 : (TARGET_AVX2 && 1))
21070 : return -1;
21071 : return 9655; /* avx2_lshrvv4si */
21072 :
21073 : case 4:
21074 : if (nonimmediate_operand (operands[1], E_V4DImode)
21075 : && nonmemory_operand (operands[2], E_DImode)
21076 : &&
21077 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21078 : (TARGET_AVX512VL))
21079 : return 7698; /* *lshrv4di3 */
21080 : if (!register_operand (operands[1], E_V4DImode))
21081 : return -1;
21082 : if (nonmemory_operand (operands[2], E_DImode)
21083 : && (
21084 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21085 : (TARGET_SSE2) &&
21086 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21087 : (TARGET_AVX2)))
21088 : return 7713; /* lshrv4di3 */
21089 : if (!nonimmediate_operand (operands[2], E_V4DImode)
21090 : || !
21091 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21092 : (TARGET_AVX2 && 1))
21093 : return -1;
21094 : return 9663; /* avx2_lshrvv4di */
21095 :
21096 : case 5:
21097 : if (nonimmediate_operand (operands[1], E_V2DImode)
21098 : && nonmemory_operand (operands[2], E_DImode)
21099 : &&
21100 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21101 : (TARGET_AVX512VL))
21102 : return 7702; /* *lshrv2di3 */
21103 : if (!register_operand (operands[1], E_V2DImode))
21104 : return -1;
21105 : if (nonmemory_operand (operands[2], E_DImode)
21106 : &&
21107 : #line 17629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21108 : (TARGET_SSE2))
21109 : return 7715; /* lshrv2di3 */
21110 : if (!nonimmediate_operand (operands[2], E_V2DImode)
21111 : || !
21112 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21113 : (TARGET_AVX2 && 1))
21114 : return -1;
21115 : return 9667; /* avx2_lshrvv2di */
21116 :
21117 : case 6:
21118 : if (nonimmediate_operand (operands[1], E_V32HImode)
21119 : && nonmemory_operand (operands[2], E_DImode)
21120 : && (
21121 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21122 : (TARGET_AVX512F) &&
21123 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21124 : (TARGET_AVX512BW)))
21125 : return 7722; /* lshrv32hi3 */
21126 : if (!register_operand (operands[1], E_V32HImode)
21127 : || !nonimmediate_operand (operands[2], E_V32HImode)
21128 : || !
21129 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21130 : (TARGET_AVX512BW))
21131 : return -1;
21132 : return 9679; /* avx512bw_lshrvv32hi */
21133 :
21134 : case 7:
21135 : if (nonimmediate_operand (operands[1], E_V16SImode)
21136 : && nonmemory_operand (operands[2], E_DImode)
21137 : &&
21138 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21139 : (TARGET_AVX512F))
21140 : return 7726; /* lshrv16si3 */
21141 : if (!register_operand (operands[1], E_V16SImode)
21142 : || !nonimmediate_operand (operands[2], E_V16SImode)
21143 : || !(
21144 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21145 : (TARGET_AVX2 && 1) &&
21146 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21147 : (TARGET_AVX512F)))
21148 : return -1;
21149 : return 9647; /* avx512f_lshrvv16si */
21150 :
21151 : case 8:
21152 : if (nonimmediate_operand (operands[1], E_V8DImode)
21153 : && nonmemory_operand (operands[2], E_DImode)
21154 : &&
21155 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21156 : (TARGET_AVX512F))
21157 : return 7730; /* lshrv8di3 */
21158 : if (!register_operand (operands[1], E_V8DImode)
21159 : || !nonimmediate_operand (operands[2], E_V8DImode)
21160 : || !(
21161 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21162 : (TARGET_AVX2 && 1) &&
21163 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21164 : (TARGET_AVX512F)))
21165 : return -1;
21166 : return 9659; /* avx512f_lshrvv8di */
21167 :
21168 : case 9:
21169 : if (register_operand (operands[1], E_V1TImode)
21170 : && const_0_to_255_not_mul_8_operand (operands[2], E_SImode)
21171 : &&
21172 : #line 17807 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21173 : (TARGET_SSE2 && TARGET_64BIT
21174 : && ix86_pre_reload_split ()))
21175 : return 7733; /* *lshrv1ti3_internal */
21176 : if (!const_0_to_255_mul_8_operand (operands[2], E_SImode))
21177 : return -1;
21178 : if (nonimmediate_operand (operands[1], E_V1TImode)
21179 : && (
21180 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21181 : (TARGET_AVX512BW) &&
21182 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21183 : (TARGET_AVX512VL)))
21184 : return 7742; /* avx512bw_lshrv1ti3 */
21185 : if (!register_operand (operands[1], E_V1TImode)
21186 : || !
21187 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21188 : (TARGET_SSE2))
21189 : return -1;
21190 : return 7746; /* sse2_lshrv1ti3 */
21191 :
21192 : case 10:
21193 : if (!
21194 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21195 : (TARGET_AVX512BW))
21196 : return -1;
21197 : return 7738; /* avx512bw_lshrv4ti3 */
21198 :
21199 : case 11:
21200 : if (nonimmediate_operand (operands[1], E_V2TImode)
21201 : && (
21202 : #line 17922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21203 : (TARGET_AVX512BW) &&
21204 : #line 722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21205 : (TARGET_AVX512VL)))
21206 : return 7740; /* avx512bw_lshrv2ti3 */
21207 : if (!register_operand (operands[1], E_V2TImode)
21208 : || !(
21209 : #line 17937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21210 : (TARGET_SSE2) &&
21211 : #line 725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21212 : (TARGET_AVX2)))
21213 : return -1;
21214 : return 7744; /* avx2_lshrv2ti3 */
21215 :
21216 : default:
21217 : return -1;
21218 : }
21219 : }
21220 :
21221 : int
21222 : recog_338 (rtx x1 ATTRIBUTE_UNUSED,
21223 : rtx_insn *insn ATTRIBUTE_UNUSED,
21224 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21225 : {
21226 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21227 : rtx x2, x3, x4, x5, x6, x7;
21228 : int res ATTRIBUTE_UNUSED;
21229 : switch (pattern35 (x1))
21230 : {
21231 : case 0:
21232 : if (!
21233 : #line 24466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21234 : (TARGET_AVX2 && 1 && 1))
21235 : return -1;
21236 : return 8800; /* avx2_zero_extendv16qiv16hi2 */
21237 :
21238 : case 1:
21239 : if (!
21240 : #line 24520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21241 : (TARGET_AVX512BW))
21242 : return -1;
21243 : return 8808; /* avx512bw_zero_extendv32qiv32hi2 */
21244 :
21245 : case 2:
21246 : if (!
21247 : #line 24590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21248 : (TARGET_SSE4_1 && 1 && 1))
21249 : return -1;
21250 : return 8820; /* *sse4_1_zero_extendv8qiv8hi2_1 */
21251 :
21252 : case 3:
21253 : if (!
21254 : #line 24741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21255 : (TARGET_AVX512F))
21256 : return -1;
21257 : return 8832; /* *avx512f_zero_extendv16qiv16si2 */
21258 :
21259 : case 4:
21260 : if (!
21261 : #line 24940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21262 : (TARGET_AVX512F))
21263 : return -1;
21264 : return 8862; /* avx512f_zero_extendv16hiv16si2 */
21265 :
21266 : case 5:
21267 : if (!
21268 : #line 24773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21269 : (TARGET_AVX2 && 1))
21270 : return -1;
21271 : return 8840; /* *avx2_zero_extendv8qiv8si2_1 */
21272 :
21273 : case 6:
21274 : if (!
21275 : #line 24993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21276 : (TARGET_AVX2 && 1))
21277 : return -1;
21278 : return 8870; /* avx2_zero_extendv8hiv8si2 */
21279 :
21280 : case 7:
21281 : if (!
21282 : #line 24861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21283 : (TARGET_SSE4_1 && 1))
21284 : return -1;
21285 : return 8852; /* *sse4_1_zero_extendv4qiv4si2_1 */
21286 :
21287 : case 8:
21288 : if (!
21289 : #line 25063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21290 : (TARGET_SSE4_1 && 1))
21291 : return -1;
21292 : return 8882; /* *sse4_1_zero_extendv4hiv4si2_1 */
21293 :
21294 : case 9:
21295 : if (!
21296 : #line 25219 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21297 : (TARGET_AVX512F))
21298 : return -1;
21299 : return 8898; /* *avx512f_zero_extendv8qiv8di2_1 */
21300 :
21301 : case 10:
21302 : if (!
21303 : #line 25445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21304 : (TARGET_AVX512F))
21305 : return -1;
21306 : return 8929; /* avx512f_zero_extendv8hiv8di2 */
21307 :
21308 : case 11:
21309 : if (!
21310 : #line 25635 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21311 : (TARGET_AVX512F))
21312 : return -1;
21313 : return 8957; /* avx512f_zero_extendv8siv8di2 */
21314 :
21315 : case 12:
21316 : if (!
21317 : #line 25303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21318 : (TARGET_AVX2 && 1))
21319 : return -1;
21320 : return 8910; /* *avx2_zero_extendv4qiv4di2_1 */
21321 :
21322 : case 13:
21323 : if (!
21324 : #line 25475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21325 : (TARGET_AVX2 && 1))
21326 : return -1;
21327 : return 8937; /* *avx2_zero_extendv4hiv4di2_1 */
21328 :
21329 : case 14:
21330 : if (!
21331 : #line 25686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21332 : (TARGET_AVX2 && 1))
21333 : return -1;
21334 : return 8963; /* avx2_zero_extendv4siv4di2 */
21335 :
21336 : case 15:
21337 : if (!
21338 : #line 25394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21339 : (TARGET_SSE4_1 && 1))
21340 : return -1;
21341 : return 8922; /* *sse4_1_zero_extendv2qiv2di2_1 */
21342 :
21343 : case 16:
21344 : if (!
21345 : #line 25558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21346 : (TARGET_SSE4_1 && 1))
21347 : return -1;
21348 : return 8949; /* *sse4_1_zero_extendv2hiv2di2_1 */
21349 :
21350 : case 17:
21351 : if (!
21352 : #line 25752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21353 : (TARGET_SSE4_1 && 1))
21354 : return -1;
21355 : return 8973; /* *sse4_1_zero_extendv2siv2di2_1 */
21356 :
21357 : case 18:
21358 : x2 = XEXP (x1, 1);
21359 : x3 = XEXP (x2, 0);
21360 : x4 = XEXP (x3, 0);
21361 : operands[1] = x4;
21362 : switch (pattern545 (x2))
21363 : {
21364 : case 0:
21365 : if (
21366 : #line 24578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21367 : (TARGET_SSE4_1 && 1 && 1))
21368 : return 8816; /* sse4_1_zero_extendv8qiv8hi2 */
21369 : break;
21370 :
21371 : case 1:
21372 : if (
21373 : #line 24762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21374 : (TARGET_AVX2 && 1))
21375 : return 8836; /* avx2_zero_extendv8qiv8si2 */
21376 : break;
21377 :
21378 : case 2:
21379 : if (
21380 : #line 25209 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21381 : (TARGET_AVX512F))
21382 : return 8894; /* avx512f_zero_extendv8qiv8di2 */
21383 : break;
21384 :
21385 : case 3:
21386 : if (
21387 : #line 24849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21388 : (TARGET_SSE4_1 && 1))
21389 : return 8848; /* sse4_1_zero_extendv4qiv4si2 */
21390 : break;
21391 :
21392 : case 4:
21393 : if (
21394 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21395 : (TARGET_SSE4_1 && 1))
21396 : return 8878; /* sse4_1_zero_extendv4hiv4si2 */
21397 : break;
21398 :
21399 : case 5:
21400 : if (
21401 : #line 25292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21402 : (TARGET_AVX2 && 1))
21403 : return 8906; /* avx2_zero_extendv4qiv4di2 */
21404 : break;
21405 :
21406 : case 6:
21407 : if (
21408 : #line 25464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21409 : (TARGET_AVX2 && 1))
21410 : return 8933; /* avx2_zero_extendv4hiv4di2 */
21411 : break;
21412 :
21413 : case 7:
21414 : if (
21415 : #line 25382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21416 : (TARGET_SSE4_1 && 1))
21417 : return 8918; /* sse4_1_zero_extendv2qiv2di2 */
21418 : break;
21419 :
21420 : case 8:
21421 : if (
21422 : #line 25546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21423 : (TARGET_SSE4_1 && 1))
21424 : return 8945; /* sse4_1_zero_extendv2hiv2di2 */
21425 : break;
21426 :
21427 : case 9:
21428 : if (
21429 : #line 25740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21430 : (TARGET_SSE4_1 && 1))
21431 : return 8969; /* sse4_1_zero_extendv2siv2di2 */
21432 : break;
21433 :
21434 : default:
21435 : break;
21436 : }
21437 : if (GET_CODE (x4) != SUBREG
21438 : || maybe_ne (SUBREG_BYTE (x4), 0))
21439 : return -1;
21440 : x5 = XEXP (x4, 0);
21441 : switch (GET_CODE (x5))
21442 : {
21443 : case VEC_CONCAT:
21444 : switch (pattern689 (x2))
21445 : {
21446 : case 0:
21447 : if (!
21448 : #line 24614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21449 : (TARGET_SSE4_1
21450 : && ix86_pre_reload_split ()))
21451 : return -1;
21452 : return 8823; /* *sse4_1_zero_extendv8qiv8hi2_2 */
21453 :
21454 : case 1:
21455 : if (!
21456 : #line 24792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21457 : (TARGET_AVX2
21458 : && ix86_pre_reload_split ()))
21459 : return -1;
21460 : return 8843; /* *avx2_zero_extendv8qiv8si2_2 */
21461 :
21462 : case 2:
21463 : if (!
21464 : #line 25237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21465 : (TARGET_AVX512F && ix86_pre_reload_split ()))
21466 : return -1;
21467 : return 8901; /* *avx512f_zero_extendv8qiv8di2_2 */
21468 :
21469 : case 3:
21470 : if (!
21471 : #line 25082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21472 : (TARGET_SSE4_1
21473 : && ix86_pre_reload_split ()))
21474 : return -1;
21475 : return 8885; /* *sse4_1_zero_extendv4hiv4si2_2 */
21476 :
21477 : case 4:
21478 : if (!
21479 : #line 25492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21480 : (TARGET_AVX2
21481 : && ix86_pre_reload_split ()))
21482 : return -1;
21483 : return 8940; /* *avx2_zero_extendv4hiv4di2_2 */
21484 :
21485 : case 5:
21486 : if (!
21487 : #line 25770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21488 : (TARGET_SSE4_1
21489 : && ix86_pre_reload_split ()))
21490 : return -1;
21491 : return 8976; /* *sse4_1_zero_extendv2siv2di2_2 */
21492 :
21493 : default:
21494 : return -1;
21495 : }
21496 :
21497 : case VEC_MERGE:
21498 : x6 = XEXP (x5, 0);
21499 : if (GET_CODE (x6) != VEC_DUPLICATE)
21500 : return -1;
21501 : if (GET_MODE (x6) == E_V4SImode)
21502 : {
21503 : switch (pattern1042 (x2))
21504 : {
21505 : case 0:
21506 : if (
21507 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21508 : (TARGET_SSE4_1 && 1
21509 : && ix86_pre_reload_split ()))
21510 : return 8856; /* *sse4_1_zero_extendv4qiv4si2_2 */
21511 : break;
21512 :
21513 : case 1:
21514 : if (
21515 : #line 25324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21516 : (TARGET_AVX2
21517 : && ix86_pre_reload_split ()))
21518 : return 8913; /* *avx2_zero_extendv4qiv4di2_2 */
21519 : break;
21520 :
21521 : case 2:
21522 : if (
21523 : #line 25580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21524 : (TARGET_SSE4_1
21525 : && ix86_pre_reload_split ()))
21526 : return 8952; /* *sse4_1_zero_extendv2hiv2di2_2 */
21527 : break;
21528 :
21529 : default:
21530 : break;
21531 : }
21532 : }
21533 : x7 = XEXP (x5, 2);
21534 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
21535 : return -1;
21536 : switch (pattern1043 (x2))
21537 : {
21538 : case 0:
21539 : if (!
21540 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21541 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
21542 : return -1;
21543 : return 8924; /* *sse4_1_zero_extendv2qiv2di2_2 */
21544 :
21545 : case 1:
21546 : if (!
21547 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21548 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
21549 : return -1;
21550 : return 8925; /* *sse4_1_zero_extendv2qiv2di2_2 */
21551 :
21552 : case 2:
21553 : if (!
21554 : #line 25429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21555 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
21556 : return -1;
21557 : return 8926; /* *sse4_1_zero_extendv2qiv2di2_2 */
21558 :
21559 : default:
21560 : return -1;
21561 : }
21562 :
21563 : default:
21564 : return -1;
21565 : }
21566 :
21567 : default:
21568 : return -1;
21569 : }
21570 : }
21571 :
21572 : int
21573 : recog_349 (rtx x1 ATTRIBUTE_UNUSED,
21574 : rtx_insn *insn ATTRIBUTE_UNUSED,
21575 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21576 : {
21577 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21578 : rtx x2, x3, x4;
21579 : int res ATTRIBUTE_UNUSED;
21580 : x2 = XEXP (x1, 0);
21581 : operands[0] = x2;
21582 : x3 = XEXP (x1, 1);
21583 : x4 = XEXP (x3, 0);
21584 : switch (GET_CODE (x4))
21585 : {
21586 : case REG:
21587 : case SUBREG:
21588 : case MEM:
21589 : case VEC_DUPLICATE:
21590 : switch (pattern190 (x3))
21591 : {
21592 : case 0:
21593 : if (!(
21594 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21595 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V32HFmode, operands)
21596 : && 1 && 1) &&
21597 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21598 : (TARGET_AVX512FP16)))
21599 : return -1;
21600 : return 2750; /* *subv32hf3 */
21601 :
21602 : case 1:
21603 : if (!(
21604 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21605 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16HFmode, operands)
21606 : && 1 && 1) &&
21607 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21608 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21609 : return -1;
21610 : return 2758; /* *subv16hf3 */
21611 :
21612 : case 2:
21613 : if (!(
21614 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21615 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8HFmode, operands)
21616 : && 1 && 1) &&
21617 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21618 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21619 : return -1;
21620 : return 2766; /* *subv8hf3 */
21621 :
21622 : case 3:
21623 : if (!(
21624 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21625 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands)
21626 : && 1 && 1) &&
21627 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21628 : (TARGET_AVX512F)))
21629 : return -1;
21630 : return 2774; /* *subv16sf3 */
21631 :
21632 : case 4:
21633 : if (!(
21634 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21635 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands)
21636 : && 1 && 1) &&
21637 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21638 : (TARGET_AVX)))
21639 : return -1;
21640 : return 2782; /* *subv8sf3 */
21641 :
21642 : case 5:
21643 : if (!
21644 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21645 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands)
21646 : && 1 && 1))
21647 : return -1;
21648 : return 2790; /* *subv4sf3 */
21649 :
21650 : case 6:
21651 : if (!(
21652 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21653 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands)
21654 : && 1 && 1) &&
21655 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21656 : (TARGET_AVX512F)))
21657 : return -1;
21658 : return 2798; /* *subv8df3 */
21659 :
21660 : case 7:
21661 : if (!(
21662 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21663 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands)
21664 : && 1 && 1) &&
21665 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21666 : (TARGET_AVX)))
21667 : return -1;
21668 : return 2806; /* *subv4df3 */
21669 :
21670 : case 8:
21671 : if (!(
21672 : #line 2684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21673 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands)
21674 : && 1 && 1) &&
21675 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21676 : (TARGET_SSE2)))
21677 : return -1;
21678 : return 2814; /* *subv2df3 */
21679 :
21680 : case 9:
21681 : if (!(
21682 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21683 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V64QImode, operands)) &&
21684 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21685 : (TARGET_AVX512BW)))
21686 : return -1;
21687 : return 7500; /* *subv64qi3 */
21688 :
21689 : case 10:
21690 : if (!(
21691 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21692 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32QImode, operands)) &&
21693 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21694 : (TARGET_AVX2)))
21695 : return -1;
21696 : return 7502; /* *subv32qi3 */
21697 :
21698 : case 11:
21699 : if (!
21700 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21701 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16QImode, operands)))
21702 : return -1;
21703 : return 7504; /* *subv16qi3 */
21704 :
21705 : case 12:
21706 : if (!(
21707 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21708 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V32HImode, operands)) &&
21709 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21710 : (TARGET_AVX512BW)))
21711 : return -1;
21712 : return 7506; /* *subv32hi3 */
21713 :
21714 : case 13:
21715 : if (!(
21716 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21717 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16HImode, operands)) &&
21718 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21719 : (TARGET_AVX2)))
21720 : return -1;
21721 : return 7508; /* *subv16hi3 */
21722 :
21723 : case 14:
21724 : if (!
21725 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21726 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8HImode, operands)))
21727 : return -1;
21728 : return 7510; /* *subv8hi3 */
21729 :
21730 : case 15:
21731 : if (!(
21732 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21733 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V16SImode, operands)) &&
21734 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21735 : (TARGET_AVX512F)))
21736 : return -1;
21737 : return 7512; /* *subv16si3 */
21738 :
21739 : case 16:
21740 : if (!(
21741 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21742 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8SImode, operands)) &&
21743 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21744 : (TARGET_AVX2)))
21745 : return -1;
21746 : return 7514; /* *subv8si3 */
21747 :
21748 : case 17:
21749 : if (!
21750 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21751 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4SImode, operands)))
21752 : return -1;
21753 : return 7516; /* *subv4si3 */
21754 :
21755 : case 18:
21756 : if (!(
21757 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21758 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V8DImode, operands)) &&
21759 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21760 : (TARGET_AVX512F)))
21761 : return -1;
21762 : return 7518; /* *subv8di3 */
21763 :
21764 : case 19:
21765 : if (!(
21766 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21767 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V4DImode, operands)) &&
21768 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21769 : (TARGET_AVX2)))
21770 : return -1;
21771 : return 7520; /* *subv4di3 */
21772 :
21773 : case 20:
21774 : if (!
21775 : #line 16592 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21776 : (TARGET_SSE2 && ix86_binary_operator_ok (MINUS, V2DImode, operands)))
21777 : return -1;
21778 : return 7522; /* *subv2di3 */
21779 :
21780 : case 21:
21781 : if (!
21782 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21783 : (TARGET_AVX10_2))
21784 : return -1;
21785 : return 10680; /* avx10_2_subbf16_v32bf */
21786 :
21787 : case 22:
21788 : if (!
21789 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21790 : (TARGET_AVX10_2))
21791 : return -1;
21792 : return 10688; /* avx10_2_subbf16_v16bf */
21793 :
21794 : case 23:
21795 : if (!
21796 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21797 : (TARGET_AVX10_2))
21798 : return -1;
21799 : return 10696; /* avx10_2_subbf16_v8bf */
21800 :
21801 : default:
21802 : return -1;
21803 : }
21804 :
21805 : case VEC_SELECT:
21806 : switch (pattern197 (x3))
21807 : {
21808 : case 0:
21809 : if (!
21810 : #line 22922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21811 : (TARGET_AVX2))
21812 : return -1;
21813 : return 8634; /* avx2_phsubwv16hi3 */
21814 :
21815 : case 1:
21816 : if (!
21817 : #line 22945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21818 : (TARGET_SSSE3))
21819 : return -1;
21820 : return 8638; /* ssse3_phsubwv8hi3 */
21821 :
21822 : case 2:
21823 : if (!
21824 : #line 23012 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21825 : (TARGET_AVX2))
21826 : return -1;
21827 : return 8645; /* avx2_phsubdv8si3 */
21828 :
21829 : case 3:
21830 : if (!
21831 : #line 23033 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21832 : (TARGET_SSSE3))
21833 : return -1;
21834 : return 8647; /* ssse3_phsubdv4si3 */
21835 :
21836 : default:
21837 : return -1;
21838 : }
21839 :
21840 : case SIGN_EXTEND:
21841 : switch (pattern199 (x3,
21842 : SIGN_EXTEND))
21843 : {
21844 : case 0:
21845 : if (!
21846 : #line 27047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21847 : (TARGET_XOP))
21848 : return -1;
21849 : return 9080; /* xop_phsubbw */
21850 :
21851 : case 1:
21852 : if (!
21853 : #line 27067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21854 : (TARGET_XOP))
21855 : return -1;
21856 : return 9081; /* xop_phsubwd */
21857 :
21858 : case 2:
21859 : if (!
21860 : #line 27085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21861 : (TARGET_XOP))
21862 : return -1;
21863 : return 9082; /* xop_phsubdq */
21864 :
21865 : default:
21866 : return -1;
21867 : }
21868 :
21869 : default:
21870 : return -1;
21871 : }
21872 : }
21873 :
21874 : int
21875 : recog_356 (rtx x1 ATTRIBUTE_UNUSED,
21876 : rtx_insn *insn ATTRIBUTE_UNUSED,
21877 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21878 : {
21879 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21880 : rtx x2, x3, x4, x5;
21881 : int res ATTRIBUTE_UNUSED;
21882 : x2 = XEXP (x1, 0);
21883 : operands[0] = x2;
21884 : x3 = XEXP (x1, 1);
21885 : x4 = XEXP (x3, 0);
21886 : operands[1] = x4;
21887 : x5 = XEXP (x3, 1);
21888 : operands[2] = x5;
21889 : switch (GET_MODE (operands[0]))
21890 : {
21891 : case E_V32HFmode:
21892 : if (pattern516 (x3,
21893 : E_V32HFmode) != 0
21894 : || !(
21895 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21896 : (TARGET_SSE && 1 && 1) &&
21897 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21898 : (TARGET_AVX512FP16)))
21899 : return -1;
21900 : return 2914; /* avx512fp16_divv32hf3 */
21901 :
21902 : case E_V16HFmode:
21903 : if (pattern516 (x3,
21904 : E_V16HFmode) != 0
21905 : || !(
21906 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21907 : (TARGET_SSE && 1 && 1) &&
21908 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21909 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21910 : return -1;
21911 : return 2918; /* avx512fp16_divv16hf3 */
21912 :
21913 : case E_V8HFmode:
21914 : if (pattern516 (x3,
21915 : E_V8HFmode) != 0
21916 : || !(
21917 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21918 : (TARGET_SSE && 1 && 1) &&
21919 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21920 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
21921 : return -1;
21922 : return 2920; /* avx512fp16_divv8hf3 */
21923 :
21924 : case E_V16SFmode:
21925 : if (pattern516 (x3,
21926 : E_V16SFmode) != 0
21927 : || !(
21928 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21929 : (TARGET_SSE && 1 && 1) &&
21930 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21931 : (TARGET_AVX512F)))
21932 : return -1;
21933 : return 2922; /* avx512f_divv16sf3 */
21934 :
21935 : case E_V8SFmode:
21936 : if (pattern516 (x3,
21937 : E_V8SFmode) != 0
21938 : || !(
21939 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21940 : (TARGET_SSE && 1 && 1) &&
21941 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21942 : (TARGET_AVX)))
21943 : return -1;
21944 : return 2926; /* avx_divv8sf3 */
21945 :
21946 : case E_V4SFmode:
21947 : if (pattern516 (x3,
21948 : E_V4SFmode) != 0
21949 : || !
21950 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21951 : (TARGET_SSE && 1 && 1))
21952 : return -1;
21953 : return 2928; /* sse_divv4sf3 */
21954 :
21955 : case E_V8DFmode:
21956 : if (pattern516 (x3,
21957 : E_V8DFmode) != 0
21958 : || !(
21959 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21960 : (TARGET_SSE && 1 && 1) &&
21961 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21962 : (TARGET_AVX512F)))
21963 : return -1;
21964 : return 2930; /* avx512f_divv8df3 */
21965 :
21966 : case E_V4DFmode:
21967 : if (pattern516 (x3,
21968 : E_V4DFmode) != 0
21969 : || !(
21970 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21971 : (TARGET_SSE && 1 && 1) &&
21972 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21973 : (TARGET_AVX)))
21974 : return -1;
21975 : return 2934; /* avx_divv4df3 */
21976 :
21977 : case E_V2DFmode:
21978 : if (pattern516 (x3,
21979 : E_V2DFmode) != 0
21980 : || !(
21981 : #line 2922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21982 : (TARGET_SSE && 1 && 1) &&
21983 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21984 : (TARGET_SSE2)))
21985 : return -1;
21986 : return 2936; /* sse2_divv2df3 */
21987 :
21988 : case E_V32BFmode:
21989 : if (pattern12 (x3,
21990 : E_V32BFmode) != 0
21991 : || !
21992 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21993 : (TARGET_AVX10_2))
21994 : return -1;
21995 : return 10684; /* avx10_2_divbf16_v32bf */
21996 :
21997 : case E_V16BFmode:
21998 : if (pattern12 (x3,
21999 : E_V16BFmode) != 0
22000 : || !
22001 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22002 : (TARGET_AVX10_2))
22003 : return -1;
22004 : return 10692; /* avx10_2_divbf16_v16bf */
22005 :
22006 : case E_V8BFmode:
22007 : if (pattern12 (x3,
22008 : E_V8BFmode) != 0
22009 : || !
22010 : #line 32828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22011 : (TARGET_AVX10_2))
22012 : return -1;
22013 : return 10700; /* avx10_2_divbf16_v8bf */
22014 :
22015 : default:
22016 : return -1;
22017 : }
22018 : }
22019 :
22020 : int
22021 : recog_365 (rtx x1 ATTRIBUTE_UNUSED,
22022 : rtx_insn *insn ATTRIBUTE_UNUSED,
22023 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22024 : {
22025 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22026 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22027 : rtx x10, x11;
22028 : int res ATTRIBUTE_UNUSED;
22029 : x2 = XVECEXP (x1, 0, 0);
22030 : x3 = XEXP (x2, 0);
22031 : switch (GET_CODE (x3))
22032 : {
22033 : case REG:
22034 : case SUBREG:
22035 : case MEM:
22036 : res = recog_363 (x1, insn, pnum_clobbers);
22037 : if (res >= 0)
22038 : return res;
22039 : break;
22040 :
22041 : case STRICT_LOW_PART:
22042 : x4 = XVECEXP (x1, 0, 1);
22043 : if (pattern236 (x4,
22044 : E_CCmode,
22045 : 17) == 0)
22046 : {
22047 : x5 = XEXP (x3, 0);
22048 : operands[0] = x5;
22049 : x6 = XEXP (x2, 1);
22050 : operands[1] = x6;
22051 : switch (GET_MODE (operands[0]))
22052 : {
22053 : case E_QImode:
22054 : if (register_operand (operands[0], E_QImode)
22055 : && const0_operand (operands[1], E_QImode)
22056 : &&
22057 : #line 3467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22058 : (reload_completed))
22059 : return 117; /* *movstrictqi_xor */
22060 : break;
22061 :
22062 : case E_HImode:
22063 : if (register_operand (operands[0], E_HImode)
22064 : && const0_operand (operands[1], E_HImode)
22065 : &&
22066 : #line 3467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22067 : (reload_completed))
22068 : return 118; /* *movstricthi_xor */
22069 : break;
22070 :
22071 : default:
22072 : break;
22073 : }
22074 : }
22075 : break;
22076 :
22077 : case PC:
22078 : res = recog_364 (x1, insn, pnum_clobbers);
22079 : if (res >= 0)
22080 : return res;
22081 : break;
22082 :
22083 : default:
22084 : break;
22085 : }
22086 : x4 = XVECEXP (x1, 0, 1);
22087 : if (GET_CODE (x4) != CLOBBER)
22088 : return -1;
22089 : x7 = XEXP (x4, 0);
22090 : if (GET_CODE (x7) != REG
22091 : || REGNO (x7) != 17
22092 : || GET_MODE (x7) != E_CCmode)
22093 : return -1;
22094 : x6 = XEXP (x2, 1);
22095 : switch (GET_CODE (x6))
22096 : {
22097 : case SUBREG:
22098 : if (maybe_ne (SUBREG_BYTE (x6), 0))
22099 : return -1;
22100 : switch (pattern1047 (x2))
22101 : {
22102 : case 0:
22103 : x8 = XEXP (x6, 0);
22104 : x9 = XEXP (x8, 1);
22105 : operands[2] = x9;
22106 : if (general_operand (operands[2], E_QImode))
22107 : {
22108 : switch (pattern1045 (x2))
22109 : {
22110 : case 0:
22111 : return 337; /* *addqi_exthi_1 */
22112 :
22113 : case 1:
22114 : return 338; /* *addqi_extsi_1 */
22115 :
22116 : case 2:
22117 : if (
22118 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22119 : (TARGET_64BIT))
22120 : return 339; /* *addqi_extdi_1 */
22121 : break;
22122 :
22123 : default:
22124 : break;
22125 : }
22126 : }
22127 : if (GET_CODE (x9) != SUBREG)
22128 : return -1;
22129 : switch (pattern1814 (x2))
22130 : {
22131 : case 0:
22132 : return 340; /* *addqi_exthi_2 */
22133 :
22134 : case 1:
22135 : return 342; /* *addqi_extsi_2 */
22136 :
22137 : case 2:
22138 : if (!
22139 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22140 : (TARGET_64BIT))
22141 : return -1;
22142 : return 344; /* *addqi_extdi_2 */
22143 :
22144 : default:
22145 : return -1;
22146 : }
22147 :
22148 : case 1:
22149 : x8 = XEXP (x6, 0);
22150 : x9 = XEXP (x8, 1);
22151 : if (GET_CODE (x9) == SUBREG)
22152 : {
22153 : switch (pattern1814 (x2))
22154 : {
22155 : case 0:
22156 : return 341; /* *subqi_exthi_2 */
22157 :
22158 : case 1:
22159 : return 343; /* *subqi_extsi_2 */
22160 :
22161 : case 2:
22162 : if (
22163 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22164 : (TARGET_64BIT))
22165 : return 345; /* *subqi_extdi_2 */
22166 : break;
22167 :
22168 : default:
22169 : break;
22170 : }
22171 : }
22172 : operands[2] = x9;
22173 : if (!general_operand (operands[2], E_QImode))
22174 : return -1;
22175 : switch (pattern1045 (x2))
22176 : {
22177 : case 0:
22178 : return 426; /* *subqi_exthi_1 */
22179 :
22180 : case 1:
22181 : return 427; /* *subqi_extsi_1 */
22182 :
22183 : case 2:
22184 : if (!
22185 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22186 : (TARGET_64BIT))
22187 : return -1;
22188 : return 428; /* *subqi_extdi_1 */
22189 :
22190 : default:
22191 : return -1;
22192 : }
22193 :
22194 : case 2:
22195 : x8 = XEXP (x6, 0);
22196 : x9 = XEXP (x8, 1);
22197 : operands[2] = x9;
22198 : if (general_operand (operands[2], E_QImode))
22199 : {
22200 : switch (pattern1045 (x2))
22201 : {
22202 : case 0:
22203 : return 801; /* *andqi_exthi_1 */
22204 :
22205 : case 1:
22206 : return 804; /* *andqi_extsi_1 */
22207 :
22208 : case 2:
22209 : if (
22210 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22211 : (TARGET_64BIT))
22212 : return 807; /* *andqi_extdi_1 */
22213 : break;
22214 :
22215 : default:
22216 : break;
22217 : }
22218 : }
22219 : if (GET_CODE (x9) != SUBREG)
22220 : return -1;
22221 : switch (pattern1814 (x2))
22222 : {
22223 : case 0:
22224 : return 819; /* *andqi_exthi_2 */
22225 :
22226 : case 1:
22227 : return 822; /* *andqi_extsi_2 */
22228 :
22229 : case 2:
22230 : if (!
22231 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22232 : (TARGET_64BIT))
22233 : return -1;
22234 : return 825; /* *andqi_extdi_2 */
22235 :
22236 : default:
22237 : return -1;
22238 : }
22239 :
22240 : case 3:
22241 : x8 = XEXP (x6, 0);
22242 : x9 = XEXP (x8, 1);
22243 : operands[2] = x9;
22244 : if (general_operand (operands[2], E_QImode))
22245 : {
22246 : switch (pattern1045 (x2))
22247 : {
22248 : case 0:
22249 : return 802; /* *iorqi_exthi_1 */
22250 :
22251 : case 1:
22252 : return 805; /* *iorqi_extsi_1 */
22253 :
22254 : case 2:
22255 : if (
22256 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22257 : (TARGET_64BIT))
22258 : return 808; /* *iorqi_extdi_1 */
22259 : break;
22260 :
22261 : default:
22262 : break;
22263 : }
22264 : }
22265 : if (GET_CODE (x9) != SUBREG)
22266 : return -1;
22267 : switch (pattern1814 (x2))
22268 : {
22269 : case 0:
22270 : return 820; /* *iorqi_exthi_2 */
22271 :
22272 : case 1:
22273 : return 823; /* *iorqi_extsi_2 */
22274 :
22275 : case 2:
22276 : if (!
22277 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22278 : (TARGET_64BIT))
22279 : return -1;
22280 : return 826; /* *iorqi_extdi_2 */
22281 :
22282 : default:
22283 : return -1;
22284 : }
22285 :
22286 : case 4:
22287 : x8 = XEXP (x6, 0);
22288 : x9 = XEXP (x8, 1);
22289 : operands[2] = x9;
22290 : if (general_operand (operands[2], E_QImode))
22291 : {
22292 : switch (pattern1045 (x2))
22293 : {
22294 : case 0:
22295 : return 803; /* *xorqi_exthi_1 */
22296 :
22297 : case 1:
22298 : return 806; /* *xorqi_extsi_1 */
22299 :
22300 : case 2:
22301 : if (
22302 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22303 : (TARGET_64BIT))
22304 : return 809; /* *xorqi_extdi_1 */
22305 : break;
22306 :
22307 : default:
22308 : break;
22309 : }
22310 : }
22311 : if (GET_CODE (x9) != SUBREG)
22312 : return -1;
22313 : switch (pattern1814 (x2))
22314 : {
22315 : case 0:
22316 : return 821; /* *xorqi_exthi_2 */
22317 :
22318 : case 1:
22319 : return 824; /* *xorqi_extsi_2 */
22320 :
22321 : case 2:
22322 : if (!
22323 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22324 : (TARGET_64BIT))
22325 : return -1;
22326 : return 827; /* *xorqi_extdi_2 */
22327 :
22328 : default:
22329 : return -1;
22330 : }
22331 :
22332 : case 5:
22333 : return 1020; /* *negqi_exthi_1 */
22334 :
22335 : case 6:
22336 : return 1021; /* *negqi_extsi_1 */
22337 :
22338 : case 7:
22339 : if (!
22340 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22341 : (TARGET_64BIT))
22342 : return -1;
22343 : return 1022; /* *negqi_extdi_1 */
22344 :
22345 : case 8:
22346 : return 1151; /* *ashlqi_exthi_1 */
22347 :
22348 : case 9:
22349 : return 1152; /* *ashlqi_extsi_1 */
22350 :
22351 : case 10:
22352 : if (!
22353 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22354 : (TARGET_64BIT))
22355 : return -1;
22356 : return 1153; /* *ashlqi_extdi_1 */
22357 :
22358 : case 11:
22359 : operands[0] = x3;
22360 : switch (pattern1240 (x6))
22361 : {
22362 : case 0:
22363 : if ((
22364 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22365 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22366 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22367 : (!TARGET_64BIT)))
22368 : return 1170; /* lshrdi3_doubleword_lowpart */
22369 : break;
22370 :
22371 : case 1:
22372 : if ((
22373 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22374 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22375 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22376 : (TARGET_64BIT)))
22377 : return 1172; /* lshrti3_doubleword_lowpart */
22378 : break;
22379 :
22380 : default:
22381 : break;
22382 : }
22383 : x8 = XEXP (x6, 0);
22384 : if (GET_MODE (x8) != E_QImode)
22385 : return -1;
22386 : switch (pattern1046 (x2))
22387 : {
22388 : case 0:
22389 : return 1270; /* *lshrqi_exthi_1 */
22390 :
22391 : case 1:
22392 : return 1272; /* *lshrqi_extsi_1 */
22393 :
22394 : case 2:
22395 : if (!
22396 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22397 : (TARGET_64BIT))
22398 : return -1;
22399 : return 1274; /* *lshrqi_extdi_1 */
22400 :
22401 : default:
22402 : return -1;
22403 : }
22404 :
22405 : case 12:
22406 : operands[0] = x3;
22407 : switch (pattern1240 (x6))
22408 : {
22409 : case 0:
22410 : if ((
22411 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22412 : (UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
22413 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22414 : (!TARGET_64BIT)))
22415 : return 1171; /* ashrdi3_doubleword_lowpart */
22416 : break;
22417 :
22418 : case 1:
22419 : if ((
22420 : #line 17093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22421 : (UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
22422 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22423 : (TARGET_64BIT)))
22424 : return 1173; /* ashrti3_doubleword_lowpart */
22425 : break;
22426 :
22427 : default:
22428 : break;
22429 : }
22430 : x8 = XEXP (x6, 0);
22431 : if (GET_MODE (x8) != E_QImode)
22432 : return -1;
22433 : switch (pattern1046 (x2))
22434 : {
22435 : case 0:
22436 : return 1271; /* *ashrqi_exthi_1 */
22437 :
22438 : case 1:
22439 : return 1273; /* *ashrqi_extsi_1 */
22440 :
22441 : case 2:
22442 : if (!
22443 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22444 : (TARGET_64BIT))
22445 : return -1;
22446 : return 1275; /* *ashrqi_extdi_1 */
22447 :
22448 : default:
22449 : return -1;
22450 : }
22451 :
22452 : default:
22453 : return -1;
22454 : }
22455 :
22456 : case CONST_INT:
22457 : if (GET_CODE (x3) != ZERO_EXTRACT)
22458 : return -1;
22459 : x10 = XEXP (x3, 1);
22460 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
22461 : return -1;
22462 : x5 = XEXP (x3, 0);
22463 : operands[0] = x5;
22464 : x11 = XEXP (x3, 2);
22465 : operands[1] = x11;
22466 : switch (XWINT (x6, 0))
22467 : {
22468 : case 0L:
22469 : switch (GET_CODE (operands[1]))
22470 : {
22471 : case REG:
22472 : case SUBREG:
22473 : if (!register_operand (operands[1], E_QImode)
22474 : || GET_MODE (x3) != E_HImode)
22475 : return -1;
22476 : switch (GET_MODE (operands[0]))
22477 : {
22478 : case E_QImode:
22479 : if (!nonimmediate_operand (operands[0], E_QImode)
22480 : || !
22481 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22482 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22483 : return -1;
22484 : return 1443; /* *btrqi_2 */
22485 :
22486 : case E_HImode:
22487 : if (!nonimmediate_operand (operands[0], E_HImode)
22488 : || !
22489 : #line 19323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22490 : (TARGET_USE_BT && ix86_pre_reload_split ()))
22491 : return -1;
22492 : return 1444; /* *btrhi_2 */
22493 :
22494 : default:
22495 : return -1;
22496 : }
22497 :
22498 : case CONST_INT:
22499 : if (!const_0_to_63_operand (operands[1], E_QImode)
22500 : || GET_MODE (x3) != E_DImode
22501 : || !nonimmediate_operand (operands[0], E_DImode)
22502 : || !
22503 : #line 19387 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22504 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22505 : return -1;
22506 : return 1446; /* *btrq_imm */
22507 :
22508 : default:
22509 : return -1;
22510 : }
22511 :
22512 : case 1L:
22513 : if (GET_MODE (x3) != E_DImode
22514 : || !nonimmediate_operand (operands[0], E_DImode)
22515 : || !const_0_to_63_operand (operands[1], E_QImode)
22516 : || !
22517 : #line 19374 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22518 : (TARGET_64BIT && (TARGET_USE_BT || reload_completed)))
22519 : return -1;
22520 : return 1445; /* *btsq_imm */
22521 :
22522 : default:
22523 : return -1;
22524 : }
22525 :
22526 : default:
22527 : return -1;
22528 : }
22529 : }
22530 :
22531 : int
22532 : recog_379 (rtx x1 ATTRIBUTE_UNUSED,
22533 : rtx_insn *insn ATTRIBUTE_UNUSED,
22534 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22535 : {
22536 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22537 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22538 : rtx x10;
22539 : int res ATTRIBUTE_UNUSED;
22540 : if (pattern344 (x1) != 0)
22541 : return -1;
22542 : x2 = XVECEXP (x1, 0, 0);
22543 : x3 = XEXP (x2, 1);
22544 : x4 = XEXP (x3, 0);
22545 : x5 = XEXP (x4, 0);
22546 : switch (GET_CODE (x5))
22547 : {
22548 : case REG:
22549 : case SUBREG:
22550 : case MEM:
22551 : operands[1] = x5;
22552 : x6 = XEXP (x4, 1);
22553 : operands[2] = x6;
22554 : switch (GET_MODE (operands[0]))
22555 : {
22556 : case E_HImode:
22557 : if (!register_operand (operands[0], E_HImode)
22558 : || GET_MODE (x3) != E_HImode
22559 : || GET_MODE (x4) != E_QImode
22560 : || !nonimmediate_operand (operands[1], E_QImode)
22561 : || !general_operand (operands[2], E_QImode)
22562 : || !
22563 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22564 : (TARGET_APX_NDD && true
22565 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22566 : return -1;
22567 : return 291; /* *addqi_1_zexthi */
22568 :
22569 : case E_SImode:
22570 : if (!register_operand (operands[0], E_SImode)
22571 : || GET_MODE (x3) != E_SImode)
22572 : return -1;
22573 : switch (GET_MODE (x4))
22574 : {
22575 : case E_QImode:
22576 : if (!nonimmediate_operand (operands[1], E_QImode)
22577 : || !general_operand (operands[2], E_QImode)
22578 : || !
22579 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22580 : (TARGET_APX_NDD && true
22581 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22582 : return -1;
22583 : return 293; /* *addqi_1_zextsi */
22584 :
22585 : case E_HImode:
22586 : if (!nonimmediate_operand (operands[1], E_HImode)
22587 : || !general_operand (operands[2], E_HImode)
22588 : || !
22589 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22590 : (TARGET_APX_NDD && true
22591 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22592 : return -1;
22593 : return 297; /* *addhi_1_zextsi */
22594 :
22595 : default:
22596 : return -1;
22597 : }
22598 :
22599 : case E_DImode:
22600 : if (!register_operand (operands[0], E_DImode)
22601 : || GET_MODE (x3) != E_DImode)
22602 : return -1;
22603 : switch (GET_MODE (x4))
22604 : {
22605 : case E_QImode:
22606 : if (!nonimmediate_operand (operands[1], E_QImode)
22607 : || !general_operand (operands[2], E_QImode)
22608 : || !
22609 : #line 6728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22610 : (TARGET_APX_NDD && true
22611 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22612 : return -1;
22613 : return 295; /* *addqi_1_zextdi */
22614 :
22615 : case E_HImode:
22616 : if (!nonimmediate_operand (operands[1], E_HImode)
22617 : || !general_operand (operands[2], E_HImode)
22618 : || !
22619 : #line 6766 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22620 : (TARGET_APX_NDD && true
22621 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22622 : return -1;
22623 : return 299; /* *addhi_1_zextdi */
22624 :
22625 : case E_SImode:
22626 : if (!nonimmediate_operand (operands[1], E_SImode)
22627 : || !x86_64_general_operand (operands[2], E_SImode)
22628 : || !
22629 : #line 6811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22630 : (TARGET_64BIT
22631 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22632 : return -1;
22633 : return 300; /* addsi_1_zext */
22634 :
22635 : default:
22636 : return -1;
22637 : }
22638 :
22639 : default:
22640 : return -1;
22641 : }
22642 :
22643 : case PLUS:
22644 : x7 = XEXP (x5, 0);
22645 : switch (GET_CODE (x7))
22646 : {
22647 : case LTU:
22648 : case UNLT:
22649 : operands[3] = x7;
22650 : x8 = XEXP (x7, 0);
22651 : if (GET_CODE (x8) != REG
22652 : || REGNO (x8) != 17)
22653 : return -1;
22654 : x9 = XEXP (x7, 1);
22655 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22656 : return -1;
22657 : x10 = XEXP (x5, 1);
22658 : operands[1] = x10;
22659 : x6 = XEXP (x4, 1);
22660 : operands[2] = x6;
22661 : switch (pattern1163 (x3))
22662 : {
22663 : case 0:
22664 : if (pattern1772 (x5,
22665 : E_QImode) != 0
22666 : || !
22667 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22668 : (TARGET_APX_NDD
22669 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22670 : return -1;
22671 : return 481; /* *addqi3_carry_zexthi */
22672 :
22673 : case 1:
22674 : if (pattern1772 (x5,
22675 : E_QImode) != 0
22676 : || !
22677 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22678 : (TARGET_APX_NDD
22679 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22680 : return -1;
22681 : return 482; /* *addqi3_carry_zextsi */
22682 :
22683 : case 2:
22684 : if (pattern1772 (x5,
22685 : E_HImode) != 0
22686 : || !
22687 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22688 : (TARGET_APX_NDD
22689 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22690 : return -1;
22691 : return 484; /* *addhi3_carry_zextsi */
22692 :
22693 : case 3:
22694 : if (pattern1772 (x5,
22695 : E_QImode) != 0
22696 : || !
22697 : #line 9011 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22698 : (TARGET_APX_NDD
22699 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22700 : return -1;
22701 : return 483; /* *addqi3_carry_zextdi */
22702 :
22703 : case 4:
22704 : if (pattern1772 (x5,
22705 : E_HImode) != 0
22706 : || !
22707 : #line 9030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22708 : (TARGET_APX_NDD
22709 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22710 : return -1;
22711 : return 485; /* *addhi3_carry_zextdi */
22712 :
22713 : case 5:
22714 : if (pattern1772 (x5,
22715 : E_SImode) != 0
22716 : || !
22717 : #line 9049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22718 : (TARGET_64BIT
22719 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22720 : return -1;
22721 : return 486; /* *addsi3_carry_zext */
22722 :
22723 : default:
22724 : return -1;
22725 : }
22726 :
22727 : default:
22728 : return -1;
22729 : }
22730 :
22731 : case LTU:
22732 : case UNLT:
22733 : switch (pattern1164 (x3))
22734 : {
22735 : case 0:
22736 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22737 : || !nonimmediate_operand (operands[1], E_QImode)
22738 : || !
22739 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22740 : (TARGET_APX_NDD))
22741 : return -1;
22742 : return 487; /* *addqi3_carry_zexthi_0 */
22743 :
22744 : case 1:
22745 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22746 : || !nonimmediate_operand (operands[1], E_QImode)
22747 : || !
22748 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22749 : (TARGET_APX_NDD))
22750 : return -1;
22751 : return 488; /* *addqi3_carry_zextsi_0 */
22752 :
22753 : case 2:
22754 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
22755 : || !nonimmediate_operand (operands[1], E_HImode)
22756 : || !
22757 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22758 : (TARGET_APX_NDD))
22759 : return -1;
22760 : return 490; /* *addhi3_carry_zextsi_0 */
22761 :
22762 : case 3:
22763 : if (!ix86_carry_flag_operator (operands[2], E_QImode)
22764 : || !nonimmediate_operand (operands[1], E_QImode)
22765 : || !
22766 : #line 9068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22767 : (TARGET_APX_NDD))
22768 : return -1;
22769 : return 489; /* *addqi3_carry_zextdi_0 */
22770 :
22771 : case 4:
22772 : if (!ix86_carry_flag_operator (operands[2], E_HImode)
22773 : || !nonimmediate_operand (operands[1], E_HImode)
22774 : || !
22775 : #line 9082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22776 : (TARGET_APX_NDD))
22777 : return -1;
22778 : return 491; /* *addhi3_carry_zextdi_0 */
22779 :
22780 : case 5:
22781 : if (!ix86_carry_flag_operator (operands[2], E_SImode)
22782 : || !nonimmediate_operand (operands[1], E_SImode)
22783 : || !
22784 : #line 9096 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22785 : (TARGET_64BIT))
22786 : return -1;
22787 : return 492; /* *addsi3_carry_zext_0 */
22788 :
22789 : default:
22790 : return -1;
22791 : }
22792 :
22793 : case GE:
22794 : case GEU:
22795 : switch (pattern1164 (x3))
22796 : {
22797 : case 0:
22798 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22799 : || !nonimmediate_operand (operands[1], E_QImode)
22800 : || !
22801 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22802 : (TARGET_APX_NDD))
22803 : return -1;
22804 : return 493; /* *addqi3_carry_zexthi_0r */
22805 :
22806 : case 1:
22807 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22808 : || !nonimmediate_operand (operands[1], E_QImode)
22809 : || !
22810 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22811 : (TARGET_APX_NDD))
22812 : return -1;
22813 : return 494; /* *addqi3_carry_zextsi_0r */
22814 :
22815 : case 2:
22816 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
22817 : || !nonimmediate_operand (operands[1], E_HImode)
22818 : || !
22819 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22820 : (TARGET_APX_NDD))
22821 : return -1;
22822 : return 496; /* *addhi3_carry_zextsi_0r */
22823 :
22824 : case 3:
22825 : if (!ix86_carry_flag_unset_operator (operands[2], E_QImode)
22826 : || !nonimmediate_operand (operands[1], E_QImode)
22827 : || !
22828 : #line 9113 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22829 : (TARGET_APX_NDD))
22830 : return -1;
22831 : return 495; /* *addqi3_carry_zextdi_0r */
22832 :
22833 : case 4:
22834 : if (!ix86_carry_flag_unset_operator (operands[2], E_HImode)
22835 : || !nonimmediate_operand (operands[1], E_HImode)
22836 : || !
22837 : #line 9127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22838 : (TARGET_APX_NDD))
22839 : return -1;
22840 : return 497; /* *addhi3_carry_zextdi_0r */
22841 :
22842 : case 5:
22843 : if (!ix86_carry_flag_unset_operator (operands[2], E_SImode)
22844 : || !nonimmediate_operand (operands[1], E_SImode)
22845 : || !
22846 : #line 9141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22847 : (TARGET_64BIT))
22848 : return -1;
22849 : return 498; /* *addsi3_carry_zext_0r */
22850 :
22851 : default:
22852 : return -1;
22853 : }
22854 :
22855 : case UNSPEC:
22856 : if (pattern1165 (x5) != 0
22857 : || !register_operand (operands[0], E_DImode)
22858 : || GET_MODE (x3) != E_DImode
22859 : || GET_MODE (x4) != E_SImode)
22860 : return -1;
22861 : x6 = XEXP (x4, 1);
22862 : operands[1] = x6;
22863 : if (!register_operand (operands[1], E_SImode)
22864 : || !
22865 : #line 23613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22866 : (TARGET_X32))
22867 : return -1;
22868 : return 1697; /* *add_tp_x32_zext */
22869 :
22870 : default:
22871 : return -1;
22872 : }
22873 : }
22874 :
22875 : int
22876 : recog_388 (rtx x1 ATTRIBUTE_UNUSED,
22877 : rtx_insn *insn ATTRIBUTE_UNUSED,
22878 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22879 : {
22880 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22881 : rtx x2, x3, x4, x5, x6, x7, x8;
22882 : int res ATTRIBUTE_UNUSED;
22883 : x2 = XVECEXP (x1, 0, 0);
22884 : x3 = XEXP (x2, 1);
22885 : x4 = XEXP (x3, 1);
22886 : if (XWINT (x4, 0) != 0L)
22887 : return -1;
22888 : x5 = XVECEXP (x1, 0, 1);
22889 : switch (GET_CODE (x5))
22890 : {
22891 : case SET:
22892 : x6 = XEXP (x5, 0);
22893 : operands[0] = x6;
22894 : x7 = XEXP (x5, 1);
22895 : switch (GET_CODE (x7))
22896 : {
22897 : case PLUS:
22898 : switch (pattern1498 (x1))
22899 : {
22900 : case 0:
22901 : if (!
22902 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22903 : (ix86_match_ccmode (insn, CCGOCmode)
22904 : && ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
22905 : return -1;
22906 : return 313; /* *addqi_2 */
22907 :
22908 : case 1:
22909 : if (!
22910 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22911 : (ix86_match_ccmode (insn, CCGOCmode)
22912 : && ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
22913 : return -1;
22914 : return 314; /* *addhi_2 */
22915 :
22916 : case 2:
22917 : if (!
22918 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22919 : (ix86_match_ccmode (insn, CCGOCmode)
22920 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22921 : return -1;
22922 : return 315; /* *addsi_2 */
22923 :
22924 : case 3:
22925 : if (!(
22926 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22927 : (ix86_match_ccmode (insn, CCGOCmode)
22928 : && ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
22929 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22930 : (TARGET_64BIT)))
22931 : return -1;
22932 : return 316; /* *adddi_2 */
22933 :
22934 : default:
22935 : return -1;
22936 : }
22937 :
22938 : case ZERO_EXTEND:
22939 : if (pattern1436 (x1,
22940 : PLUS) != 0
22941 : || !
22942 : #line 7223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22943 : (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
22944 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
22945 : return -1;
22946 : return 317; /* *addsi_2_zext */
22947 :
22948 : default:
22949 : return -1;
22950 : }
22951 :
22952 : case CLOBBER:
22953 : x6 = XEXP (x5, 0);
22954 : operands[0] = x6;
22955 : x8 = XEXP (x3, 0);
22956 : switch (pattern1329 (x8))
22957 : {
22958 : case 0:
22959 : if (!
22960 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22961 : (ix86_match_ccmode (insn, CCGOCmode)
22962 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22963 : return -1;
22964 : return 327; /* *addqi_5 */
22965 :
22966 : case 1:
22967 : if (!
22968 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22969 : (ix86_match_ccmode (insn, CCGOCmode)
22970 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22971 : return -1;
22972 : return 328; /* *addhi_5 */
22973 :
22974 : case 2:
22975 : if (!
22976 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22977 : (ix86_match_ccmode (insn, CCGOCmode)
22978 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22979 : return -1;
22980 : return 329; /* *addsi_5 */
22981 :
22982 : case 3:
22983 : if (!(
22984 : #line 7455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22985 : (ix86_match_ccmode (insn, CCGOCmode)
22986 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
22987 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22988 : (TARGET_64BIT)))
22989 : return -1;
22990 : return 330; /* *adddi_5 */
22991 :
22992 : default:
22993 : return -1;
22994 : }
22995 :
22996 : default:
22997 : return -1;
22998 : }
22999 : }
23000 :
23001 : int
23002 : recog_392 (rtx x1 ATTRIBUTE_UNUSED,
23003 : rtx_insn *insn ATTRIBUTE_UNUSED,
23004 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23005 : {
23006 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23007 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23008 : rtx x10, x11;
23009 : int res ATTRIBUTE_UNUSED;
23010 : x2 = XVECEXP (x1, 0, 0);
23011 : x3 = XEXP (x2, 0);
23012 : if (GET_CODE (x3) != REG
23013 : || REGNO (x3) != 17)
23014 : return -1;
23015 : x4 = XVECEXP (x1, 0, 1);
23016 : if (GET_CODE (x4) != SET)
23017 : return -1;
23018 : x5 = XEXP (x2, 1);
23019 : x6 = XEXP (x5, 0);
23020 : x7 = XEXP (x6, 1);
23021 : operands[2] = x7;
23022 : x8 = XEXP (x4, 0);
23023 : operands[0] = x8;
23024 : x9 = XEXP (x4, 1);
23025 : switch (GET_CODE (x9))
23026 : {
23027 : case AND:
23028 : x10 = XEXP (x9, 0);
23029 : if (!rtx_equal_p (x10, operands[1]))
23030 : return -1;
23031 : x11 = XEXP (x9, 1);
23032 : if (!rtx_equal_p (x11, operands[2]))
23033 : return -1;
23034 : switch (GET_MODE (x6))
23035 : {
23036 : case E_DImode:
23037 : if (!nonimmediate_operand (operands[1], E_DImode)
23038 : || !x86_64_szext_general_operand (operands[2], E_DImode)
23039 : || !nonimmediate_operand (operands[0], E_DImode)
23040 : || GET_MODE (x9) != E_DImode
23041 : || !
23042 : #line 13244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23043 : (TARGET_64BIT
23044 : && ix86_match_ccmode
23045 : (insn,
23046 : /* If we are going to emit andl instead of andq, and the operands[2]
23047 : constant might have the SImode sign bit set, make sure the sign
23048 : flag isn't tested, because the instruction will set the sign flag
23049 : based on bit 31 rather than bit 63. If it isn't CONST_INT,
23050 : conservatively assume it might have bit 31 set. */
23051 : (satisfies_constraint_Z (operands[2])
23052 : && (!CONST_INT_P (operands[2])
23053 : || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
23054 : ? CCZmode : CCNOmode)
23055 : && ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)))
23056 : return -1;
23057 : return 777; /* *anddi_2 */
23058 :
23059 : case E_QImode:
23060 : if (pattern1438 (x9,
23061 : E_QImode) != 0)
23062 : return -1;
23063 : if (
23064 : #line 13295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23065 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
23066 : && ix86_match_ccmode (insn,
23067 : CONST_INT_P (operands[2])
23068 : && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)))
23069 : return 779; /* *andqi_2_maybe_si */
23070 : if (!
23071 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23072 : (ix86_match_ccmode (insn, CCNOmode)
23073 : && ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)))
23074 : return -1;
23075 : return 780; /* *andqi_2 */
23076 :
23077 : case E_HImode:
23078 : if (pattern1438 (x9,
23079 : E_HImode) != 0
23080 : || !
23081 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23082 : (ix86_match_ccmode (insn, CCNOmode)
23083 : && ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)))
23084 : return -1;
23085 : return 781; /* *andhi_2 */
23086 :
23087 : case E_SImode:
23088 : if (pattern1439 (x9,
23089 : E_SImode) != 0
23090 : || !
23091 : #line 13337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23092 : (ix86_match_ccmode (insn, CCNOmode)
23093 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
23094 : return -1;
23095 : return 782; /* *andsi_2 */
23096 :
23097 : default:
23098 : return -1;
23099 : }
23100 :
23101 : case ZERO_EXTEND:
23102 : if (pattern1436 (x1,
23103 : AND) != 0
23104 : || !
23105 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23106 : (TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
23107 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
23108 : return -1;
23109 : return 778; /* *andsi_2_zext */
23110 :
23111 : default:
23112 : return -1;
23113 : }
23114 : }
23115 :
23116 : int
23117 : recog_395 (rtx x1 ATTRIBUTE_UNUSED,
23118 : rtx_insn *insn ATTRIBUTE_UNUSED,
23119 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23120 : {
23121 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23122 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23123 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23124 : rtx x18;
23125 : int res ATTRIBUTE_UNUSED;
23126 : if (pattern231 (x1) != 0)
23127 : return -1;
23128 : x2 = XVECEXP (x1, 0, 0);
23129 : x3 = XEXP (x2, 1);
23130 : x4 = XEXP (x3, 0);
23131 : x5 = XEXP (x4, 0);
23132 : switch (GET_CODE (x5))
23133 : {
23134 : case REG:
23135 : case SUBREG:
23136 : case MEM:
23137 : operands[1] = x5;
23138 : x6 = XEXP (x4, 1);
23139 : operands[2] = x6;
23140 : x7 = XVECEXP (x1, 0, 1);
23141 : x8 = XEXP (x7, 0);
23142 : operands[0] = x8;
23143 : switch (GET_CODE (operands[2]))
23144 : {
23145 : case CONST_INT:
23146 : case CONST_WIDE_INT:
23147 : case CONST_POLY_INT:
23148 : case CONST_FIXED:
23149 : case CONST_DOUBLE:
23150 : case CONST_VECTOR:
23151 : case CONST:
23152 : case REG:
23153 : case SUBREG:
23154 : case MEM:
23155 : case LABEL_REF:
23156 : case SYMBOL_REF:
23157 : case HIGH:
23158 : x9 = XEXP (x7, 1);
23159 : switch (GET_CODE (x9))
23160 : {
23161 : case MINUS:
23162 : switch (pattern1498 (x1))
23163 : {
23164 : case 0:
23165 : if (!
23166 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23167 : (ix86_match_ccmode (insn, CCGOCmode)
23168 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23169 : return -1;
23170 : return 415; /* *subqi_2 */
23171 :
23172 : case 1:
23173 : if (!
23174 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23175 : (ix86_match_ccmode (insn, CCGOCmode)
23176 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23177 : return -1;
23178 : return 416; /* *subhi_2 */
23179 :
23180 : case 2:
23181 : if (!
23182 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23183 : (ix86_match_ccmode (insn, CCGOCmode)
23184 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23185 : return -1;
23186 : return 417; /* *subsi_2 */
23187 :
23188 : case 3:
23189 : if (!(
23190 : #line 8303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23191 : (ix86_match_ccmode (insn, CCGOCmode)
23192 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23193 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23194 : (TARGET_64BIT)))
23195 : return -1;
23196 : return 418; /* *subdi_2 */
23197 :
23198 : default:
23199 : return -1;
23200 : }
23201 :
23202 : case ZERO_EXTEND:
23203 : if (pattern1436 (x1,
23204 : MINUS) != 0
23205 : || !
23206 : #line 8324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23207 : (TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
23208 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23209 : return -1;
23210 : return 419; /* *subsi_2_zext */
23211 :
23212 : default:
23213 : return -1;
23214 : }
23215 :
23216 : case LTU:
23217 : case UNLT:
23218 : x10 = XEXP (x6, 1);
23219 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23220 : return -1;
23221 : x9 = XEXP (x7, 1);
23222 : if (GET_CODE (x9) != MINUS)
23223 : return -1;
23224 : x11 = XEXP (x9, 1);
23225 : switch (GET_CODE (x11))
23226 : {
23227 : case LTU:
23228 : case UNLT:
23229 : switch (pattern1571 (x1))
23230 : {
23231 : case 0:
23232 : if (pattern1774 (x9,
23233 : E_QImode) != 0
23234 : || !
23235 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23236 : (ix86_match_ccmode (insn, CCGOCmode)
23237 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23238 : return -1;
23239 : return 515; /* *subqi3_carry_0_cc */
23240 :
23241 : case 1:
23242 : if (pattern1774 (x9,
23243 : E_HImode) != 0
23244 : || !
23245 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23246 : (ix86_match_ccmode (insn, CCGOCmode)
23247 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23248 : return -1;
23249 : return 516; /* *subhi3_carry_0_cc */
23250 :
23251 : case 2:
23252 : if (pattern1774 (x9,
23253 : E_SImode) != 0
23254 : || !
23255 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23256 : (ix86_match_ccmode (insn, CCGOCmode)
23257 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23258 : return -1;
23259 : return 517; /* *subsi3_carry_0_cc */
23260 :
23261 : case 3:
23262 : if (pattern1774 (x9,
23263 : E_DImode) != 0
23264 : || !(
23265 : #line 9625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23266 : (ix86_match_ccmode (insn, CCGOCmode)
23267 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))) &&
23268 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23269 : (TARGET_64BIT)))
23270 : return -1;
23271 : return 518; /* *subdi3_carry_0_cc */
23272 :
23273 : default:
23274 : return -1;
23275 : }
23276 :
23277 : default:
23278 : return -1;
23279 : }
23280 :
23281 : case GE:
23282 : case GEU:
23283 : x10 = XEXP (x6, 1);
23284 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23285 : return -1;
23286 : x9 = XEXP (x7, 1);
23287 : if (GET_CODE (x9) != MINUS)
23288 : return -1;
23289 : x11 = XEXP (x9, 1);
23290 : switch (GET_CODE (x11))
23291 : {
23292 : case GE:
23293 : case GEU:
23294 : switch (pattern1571 (x1))
23295 : {
23296 : case 0:
23297 : if (pattern1775 (x9,
23298 : E_QImode) != 0
23299 : || !
23300 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23301 : (ix86_match_ccmode (insn, CCGOCmode)
23302 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23303 : return -1;
23304 : return 523; /* *subqi3_carry_0r_cc */
23305 :
23306 : case 1:
23307 : if (pattern1775 (x9,
23308 : E_HImode) != 0
23309 : || !
23310 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23311 : (ix86_match_ccmode (insn, CCGOCmode)
23312 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23313 : return -1;
23314 : return 524; /* *subhi3_carry_0r_cc */
23315 :
23316 : case 2:
23317 : if (pattern1775 (x9,
23318 : E_SImode) != 0
23319 : || !
23320 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23321 : (ix86_match_ccmode (insn, CCGOCmode)
23322 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))))
23323 : return -1;
23324 : return 525; /* *subsi3_carry_0r_cc */
23325 :
23326 : case 3:
23327 : if (pattern1775 (x9,
23328 : E_DImode) != 0
23329 : || !(
23330 : #line 9659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23331 : (ix86_match_ccmode (insn, CCGOCmode)
23332 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[1]))) &&
23333 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23334 : (TARGET_64BIT)))
23335 : return -1;
23336 : return 526; /* *subdi3_carry_0r_cc */
23337 :
23338 : default:
23339 : return -1;
23340 : }
23341 :
23342 : default:
23343 : return -1;
23344 : }
23345 :
23346 : default:
23347 : return -1;
23348 : }
23349 :
23350 : case MINUS:
23351 : x12 = XEXP (x5, 1);
23352 : switch (GET_CODE (x12))
23353 : {
23354 : case LTU:
23355 : case UNLT:
23356 : operands[4] = x12;
23357 : x13 = XEXP (x12, 1);
23358 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23359 : return -1;
23360 : x7 = XVECEXP (x1, 0, 1);
23361 : x9 = XEXP (x7, 1);
23362 : if (GET_CODE (x9) != MINUS)
23363 : return -1;
23364 : x14 = XEXP (x9, 0);
23365 : if (GET_CODE (x14) != MINUS)
23366 : return -1;
23367 : x15 = XEXP (x14, 1);
23368 : switch (GET_CODE (x15))
23369 : {
23370 : case LTU:
23371 : case UNLT:
23372 : if (!rtx_equal_p (x15, operands[4]))
23373 : return -1;
23374 : x16 = XEXP (x5, 0);
23375 : operands[1] = x16;
23376 : x17 = XEXP (x12, 0);
23377 : operands[3] = x17;
23378 : if (!flags_reg_operand (operands[3], E_VOIDmode))
23379 : return -1;
23380 : x6 = XEXP (x4, 1);
23381 : operands[2] = x6;
23382 : x8 = XEXP (x7, 0);
23383 : operands[0] = x8;
23384 : x18 = XEXP (x14, 0);
23385 : if (!rtx_equal_p (x18, operands[1]))
23386 : return -1;
23387 : x11 = XEXP (x9, 1);
23388 : if (!rtx_equal_p (x11, operands[2]))
23389 : return -1;
23390 : switch (GET_MODE (x4))
23391 : {
23392 : case E_QImode:
23393 : if (pattern1824 (x1,
23394 : E_QImode) != 0
23395 : || !
23396 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23397 : (ix86_match_ccmode (insn, CCGOCmode)
23398 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23399 : return -1;
23400 : return 507; /* *subqi3_carry_2 */
23401 :
23402 : case E_HImode:
23403 : if (pattern1824 (x1,
23404 : E_HImode) != 0
23405 : || !
23406 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23407 : (ix86_match_ccmode (insn, CCGOCmode)
23408 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23409 : return -1;
23410 : return 508; /* *subhi3_carry_2 */
23411 :
23412 : case E_SImode:
23413 : if (pattern1825 (x1,
23414 : E_SImode) != 0
23415 : || !
23416 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23417 : (ix86_match_ccmode (insn, CCGOCmode)
23418 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23419 : return -1;
23420 : return 509; /* *subsi3_carry_2 */
23421 :
23422 : case E_DImode:
23423 : if (pattern1825 (x1,
23424 : E_DImode) != 0
23425 : || !(
23426 : #line 9586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23427 : (ix86_match_ccmode (insn, CCGOCmode)
23428 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23429 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23430 : (TARGET_64BIT)))
23431 : return -1;
23432 : return 510; /* *subdi3_carry_2 */
23433 :
23434 : default:
23435 : return -1;
23436 : }
23437 :
23438 : default:
23439 : return -1;
23440 : }
23441 :
23442 : default:
23443 : return -1;
23444 : }
23445 :
23446 : case UNSPEC_VOLATILE:
23447 : if (XVECLEN (x5, 0) != 2
23448 : || XINT (x5, 1) != 110)
23449 : return -1;
23450 : switch (pattern1246 (x1,
23451 : MINUS))
23452 : {
23453 : case 0:
23454 : return 11133; /* atomic_sub_fetch_cmp_0qi_1 */
23455 :
23456 : case 1:
23457 : return 11134; /* atomic_sub_fetch_cmp_0hi_1 */
23458 :
23459 : case 2:
23460 : return 11135; /* atomic_sub_fetch_cmp_0si_1 */
23461 :
23462 : case 3:
23463 : if (!
23464 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23465 : (TARGET_64BIT))
23466 : return -1;
23467 : return 11136; /* atomic_sub_fetch_cmp_0di_1 */
23468 :
23469 : default:
23470 : return -1;
23471 : }
23472 :
23473 : default:
23474 : return -1;
23475 : }
23476 : }
23477 :
23478 : int
23479 : recog_400 (rtx x1 ATTRIBUTE_UNUSED,
23480 : rtx_insn *insn ATTRIBUTE_UNUSED,
23481 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23482 : {
23483 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23484 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23485 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
23486 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
23487 : rtx x26, x27, x28, x29, x30;
23488 : int res ATTRIBUTE_UNUSED;
23489 : x2 = XVECEXP (x1, 0, 0);
23490 : x3 = XEXP (x2, 1);
23491 : x4 = XEXP (x3, 0);
23492 : switch (GET_CODE (x4))
23493 : {
23494 : case PLUS:
23495 : if (pattern696 (x1,
23496 : PLUS) != 0)
23497 : return -1;
23498 : x5 = XEXP (x4, 0);
23499 : switch (GET_CODE (x5))
23500 : {
23501 : case SIGN_EXTEND:
23502 : switch (pattern1574 (x1))
23503 : {
23504 : case 0:
23505 : if (!
23506 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23507 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
23508 : return -1;
23509 : return 346; /* *addvqi4 */
23510 :
23511 : case 1:
23512 : if (!
23513 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23514 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
23515 : return -1;
23516 : return 347; /* *addvhi4 */
23517 :
23518 : case 2:
23519 : if (!
23520 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23521 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
23522 : return -1;
23523 : return 348; /* *addvsi4 */
23524 :
23525 : case 3:
23526 : if (x86_64_sext_operand (operands[2], E_DImode)
23527 : && (
23528 : #line 7693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23529 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
23530 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23531 : (TARGET_64BIT)))
23532 : return 349; /* *addvdi4 */
23533 : if (!nonimmediate_operand (operands[2], E_DImode)
23534 : || !(
23535 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23536 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
23537 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23538 : (!TARGET_64BIT)))
23539 : return -1;
23540 : return 354; /* *addvdi4_doubleword */
23541 :
23542 : case 4:
23543 : if (!(
23544 : #line 7746 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23545 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
23546 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23547 : (TARGET_64BIT)))
23548 : return -1;
23549 : return 355; /* *addvti4_doubleword */
23550 :
23551 : case 5:
23552 : if (!
23553 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23554 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
23555 : && CONST_INT_P (operands[2])
23556 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23557 : return -1;
23558 : return 350; /* addvqi4_1 */
23559 :
23560 : case 6:
23561 : if (!
23562 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23563 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
23564 : && CONST_INT_P (operands[2])
23565 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23566 : return -1;
23567 : return 351; /* addvhi4_1 */
23568 :
23569 : case 7:
23570 : if (!
23571 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23572 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
23573 : && CONST_INT_P (operands[2])
23574 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23575 : return -1;
23576 : return 352; /* addvsi4_1 */
23577 :
23578 : case 8:
23579 : if (const_int_operand (operands[3], E_TImode)
23580 : && x86_64_immediate_operand (operands[2], E_DImode)
23581 : && (
23582 : #line 7715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23583 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
23584 : && CONST_INT_P (operands[2])
23585 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
23586 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23587 : (TARGET_64BIT)))
23588 : return 353; /* addvdi4_1 */
23589 : if (!const_scalar_int_operand (operands[3], E_TImode)
23590 : || !x86_64_hilo_general_operand (operands[2], E_DImode)
23591 : || !(
23592 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23593 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
23594 : && CONST_SCALAR_INT_P (operands[2])
23595 : && rtx_equal_p (operands[2], operands[3])) &&
23596 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23597 : (!TARGET_64BIT)))
23598 : return -1;
23599 : return 356; /* *addvdi4_doubleword_1 */
23600 :
23601 : case 9:
23602 : if (!(
23603 : #line 7792 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23604 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)
23605 : && CONST_SCALAR_INT_P (operands[2])
23606 : && rtx_equal_p (operands[2], operands[3])) &&
23607 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23608 : (TARGET_64BIT)))
23609 : return -1;
23610 : return 357; /* *addvti4_doubleword_1 */
23611 :
23612 : default:
23613 : return -1;
23614 : }
23615 :
23616 : case PLUS:
23617 : x6 = XEXP (x5, 0);
23618 : switch (GET_CODE (x6))
23619 : {
23620 : case LTU:
23621 : case UNLT:
23622 : operands[4] = x6;
23623 : x7 = XEXP (x6, 1);
23624 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23625 : return -1;
23626 : x8 = XEXP (x5, 1);
23627 : if (GET_CODE (x8) != SIGN_EXTEND)
23628 : return -1;
23629 : x9 = XEXP (x3, 1);
23630 : x10 = XEXP (x9, 0);
23631 : x11 = XEXP (x10, 0);
23632 : if (GET_CODE (x11) != PLUS)
23633 : return -1;
23634 : x12 = XEXP (x11, 0);
23635 : switch (GET_CODE (x12))
23636 : {
23637 : case LTU:
23638 : case UNLT:
23639 : operands[5] = x12;
23640 : x13 = XEXP (x12, 1);
23641 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23642 : return -1;
23643 : x14 = XVECEXP (x1, 0, 1);
23644 : x15 = XEXP (x14, 1);
23645 : x16 = XEXP (x15, 0);
23646 : if (GET_CODE (x16) != PLUS)
23647 : return -1;
23648 : x17 = XEXP (x16, 0);
23649 : switch (GET_CODE (x17))
23650 : {
23651 : case LTU:
23652 : case UNLT:
23653 : if (!rtx_equal_p (x17, operands[5]))
23654 : return -1;
23655 : x18 = XEXP (x6, 0);
23656 : operands[3] = x18;
23657 : if (!flags_reg_operand (operands[3], E_VOIDmode))
23658 : return -1;
23659 : x19 = XEXP (x8, 0);
23660 : operands[1] = x19;
23661 : x20 = XEXP (x12, 0);
23662 : if (!rtx_equal_p (x20, operands[3]))
23663 : return -1;
23664 : x21 = XEXP (x11, 1);
23665 : if (!rtx_equal_p (x21, operands[1]))
23666 : return -1;
23667 : x22 = XEXP (x16, 1);
23668 : if (!rtx_equal_p (x22, operands[1]))
23669 : return -1;
23670 : switch (pattern1886 (x1))
23671 : {
23672 : case 0:
23673 : if (pattern1902 (x1,
23674 : E_QImode,
23675 : E_HImode) != 0
23676 : || !
23677 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23678 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)))
23679 : return -1;
23680 : return 358; /* *addvqi4_overflow_1 */
23681 :
23682 : case 1:
23683 : if (pattern1902 (x1,
23684 : E_HImode,
23685 : E_SImode) != 0
23686 : || !
23687 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23688 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)))
23689 : return -1;
23690 : return 359; /* *addvhi4_overflow_1 */
23691 :
23692 : case 2:
23693 : if (pattern1903 (x1,
23694 : E_SImode,
23695 : E_DImode) != 0
23696 : || !
23697 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23698 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)))
23699 : return -1;
23700 : return 360; /* *addvsi4_overflow_1 */
23701 :
23702 : case 3:
23703 : if (pattern1903 (x1,
23704 : E_DImode,
23705 : E_TImode) != 0
23706 : || !(
23707 : #line 7859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23708 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
23709 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23710 : (TARGET_64BIT)))
23711 : return -1;
23712 : return 361; /* *addvdi4_overflow_1 */
23713 :
23714 : case 4:
23715 : if (pattern1905 (x1,
23716 : E_QImode,
23717 : E_HImode) != 0
23718 : || !
23719 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23720 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
23721 : && CONST_INT_P (operands[2])
23722 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23723 : return -1;
23724 : return 362; /* *addvqi4_overflow_2 */
23725 :
23726 : case 5:
23727 : if (pattern1905 (x1,
23728 : E_HImode,
23729 : E_SImode) != 0
23730 : || !
23731 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23732 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
23733 : && CONST_INT_P (operands[2])
23734 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23735 : return -1;
23736 : return 363; /* *addvhi4_overflow_2 */
23737 :
23738 : case 6:
23739 : if (pattern1905 (x1,
23740 : E_SImode,
23741 : E_DImode) != 0
23742 : || !
23743 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23744 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
23745 : && CONST_INT_P (operands[2])
23746 : && INTVAL (operands[2]) == INTVAL (operands[6])))
23747 : return -1;
23748 : return 364; /* *addvsi4_overflow_2 */
23749 :
23750 : case 7:
23751 : if (pattern1905 (x1,
23752 : E_DImode,
23753 : E_TImode) != 0
23754 : || !(
23755 : #line 7892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23756 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
23757 : && CONST_INT_P (operands[2])
23758 : && INTVAL (operands[2]) == INTVAL (operands[6])) &&
23759 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23760 : (TARGET_64BIT)))
23761 : return -1;
23762 : return 365; /* *addvdi4_overflow_2 */
23763 :
23764 : default:
23765 : return -1;
23766 : }
23767 :
23768 : default:
23769 : return -1;
23770 : }
23771 :
23772 : default:
23773 : return -1;
23774 : }
23775 :
23776 : default:
23777 : return -1;
23778 : }
23779 :
23780 : default:
23781 : return -1;
23782 : }
23783 :
23784 : case MINUS:
23785 : if (pattern696 (x1,
23786 : MINUS) != 0)
23787 : return -1;
23788 : x5 = XEXP (x4, 0);
23789 : switch (GET_CODE (x5))
23790 : {
23791 : case SIGN_EXTEND:
23792 : switch (pattern1574 (x1))
23793 : {
23794 : case 0:
23795 : if (!
23796 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23797 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23798 : return -1;
23799 : return 429; /* *subvqi4 */
23800 :
23801 : case 1:
23802 : if (!
23803 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23804 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23805 : return -1;
23806 : return 430; /* *subvhi4 */
23807 :
23808 : case 2:
23809 : if (!
23810 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23811 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23812 : return -1;
23813 : return 431; /* *subvsi4 */
23814 :
23815 : case 3:
23816 : if (x86_64_sext_operand (operands[2], E_DImode)
23817 : && (
23818 : #line 8454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23819 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23820 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23821 : (TARGET_64BIT)))
23822 : return 432; /* *subvdi4 */
23823 : if (!nonimmediate_operand (operands[2], E_DImode)
23824 : || !(
23825 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23826 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
23827 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23828 : (!TARGET_64BIT)))
23829 : return -1;
23830 : return 437; /* *subvdi4_doubleword */
23831 :
23832 : case 4:
23833 : if (!(
23834 : #line 8504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23835 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23836 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23837 : (TARGET_64BIT)))
23838 : return -1;
23839 : return 438; /* *subvti4_doubleword */
23840 :
23841 : case 5:
23842 : if (!
23843 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23844 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
23845 : && CONST_INT_P (operands[2])
23846 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23847 : return -1;
23848 : return 433; /* subvqi4_1 */
23849 :
23850 : case 6:
23851 : if (!
23852 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23853 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
23854 : && CONST_INT_P (operands[2])
23855 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23856 : return -1;
23857 : return 434; /* subvhi4_1 */
23858 :
23859 : case 7:
23860 : if (!
23861 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23862 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23863 : && CONST_INT_P (operands[2])
23864 : && INTVAL (operands[2]) == INTVAL (operands[3])))
23865 : return -1;
23866 : return 435; /* subvsi4_1 */
23867 :
23868 : case 8:
23869 : if (const_int_operand (operands[3], E_TImode)
23870 : && x86_64_immediate_operand (operands[2], E_DImode)
23871 : && (
23872 : #line 8476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23873 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23874 : && CONST_INT_P (operands[2])
23875 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
23876 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23877 : (TARGET_64BIT)))
23878 : return 436; /* subvdi4_1 */
23879 : if (!const_scalar_int_operand (operands[3], E_TImode)
23880 : || !x86_64_hilo_general_operand (operands[2], E_DImode)
23881 : || !(
23882 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23883 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
23884 : && CONST_SCALAR_INT_P (operands[2])
23885 : && rtx_equal_p (operands[2], operands[3])) &&
23886 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23887 : (!TARGET_64BIT)))
23888 : return -1;
23889 : return 439; /* *subvdi4_doubleword_1 */
23890 :
23891 : case 9:
23892 : if (!(
23893 : #line 8548 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23894 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
23895 : && CONST_SCALAR_INT_P (operands[2])
23896 : && rtx_equal_p (operands[2], operands[3])) &&
23897 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23898 : (TARGET_64BIT)))
23899 : return -1;
23900 : return 440; /* *subvti4_doubleword_1 */
23901 :
23902 : default:
23903 : return -1;
23904 : }
23905 :
23906 : case MINUS:
23907 : x6 = XEXP (x5, 0);
23908 : if (GET_CODE (x6) != SIGN_EXTEND)
23909 : return -1;
23910 : x8 = XEXP (x5, 1);
23911 : switch (GET_CODE (x8))
23912 : {
23913 : case LTU:
23914 : case UNLT:
23915 : operands[4] = x8;
23916 : x23 = XEXP (x8, 1);
23917 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23918 : return -1;
23919 : x9 = XEXP (x3, 1);
23920 : x10 = XEXP (x9, 0);
23921 : x11 = XEXP (x10, 0);
23922 : if (GET_CODE (x11) != MINUS)
23923 : return -1;
23924 : x21 = XEXP (x11, 1);
23925 : switch (GET_CODE (x21))
23926 : {
23927 : case LTU:
23928 : case UNLT:
23929 : operands[5] = x21;
23930 : x24 = XEXP (x21, 1);
23931 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23932 : return -1;
23933 : x14 = XVECEXP (x1, 0, 1);
23934 : x15 = XEXP (x14, 1);
23935 : x16 = XEXP (x15, 0);
23936 : if (GET_CODE (x16) != MINUS)
23937 : return -1;
23938 : x22 = XEXP (x16, 1);
23939 : switch (GET_CODE (x22))
23940 : {
23941 : case LTU:
23942 : case UNLT:
23943 : if (!rtx_equal_p (x22, operands[5]))
23944 : return -1;
23945 : x18 = XEXP (x6, 0);
23946 : operands[1] = x18;
23947 : x19 = XEXP (x8, 0);
23948 : operands[3] = x19;
23949 : if (!flags_reg_operand (operands[3], E_VOIDmode))
23950 : return -1;
23951 : x12 = XEXP (x11, 0);
23952 : if (!rtx_equal_p (x12, operands[1]))
23953 : return -1;
23954 : x25 = XEXP (x21, 0);
23955 : if (!rtx_equal_p (x25, operands[3]))
23956 : return -1;
23957 : x17 = XEXP (x16, 0);
23958 : if (!rtx_equal_p (x17, operands[1]))
23959 : return -1;
23960 : switch (pattern1886 (x1))
23961 : {
23962 : case 0:
23963 : if (pattern1907 (x1,
23964 : E_QImode,
23965 : E_HImode) != 0
23966 : || !
23967 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23968 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
23969 : return -1;
23970 : return 441; /* *subvqi4_overflow_1 */
23971 :
23972 : case 1:
23973 : if (pattern1907 (x1,
23974 : E_HImode,
23975 : E_SImode) != 0
23976 : || !
23977 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23978 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
23979 : return -1;
23980 : return 442; /* *subvhi4_overflow_1 */
23981 :
23982 : case 2:
23983 : if (pattern1908 (x1,
23984 : E_SImode,
23985 : E_DImode) != 0
23986 : || !
23987 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23988 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
23989 : return -1;
23990 : return 443; /* *subvsi4_overflow_1 */
23991 :
23992 : case 3:
23993 : if (pattern1908 (x1,
23994 : E_DImode,
23995 : E_TImode) != 0
23996 : || !(
23997 : #line 8613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23998 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
23999 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24000 : (TARGET_64BIT)))
24001 : return -1;
24002 : return 444; /* *subvdi4_overflow_1 */
24003 :
24004 : case 4:
24005 : if (pattern1909 (x1,
24006 : E_QImode,
24007 : E_HImode) != 0
24008 : || !
24009 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24010 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
24011 : && CONST_INT_P (operands[2])
24012 : && INTVAL (operands[2]) == INTVAL (operands[6])))
24013 : return -1;
24014 : return 445; /* *subvqi4_overflow_2 */
24015 :
24016 : case 5:
24017 : if (pattern1909 (x1,
24018 : E_HImode,
24019 : E_SImode) != 0
24020 : || !
24021 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24022 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
24023 : && CONST_INT_P (operands[2])
24024 : && INTVAL (operands[2]) == INTVAL (operands[6])))
24025 : return -1;
24026 : return 446; /* *subvhi4_overflow_2 */
24027 :
24028 : case 6:
24029 : if (pattern1909 (x1,
24030 : E_SImode,
24031 : E_DImode) != 0
24032 : || !
24033 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24034 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
24035 : && CONST_INT_P (operands[2])
24036 : && INTVAL (operands[2]) == INTVAL (operands[6])))
24037 : return -1;
24038 : return 447; /* *subvsi4_overflow_2 */
24039 :
24040 : case 7:
24041 : if (pattern1909 (x1,
24042 : E_DImode,
24043 : E_TImode) != 0
24044 : || !(
24045 : #line 8646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24046 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
24047 : && CONST_INT_P (operands[2])
24048 : && INTVAL (operands[2]) == INTVAL (operands[6])) &&
24049 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24050 : (TARGET_64BIT)))
24051 : return -1;
24052 : return 448; /* *subvdi4_overflow_2 */
24053 :
24054 : default:
24055 : return -1;
24056 : }
24057 :
24058 : default:
24059 : return -1;
24060 : }
24061 :
24062 : default:
24063 : return -1;
24064 : }
24065 :
24066 : default:
24067 : return -1;
24068 : }
24069 :
24070 : default:
24071 : return -1;
24072 : }
24073 :
24074 : case MULT:
24075 : if (pattern695 (x1,
24076 : MULT) != 0)
24077 : return -1;
24078 : x5 = XEXP (x4, 0);
24079 : switch (GET_CODE (x5))
24080 : {
24081 : case SIGN_EXTEND:
24082 : x9 = XEXP (x3, 1);
24083 : if (GET_CODE (x9) != SIGN_EXTEND)
24084 : return -1;
24085 : x10 = XEXP (x9, 0);
24086 : if (GET_CODE (x10) != MULT)
24087 : return -1;
24088 : x6 = XEXP (x5, 0);
24089 : operands[1] = x6;
24090 : x11 = XEXP (x10, 0);
24091 : if (!rtx_equal_p (x11, operands[1]))
24092 : return -1;
24093 : x14 = XVECEXP (x1, 0, 1);
24094 : x15 = XEXP (x14, 1);
24095 : x16 = XEXP (x15, 0);
24096 : if (!rtx_equal_p (x16, operands[1]))
24097 : return -1;
24098 : x26 = XEXP (x4, 1);
24099 : switch (GET_CODE (x26))
24100 : {
24101 : case SIGN_EXTEND:
24102 : x27 = XEXP (x26, 0);
24103 : operands[2] = x27;
24104 : x28 = XEXP (x10, 1);
24105 : if (!rtx_equal_p (x28, operands[2]))
24106 : return -1;
24107 : x29 = XEXP (x15, 1);
24108 : if (!rtx_equal_p (x29, operands[2]))
24109 : return -1;
24110 : switch (GET_MODE (x4))
24111 : {
24112 : case E_DImode:
24113 : if (pattern1827 (x1,
24114 : E_SImode,
24115 : E_DImode) != 0
24116 : || !
24117 : #line 11085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24118 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24119 : return -1;
24120 : return 632; /* *mulvsi4 */
24121 :
24122 : case E_TImode:
24123 : if (pattern1827 (x1,
24124 : E_DImode,
24125 : E_TImode) != 0
24126 : || !(
24127 : #line 11085 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24128 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
24129 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24130 : (TARGET_64BIT)))
24131 : return -1;
24132 : return 633; /* *mulvdi4 */
24133 :
24134 : case E_SImode:
24135 : if (pattern1828 (x1,
24136 : E_HImode,
24137 : E_SImode) != 0
24138 : || !
24139 : #line 11121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24140 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24141 : return -1;
24142 : return 634; /* *mulvhi4 */
24143 :
24144 : case E_HImode:
24145 : if (pattern1828 (x1,
24146 : E_QImode,
24147 : E_HImode) != 0
24148 : || !
24149 : #line 11259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24150 : (TARGET_QIMODE_MATH
24151 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24152 : return -1;
24153 : return 641; /* *mulvqi4 */
24154 :
24155 : default:
24156 : return -1;
24157 : }
24158 :
24159 : case CONST_INT:
24160 : operands[3] = x26;
24161 : x28 = XEXP (x10, 1);
24162 : operands[2] = x28;
24163 : x29 = XEXP (x15, 1);
24164 : if (!rtx_equal_p (x29, operands[2]))
24165 : return -1;
24166 : switch (GET_MODE (x4))
24167 : {
24168 : case E_SImode:
24169 : if (GET_MODE (x5) != E_SImode
24170 : || !nonimmediate_operand (operands[1], E_HImode)
24171 : || !const_int_operand (operands[3], E_SImode)
24172 : || GET_MODE (x9) != E_SImode
24173 : || GET_MODE (x10) != E_HImode
24174 : || !immediate_operand (operands[2], E_HImode)
24175 : || !register_operand (operands[0], E_HImode)
24176 : || GET_MODE (x15) != E_HImode
24177 : || !
24178 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24179 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
24180 : && CONST_INT_P (operands[2])
24181 : && INTVAL (operands[2]) == INTVAL (operands[3])))
24182 : return -1;
24183 : return 635; /* *mulvhi4_1 */
24184 :
24185 : case E_DImode:
24186 : if (pattern1829 (x1,
24187 : E_SImode,
24188 : E_DImode) != 0
24189 : || !
24190 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24191 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
24192 : && CONST_INT_P (operands[2])
24193 : && INTVAL (operands[2]) == INTVAL (operands[3])))
24194 : return -1;
24195 : return 636; /* *mulvsi4_1 */
24196 :
24197 : case E_TImode:
24198 : if (pattern1829 (x1,
24199 : E_DImode,
24200 : E_TImode) != 0
24201 : || !(
24202 : #line 11145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24203 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
24204 : && CONST_INT_P (operands[2])
24205 : && INTVAL (operands[2]) == INTVAL (operands[3])) &&
24206 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24207 : (TARGET_64BIT)))
24208 : return -1;
24209 : return 637; /* *mulvdi4_1 */
24210 :
24211 : default:
24212 : return -1;
24213 : }
24214 :
24215 : default:
24216 : return -1;
24217 : }
24218 :
24219 : case ZERO_EXTEND:
24220 : x26 = XEXP (x4, 1);
24221 : if (GET_CODE (x26) != ZERO_EXTEND)
24222 : return -1;
24223 : x9 = XEXP (x3, 1);
24224 : if (GET_CODE (x9) != ZERO_EXTEND)
24225 : return -1;
24226 : x10 = XEXP (x9, 0);
24227 : if (GET_CODE (x10) != MULT)
24228 : return -1;
24229 : x6 = XEXP (x5, 0);
24230 : operands[1] = x6;
24231 : x27 = XEXP (x26, 0);
24232 : operands[2] = x27;
24233 : x11 = XEXP (x10, 0);
24234 : if (!rtx_equal_p (x11, operands[1]))
24235 : return -1;
24236 : x28 = XEXP (x10, 1);
24237 : if (!rtx_equal_p (x28, operands[2]))
24238 : return -1;
24239 : x14 = XVECEXP (x1, 0, 1);
24240 : x15 = XEXP (x14, 1);
24241 : x16 = XEXP (x15, 0);
24242 : if (!rtx_equal_p (x16, operands[1]))
24243 : return -1;
24244 : x29 = XEXP (x15, 1);
24245 : if (!rtx_equal_p (x29, operands[2]))
24246 : return -1;
24247 : switch (GET_MODE (x4))
24248 : {
24249 : case E_SImode:
24250 : if (pnum_clobbers == NULL
24251 : || pattern1828 (x1,
24252 : E_HImode,
24253 : E_SImode) != 0
24254 : || !
24255 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24256 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24257 : return -1;
24258 : *pnum_clobbers = 1;
24259 : return 638; /* *umulvhi4 */
24260 :
24261 : case E_DImode:
24262 : if (pnum_clobbers == NULL
24263 : || pattern1828 (x1,
24264 : E_SImode,
24265 : E_DImode) != 0
24266 : || !
24267 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24268 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24269 : return -1;
24270 : *pnum_clobbers = 1;
24271 : return 639; /* *umulvsi4 */
24272 :
24273 : case E_TImode:
24274 : if (pnum_clobbers == NULL
24275 : || pattern1828 (x1,
24276 : E_DImode,
24277 : E_TImode) != 0
24278 : || !(
24279 : #line 11215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24280 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
24281 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24282 : (TARGET_64BIT)))
24283 : return -1;
24284 : *pnum_clobbers = 1;
24285 : return 640; /* *umulvdi4 */
24286 :
24287 : case E_HImode:
24288 : if (pattern1828 (x1,
24289 : E_QImode,
24290 : E_HImode) != 0
24291 : || !
24292 : #line 11259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24293 : (TARGET_QIMODE_MATH
24294 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24295 : return -1;
24296 : return 642; /* *umulvqi4 */
24297 :
24298 : default:
24299 : return -1;
24300 : }
24301 :
24302 : default:
24303 : return -1;
24304 : }
24305 :
24306 : case ZERO_EXTRACT:
24307 : switch (pattern697 (x1))
24308 : {
24309 : case 0:
24310 : if (!
24311 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24312 : (TARGET_USE_BT && ix86_pre_reload_split ()))
24313 : return -1;
24314 : return 1472; /* *btsi_setncqi_2 */
24315 :
24316 : case 1:
24317 : if (!(
24318 : #line 19744 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24319 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
24320 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24321 : (TARGET_64BIT)))
24322 : return -1;
24323 : return 1473; /* *btdi_setncqi_2 */
24324 :
24325 : default:
24326 : return -1;
24327 : }
24328 :
24329 : case REG:
24330 : case SUBREG:
24331 : case MEM:
24332 : operands[1] = x4;
24333 : if (!nonimmediate_operand (operands[1], E_V2SFmode))
24334 : return -1;
24335 : x14 = XVECEXP (x1, 0, 1);
24336 : if (pattern384 (x14,
24337 : 111,
24338 : 0) != 0)
24339 : return -1;
24340 : x30 = XEXP (x2, 0);
24341 : operands[0] = x30;
24342 : if (!register_operand (operands[0], E_V2SImode)
24343 : || GET_MODE (x3) != E_V2SImode)
24344 : return -1;
24345 : x9 = XEXP (x3, 1);
24346 : operands[2] = x9;
24347 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
24348 : || !
24349 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
24350 : (TARGET_3DNOW && ix86_binary_operator_ok (EQ, V2SFmode, operands)))
24351 : return -1;
24352 : return 2126; /* *mmx_eqv2sf3 */
24353 :
24354 : default:
24355 : return -1;
24356 : }
24357 : }
24358 :
24359 : int
24360 : recog_432 (rtx x1 ATTRIBUTE_UNUSED,
24361 : rtx_insn *insn ATTRIBUTE_UNUSED,
24362 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24363 : {
24364 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24365 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24366 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
24367 : rtx x18, x19;
24368 : int res ATTRIBUTE_UNUSED;
24369 : x2 = XVECEXP (x1, 0, 0);
24370 : x3 = XEXP (x2, 1);
24371 : if (GET_MODE (x3) != E_DImode)
24372 : return -1;
24373 : x4 = XEXP (x2, 0);
24374 : if (!register_operand (x4, E_DImode))
24375 : return -1;
24376 : x5 = XEXP (x3, 0);
24377 : if (GET_MODE (x5) != E_SImode)
24378 : return -1;
24379 : switch (GET_CODE (x5))
24380 : {
24381 : case SMUL_HIGHPART:
24382 : if (pattern836 (x1) != 0
24383 : || !
24384 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24385 : (TARGET_64BIT))
24386 : return -1;
24387 : return 659; /* *smulsi3_highpart_zext */
24388 :
24389 : case UMUL_HIGHPART:
24390 : if (pattern836 (x1) != 0
24391 : || !
24392 : #line 11493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24393 : (TARGET_64BIT))
24394 : return -1;
24395 : return 660; /* *umulsi3_highpart_zext */
24396 :
24397 : case TRUNCATE:
24398 : x6 = XEXP (x5, 0);
24399 : if (GET_CODE (x6) != LSHIFTRT
24400 : || GET_MODE (x6) != E_DImode)
24401 : return -1;
24402 : x7 = XEXP (x6, 0);
24403 : if (GET_CODE (x7) != MULT
24404 : || GET_MODE (x7) != E_DImode)
24405 : return -1;
24406 : x8 = XEXP (x6, 1);
24407 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
24408 : return -1;
24409 : x9 = XVECEXP (x1, 0, 1);
24410 : if (GET_CODE (x9) != CLOBBER
24411 : || pattern838 (x1) != 0)
24412 : return -1;
24413 : x10 = XEXP (x7, 0);
24414 : if (GET_MODE (x10) != E_DImode)
24415 : return -1;
24416 : x11 = XEXP (x7, 1);
24417 : if (GET_MODE (x11) != E_DImode)
24418 : return -1;
24419 : x12 = XEXP (x9, 0);
24420 : operands[3] = x12;
24421 : if (!scratch_operand (operands[3], E_SImode))
24422 : return -1;
24423 : switch (GET_CODE (x10))
24424 : {
24425 : case SIGN_EXTEND:
24426 : if (GET_CODE (x11) != SIGN_EXTEND)
24427 : return -1;
24428 : x13 = XEXP (x10, 0);
24429 : operands[1] = x13;
24430 : if (!nonimmediate_operand (operands[1], E_SImode))
24431 : return -1;
24432 : x14 = XEXP (x11, 0);
24433 : operands[2] = x14;
24434 : if (!nonimmediate_operand (operands[2], E_SImode)
24435 : || !
24436 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24437 : (TARGET_64BIT
24438 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24439 : return -1;
24440 : return 663; /* *smulsi3_highpart_zext */
24441 :
24442 : case ZERO_EXTEND:
24443 : if (GET_CODE (x11) != ZERO_EXTEND)
24444 : return -1;
24445 : x13 = XEXP (x10, 0);
24446 : operands[1] = x13;
24447 : if (!nonimmediate_operand (operands[1], E_SImode))
24448 : return -1;
24449 : x14 = XEXP (x11, 0);
24450 : operands[2] = x14;
24451 : if (!nonimmediate_operand (operands[2], E_SImode)
24452 : || !
24453 : #line 11541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24454 : (TARGET_64BIT
24455 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24456 : return -1;
24457 : return 664; /* *umulsi3_highpart_zext */
24458 :
24459 : default:
24460 : return -1;
24461 : }
24462 :
24463 : case DIV:
24464 : x9 = XVECEXP (x1, 0, 1);
24465 : if (GET_CODE (x9) != SET)
24466 : return -1;
24467 : x15 = XEXP (x9, 1);
24468 : if (GET_CODE (x15) != MOD
24469 : || GET_MODE (x15) != E_SImode)
24470 : return -1;
24471 : operands[0] = x4;
24472 : x6 = XEXP (x5, 0);
24473 : operands[2] = x6;
24474 : if (!register_operand (operands[2], E_SImode))
24475 : return -1;
24476 : x16 = XEXP (x5, 1);
24477 : operands[3] = x16;
24478 : if (!nonimmediate_operand (operands[3], E_SImode))
24479 : return -1;
24480 : x12 = XEXP (x9, 0);
24481 : operands[1] = x12;
24482 : if (!register_operand (operands[1], E_SImode))
24483 : return -1;
24484 : switch (pattern1642 (x1, pnum_clobbers))
24485 : {
24486 : case 0:
24487 : if (!
24488 : #line 11828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24489 : (TARGET_64BIT))
24490 : return -1;
24491 : *pnum_clobbers = 1;
24492 : return 671; /* divmodsi4_zext_1 */
24493 :
24494 : case 1:
24495 : if (!
24496 : #line 12027 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24497 : (TARGET_64BIT))
24498 : return -1;
24499 : return 683; /* *divmodsi4_zext_1 */
24500 :
24501 : case 2:
24502 : if (!
24503 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24504 : (TARGET_64BIT))
24505 : return -1;
24506 : *pnum_clobbers = 1;
24507 : return 701; /* *divmodsi4_noext_zext_1 */
24508 :
24509 : default:
24510 : return -1;
24511 : }
24512 :
24513 : case UDIV:
24514 : x9 = XVECEXP (x1, 0, 1);
24515 : if (GET_CODE (x9) != SET)
24516 : return -1;
24517 : x15 = XEXP (x9, 1);
24518 : if (GET_CODE (x15) != UMOD
24519 : || GET_MODE (x15) != E_SImode)
24520 : return -1;
24521 : operands[0] = x4;
24522 : x6 = XEXP (x5, 0);
24523 : operands[2] = x6;
24524 : if (!register_operand (operands[2], E_SImode))
24525 : return -1;
24526 : x16 = XEXP (x5, 1);
24527 : operands[3] = x16;
24528 : x12 = XEXP (x9, 0);
24529 : operands[1] = x12;
24530 : if (!register_operand (operands[1], E_SImode))
24531 : return -1;
24532 : switch (pattern1583 (x1, pnum_clobbers))
24533 : {
24534 : case 0:
24535 : if (!
24536 : #line 11864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24537 : (TARGET_64BIT))
24538 : return -1;
24539 : *pnum_clobbers = 1;
24540 : return 672; /* udivmodsi4_zext_1 */
24541 :
24542 : case 1:
24543 : if (!
24544 : #line 12062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24545 : (TARGET_64BIT))
24546 : return -1;
24547 : return 684; /* *udivmodsi4_zext_1 */
24548 :
24549 : case 2:
24550 : if (!
24551 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24552 : (TARGET_64BIT))
24553 : return -1;
24554 : *pnum_clobbers = 1;
24555 : return 702; /* *udivmodsi4_noext_zext_1 */
24556 :
24557 : case 3:
24558 : if (!
24559 : #line 12084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24560 : (TARGET_64BIT
24561 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
24562 : return -1;
24563 : return 685; /* *udivmodsi4_pow2_zext_1 */
24564 :
24565 : default:
24566 : return -1;
24567 : }
24568 :
24569 : case MOD:
24570 : x9 = XVECEXP (x1, 0, 1);
24571 : if (GET_CODE (x9) != SET)
24572 : return -1;
24573 : x15 = XEXP (x9, 1);
24574 : if (GET_CODE (x15) != DIV
24575 : || GET_MODE (x15) != E_SImode)
24576 : return -1;
24577 : operands[1] = x4;
24578 : x6 = XEXP (x5, 0);
24579 : operands[2] = x6;
24580 : if (!register_operand (operands[2], E_SImode))
24581 : return -1;
24582 : x16 = XEXP (x5, 1);
24583 : operands[3] = x16;
24584 : if (!nonimmediate_operand (operands[3], E_SImode))
24585 : return -1;
24586 : x12 = XEXP (x9, 0);
24587 : operands[0] = x12;
24588 : if (!register_operand (operands[0], E_SImode))
24589 : return -1;
24590 : switch (pattern1642 (x1, pnum_clobbers))
24591 : {
24592 : case 0:
24593 : if (!
24594 : #line 11887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24595 : (TARGET_64BIT))
24596 : return -1;
24597 : *pnum_clobbers = 1;
24598 : return 673; /* divmodsi4_zext_2 */
24599 :
24600 : case 1:
24601 : if (!
24602 : #line 12110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24603 : (TARGET_64BIT))
24604 : return -1;
24605 : return 686; /* *divmodsi4_zext_2 */
24606 :
24607 : case 2:
24608 : if (!
24609 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24610 : (TARGET_64BIT))
24611 : return -1;
24612 : *pnum_clobbers = 1;
24613 : return 703; /* *divmodsi4_noext_zext_2 */
24614 :
24615 : default:
24616 : return -1;
24617 : }
24618 :
24619 : case UMOD:
24620 : x9 = XVECEXP (x1, 0, 1);
24621 : if (GET_CODE (x9) != SET)
24622 : return -1;
24623 : x15 = XEXP (x9, 1);
24624 : if (GET_CODE (x15) != UDIV
24625 : || GET_MODE (x15) != E_SImode)
24626 : return -1;
24627 : operands[1] = x4;
24628 : x6 = XEXP (x5, 0);
24629 : operands[2] = x6;
24630 : if (!register_operand (operands[2], E_SImode))
24631 : return -1;
24632 : x16 = XEXP (x5, 1);
24633 : operands[3] = x16;
24634 : x12 = XEXP (x9, 0);
24635 : operands[0] = x12;
24636 : if (!register_operand (operands[0], E_SImode))
24637 : return -1;
24638 : switch (pattern1583 (x1, pnum_clobbers))
24639 : {
24640 : case 0:
24641 : if (!
24642 : #line 11924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24643 : (TARGET_64BIT))
24644 : return -1;
24645 : *pnum_clobbers = 1;
24646 : return 674; /* udivmodsi4_zext_2 */
24647 :
24648 : case 1:
24649 : if (!
24650 : #line 12146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24651 : (TARGET_64BIT))
24652 : return -1;
24653 : return 687; /* *udivmodsi4_zext_2 */
24654 :
24655 : case 2:
24656 : if (!
24657 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24658 : (TARGET_64BIT))
24659 : return -1;
24660 : *pnum_clobbers = 1;
24661 : return 704; /* *udivmodsi4_noext_zext_2 */
24662 :
24663 : case 3:
24664 : if (!
24665 : #line 12168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24666 : (TARGET_64BIT
24667 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
24668 : return -1;
24669 : return 688; /* *udivmodsi4_pow2_zext_2 */
24670 :
24671 : default:
24672 : return -1;
24673 : }
24674 :
24675 : case CTZ:
24676 : if (pattern837 (x1) != 0
24677 : || !
24678 : #line 21572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24679 : (TARGET_64BIT))
24680 : return -1;
24681 : return 1555; /* *ctzsidi2_uext_falsedep */
24682 :
24683 : case CLZ:
24684 : x9 = XVECEXP (x1, 0, 1);
24685 : if (GET_CODE (x9) != UNSPEC
24686 : || XVECLEN (x9, 0) != 1
24687 : || XINT (x9, 1) != 39)
24688 : return -1;
24689 : x17 = XVECEXP (x1, 0, 2);
24690 : if (GET_CODE (x17) != CLOBBER)
24691 : return -1;
24692 : x18 = XEXP (x17, 0);
24693 : if (GET_CODE (x18) != REG
24694 : || REGNO (x18) != 17
24695 : || GET_MODE (x18) != E_CCmode)
24696 : return -1;
24697 : operands[0] = x4;
24698 : x6 = XEXP (x5, 0);
24699 : operands[1] = x6;
24700 : x19 = XVECEXP (x9, 0, 0);
24701 : switch (pattern1433 (x19))
24702 : {
24703 : case 0:
24704 : if (!
24705 : #line 21993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24706 : (TARGET_LZCNT))
24707 : return -1;
24708 : return 1578; /* *clzsi2_lzcnt_zext_2_falsedep */
24709 :
24710 : case 1:
24711 : if (!(
24712 : #line 21993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24713 : (TARGET_LZCNT) &&
24714 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24715 : (TARGET_64BIT)))
24716 : return -1;
24717 : return 1579; /* *clzsi2_lzcnt_zext_2_falsedep */
24718 :
24719 : default:
24720 : return -1;
24721 : }
24722 :
24723 : case POPCOUNT:
24724 : if (pattern837 (x1) != 0
24725 : || !
24726 : #line 22836 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24727 : (TARGET_POPCNT && TARGET_64BIT))
24728 : return -1;
24729 : return 1669; /* *popcountsi2_zext_2_falsedep */
24730 :
24731 : default:
24732 : return -1;
24733 : }
24734 : }
24735 :
24736 : int
24737 : recog_443 (rtx x1 ATTRIBUTE_UNUSED,
24738 : rtx_insn *insn ATTRIBUTE_UNUSED,
24739 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24740 : {
24741 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24742 : rtx x2, x3, x4, x5, x6, x7;
24743 : int res ATTRIBUTE_UNUSED;
24744 : x2 = XVECEXP (x1, 0, 0);
24745 : switch (GET_CODE (x2))
24746 : {
24747 : case UNSPEC_VOLATILE:
24748 : if (XVECLEN (x2, 0) != 1
24749 : || XINT (x2, 1) != 97)
24750 : return -1;
24751 : x3 = XVECEXP (x2, 0, 0);
24752 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
24753 : return -1;
24754 : operands[0] = x1;
24755 : if (!vzeroall_operation (operands[0], E_VOIDmode)
24756 : || !
24757 : #line 27921 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24758 : (TARGET_AVX))
24759 : return -1;
24760 : return 9143; /* *avx_vzeroall */
24761 :
24762 : case USE:
24763 : operands[0] = x1;
24764 : x4 = XEXP (x2, 0);
24765 : operands[1] = x4;
24766 : if (save_multiple (operands[0], E_VOIDmode))
24767 : {
24768 : switch (GET_MODE (operands[1]))
24769 : {
24770 : case E_SImode:
24771 : if (symbol_operand (operands[1], E_SImode)
24772 : && (
24773 : #line 30994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24774 : (TARGET_SSE && TARGET_64BIT) &&
24775 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24776 : (Pmode == SImode)))
24777 : return 10219; /* *save_multiplesi */
24778 : break;
24779 :
24780 : case E_DImode:
24781 : if (symbol_operand (operands[1], E_DImode)
24782 : && (
24783 : #line 30994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24784 : (TARGET_SSE && TARGET_64BIT) &&
24785 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24786 : (Pmode == DImode)))
24787 : return 10220; /* *save_multipledi */
24788 : break;
24789 :
24790 : default:
24791 : break;
24792 : }
24793 : }
24794 : if (!restore_multiple (operands[0], E_VOIDmode))
24795 : return -1;
24796 : switch (GET_MODE (operands[1]))
24797 : {
24798 : case E_SImode:
24799 : if (!symbol_operand (operands[1], E_SImode)
24800 : || !(
24801 : #line 31001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24802 : (TARGET_SSE && TARGET_64BIT) &&
24803 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24804 : (Pmode == SImode)))
24805 : return -1;
24806 : return 10221; /* *restore_multiplesi */
24807 :
24808 : case E_DImode:
24809 : if (!symbol_operand (operands[1], E_DImode)
24810 : || !(
24811 : #line 31001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24812 : (TARGET_SSE && TARGET_64BIT) &&
24813 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24814 : (Pmode == DImode)))
24815 : return -1;
24816 : return 10222; /* *restore_multipledi */
24817 :
24818 : default:
24819 : return -1;
24820 : }
24821 :
24822 : case SET:
24823 : x5 = XEXP (x2, 1);
24824 : if (GET_CODE (x5) != UNSPEC_VOLATILE)
24825 : return -1;
24826 : switch (XVECLEN (x5, 0))
24827 : {
24828 : case 2:
24829 : if (pattern397 (x5,
24830 : 107) != 0)
24831 : return -1;
24832 : operands[2] = x1;
24833 : if (!encodekey128_operation (operands[2], E_VOIDmode))
24834 : return -1;
24835 : x4 = XEXP (x2, 0);
24836 : operands[0] = x4;
24837 : if (!register_operand (operands[0], E_SImode))
24838 : return -1;
24839 : x6 = XVECEXP (x5, 0, 0);
24840 : operands[1] = x6;
24841 : if (!register_operand (operands[1], E_SImode)
24842 : || !
24843 : #line 31985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24844 : (TARGET_KL))
24845 : return -1;
24846 : return 10435; /* *encodekey128u32 */
24847 :
24848 : case 3:
24849 : if (pattern397 (x5,
24850 : 108) != 0)
24851 : return -1;
24852 : x7 = XVECEXP (x5, 0, 2);
24853 : if (GET_CODE (x7) != REG
24854 : || REGNO (x7) != 21
24855 : || GET_MODE (x7) != E_V2DImode)
24856 : return -1;
24857 : operands[2] = x1;
24858 : if (!encodekey256_operation (operands[2], E_VOIDmode))
24859 : return -1;
24860 : x4 = XEXP (x2, 0);
24861 : operands[0] = x4;
24862 : if (!register_operand (operands[0], E_SImode))
24863 : return -1;
24864 : x6 = XVECEXP (x5, 0, 0);
24865 : operands[1] = x6;
24866 : if (!register_operand (operands[1], E_SImode)
24867 : || !
24868 : #line 32043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24869 : (TARGET_KL))
24870 : return -1;
24871 : return 10436; /* *encodekey256u32 */
24872 :
24873 : case 1:
24874 : x4 = XEXP (x2, 0);
24875 : if (GET_CODE (x4) != REG
24876 : || REGNO (x4) != 17
24877 : || GET_MODE (x4) != E_CCZmode)
24878 : return -1;
24879 : operands[1] = x1;
24880 : if (!aeswidekl_operation (operands[1], E_VOIDmode)
24881 : || GET_MODE (x5) != E_CCZmode)
24882 : return -1;
24883 : x6 = XVECEXP (x5, 0, 0);
24884 : operands[0] = x6;
24885 : if (!memory_operand (operands[0], E_BLKmode))
24886 : return -1;
24887 : switch (XINT (x5, 1))
24888 : {
24889 : case 103:
24890 : if (!
24891 : #line 32127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24892 : (TARGET_WIDEKL))
24893 : return -1;
24894 : return 10441; /* *aesdecwide128klu8 */
24895 :
24896 : case 105:
24897 : if (!
24898 : #line 32127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24899 : (TARGET_WIDEKL))
24900 : return -1;
24901 : return 10442; /* *aesdecwide256klu8 */
24902 :
24903 : case 104:
24904 : if (!
24905 : #line 32127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24906 : (TARGET_WIDEKL))
24907 : return -1;
24908 : return 10443; /* *aesencwide128klu8 */
24909 :
24910 : case 106:
24911 : if (!
24912 : #line 32127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
24913 : (TARGET_WIDEKL))
24914 : return -1;
24915 : return 10444; /* *aesencwide256klu8 */
24916 :
24917 : default:
24918 : return -1;
24919 : }
24920 :
24921 : default:
24922 : return -1;
24923 : }
24924 :
24925 : default:
24926 : return -1;
24927 : }
24928 : }
24929 :
24930 : rtx_insn *
24931 : split_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24932 : {
24933 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24934 : rtx x2;
24935 : rtx_insn *res ATTRIBUTE_UNUSED;
24936 : switch (GET_MODE (operands[0]))
24937 : {
24938 : case E_DFmode:
24939 : if (!push_operand (operands[0], E_DFmode))
24940 : return NULL;
24941 : x2 = XEXP (x1, 1);
24942 : if (GET_MODE (x2) != E_DFmode
24943 : || !fp_register_operand (operands[1], E_SFmode))
24944 : return NULL;
24945 : if ((
24946 : #line 5267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24947 : (reload_completed) &&
24948 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24949 : (Pmode == SImode)))
24950 : return gen_split_70 (insn, operands);
24951 : if (!(
24952 : #line 5267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24953 : (reload_completed) &&
24954 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24955 : (Pmode == DImode)))
24956 : return NULL;
24957 : return gen_split_71 (insn, operands);
24958 :
24959 : case E_XFmode:
24960 : if (!push_operand (operands[0], E_XFmode))
24961 : return NULL;
24962 : x2 = XEXP (x1, 1);
24963 : if (GET_MODE (x2) != E_XFmode)
24964 : return NULL;
24965 : switch (GET_MODE (operands[1]))
24966 : {
24967 : case E_SFmode:
24968 : if (!fp_register_operand (operands[1], E_SFmode))
24969 : return NULL;
24970 : if ((
24971 : #line 5274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24972 : (reload_completed) &&
24973 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24974 : (Pmode == SImode)))
24975 : return gen_split_72 (insn, operands);
24976 : if (!(
24977 : #line 5274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24978 : (reload_completed) &&
24979 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24980 : (Pmode == DImode)))
24981 : return NULL;
24982 : return gen_split_73 (insn, operands);
24983 :
24984 : case E_DFmode:
24985 : if (!fp_register_operand (operands[1], E_DFmode))
24986 : return NULL;
24987 : if ((
24988 : #line 5274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24989 : (reload_completed) &&
24990 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24991 : (Pmode == SImode)))
24992 : return gen_split_74 (insn, operands);
24993 : if (!(
24994 : #line 5274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24995 : (reload_completed) &&
24996 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24997 : (Pmode == DImode)))
24998 : return NULL;
24999 : return gen_split_75 (insn, operands);
25000 :
25001 : default:
25002 : return NULL;
25003 : }
25004 :
25005 : default:
25006 : return NULL;
25007 : }
25008 : }
25009 :
25010 : rtx_insn *
25011 : split_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25012 : {
25013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25014 : rtx x2, x3, x4, x5, x6;
25015 : rtx_insn *res ATTRIBUTE_UNUSED;
25016 : x2 = XEXP (x1, 1);
25017 : if (GET_CODE (x2) == LTU)
25018 : {
25019 : switch (pattern45 (x1))
25020 : {
25021 : case 0:
25022 : if ((
25023 : #line 10236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25024 : (ix86_pre_reload_split ()) &&
25025 : #line 10238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25026 : ( 1)))
25027 : return gen_split_202 (insn, operands);
25028 : break;
25029 :
25030 : case 1:
25031 : if ((
25032 : #line 10236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25033 : (ix86_pre_reload_split ()) &&
25034 : #line 10238 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25035 : ( 1)))
25036 : return gen_split_203 (insn, operands);
25037 : break;
25038 :
25039 : default:
25040 : break;
25041 : }
25042 : }
25043 : operands[1] = x2;
25044 : if (!add_comparison_operator (operands[1], E_QImode))
25045 : return NULL;
25046 : x3 = XEXP (x2, 0);
25047 : if (GET_CODE (x3) != NOT)
25048 : return NULL;
25049 : x4 = XEXP (x1, 0);
25050 : operands[0] = x4;
25051 : if (!nonimmediate_operand (operands[0], E_QImode))
25052 : return NULL;
25053 : x5 = XEXP (x3, 0);
25054 : operands[2] = x5;
25055 : x6 = XEXP (x2, 1);
25056 : operands[3] = x6;
25057 : switch (GET_MODE (x3))
25058 : {
25059 : case E_QImode:
25060 : if (!register_operand (operands[2], E_QImode)
25061 : || !nonimmediate_operand (operands[3], E_QImode))
25062 : return NULL;
25063 : return gen_split_852 (insn, operands);
25064 :
25065 : case E_HImode:
25066 : if (!register_operand (operands[2], E_HImode)
25067 : || !nonimmediate_operand (operands[3], E_HImode))
25068 : return NULL;
25069 : return gen_split_853 (insn, operands);
25070 :
25071 : case E_SImode:
25072 : if (!register_operand (operands[2], E_SImode)
25073 : || !nonimmediate_operand (operands[3], E_SImode))
25074 : return NULL;
25075 : return gen_split_854 (insn, operands);
25076 :
25077 : case E_DImode:
25078 : if (!register_operand (operands[2], E_DImode)
25079 : || !nonimmediate_operand (operands[3], E_DImode)
25080 : || !
25081 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25082 : (TARGET_64BIT))
25083 : return NULL;
25084 : return gen_split_855 (insn, operands);
25085 :
25086 : default:
25087 : return NULL;
25088 : }
25089 : }
25090 :
25091 : rtx_insn *
25092 : split_6 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25093 : {
25094 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25095 : rtx x2, x3, x4, x5, x6, x7;
25096 : rtx_insn *res ATTRIBUTE_UNUSED;
25097 : x2 = XEXP (x1, 0);
25098 : operands[0] = x2;
25099 : x3 = XEXP (x1, 1);
25100 : x4 = XEXP (x3, 0);
25101 : switch (GET_CODE (x4))
25102 : {
25103 : case AND:
25104 : switch (pattern76 (x3))
25105 : {
25106 : case 0:
25107 : if (!(
25108 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25109 : (TARGET_64BIT
25110 : && CONST_WIDE_INT_P (operands[3])
25111 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
25112 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
25113 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0) &&
25114 : #line 3721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25115 : ( reload_completed)))
25116 : return NULL;
25117 : return gen_split_28 (insn, operands);
25118 :
25119 : case 1:
25120 : if (!(
25121 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25122 : (TARGET_64BIT
25123 : && CONST_WIDE_INT_P (operands[3])
25124 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
25125 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
25126 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1) &&
25127 : #line 3743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25128 : ( reload_completed)))
25129 : return NULL;
25130 : return gen_split_31 (insn, operands);
25131 :
25132 : case 2:
25133 : if (!(
25134 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25135 : (!TARGET_64BIT
25136 : && CONST_INT_P (operands[3])
25137 : && UINTVAL (operands[3]) == 0xffffffff00000000ll) &&
25138 : #line 3763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25139 : ( reload_completed)))
25140 : return NULL;
25141 : return gen_split_34 (insn, operands);
25142 :
25143 : default:
25144 : return NULL;
25145 : }
25146 :
25147 : case REG:
25148 : case SUBREG:
25149 : operands[1] = x4;
25150 : x5 = XEXP (x3, 1);
25151 : operands[2] = x5;
25152 : switch (GET_MODE (operands[0]))
25153 : {
25154 : case E_QImode:
25155 : if (pattern839 (x3,
25156 : E_QImode) != 0
25157 : || !
25158 : #line 7140 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25159 : (TARGET_APX_NF && reload_completed
25160 : && ix86_lea_for_add_ok (insn, operands)))
25161 : return NULL;
25162 : return gen_split_135 (insn, operands);
25163 :
25164 : case E_HImode:
25165 : if (pattern839 (x3,
25166 : E_HImode) != 0
25167 : || !
25168 : #line 7140 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25169 : (TARGET_APX_NF && reload_completed
25170 : && ix86_lea_for_add_ok (insn, operands)))
25171 : return NULL;
25172 : return gen_split_136 (insn, operands);
25173 :
25174 : case E_SImode:
25175 : if (pattern840 (x3,
25176 : E_SImode) != 0
25177 : || !
25178 : #line 7140 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25179 : (TARGET_APX_NF && reload_completed
25180 : && ix86_lea_for_add_ok (insn, operands)))
25181 : return NULL;
25182 : return gen_split_137 (insn, operands);
25183 :
25184 : case E_DImode:
25185 : if (pattern840 (x3,
25186 : E_DImode) != 0
25187 : || !(
25188 : #line 7140 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25189 : (TARGET_APX_NF && reload_completed
25190 : && ix86_lea_for_add_ok (insn, operands)) &&
25191 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25192 : (TARGET_64BIT)))
25193 : return NULL;
25194 : return gen_split_138 (insn, operands);
25195 :
25196 : default:
25197 : return NULL;
25198 : }
25199 :
25200 : case PLUS:
25201 : x6 = XEXP (x4, 0);
25202 : switch (GET_CODE (x6))
25203 : {
25204 : case REG:
25205 : case SUBREG:
25206 : switch (pattern431 (x3))
25207 : {
25208 : case 0:
25209 : if (!(
25210 : #line 7931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25211 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25212 : #line 7933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25213 : ( reload_completed)))
25214 : return NULL;
25215 : return gen_split_156 (insn, operands);
25216 :
25217 : case 1:
25218 : if (!(
25219 : #line 7931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25220 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25221 : #line 7933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25222 : ( reload_completed)))
25223 : return NULL;
25224 : return gen_split_157 (insn, operands);
25225 :
25226 : default:
25227 : return NULL;
25228 : }
25229 :
25230 : case MULT:
25231 : switch (pattern434 (x3))
25232 : {
25233 : case 0:
25234 : if (!(
25235 : #line 7997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25236 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25237 : #line 7999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25238 : ( reload_completed)))
25239 : return NULL;
25240 : return gen_split_162 (insn, operands);
25241 :
25242 : case 1:
25243 : if (!(
25244 : #line 7997 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25245 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25246 : #line 7999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25247 : ( reload_completed)))
25248 : return NULL;
25249 : return gen_split_163 (insn, operands);
25250 :
25251 : default:
25252 : return NULL;
25253 : }
25254 :
25255 : case ASHIFT:
25256 : switch (pattern580 (x3))
25257 : {
25258 : case 0:
25259 : if (!(
25260 : #line 8023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25261 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25262 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25263 : ( reload_completed)))
25264 : return NULL;
25265 : return gen_split_164 (insn, operands);
25266 :
25267 : case 1:
25268 : if (!(
25269 : #line 8023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25270 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25271 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25272 : ( reload_completed)))
25273 : return NULL;
25274 : return gen_split_165 (insn, operands);
25275 :
25276 : default:
25277 : return NULL;
25278 : }
25279 :
25280 : default:
25281 : return NULL;
25282 : }
25283 :
25284 : case MULT:
25285 : switch (pattern400 (x3))
25286 : {
25287 : case 0:
25288 : if (!(
25289 : #line 7953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25290 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25291 : #line 7955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25292 : ( reload_completed)))
25293 : return NULL;
25294 : return gen_split_158 (insn, operands);
25295 :
25296 : case 1:
25297 : if (!(
25298 : #line 7953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25299 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25300 : #line 7955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25301 : ( reload_completed)))
25302 : return NULL;
25303 : return gen_split_159 (insn, operands);
25304 :
25305 : default:
25306 : return NULL;
25307 : }
25308 :
25309 : case ASHIFT:
25310 : x7 = XEXP (x4, 1);
25311 : operands[2] = x7;
25312 : x6 = XEXP (x4, 0);
25313 : switch (GET_CODE (x6))
25314 : {
25315 : case REG:
25316 : case SUBREG:
25317 : operands[1] = x6;
25318 : x5 = XEXP (x3, 1);
25319 : switch (GET_CODE (x5))
25320 : {
25321 : case CONST_INT:
25322 : case CONST_WIDE_INT:
25323 : case CONST_POLY_INT:
25324 : case CONST_FIXED:
25325 : case CONST_DOUBLE:
25326 : case CONST_VECTOR:
25327 : case CONST:
25328 : case REG:
25329 : case SUBREG:
25330 : case LABEL_REF:
25331 : case SYMBOL_REF:
25332 : case HIGH:
25333 : operands[3] = x5;
25334 : switch (GET_MODE (operands[0]))
25335 : {
25336 : case E_QImode:
25337 : if (pattern1090 (x3,
25338 : E_QImode) != 0
25339 : || !(
25340 : #line 7974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25341 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25342 : #line 7976 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25343 : ( reload_completed)))
25344 : return NULL;
25345 : return gen_split_160 (insn, operands);
25346 :
25347 : case E_HImode:
25348 : if (pattern1090 (x3,
25349 : E_HImode) != 0
25350 : || !(
25351 : #line 7974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25352 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25353 : #line 7976 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25354 : ( reload_completed)))
25355 : return NULL;
25356 : return gen_split_161 (insn, operands);
25357 :
25358 : case E_DImode:
25359 : if (pattern615 (x3,
25360 : E_DImode) != 0
25361 : || !((
25362 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25363 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
25364 : && (DImode == DImode
25365 : ? CONST_INT_P (operands[3])
25366 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25367 : : CONST_INT_P (operands[3])
25368 : ? INTVAL (operands[3]) >= 0
25369 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25370 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25371 : && !(CONST_INT_P (operands[3])
25372 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25373 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25374 : 0)),
25375 : VOIDmode))) &&
25376 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25377 : (!TARGET_64BIT)) &&
25378 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25379 : ( reload_completed)))
25380 : return NULL;
25381 : return gen_split_472 (insn, operands);
25382 :
25383 : case E_TImode:
25384 : if (pattern615 (x3,
25385 : E_TImode) != 0
25386 : || !((
25387 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25388 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
25389 : && (TImode == DImode
25390 : ? CONST_INT_P (operands[3])
25391 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25392 : : CONST_INT_P (operands[3])
25393 : ? INTVAL (operands[3]) >= 0
25394 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25395 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25396 : && !(CONST_INT_P (operands[3])
25397 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25398 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25399 : 0)),
25400 : VOIDmode))) &&
25401 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25402 : (TARGET_64BIT)) &&
25403 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25404 : ( reload_completed)))
25405 : return NULL;
25406 : return gen_split_475 (insn, operands);
25407 :
25408 : default:
25409 : return NULL;
25410 : }
25411 :
25412 : case ZERO_EXTEND:
25413 : switch (pattern955 (x3))
25414 : {
25415 : case 0:
25416 : if (!((
25417 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25418 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
25419 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25420 : (!TARGET_64BIT)) &&
25421 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25422 : ( reload_completed)))
25423 : return NULL;
25424 : return gen_split_436 (insn, operands);
25425 :
25426 : case 1:
25427 : if (!((
25428 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25429 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
25430 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25431 : (TARGET_64BIT)) &&
25432 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25433 : ( reload_completed)))
25434 : return NULL;
25435 : return gen_split_439 (insn, operands);
25436 :
25437 : default:
25438 : return NULL;
25439 : }
25440 :
25441 : default:
25442 : return NULL;
25443 : }
25444 :
25445 : case SIGN_EXTEND:
25446 : switch (pattern723 (x3))
25447 : {
25448 : case 0:
25449 : if (!((
25450 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25451 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
25452 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25453 : (!TARGET_64BIT)) &&
25454 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25455 : ( reload_completed)))
25456 : return NULL;
25457 : return gen_split_448 (insn, operands);
25458 :
25459 : case 1:
25460 : if (!((
25461 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25462 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
25463 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25464 : (TARGET_64BIT)) &&
25465 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25466 : ( reload_completed)))
25467 : return NULL;
25468 : return gen_split_454 (insn, operands);
25469 :
25470 : case 2:
25471 : if (!((
25472 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25473 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
25474 : && (DImode == DImode
25475 : ? CONST_INT_P (operands[3])
25476 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25477 : : CONST_INT_P (operands[3])
25478 : ? INTVAL (operands[3]) >= 0
25479 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25480 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25481 : && !(CONST_INT_P (operands[3])
25482 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25483 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25484 : 0)),
25485 : VOIDmode))) &&
25486 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25487 : (!TARGET_64BIT)) &&
25488 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25489 : ( reload_completed)))
25490 : return NULL;
25491 : return gen_split_478 (insn, operands);
25492 :
25493 : case 3:
25494 : if (!((
25495 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25496 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
25497 : && (TImode == DImode
25498 : ? CONST_INT_P (operands[3])
25499 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25500 : : CONST_INT_P (operands[3])
25501 : ? INTVAL (operands[3]) >= 0
25502 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25503 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25504 : && !(CONST_INT_P (operands[3])
25505 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25506 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25507 : 0)),
25508 : VOIDmode))) &&
25509 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25510 : (TARGET_64BIT)) &&
25511 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25512 : ( reload_completed)))
25513 : return NULL;
25514 : return gen_split_484 (insn, operands);
25515 :
25516 : default:
25517 : return NULL;
25518 : }
25519 :
25520 : case ZERO_EXTEND:
25521 : switch (pattern723 (x3))
25522 : {
25523 : case 0:
25524 : if (!((
25525 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25526 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
25527 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25528 : (!TARGET_64BIT)) &&
25529 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25530 : ( reload_completed)))
25531 : return NULL;
25532 : return gen_split_451 (insn, operands);
25533 :
25534 : case 1:
25535 : if (!((
25536 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25537 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
25538 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25539 : (TARGET_64BIT)) &&
25540 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25541 : ( reload_completed)))
25542 : return NULL;
25543 : return gen_split_457 (insn, operands);
25544 :
25545 : case 2:
25546 : if (!((
25547 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25548 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
25549 : && (DImode == DImode
25550 : ? CONST_INT_P (operands[3])
25551 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25552 : : CONST_INT_P (operands[3])
25553 : ? INTVAL (operands[3]) >= 0
25554 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25555 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25556 : && !(CONST_INT_P (operands[3])
25557 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25558 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25559 : 0)),
25560 : VOIDmode))) &&
25561 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25562 : (!TARGET_64BIT)) &&
25563 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25564 : ( reload_completed)))
25565 : return NULL;
25566 : return gen_split_481 (insn, operands);
25567 :
25568 : case 3:
25569 : if (!((
25570 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25571 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
25572 : && (TImode == DImode
25573 : ? CONST_INT_P (operands[3])
25574 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
25575 : : CONST_INT_P (operands[3])
25576 : ? INTVAL (operands[3]) >= 0
25577 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
25578 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
25579 : && !(CONST_INT_P (operands[3])
25580 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
25581 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
25582 : 0)),
25583 : VOIDmode))) &&
25584 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25585 : (TARGET_64BIT)) &&
25586 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25587 : ( reload_completed)))
25588 : return NULL;
25589 : return gen_split_487 (insn, operands);
25590 :
25591 : default:
25592 : return NULL;
25593 : }
25594 :
25595 : default:
25596 : return NULL;
25597 : }
25598 :
25599 : case ZERO_EXTEND:
25600 : switch (pattern405 (x3))
25601 : {
25602 : case 0:
25603 : if (!((
25604 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25605 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25606 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25607 : (!TARGET_64BIT)) &&
25608 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25609 : ( reload_completed)))
25610 : return NULL;
25611 : return gen_split_442 (insn, operands);
25612 :
25613 : case 1:
25614 : if (!((
25615 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25616 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25617 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25618 : (TARGET_64BIT)) &&
25619 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25620 : ( reload_completed)))
25621 : return NULL;
25622 : return gen_split_445 (insn, operands);
25623 :
25624 : case 2:
25625 : if (!((
25626 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25627 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25628 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25629 : (!TARGET_64BIT)) &&
25630 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25631 : ( reload_completed)))
25632 : return NULL;
25633 : return gen_split_460 (insn, operands);
25634 :
25635 : case 3:
25636 : if (!((
25637 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25638 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25639 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25640 : (TARGET_64BIT)) &&
25641 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25642 : ( reload_completed)))
25643 : return NULL;
25644 : return gen_split_466 (insn, operands);
25645 :
25646 : case 4:
25647 : if (!((
25648 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25649 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25650 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25651 : (!TARGET_64BIT)) &&
25652 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25653 : ( reload_completed)))
25654 : return NULL;
25655 : return gen_split_463 (insn, operands);
25656 :
25657 : case 5:
25658 : if (!((
25659 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25660 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25661 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25662 : (TARGET_64BIT)) &&
25663 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25664 : ( reload_completed)))
25665 : return NULL;
25666 : return gen_split_469 (insn, operands);
25667 :
25668 : case 6:
25669 : if (!((
25670 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25671 : (DImode == DImode
25672 : ? CONST_INT_P (operands[2])
25673 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
25674 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
25675 : : CONST_WIDE_INT_P (operands[2])
25676 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
25677 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
25678 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
25679 : 1)),
25680 : VOIDmode)) &&
25681 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25682 : (!TARGET_64BIT)) &&
25683 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25684 : ( reload_completed)))
25685 : return NULL;
25686 : return gen_split_490 (insn, operands);
25687 :
25688 : case 7:
25689 : if (!((
25690 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25691 : (TImode == DImode
25692 : ? CONST_INT_P (operands[2])
25693 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
25694 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
25695 : : CONST_WIDE_INT_P (operands[2])
25696 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
25697 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
25698 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
25699 : 1)),
25700 : VOIDmode)) &&
25701 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25702 : (TARGET_64BIT)) &&
25703 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25704 : ( reload_completed)))
25705 : return NULL;
25706 : return gen_split_493 (insn, operands);
25707 :
25708 : default:
25709 : return NULL;
25710 : }
25711 :
25712 : default:
25713 : return NULL;
25714 : }
25715 : }
25716 :
25717 : rtx_insn *
25718 : split_21 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25719 : {
25720 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25721 : rtx x2, x3, x4, x5, x6;
25722 : rtx_insn *res ATTRIBUTE_UNUSED;
25723 : x2 = XVECEXP (x1, 0, 0);
25724 : x3 = XEXP (x2, 0);
25725 : operands[0] = x3;
25726 : x4 = XEXP (x2, 1);
25727 : x5 = XEXP (x4, 0);
25728 : if (rtx_equal_p (x5, operands[0]))
25729 : {
25730 : x6 = XEXP (x4, 1);
25731 : switch (XWINT (x6, 0))
25732 : {
25733 : case -65536L:
25734 : if (register_operand (operands[0], E_SImode)
25735 : && GET_MODE (x4) == E_SImode
25736 : &&
25737 : #line 13196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25738 : ((TARGET_FAST_PREFIX && !TARGET_PARTIAL_REG_STALL)
25739 : || optimize_function_for_size_p (cfun)))
25740 : return gen_split_320 (insn, operands);
25741 : break;
25742 :
25743 : case -256L:
25744 : switch (GET_MODE (operands[0]))
25745 : {
25746 : case E_HImode:
25747 : if (any_QIreg_operand (operands[0], E_HImode)
25748 : && GET_MODE (x4) == E_HImode
25749 : &&
25750 : #line 13206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25751 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25752 : && reload_completed))
25753 : return gen_split_322 (insn, operands);
25754 : break;
25755 :
25756 : case E_SImode:
25757 : if (any_QIreg_operand (operands[0], E_SImode)
25758 : && GET_MODE (x4) == E_SImode
25759 : &&
25760 : #line 13206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25761 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25762 : && reload_completed))
25763 : return gen_split_323 (insn, operands);
25764 : break;
25765 :
25766 : default:
25767 : break;
25768 : }
25769 : break;
25770 :
25771 : case -65281L:
25772 : switch (GET_MODE (operands[0]))
25773 : {
25774 : case E_HImode:
25775 : if (QIreg_operand (operands[0], E_HImode)
25776 : && GET_MODE (x4) == E_HImode
25777 : &&
25778 : #line 13216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25779 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25780 : && reload_completed))
25781 : return gen_split_325 (insn, operands);
25782 : break;
25783 :
25784 : case E_SImode:
25785 : if (QIreg_operand (operands[0], E_SImode)
25786 : && GET_MODE (x4) == E_SImode
25787 : &&
25788 : #line 13216 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25789 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25790 : && reload_completed))
25791 : return gen_split_326 (insn, operands);
25792 : break;
25793 :
25794 : default:
25795 : break;
25796 : }
25797 : break;
25798 :
25799 : default:
25800 : break;
25801 : }
25802 : }
25803 : operands[1] = x5;
25804 : x6 = XEXP (x4, 1);
25805 : operands[2] = x6;
25806 : switch (GET_MODE (operands[0]))
25807 : {
25808 : case E_HImode:
25809 : if (GET_MODE (x4) != E_HImode
25810 : || !const_int_operand (operands[2], E_HImode))
25811 : return NULL;
25812 : if (QIreg_operand (operands[0], E_HImode)
25813 : && register_operand (operands[1], E_HImode)
25814 : &&
25815 : #line 13581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25816 : (reload_completed
25817 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25818 : && !(~INTVAL (operands[2]) & ~(255 << 8))
25819 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
25820 : return gen_split_373 (insn, operands);
25821 : if (!any_QIreg_operand (operands[0], E_HImode)
25822 : || !general_operand (operands[1], E_HImode)
25823 : || !
25824 : #line 13610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25825 : (reload_completed
25826 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25827 : && !(~INTVAL (operands[2]) & ~255)
25828 : && !(INTVAL (operands[2]) & 128)
25829 : && !(TARGET_APX_NDD
25830 : && !rtx_equal_p (operands[0], operands[1]))))
25831 : return NULL;
25832 : return gen_split_376 (insn, operands);
25833 :
25834 : case E_SImode:
25835 : if (GET_MODE (x4) != E_SImode
25836 : || !const_int_operand (operands[2], E_SImode))
25837 : return NULL;
25838 : if (QIreg_operand (operands[0], E_SImode)
25839 : && register_operand (operands[1], E_SImode)
25840 : &&
25841 : #line 13581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25842 : (reload_completed
25843 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25844 : && !(~INTVAL (operands[2]) & ~(255 << 8))
25845 : && !(TARGET_APX_NDD && REGNO (operands[0]) != REGNO (operands[1]))))
25846 : return gen_split_374 (insn, operands);
25847 : if (!any_QIreg_operand (operands[0], E_SImode)
25848 : || !general_operand (operands[1], E_SImode)
25849 : || !
25850 : #line 13610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25851 : (reload_completed
25852 : && (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
25853 : && !(~INTVAL (operands[2]) & ~255)
25854 : && !(INTVAL (operands[2]) & 128)
25855 : && !(TARGET_APX_NDD
25856 : && !rtx_equal_p (operands[0], operands[1]))))
25857 : return NULL;
25858 : return gen_split_377 (insn, operands);
25859 :
25860 : default:
25861 : return NULL;
25862 : }
25863 : }
25864 :
25865 : rtx_insn *
25866 : split_27 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25867 : {
25868 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25869 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25870 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
25871 : rtx_insn *res ATTRIBUTE_UNUSED;
25872 : x2 = XVECEXP (x1, 0, 0);
25873 : x3 = XEXP (x2, 1);
25874 : x4 = XEXP (x3, 0);
25875 : switch (GET_CODE (x4))
25876 : {
25877 : case PLUS:
25878 : if (pattern586 (x1,
25879 : PLUS,
25880 : E_CCCmode) != 0
25881 : || GET_MODE (x3) != E_CCCmode)
25882 : return NULL;
25883 : x5 = XEXP (x4, 0);
25884 : operands[1] = x5;
25885 : x6 = XEXP (x4, 1);
25886 : operands[2] = x6;
25887 : x7 = XVECEXP (x1, 0, 1);
25888 : x8 = XEXP (x7, 0);
25889 : operands[0] = x8;
25890 : x9 = XEXP (x3, 1);
25891 : if (!rtx_equal_p (x9, operands[1]))
25892 : return NULL;
25893 : x10 = XEXP (x7, 1);
25894 : x11 = XEXP (x10, 0);
25895 : if (!rtx_equal_p (x11, operands[1]))
25896 : return NULL;
25897 : x12 = XEXP (x10, 1);
25898 : if (!rtx_equal_p (x12, operands[2]))
25899 : return NULL;
25900 : switch (GET_MODE (x4))
25901 : {
25902 : case E_DImode:
25903 : if (pattern1682 (x10,
25904 : E_DImode) != 0
25905 : || !((
25906 : #line 10424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25907 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)) &&
25908 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25909 : (!TARGET_64BIT)) &&
25910 : #line 10426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25911 : ( reload_completed)))
25912 : return NULL;
25913 : return gen_split_206 (insn, operands);
25914 :
25915 : case E_TImode:
25916 : if (pattern1682 (x10,
25917 : E_TImode) != 0
25918 : || !((
25919 : #line 10424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25920 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
25921 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25922 : (TARGET_64BIT)) &&
25923 : #line 10426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25924 : ( reload_completed)))
25925 : return NULL;
25926 : return gen_split_207 (insn, operands);
25927 :
25928 : default:
25929 : return NULL;
25930 : }
25931 :
25932 : case AND:
25933 : x9 = XEXP (x3, 1);
25934 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25935 : return NULL;
25936 : x5 = XEXP (x4, 0);
25937 : switch (GET_CODE (x5))
25938 : {
25939 : case SUBREG:
25940 : switch (pattern828 (x1))
25941 : {
25942 : case 0:
25943 : if (!(
25944 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25945 : (ix86_match_ccmode (insn, CCNOmode)) &&
25946 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25947 : ( reload_completed
25948 : && !(rtx_equal_p (operands[0], operands[1])))))
25949 : return NULL;
25950 : return gen_split_346 (insn, operands);
25951 :
25952 : case 1:
25953 : if (!(
25954 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25955 : (ix86_match_ccmode (insn, CCNOmode)) &&
25956 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25957 : ( reload_completed
25958 : && !(rtx_equal_p (operands[0], operands[1])))))
25959 : return NULL;
25960 : return gen_split_349 (insn, operands);
25961 :
25962 : case 2:
25963 : if (!((
25964 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25965 : (ix86_match_ccmode (insn, CCNOmode)) &&
25966 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25967 : (TARGET_64BIT)) &&
25968 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25969 : ( reload_completed
25970 : && !(rtx_equal_p (operands[0], operands[1])))))
25971 : return NULL;
25972 : return gen_split_352 (insn, operands);
25973 :
25974 : default:
25975 : return NULL;
25976 : }
25977 :
25978 : case NOT:
25979 : if (GET_MODE (x5) != E_SImode)
25980 : return NULL;
25981 : x7 = XVECEXP (x1, 0, 1);
25982 : if (GET_CODE (x7) != CLOBBER)
25983 : return NULL;
25984 : x13 = XEXP (x2, 0);
25985 : operands[0] = x13;
25986 : if (!flags_reg_operand (operands[0], E_VOIDmode))
25987 : return NULL;
25988 : operands[1] = x3;
25989 : if (!compare_operator (operands[1], E_VOIDmode)
25990 : || GET_MODE (x4) != E_SImode)
25991 : return NULL;
25992 : x14 = XEXP (x5, 0);
25993 : operands[2] = x14;
25994 : if (!general_reg_operand (operands[2], E_SImode))
25995 : return NULL;
25996 : x6 = XEXP (x4, 1);
25997 : operands[3] = x6;
25998 : if (!nonimmediate_operand (operands[3], E_SImode))
25999 : return NULL;
26000 : x8 = XEXP (x7, 0);
26001 : if (!rtx_equal_p (x8, operands[2])
26002 : || !
26003 : #line 13736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26004 : (reload_completed
26005 : && optimize_insn_for_size_p () && optimize_size > 1
26006 : && LEGACY_INT_REG_P (operands[2])
26007 : && !REX_INT_REG_P (operands[3])
26008 : && !reg_overlap_mentioned_p (operands[2], operands[3])))
26009 : return NULL;
26010 : return gen_split_384 (insn, operands);
26011 :
26012 : case NEG:
26013 : x7 = XVECEXP (x1, 0, 1);
26014 : if (GET_CODE (x7) != SET)
26015 : return NULL;
26016 : x10 = XEXP (x7, 1);
26017 : if (GET_CODE (x10) != AND)
26018 : return NULL;
26019 : x11 = XEXP (x10, 0);
26020 : if (GET_CODE (x11) != NEG)
26021 : return NULL;
26022 : x13 = XEXP (x2, 0);
26023 : operands[3] = x13;
26024 : if (!flags_reg_operand (operands[3], E_VOIDmode))
26025 : return NULL;
26026 : operands[4] = x3;
26027 : if (!compare_operator (operands[4], E_VOIDmode))
26028 : return NULL;
26029 : switch (pattern1512 (x1))
26030 : {
26031 : case 0:
26032 : if (!
26033 : #line 22177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26034 : (TARGET_BMI
26035 : && TARGET_AVOID_FALSE_DEP_FOR_BLS
26036 : && epilogue_completed
26037 : && optimize_function_for_speed_p (cfun)
26038 : && !reg_mentioned_p (operands[0], operands[1])))
26039 : return NULL;
26040 : return gen_split_910 (insn, operands);
26041 :
26042 : case 1:
26043 : if (!(
26044 : #line 22177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26045 : (TARGET_BMI
26046 : && TARGET_AVOID_FALSE_DEP_FOR_BLS
26047 : && epilogue_completed
26048 : && optimize_function_for_speed_p (cfun)
26049 : && !reg_mentioned_p (operands[0], operands[1])) &&
26050 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26051 : (TARGET_64BIT)))
26052 : return NULL;
26053 : return gen_split_911 (insn, operands);
26054 :
26055 : default:
26056 : return NULL;
26057 : }
26058 :
26059 : case PLUS:
26060 : x15 = XEXP (x5, 1);
26061 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
26062 : || pattern692 (x1,
26063 : SET,
26064 : E_CCZmode) != 0)
26065 : return NULL;
26066 : x7 = XVECEXP (x1, 0, 1);
26067 : x10 = XEXP (x7, 1);
26068 : if (GET_CODE (x10) != AND)
26069 : return NULL;
26070 : x11 = XEXP (x10, 0);
26071 : if (GET_CODE (x11) != PLUS)
26072 : return NULL;
26073 : x16 = XEXP (x11, 1);
26074 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
26075 : || GET_MODE (x3) != E_CCZmode)
26076 : return NULL;
26077 : switch (pattern1512 (x1))
26078 : {
26079 : case 0:
26080 : if (!(
26081 : #line 22314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26082 : (TARGET_BMI) &&
26083 : #line 22316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26084 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
26085 : && epilogue_completed
26086 : && optimize_function_for_speed_p (cfun)
26087 : && !reg_mentioned_p (operands[0], operands[1]))))
26088 : return NULL;
26089 : return gen_split_916 (insn, operands);
26090 :
26091 : case 1:
26092 : if (!((
26093 : #line 22314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26094 : (TARGET_BMI) &&
26095 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26096 : (TARGET_64BIT)) &&
26097 : #line 22316 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26098 : ( TARGET_AVOID_FALSE_DEP_FOR_BLS
26099 : && epilogue_completed
26100 : && optimize_function_for_speed_p (cfun)
26101 : && !reg_mentioned_p (operands[0], operands[1]))))
26102 : return NULL;
26103 : return gen_split_917 (insn, operands);
26104 :
26105 : default:
26106 : return NULL;
26107 : }
26108 :
26109 : default:
26110 : return NULL;
26111 : }
26112 :
26113 : case IOR:
26114 : switch (pattern590 (x1,
26115 : IOR))
26116 : {
26117 : case 0:
26118 : if (!(
26119 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26120 : (ix86_match_ccmode (insn, CCNOmode)) &&
26121 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26122 : ( reload_completed
26123 : && !(rtx_equal_p (operands[0], operands[1])))))
26124 : return NULL;
26125 : return gen_split_347 (insn, operands);
26126 :
26127 : case 1:
26128 : if (!(
26129 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26130 : (ix86_match_ccmode (insn, CCNOmode)) &&
26131 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26132 : ( reload_completed
26133 : && !(rtx_equal_p (operands[0], operands[1])))))
26134 : return NULL;
26135 : return gen_split_350 (insn, operands);
26136 :
26137 : case 2:
26138 : if (!((
26139 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26140 : (ix86_match_ccmode (insn, CCNOmode)) &&
26141 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26142 : (TARGET_64BIT)) &&
26143 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26144 : ( reload_completed
26145 : && !(rtx_equal_p (operands[0], operands[1])))))
26146 : return NULL;
26147 : return gen_split_353 (insn, operands);
26148 :
26149 : default:
26150 : return NULL;
26151 : }
26152 :
26153 : case XOR:
26154 : switch (pattern590 (x1,
26155 : XOR))
26156 : {
26157 : case 0:
26158 : if (!(
26159 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26160 : (ix86_match_ccmode (insn, CCNOmode)) &&
26161 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26162 : ( reload_completed
26163 : && !(rtx_equal_p (operands[0], operands[1])))))
26164 : return NULL;
26165 : return gen_split_348 (insn, operands);
26166 :
26167 : case 1:
26168 : if (!(
26169 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26170 : (ix86_match_ccmode (insn, CCNOmode)) &&
26171 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26172 : ( reload_completed
26173 : && !(rtx_equal_p (operands[0], operands[1])))))
26174 : return NULL;
26175 : return gen_split_351 (insn, operands);
26176 :
26177 : case 2:
26178 : if (!((
26179 : #line 13463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26180 : (ix86_match_ccmode (insn, CCNOmode)) &&
26181 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26182 : (TARGET_64BIT)) &&
26183 : #line 13467 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26184 : ( reload_completed
26185 : && !(rtx_equal_p (operands[0], operands[1])))))
26186 : return NULL;
26187 : return gen_split_354 (insn, operands);
26188 :
26189 : default:
26190 : return NULL;
26191 : }
26192 :
26193 : case NOT:
26194 : x9 = XEXP (x3, 1);
26195 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26196 : return NULL;
26197 : x7 = XVECEXP (x1, 0, 1);
26198 : if (GET_CODE (x7) != SET)
26199 : return NULL;
26200 : x13 = XEXP (x2, 0);
26201 : operands[0] = x13;
26202 : if (!flags_reg_operand (operands[0], E_VOIDmode))
26203 : return NULL;
26204 : operands[2] = x3;
26205 : if (!compare_operator (operands[2], E_VOIDmode))
26206 : return NULL;
26207 : x5 = XEXP (x4, 0);
26208 : operands[3] = x5;
26209 : x8 = XEXP (x7, 0);
26210 : operands[1] = x8;
26211 : x10 = XEXP (x7, 1);
26212 : switch (GET_CODE (x10))
26213 : {
26214 : case NOT:
26215 : x11 = XEXP (x10, 0);
26216 : if (!rtx_equal_p (x11, operands[3]))
26217 : return NULL;
26218 : switch (GET_MODE (x4))
26219 : {
26220 : case E_QImode:
26221 : if (!nonimmediate_operand (operands[3], E_QImode)
26222 : || !nonimmediate_operand (operands[1], E_QImode)
26223 : || GET_MODE (x10) != E_QImode
26224 : || !
26225 : #line 15437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26226 : (ix86_match_ccmode (insn, CCNOmode)))
26227 : return NULL;
26228 : return gen_split_550 (insn, operands);
26229 :
26230 : case E_HImode:
26231 : if (!nonimmediate_operand (operands[3], E_HImode)
26232 : || !nonimmediate_operand (operands[1], E_HImode)
26233 : || GET_MODE (x10) != E_HImode
26234 : || !
26235 : #line 15437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26236 : (ix86_match_ccmode (insn, CCNOmode)))
26237 : return NULL;
26238 : return gen_split_551 (insn, operands);
26239 :
26240 : case E_SImode:
26241 : if (!nonimmediate_operand (operands[3], E_SImode)
26242 : || !nonimmediate_operand (operands[1], E_SImode)
26243 : || GET_MODE (x10) != E_SImode
26244 : || !
26245 : #line 15437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26246 : (ix86_match_ccmode (insn, CCNOmode)))
26247 : return NULL;
26248 : return gen_split_552 (insn, operands);
26249 :
26250 : case E_DImode:
26251 : if (!nonimmediate_operand (operands[3], E_DImode)
26252 : || !nonimmediate_operand (operands[1], E_DImode)
26253 : || GET_MODE (x10) != E_DImode
26254 : || !(
26255 : #line 15437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26256 : (ix86_match_ccmode (insn, CCNOmode)) &&
26257 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26258 : (TARGET_64BIT)))
26259 : return NULL;
26260 : return gen_split_553 (insn, operands);
26261 :
26262 : default:
26263 : return NULL;
26264 : }
26265 :
26266 : case ZERO_EXTEND:
26267 : if (pattern1247 (x1,
26268 : NOT) != 0
26269 : || !nonimmediate_operand (operands[3], E_SImode)
26270 : || !register_operand (operands[1], E_DImode))
26271 : return NULL;
26272 : x11 = XEXP (x10, 0);
26273 : x17 = XEXP (x11, 0);
26274 : if (!rtx_equal_p (x17, operands[3])
26275 : || !
26276 : #line 15464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26277 : (ix86_match_ccmode (insn, CCNOmode)))
26278 : return NULL;
26279 : return gen_split_554 (insn, operands);
26280 :
26281 : default:
26282 : return NULL;
26283 : }
26284 :
26285 : case REG:
26286 : case SUBREG:
26287 : case MEM:
26288 : operands[1] = x4;
26289 : x9 = XEXP (x3, 1);
26290 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
26291 : || pattern586 (x1,
26292 : CTZ,
26293 : E_CCCmode) != 0
26294 : || GET_MODE (x3) != E_CCCmode)
26295 : return NULL;
26296 : x7 = XVECEXP (x1, 0, 1);
26297 : x8 = XEXP (x7, 0);
26298 : operands[0] = x8;
26299 : x10 = XEXP (x7, 1);
26300 : x11 = XEXP (x10, 0);
26301 : if (!rtx_equal_p (x11, operands[1]))
26302 : return NULL;
26303 : switch (pattern1501 (x10))
26304 : {
26305 : case 0:
26306 : if (!(
26307 : #line 21365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26308 : (TARGET_BMI) &&
26309 : #line 21367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26310 : ( (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26311 : && epilogue_completed
26312 : && optimize_function_for_speed_p (cfun)
26313 : && !reg_mentioned_p (operands[0], operands[1]))))
26314 : return NULL;
26315 : return gen_split_877 (insn, operands);
26316 :
26317 : case 1:
26318 : if (!((
26319 : #line 21365 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26320 : (TARGET_BMI) &&
26321 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26322 : (TARGET_64BIT)) &&
26323 : #line 21367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26324 : ( (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
26325 : && epilogue_completed
26326 : && optimize_function_for_speed_p (cfun)
26327 : && !reg_mentioned_p (operands[0], operands[1]))))
26328 : return NULL;
26329 : return gen_split_878 (insn, operands);
26330 :
26331 : default:
26332 : return NULL;
26333 : }
26334 :
26335 : default:
26336 : return NULL;
26337 : }
26338 : }
26339 :
26340 : rtx_insn *
26341 : split_33 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26342 : {
26343 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26344 : rtx x2, x3, x4, x5, x6, x7;
26345 : rtx_insn *res ATTRIBUTE_UNUSED;
26346 : x2 = XVECEXP (x1, 0, 0);
26347 : x3 = XEXP (x2, 0);
26348 : operands[0] = x3;
26349 : x4 = XEXP (x2, 1);
26350 : x5 = XEXP (x4, 0);
26351 : operands[1] = x5;
26352 : x6 = XVECEXP (x1, 0, 1);
26353 : switch (GET_CODE (x6))
26354 : {
26355 : case CLOBBER:
26356 : x7 = XEXP (x6, 0);
26357 : switch (pattern705 (x7))
26358 : {
26359 : case 0:
26360 : if (!register_operand (operands[0], E_DImode)
26361 : || GET_MODE (x4) != E_DImode
26362 : || !general_operand (operands[1], E_DImode))
26363 : return NULL;
26364 : if (((
26365 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26366 : (TARGET_CMOVE
26367 : && ix86_pre_reload_split ()) &&
26368 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26369 : (!TARGET_64BIT)) &&
26370 : #line 14948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26371 : ( 1)))
26372 : return gen_split_503 (insn, operands);
26373 : if (!((
26374 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26375 : (TARGET_CMOVE
26376 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
26377 : && ix86_pre_reload_split ()) &&
26378 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26379 : (TARGET_64BIT)) &&
26380 : #line 15036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26381 : ( 1)))
26382 : return NULL;
26383 : return gen_split_510 (insn, operands);
26384 :
26385 : case 1:
26386 : if (!register_operand (operands[0], E_TImode)
26387 : || GET_MODE (x4) != E_TImode
26388 : || !general_operand (operands[1], E_TImode)
26389 : || !((
26390 : #line 14945 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26391 : (TARGET_CMOVE
26392 : && ix86_pre_reload_split ()) &&
26393 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26394 : (TARGET_64BIT)) &&
26395 : #line 14948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26396 : ( 1)))
26397 : return NULL;
26398 : return gen_split_504 (insn, operands);
26399 :
26400 : case 2:
26401 : if (!register_operand (operands[0], E_QImode)
26402 : || GET_MODE (x4) != E_QImode
26403 : || !general_operand (operands[1], E_QImode)
26404 : || !(
26405 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26406 : (TARGET_CMOVE
26407 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
26408 : && ix86_pre_reload_split ()) &&
26409 : #line 15036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26410 : ( 1)))
26411 : return NULL;
26412 : return gen_split_507 (insn, operands);
26413 :
26414 : case 3:
26415 : if (!register_operand (operands[0], E_HImode)
26416 : || GET_MODE (x4) != E_HImode
26417 : || !general_operand (operands[1], E_HImode)
26418 : || !(
26419 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26420 : (TARGET_CMOVE
26421 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
26422 : && ix86_pre_reload_split ()) &&
26423 : #line 15036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26424 : ( 1)))
26425 : return NULL;
26426 : return gen_split_508 (insn, operands);
26427 :
26428 : case 4:
26429 : if (!register_operand (operands[0], E_SImode)
26430 : || GET_MODE (x4) != E_SImode
26431 : || !general_operand (operands[1], E_SImode)
26432 : || !(
26433 : #line 15032 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26434 : (TARGET_CMOVE
26435 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
26436 : && ix86_pre_reload_split ()) &&
26437 : #line 15036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26438 : ( 1)))
26439 : return NULL;
26440 : return gen_split_509 (insn, operands);
26441 :
26442 : case 5:
26443 : if (GET_MODE (x4) != E_SFmode)
26444 : return NULL;
26445 : if (fp_register_operand (operands[0], E_SFmode)
26446 : && fp_register_operand (operands[1], E_SFmode)
26447 : &&
26448 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26449 : (TARGET_80387 && reload_completed))
26450 : return gen_split_518 (insn, operands);
26451 : if (!general_reg_operand (operands[0], E_SFmode)
26452 : || !general_reg_operand (operands[1], E_SFmode)
26453 : || !
26454 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26455 : (TARGET_80387 && reload_completed))
26456 : return NULL;
26457 : return gen_split_524 (insn, operands);
26458 :
26459 : case 6:
26460 : if (GET_MODE (x4) != E_DFmode)
26461 : return NULL;
26462 : if (fp_register_operand (operands[0], E_DFmode)
26463 : && fp_register_operand (operands[1], E_DFmode)
26464 : &&
26465 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26466 : (TARGET_80387 && reload_completed))
26467 : return gen_split_520 (insn, operands);
26468 : if (!general_reg_operand (operands[0], E_DFmode)
26469 : || !general_reg_operand (operands[1], E_DFmode)
26470 : || !
26471 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26472 : (TARGET_80387 && reload_completed))
26473 : return NULL;
26474 : return gen_split_526 (insn, operands);
26475 :
26476 : case 7:
26477 : if (GET_MODE (x4) != E_XFmode)
26478 : return NULL;
26479 : if (fp_register_operand (operands[0], E_XFmode)
26480 : && fp_register_operand (operands[1], E_XFmode)
26481 : &&
26482 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26483 : (TARGET_80387 && reload_completed))
26484 : return gen_split_522 (insn, operands);
26485 : if (!general_reg_operand (operands[0], E_XFmode)
26486 : || !general_reg_operand (operands[1], E_XFmode)
26487 : || !
26488 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26489 : (TARGET_80387 && reload_completed))
26490 : return NULL;
26491 : return gen_split_528 (insn, operands);
26492 :
26493 : default:
26494 : return NULL;
26495 : }
26496 :
26497 : case USE:
26498 : if (pattern843 (x1) != 0
26499 : || !(
26500 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26501 : (TARGET_SSE) &&
26502 : #line 15095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26503 : ( reload_completed)))
26504 : return NULL;
26505 : return gen_split_515 (insn, operands);
26506 :
26507 : default:
26508 : return NULL;
26509 : }
26510 : }
26511 :
26512 : rtx_insn *
26513 : split_40 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26514 : {
26515 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26516 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26517 : rtx_insn *res ATTRIBUTE_UNUSED;
26518 : x2 = XVECEXP (x1, 0, 0);
26519 : x3 = XEXP (x2, 0);
26520 : operands[0] = x3;
26521 : x4 = XEXP (x2, 1);
26522 : x5 = XEXP (x4, 0);
26523 : switch (GET_CODE (x5))
26524 : {
26525 : case REG:
26526 : case SUBREG:
26527 : case MEM:
26528 : operands[1] = x5;
26529 : x6 = XVECEXP (x1, 0, 1);
26530 : switch (GET_CODE (x6))
26531 : {
26532 : case CLOBBER:
26533 : x7 = XEXP (x6, 0);
26534 : if (GET_CODE (x7) != REG
26535 : || REGNO (x7) != 17
26536 : || GET_MODE (x7) != E_CCmode)
26537 : return NULL;
26538 : if (register_operand (operands[0], E_VOIDmode)
26539 : && register_operand (operands[1], E_VOIDmode)
26540 : &&
26541 : #line 28295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26542 : (! TARGET_PARTIAL_REG_STALL && reload_completed
26543 : && (GET_MODE (operands[0]) == HImode
26544 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
26545 : return gen_split_1014 (insn, operands);
26546 : if (GET_MODE (x4) != E_V2QImode)
26547 : return NULL;
26548 : if (general_reg_operand (operands[0], E_V2QImode)
26549 : && general_reg_operand (operands[1], E_V2QImode)
26550 : &&
26551 : #line 3180 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26552 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
26553 : && reload_completed))
26554 : return gen_split_1090 (insn, operands);
26555 : if (!sse_reg_operand (operands[0], E_V2QImode)
26556 : || !sse_reg_operand (operands[1], E_V2QImode)
26557 : || !
26558 : #line 3207 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26559 : (TARGET_SSE2 && reload_completed))
26560 : return NULL;
26561 : return gen_split_1091 (insn, operands);
26562 :
26563 : case USE:
26564 : switch (pattern844 (x1))
26565 : {
26566 : case 0:
26567 : if (!(
26568 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26569 : (TARGET_MMX_WITH_SSE) &&
26570 : #line 708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26571 : ( reload_completed)))
26572 : return NULL;
26573 : return gen_split_1070 (insn, operands);
26574 :
26575 : case 1:
26576 : if (!(
26577 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26578 : (TARGET_SSE) &&
26579 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26580 : ( reload_completed)))
26581 : return NULL;
26582 : return gen_split_1079 (insn, operands);
26583 :
26584 : case 2:
26585 : if (!((
26586 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26587 : (TARGET_SSE) &&
26588 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26589 : (TARGET_MMX_WITH_SSE)) &&
26590 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26591 : ( reload_completed)))
26592 : return NULL;
26593 : return gen_split_1081 (insn, operands);
26594 :
26595 : case 3:
26596 : if (!(
26597 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26598 : (TARGET_SSE) &&
26599 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26600 : ( reload_completed)))
26601 : return NULL;
26602 : return gen_split_1083 (insn, operands);
26603 :
26604 : case 4:
26605 : if (!((
26606 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26607 : (TARGET_SSE) &&
26608 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26609 : (TARGET_MMX_WITH_SSE)) &&
26610 : #line 2265 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26611 : ( reload_completed)))
26612 : return NULL;
26613 : return gen_split_1085 (insn, operands);
26614 :
26615 : case 5:
26616 : if (!((
26617 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26618 : (TARGET_SSE) &&
26619 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26620 : (TARGET_AVX512F)) &&
26621 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26622 : ( reload_completed)))
26623 : return NULL;
26624 : return gen_split_1308 (insn, operands);
26625 :
26626 : case 6:
26627 : if (!((
26628 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26629 : (TARGET_SSE) &&
26630 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26631 : (TARGET_AVX)) &&
26632 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26633 : ( reload_completed)))
26634 : return NULL;
26635 : return gen_split_1310 (insn, operands);
26636 :
26637 : case 7:
26638 : if (!((
26639 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26640 : (TARGET_SSE) &&
26641 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26642 : (TARGET_SSE2)) &&
26643 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26644 : ( reload_completed)))
26645 : return NULL;
26646 : return gen_split_1312 (insn, operands);
26647 :
26648 : case 8:
26649 : if (!((
26650 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26651 : (TARGET_SSE) &&
26652 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26653 : (TARGET_AVX512F)) &&
26654 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26655 : ( reload_completed)))
26656 : return NULL;
26657 : return gen_split_1314 (insn, operands);
26658 :
26659 : case 9:
26660 : if (!((
26661 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26662 : (TARGET_SSE) &&
26663 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26664 : (TARGET_AVX)) &&
26665 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26666 : ( reload_completed)))
26667 : return NULL;
26668 : return gen_split_1316 (insn, operands);
26669 :
26670 : case 10:
26671 : if (!((
26672 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26673 : (TARGET_SSE) &&
26674 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26675 : (TARGET_SSE2)) &&
26676 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26677 : ( reload_completed)))
26678 : return NULL;
26679 : return gen_split_1318 (insn, operands);
26680 :
26681 : case 11:
26682 : if (!((
26683 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26684 : (TARGET_SSE) &&
26685 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26686 : (TARGET_AVX512F)) &&
26687 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26688 : ( reload_completed)))
26689 : return NULL;
26690 : return gen_split_1320 (insn, operands);
26691 :
26692 : case 12:
26693 : if (!((
26694 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26695 : (TARGET_SSE) &&
26696 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26697 : (TARGET_AVX)) &&
26698 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26699 : ( reload_completed)))
26700 : return NULL;
26701 : return gen_split_1322 (insn, operands);
26702 :
26703 : case 13:
26704 : if (!(
26705 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26706 : (TARGET_SSE) &&
26707 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26708 : ( reload_completed)))
26709 : return NULL;
26710 : return gen_split_1324 (insn, operands);
26711 :
26712 : case 14:
26713 : if (!((
26714 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26715 : (TARGET_SSE) &&
26716 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26717 : (TARGET_AVX512F)) &&
26718 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26719 : ( reload_completed)))
26720 : return NULL;
26721 : return gen_split_1326 (insn, operands);
26722 :
26723 : case 15:
26724 : if (!((
26725 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26726 : (TARGET_SSE) &&
26727 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26728 : (TARGET_AVX)) &&
26729 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26730 : ( reload_completed)))
26731 : return NULL;
26732 : return gen_split_1328 (insn, operands);
26733 :
26734 : case 16:
26735 : if (!((
26736 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26737 : (TARGET_SSE) &&
26738 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26739 : (TARGET_SSE2)) &&
26740 : #line 2611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26741 : ( reload_completed)))
26742 : return NULL;
26743 : return gen_split_1330 (insn, operands);
26744 :
26745 : default:
26746 : return NULL;
26747 : }
26748 :
26749 : default:
26750 : return NULL;
26751 : }
26752 :
26753 : case LTU:
26754 : case UNLT:
26755 : operands[1] = x5;
26756 : if (!ix86_carry_flag_operator (operands[1], E_VOIDmode))
26757 : return NULL;
26758 : x8 = XEXP (x5, 0);
26759 : if (GET_CODE (x8) != REG
26760 : || REGNO (x8) != 17)
26761 : return NULL;
26762 : x9 = XEXP (x5, 1);
26763 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26764 : return NULL;
26765 : x6 = XVECEXP (x1, 0, 1);
26766 : if (pattern236 (x6,
26767 : E_CCmode,
26768 : 17) != 0
26769 : || !general_reg_operand (operands[0], E_VOIDmode)
26770 : || !
26771 : #line 28325 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26772 : (! TARGET_PARTIAL_REG_STALL && reload_completed
26773 : && (GET_MODE (operands[0]) == HImode
26774 : || (GET_MODE (operands[0]) == QImode && TARGET_PROMOTE_QImode))))
26775 : return NULL;
26776 : return gen_split_1016 (insn, operands);
26777 :
26778 : case ABS:
26779 : x6 = XVECEXP (x1, 0, 1);
26780 : if (GET_CODE (x6) != USE)
26781 : return NULL;
26782 : x8 = XEXP (x5, 0);
26783 : operands[1] = x8;
26784 : x7 = XEXP (x6, 0);
26785 : operands[2] = x7;
26786 : switch (GET_MODE (operands[0]))
26787 : {
26788 : case E_V2SFmode:
26789 : if (pattern1063 (x4) != 0
26790 : || !(
26791 : #line 723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26792 : (TARGET_MMX_WITH_SSE) &&
26793 : #line 725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26794 : ( reload_completed)))
26795 : return NULL;
26796 : return gen_split_1071 (insn, operands);
26797 :
26798 : case E_V2BFmode:
26799 : if (pattern1064 (x4,
26800 : E_V2BFmode) != 0
26801 : || !(
26802 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26803 : (TARGET_SSE) &&
26804 : #line 2282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26805 : ( reload_completed)))
26806 : return NULL;
26807 : return gen_split_1086 (insn, operands);
26808 :
26809 : case E_V4BFmode:
26810 : if (pattern1064 (x4,
26811 : E_V4BFmode) != 0
26812 : || !((
26813 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26814 : (TARGET_SSE) &&
26815 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26816 : (TARGET_MMX_WITH_SSE)) &&
26817 : #line 2282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26818 : ( reload_completed)))
26819 : return NULL;
26820 : return gen_split_1087 (insn, operands);
26821 :
26822 : case E_V2HFmode:
26823 : if (pattern1064 (x4,
26824 : E_V2HFmode) != 0
26825 : || !(
26826 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26827 : (TARGET_SSE) &&
26828 : #line 2282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26829 : ( reload_completed)))
26830 : return NULL;
26831 : return gen_split_1088 (insn, operands);
26832 :
26833 : case E_V4HFmode:
26834 : if (pattern1064 (x4,
26835 : E_V4HFmode) != 0
26836 : || !((
26837 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26838 : (TARGET_SSE) &&
26839 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26840 : (TARGET_MMX_WITH_SSE)) &&
26841 : #line 2282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26842 : ( reload_completed)))
26843 : return NULL;
26844 : return gen_split_1089 (insn, operands);
26845 :
26846 : case E_V16SFmode:
26847 : if (pattern1061 (x4,
26848 : E_V16SFmode) != 0
26849 : || !((
26850 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26851 : (TARGET_SSE) &&
26852 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26853 : (TARGET_AVX512F)) &&
26854 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26855 : ( reload_completed)))
26856 : return NULL;
26857 : return gen_split_1331 (insn, operands);
26858 :
26859 : case E_V8SFmode:
26860 : if (pattern1061 (x4,
26861 : E_V8SFmode) != 0
26862 : || !((
26863 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26864 : (TARGET_SSE) &&
26865 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26866 : (TARGET_AVX)) &&
26867 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26868 : ( reload_completed)))
26869 : return NULL;
26870 : return gen_split_1332 (insn, operands);
26871 :
26872 : case E_V4SFmode:
26873 : if (pattern1061 (x4,
26874 : E_V4SFmode) != 0
26875 : || !(
26876 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26877 : (TARGET_SSE) &&
26878 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26879 : ( reload_completed)))
26880 : return NULL;
26881 : return gen_split_1333 (insn, operands);
26882 :
26883 : case E_V8DFmode:
26884 : if (pattern1061 (x4,
26885 : E_V8DFmode) != 0
26886 : || !((
26887 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26888 : (TARGET_SSE) &&
26889 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26890 : (TARGET_AVX512F)) &&
26891 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26892 : ( reload_completed)))
26893 : return NULL;
26894 : return gen_split_1334 (insn, operands);
26895 :
26896 : case E_V4DFmode:
26897 : if (pattern1061 (x4,
26898 : E_V4DFmode) != 0
26899 : || !((
26900 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26901 : (TARGET_SSE) &&
26902 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26903 : (TARGET_AVX)) &&
26904 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26905 : ( reload_completed)))
26906 : return NULL;
26907 : return gen_split_1335 (insn, operands);
26908 :
26909 : case E_V2DFmode:
26910 : if (pattern1061 (x4,
26911 : E_V2DFmode) != 0
26912 : || !((
26913 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26914 : (TARGET_SSE) &&
26915 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26916 : (TARGET_SSE2)) &&
26917 : #line 2636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26918 : ( reload_completed)))
26919 : return NULL;
26920 : return gen_split_1336 (insn, operands);
26921 :
26922 : default:
26923 : return NULL;
26924 : }
26925 :
26926 : default:
26927 : return NULL;
26928 : }
26929 : }
26930 :
26931 : rtx_insn *
26932 : split_52 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26933 : {
26934 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26935 : rtx x2, x3, x4, x5, x6, x7;
26936 : rtx_insn *res ATTRIBUTE_UNUSED;
26937 : x2 = XEXP (x1, 0);
26938 : operands[0] = x2;
26939 : x3 = XEXP (x1, 1);
26940 : x4 = XEXP (x3, 0);
26941 : switch (GET_CODE (x4))
26942 : {
26943 : case LT:
26944 : x5 = XEXP (x4, 0);
26945 : operands[1] = x5;
26946 : x6 = XEXP (x4, 1);
26947 : operands[2] = x6;
26948 : x7 = XEXP (x3, 1);
26949 : operands[3] = x7;
26950 : switch (GET_MODE (operands[0]))
26951 : {
26952 : case E_V4HImode:
26953 : if (pattern956 (x3,
26954 : E_V4HImode) != 0
26955 : || !
26956 : #line 3940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26957 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26958 : return NULL;
26959 : return gen_split_1098 (insn, operands);
26960 :
26961 : case E_V2SImode:
26962 : if (pattern956 (x3,
26963 : E_V2SImode) != 0
26964 : || !
26965 : #line 3940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26966 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26967 : return NULL;
26968 : return gen_split_1099 (insn, operands);
26969 :
26970 : case E_V1DImode:
26971 : if (pattern956 (x3,
26972 : E_V1DImode) != 0
26973 : || !
26974 : #line 3940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26975 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()))
26976 : return NULL;
26977 : return gen_split_1100 (insn, operands);
26978 :
26979 : case E_V2HImode:
26980 : if (pattern956 (x3,
26981 : E_V2HImode) != 0
26982 : || !
26983 : #line 4003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26984 : (TARGET_SSE2 && ix86_pre_reload_split ()))
26985 : return NULL;
26986 : return gen_split_1102 (insn, operands);
26987 :
26988 : default:
26989 : return NULL;
26990 : }
26991 :
26992 : case REG:
26993 : switch (pattern242 (x3))
26994 : {
26995 : case 0:
26996 : if (!
26997 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26998 : (TARGET_AVX512F && reload_completed))
26999 : return NULL;
27000 : return gen_split_1233 (insn, operands);
27001 :
27002 : case 1:
27003 : if (!
27004 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27005 : (TARGET_AVX512F && reload_completed))
27006 : return NULL;
27007 : return gen_split_1236 (insn, operands);
27008 :
27009 : case 2:
27010 : if (!(
27011 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27012 : (TARGET_AVX512F && reload_completed) &&
27013 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27014 : (TARGET_AVX512BW)))
27015 : return NULL;
27016 : return gen_split_1239 (insn, operands);
27017 :
27018 : case 3:
27019 : if (!(
27020 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27021 : (TARGET_AVX512F && reload_completed) &&
27022 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27023 : (TARGET_AVX512BW)))
27024 : return NULL;
27025 : return gen_split_1242 (insn, operands);
27026 :
27027 : default:
27028 : return NULL;
27029 : }
27030 :
27031 : default:
27032 : return NULL;
27033 : }
27034 : }
27035 :
27036 : rtx_insn *
27037 : split_53 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27038 : {
27039 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27040 : rtx x2, x3, x4, x5;
27041 : rtx_insn *res ATTRIBUTE_UNUSED;
27042 : x2 = XEXP (x1, 1);
27043 : x3 = XEXP (x2, 0);
27044 : if (GET_CODE (x3) != SS_TRUNCATE)
27045 : return NULL;
27046 : x4 = XEXP (x2, 1);
27047 : if (GET_CODE (x4) != SS_TRUNCATE)
27048 : return NULL;
27049 : x5 = XEXP (x1, 0);
27050 : operands[0] = x5;
27051 : switch (pattern271 (x2))
27052 : {
27053 : case 0:
27054 : if (!(
27055 : #line 4799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27056 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
27057 : #line 4804 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27058 : ( reload_completed
27059 : && SSE_REGNO_P (REGNO (operands[0])))))
27060 : return NULL;
27061 : return gen_split_1146 (insn, operands);
27062 :
27063 : case 1:
27064 : if (!(
27065 : #line 4840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27066 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
27067 : #line 4845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27068 : ( reload_completed
27069 : && SSE_REGNO_P (REGNO (operands[0])))))
27070 : return NULL;
27071 : return gen_split_1148 (insn, operands);
27072 :
27073 : default:
27074 : return NULL;
27075 : }
27076 : }
27077 :
27078 : rtx_insn *
27079 : split_54 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27080 : {
27081 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27082 : rtx x2, x3, x4, x5, x6, x7;
27083 : rtx_insn *res ATTRIBUTE_UNUSED;
27084 : x2 = XEXP (x1, 1);
27085 : x3 = XEXP (x2, 0);
27086 : if (GET_CODE (x3) != VEC_DUPLICATE)
27087 : return NULL;
27088 : x4 = XEXP (x1, 0);
27089 : operands[0] = x4;
27090 : x5 = XEXP (x3, 0);
27091 : operands[2] = x5;
27092 : x6 = XEXP (x2, 1);
27093 : operands[1] = x6;
27094 : x7 = XEXP (x2, 2);
27095 : operands[3] = x7;
27096 : if (!const_int_operand (operands[3], E_SImode))
27097 : return NULL;
27098 : switch (GET_MODE (operands[0]))
27099 : {
27100 : case E_V4HFmode:
27101 : if (pattern1072 (x2,
27102 : E_V4HFmode,
27103 : E_HFmode) != 0
27104 : || !
27105 : #line 5359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27106 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
27107 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27108 : < GET_MODE_NUNITS (V4HFmode))))
27109 : return NULL;
27110 : return gen_split_1158 (insn, operands);
27111 :
27112 : case E_V4BFmode:
27113 : if (pattern1072 (x2,
27114 : E_V4BFmode,
27115 : E_BFmode) != 0
27116 : || !
27117 : #line 5359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27118 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
27119 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27120 : < GET_MODE_NUNITS (V4BFmode))))
27121 : return NULL;
27122 : return gen_split_1159 (insn, operands);
27123 :
27124 : case E_V4HImode:
27125 : if (pattern1072 (x2,
27126 : E_V4HImode,
27127 : E_HImode) != 0
27128 : || !
27129 : #line 5359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27130 : (TARGET_MMX_WITH_SSE && TARGET_SSE4_1 && reload_completed
27131 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27132 : < GET_MODE_NUNITS (V4HImode))))
27133 : return NULL;
27134 : return gen_split_1160 (insn, operands);
27135 :
27136 : case E_V2HFmode:
27137 : if (pattern1072 (x2,
27138 : E_V2HFmode,
27139 : E_HFmode) != 0
27140 : || !
27141 : #line 6024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27142 : (TARGET_SSE4_1 && reload_completed
27143 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27144 : < GET_MODE_NUNITS (V2HFmode))))
27145 : return NULL;
27146 : return gen_split_1166 (insn, operands);
27147 :
27148 : case E_V2BFmode:
27149 : if (pattern1072 (x2,
27150 : E_V2BFmode,
27151 : E_BFmode) != 0
27152 : || !
27153 : #line 6024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27154 : (TARGET_SSE4_1 && reload_completed
27155 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27156 : < GET_MODE_NUNITS (V2BFmode))))
27157 : return NULL;
27158 : return gen_split_1167 (insn, operands);
27159 :
27160 : case E_V2HImode:
27161 : if (pattern1072 (x2,
27162 : E_V2HImode,
27163 : E_HImode) != 0
27164 : || !
27165 : #line 6024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27166 : (TARGET_SSE4_1 && reload_completed
27167 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
27168 : < GET_MODE_NUNITS (V2HImode))))
27169 : return NULL;
27170 : return gen_split_1168 (insn, operands);
27171 :
27172 : default:
27173 : return NULL;
27174 : }
27175 : }
27176 :
27177 : rtx_insn *
27178 : split_56 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27179 : {
27180 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27181 : rtx x2, x3, x4, x5;
27182 : rtx_insn *res ATTRIBUTE_UNUSED;
27183 : x2 = XEXP (x1, 1);
27184 : if (GET_MODE (x2) != E_DImode)
27185 : return NULL;
27186 : x3 = XEXP (x2, 0);
27187 : if (GET_CODE (x3) != UNSPEC
27188 : || XVECLEN (x3, 0) != 1
27189 : || XINT (x3, 1) != 50
27190 : || GET_MODE (x3) != E_SImode)
27191 : return NULL;
27192 : x4 = XEXP (x1, 0);
27193 : operands[0] = x4;
27194 : if (!register_operand (operands[0], E_DImode))
27195 : return NULL;
27196 : x5 = XVECEXP (x3, 0, 0);
27197 : switch (GET_CODE (x5))
27198 : {
27199 : case LT:
27200 : switch (pattern995 (x5))
27201 : {
27202 : case 0:
27203 : if (!((
27204 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27205 : (TARGET_64BIT && TARGET_SSE) &&
27206 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27207 : (TARGET_AVX)) &&
27208 : #line 22358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27209 : ( reload_completed)))
27210 : return NULL;
27211 : return gen_split_3503 (insn, operands);
27212 :
27213 : case 1:
27214 : if (!(
27215 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27216 : (TARGET_64BIT && TARGET_SSE) &&
27217 : #line 22358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27218 : ( reload_completed)))
27219 : return NULL;
27220 : return gen_split_3505 (insn, operands);
27221 :
27222 : case 2:
27223 : if (!((
27224 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27225 : (TARGET_64BIT && TARGET_SSE) &&
27226 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27227 : (TARGET_AVX)) &&
27228 : #line 22358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27229 : ( reload_completed)))
27230 : return NULL;
27231 : return gen_split_3507 (insn, operands);
27232 :
27233 : case 3:
27234 : if (!((
27235 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : (TARGET_64BIT && TARGET_SSE) &&
27237 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27238 : (TARGET_SSE2)) &&
27239 : #line 22358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27240 : ( reload_completed)))
27241 : return NULL;
27242 : return gen_split_3509 (insn, operands);
27243 :
27244 : case 4:
27245 : if (!(
27246 : #line 22668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27247 : (TARGET_64BIT && TARGET_SSE2) &&
27248 : #line 22670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27249 : ( 1)))
27250 : return NULL;
27251 : return gen_split_3545 (insn, operands);
27252 :
27253 : default:
27254 : return NULL;
27255 : }
27256 :
27257 : case SUBREG:
27258 : switch (pattern1098 (x5))
27259 : {
27260 : case 0:
27261 : if (!((
27262 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27263 : (TARGET_64BIT && TARGET_SSE) &&
27264 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27265 : (TARGET_AVX)) &&
27266 : #line 22383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27267 : ( reload_completed)))
27268 : return NULL;
27269 : return gen_split_3511 (insn, operands);
27270 :
27271 : case 1:
27272 : if (!(
27273 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27274 : (TARGET_64BIT && TARGET_SSE) &&
27275 : #line 22383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27276 : ( reload_completed)))
27277 : return NULL;
27278 : return gen_split_3513 (insn, operands);
27279 :
27280 : case 2:
27281 : if (!((
27282 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27283 : (TARGET_64BIT && TARGET_SSE) &&
27284 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27285 : (TARGET_AVX)) &&
27286 : #line 22383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27287 : ( reload_completed)))
27288 : return NULL;
27289 : return gen_split_3515 (insn, operands);
27290 :
27291 : case 3:
27292 : if (!((
27293 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27294 : (TARGET_64BIT && TARGET_SSE) &&
27295 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27296 : (TARGET_SSE2)) &&
27297 : #line 22383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27298 : ( reload_completed)))
27299 : return NULL;
27300 : return gen_split_3517 (insn, operands);
27301 :
27302 : case 4:
27303 : if (!((
27304 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27305 : (TARGET_64BIT && TARGET_SSE) &&
27306 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : (TARGET_AVX)) &&
27308 : #line 22422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27309 : ( reload_completed)))
27310 : return NULL;
27311 : return gen_split_3523 (insn, operands);
27312 :
27313 : case 5:
27314 : if (!(
27315 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27316 : (TARGET_64BIT && TARGET_SSE) &&
27317 : #line 22422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : ( reload_completed)))
27319 : return NULL;
27320 : return gen_split_3525 (insn, operands);
27321 :
27322 : case 6:
27323 : if (!((
27324 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27325 : (TARGET_64BIT && TARGET_SSE) &&
27326 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : (TARGET_AVX)) &&
27328 : #line 22422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27329 : ( reload_completed)))
27330 : return NULL;
27331 : return gen_split_3527 (insn, operands);
27332 :
27333 : case 7:
27334 : if (!((
27335 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27336 : (TARGET_64BIT && TARGET_SSE) &&
27337 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27338 : (TARGET_SSE2)) &&
27339 : #line 22422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27340 : ( reload_completed)))
27341 : return NULL;
27342 : return gen_split_3529 (insn, operands);
27343 :
27344 : default:
27345 : return NULL;
27346 : }
27347 :
27348 : case VEC_MERGE:
27349 : switch (pattern985 (x5))
27350 : {
27351 : case 0:
27352 : if (!((
27353 : #line 22697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27354 : (TARGET_64BIT && TARGET_SSE2) &&
27355 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27356 : (TARGET_AVX2)) &&
27357 : #line 22699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27358 : ( 1)))
27359 : return NULL;
27360 : return gen_split_3546 (insn, operands);
27361 :
27362 : case 1:
27363 : if (!(
27364 : #line 22697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27365 : (TARGET_64BIT && TARGET_SSE2) &&
27366 : #line 22699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27367 : ( 1)))
27368 : return NULL;
27369 : return gen_split_3547 (insn, operands);
27370 :
27371 : default:
27372 : return NULL;
27373 : }
27374 :
27375 : default:
27376 : return NULL;
27377 : }
27378 : }
27379 :
27380 : rtx_insn *
27381 : split_59 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27382 : {
27383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27384 : rtx x2, x3, x4, x5;
27385 : rtx_insn *res ATTRIBUTE_UNUSED;
27386 : x2 = XEXP (x1, 1);
27387 : x3 = XEXP (x2, 0);
27388 : operands[1] = x3;
27389 : x4 = XEXP (x2, 2);
27390 : if (GET_CODE (x4) != UNSPEC
27391 : || XVECLEN (x4, 0) != 3
27392 : || XINT (x4, 1) != 60)
27393 : return NULL;
27394 : switch (pattern1017 (x2))
27395 : {
27396 : case 0:
27397 : x5 = XVECEXP (x4, 0, 0);
27398 : operands[3] = x5;
27399 : switch (pattern1476 (x2))
27400 : {
27401 : case 0:
27402 : if (((
27403 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27404 : (TARGET_SSE && ix86_pre_reload_split ()
27405 : && ((rtx_equal_p (operands[1], operands[3])
27406 : && rtx_equal_p (operands[2], operands[4]))
27407 : || (rtx_equal_p (operands[1], operands[4])
27408 : && rtx_equal_p (operands[2], operands[3])))
27409 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27410 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27411 : (TARGET_AVX512FP16)) &&
27412 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27413 : ( 1)))
27414 : return gen_split_1337 (insn, operands);
27415 : break;
27416 :
27417 : case 1:
27418 : if (((
27419 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27420 : (TARGET_SSE && ix86_pre_reload_split ()
27421 : && ((rtx_equal_p (operands[1], operands[3])
27422 : && rtx_equal_p (operands[2], operands[4]))
27423 : || (rtx_equal_p (operands[1], operands[4])
27424 : && rtx_equal_p (operands[2], operands[3])))
27425 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27426 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27427 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
27428 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27429 : ( 1)))
27430 : return gen_split_1338 (insn, operands);
27431 : break;
27432 :
27433 : case 2:
27434 : if (((
27435 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27436 : (TARGET_SSE && ix86_pre_reload_split ()
27437 : && ((rtx_equal_p (operands[1], operands[3])
27438 : && rtx_equal_p (operands[2], operands[4]))
27439 : || (rtx_equal_p (operands[1], operands[4])
27440 : && rtx_equal_p (operands[2], operands[3])))
27441 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27442 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27443 : (TARGET_AVX512FP16 && TARGET_AVX512VL)) &&
27444 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27445 : ( 1)))
27446 : return gen_split_1339 (insn, operands);
27447 : break;
27448 :
27449 : case 3:
27450 : if (((
27451 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27452 : (TARGET_SSE && ix86_pre_reload_split ()
27453 : && ((rtx_equal_p (operands[1], operands[3])
27454 : && rtx_equal_p (operands[2], operands[4]))
27455 : || (rtx_equal_p (operands[1], operands[4])
27456 : && rtx_equal_p (operands[2], operands[3])))
27457 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27458 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27459 : (TARGET_AVX512F)) &&
27460 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27461 : ( 1)))
27462 : return gen_split_1340 (insn, operands);
27463 : break;
27464 :
27465 : case 4:
27466 : if (nonimmediate_operand (operands[1], E_V8SFmode)
27467 : && pattern1686 (
27468 : E_V8SFmode) == 0
27469 : && ((
27470 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27471 : (TARGET_SSE && ix86_pre_reload_split ()
27472 : && ((rtx_equal_p (operands[1], operands[3])
27473 : && rtx_equal_p (operands[2], operands[4]))
27474 : || (rtx_equal_p (operands[1], operands[4])
27475 : && rtx_equal_p (operands[2], operands[3])))
27476 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27477 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27478 : (TARGET_AVX)) &&
27479 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27480 : ( 1)))
27481 : return gen_split_1341 (insn, operands);
27482 : if (vector_operand (operands[1], E_V8SFmode)
27483 : && pattern1687 (
27484 : E_V8SImode,
27485 : E_V8SFmode) == 0
27486 : && ((
27487 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27488 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27489 : /* LT or GE 0 */
27490 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27491 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27492 : (TARGET_AVX)) &&
27493 : #line 4444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27494 : ( 1)))
27495 : return gen_split_1390 (insn, operands);
27496 : break;
27497 :
27498 : case 5:
27499 : if (nonimmediate_operand (operands[1], E_V4SFmode)
27500 : && pattern1686 (
27501 : E_V4SFmode) == 0
27502 : && (
27503 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27504 : (TARGET_SSE && ix86_pre_reload_split ()
27505 : && ((rtx_equal_p (operands[1], operands[3])
27506 : && rtx_equal_p (operands[2], operands[4]))
27507 : || (rtx_equal_p (operands[1], operands[4])
27508 : && rtx_equal_p (operands[2], operands[3])))
27509 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27510 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27511 : ( 1)))
27512 : return gen_split_1342 (insn, operands);
27513 : if (vector_operand (operands[1], E_V4SFmode)
27514 : && pattern1687 (
27515 : E_V4SImode,
27516 : E_V4SFmode) == 0
27517 : && (
27518 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27519 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27520 : /* LT or GE 0 */
27521 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27522 : #line 4444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27523 : ( 1)))
27524 : return gen_split_1391 (insn, operands);
27525 : break;
27526 :
27527 : case 6:
27528 : if (((
27529 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27530 : (TARGET_SSE && ix86_pre_reload_split ()
27531 : && ((rtx_equal_p (operands[1], operands[3])
27532 : && rtx_equal_p (operands[2], operands[4]))
27533 : || (rtx_equal_p (operands[1], operands[4])
27534 : && rtx_equal_p (operands[2], operands[3])))
27535 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27536 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27537 : (TARGET_AVX512F)) &&
27538 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27539 : ( 1)))
27540 : return gen_split_1343 (insn, operands);
27541 : break;
27542 :
27543 : case 7:
27544 : if (nonimmediate_operand (operands[1], E_V4DFmode)
27545 : && pattern1686 (
27546 : E_V4DFmode) == 0
27547 : && ((
27548 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27549 : (TARGET_SSE && ix86_pre_reload_split ()
27550 : && ((rtx_equal_p (operands[1], operands[3])
27551 : && rtx_equal_p (operands[2], operands[4]))
27552 : || (rtx_equal_p (operands[1], operands[4])
27553 : && rtx_equal_p (operands[2], operands[3])))
27554 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27555 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27556 : (TARGET_AVX)) &&
27557 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27558 : ( 1)))
27559 : return gen_split_1344 (insn, operands);
27560 : if (vector_operand (operands[1], E_V4DFmode)
27561 : && pattern1687 (
27562 : E_V4DImode,
27563 : E_V4DFmode) == 0
27564 : && ((
27565 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27566 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27567 : /* LT or GE 0 */
27568 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27569 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27570 : (TARGET_AVX)) &&
27571 : #line 4444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27572 : ( 1)))
27573 : return gen_split_1392 (insn, operands);
27574 : break;
27575 :
27576 : case 8:
27577 : if (nonimmediate_operand (operands[1], E_V2DFmode)
27578 : && pattern1686 (
27579 : E_V2DFmode) == 0
27580 : && ((
27581 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27582 : (TARGET_SSE && ix86_pre_reload_split ()
27583 : && ((rtx_equal_p (operands[1], operands[3])
27584 : && rtx_equal_p (operands[2], operands[4]))
27585 : || (rtx_equal_p (operands[1], operands[4])
27586 : && rtx_equal_p (operands[2], operands[3])))
27587 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
27588 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27589 : (TARGET_SSE2)) &&
27590 : #line 3359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27591 : ( 1)))
27592 : return gen_split_1345 (insn, operands);
27593 : if (vector_operand (operands[1], E_V2DFmode)
27594 : && pattern1687 (
27595 : E_V2DImode,
27596 : E_V2DFmode) == 0
27597 : && ((
27598 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27599 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27600 : /* LT or GE 0 */
27601 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27602 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27603 : (TARGET_SSE2)) &&
27604 : #line 4444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27605 : ( 1)))
27606 : return gen_split_1393 (insn, operands);
27607 : break;
27608 :
27609 : case 9:
27610 : if ((
27611 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27612 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27613 : /* LT or GE 0 */
27614 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27615 : #line 4473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27616 : ( 1)))
27617 : return gen_split_1394 (insn, operands);
27618 : break;
27619 :
27620 : case 10:
27621 : if ((
27622 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27623 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27624 : /* LT or GE 0 */
27625 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27626 : #line 4473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27627 : ( 1)))
27628 : return gen_split_1395 (insn, operands);
27629 : break;
27630 :
27631 : case 11:
27632 : if (((
27633 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27634 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27635 : /* LT or GE 0 */
27636 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27637 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27638 : (TARGET_AVX)) &&
27639 : #line 4473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27640 : ( 1)))
27641 : return gen_split_1396 (insn, operands);
27642 : break;
27643 :
27644 : case 12:
27645 : if (((
27646 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27647 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27648 : /* LT or GE 0 */
27649 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27650 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27651 : (TARGET_AVX)) &&
27652 : #line 4473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27653 : ( 1)))
27654 : return gen_split_1397 (insn, operands);
27655 : break;
27656 :
27657 : case 13:
27658 : if (((
27659 : #line 18370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27660 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27661 : /* LT or GE 0 */
27662 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
27663 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))) &&
27664 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27665 : (TARGET_AVX2)) &&
27666 : #line 18375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27667 : ( 1)))
27668 : return gen_split_3380 (insn, operands);
27669 : break;
27670 :
27671 : case 14:
27672 : if ((
27673 : #line 18370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27674 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27675 : /* LT or GE 0 */
27676 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
27677 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))) &&
27678 : #line 18375 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27679 : ( 1)))
27680 : return gen_split_3381 (insn, operands);
27681 : break;
27682 :
27683 : default:
27684 : break;
27685 : }
27686 : if (GET_CODE (x5) != SUBREG)
27687 : return NULL;
27688 : switch (pattern1479 (x2))
27689 : {
27690 : case 0:
27691 : if (!(
27692 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27693 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27694 : /* not LT or GE 0 */
27695 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27696 : #line 4508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27697 : ( 1)))
27698 : return NULL;
27699 : return gen_split_1398 (insn, operands);
27700 :
27701 : case 1:
27702 : if (!(
27703 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27704 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27705 : /* not LT or GE 0 */
27706 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27707 : #line 4508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27708 : ( 1)))
27709 : return NULL;
27710 : return gen_split_1399 (insn, operands);
27711 :
27712 : case 2:
27713 : if (!((
27714 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27715 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27716 : /* not LT or GE 0 */
27717 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27718 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27719 : (TARGET_AVX)) &&
27720 : #line 4508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27721 : ( 1)))
27722 : return NULL;
27723 : return gen_split_1400 (insn, operands);
27724 :
27725 : case 3:
27726 : if (!((
27727 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27728 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27729 : /* not LT or GE 0 */
27730 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
27731 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27732 : (TARGET_AVX)) &&
27733 : #line 4508 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27734 : ( 1)))
27735 : return NULL;
27736 : return gen_split_1401 (insn, operands);
27737 :
27738 : case 4:
27739 : if (!((
27740 : #line 18399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27741 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27742 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
27743 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
27744 : /* LT or GE 0 */
27745 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
27746 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
27747 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27748 : (TARGET_AVX2)) &&
27749 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27750 : ( 1)))
27751 : return NULL;
27752 : return gen_split_3382 (insn, operands);
27753 :
27754 : case 5:
27755 : if (!(
27756 : #line 18399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27757 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27758 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
27759 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
27760 : /* LT or GE 0 */
27761 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
27762 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
27763 : #line 18406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27764 : ( 1)))
27765 : return NULL;
27766 : return gen_split_3383 (insn, operands);
27767 :
27768 : default:
27769 : return NULL;
27770 : }
27771 :
27772 : case 1:
27773 : if (!((
27774 : #line 18431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27775 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27776 : /* LT or GE 0 */
27777 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
27778 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
27779 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27780 : (TARGET_AVX2)) &&
27781 : #line 18436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27782 : ( 1)))
27783 : return NULL;
27784 : return gen_split_3384 (insn, operands);
27785 :
27786 : case 2:
27787 : if (!(
27788 : #line 18431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27789 : (TARGET_AVX512VL && ix86_pre_reload_split ()
27790 : /* LT or GE 0 */
27791 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
27792 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
27793 : #line 18436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27794 : ( 1)))
27795 : return NULL;
27796 : return gen_split_3385 (insn, operands);
27797 :
27798 : default:
27799 : return NULL;
27800 : }
27801 : }
27802 :
27803 : rtx_insn *
27804 : split_64 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27805 : {
27806 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27807 : rtx x2, x3, x4, x5, x6;
27808 : rtx_insn *res ATTRIBUTE_UNUSED;
27809 : x2 = XEXP (x1, 1);
27810 : x3 = XEXP (x2, 0);
27811 : switch (GET_CODE (x3))
27812 : {
27813 : case NOT:
27814 : x4 = XEXP (x3, 0);
27815 : switch (GET_CODE (x4))
27816 : {
27817 : case GT:
27818 : case LT:
27819 : operands[1] = x4;
27820 : switch (pattern686 (x2))
27821 : {
27822 : case 0:
27823 : if (!((
27824 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27825 : (TARGET_SSE && ix86_pre_reload_split ()
27826 : && rtx_equal_p (operands[2], operands[4])) &&
27827 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27828 : (TARGET_AVX)) &&
27829 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27830 : ( 1)))
27831 : return NULL;
27832 : return gen_split_1350 (insn, operands);
27833 :
27834 : case 1:
27835 : if (!(
27836 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27837 : (TARGET_SSE && ix86_pre_reload_split ()
27838 : && rtx_equal_p (operands[2], operands[4])) &&
27839 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27840 : ( 1)))
27841 : return NULL;
27842 : return gen_split_1351 (insn, operands);
27843 :
27844 : case 2:
27845 : if (!((
27846 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27847 : (TARGET_SSE && ix86_pre_reload_split ()
27848 : && rtx_equal_p (operands[2], operands[4])) &&
27849 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27850 : (TARGET_AVX)) &&
27851 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27852 : ( 1)))
27853 : return NULL;
27854 : return gen_split_1352 (insn, operands);
27855 :
27856 : case 3:
27857 : if (!((
27858 : #line 3414 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27859 : (TARGET_SSE && ix86_pre_reload_split ()
27860 : && rtx_equal_p (operands[2], operands[4])) &&
27861 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27862 : (TARGET_SSE2)) &&
27863 : #line 3417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27864 : ( 1)))
27865 : return NULL;
27866 : return gen_split_1353 (insn, operands);
27867 :
27868 : default:
27869 : return NULL;
27870 : }
27871 :
27872 : default:
27873 : return NULL;
27874 : }
27875 :
27876 : case GT:
27877 : case LT:
27878 : operands[1] = x3;
27879 : switch (pattern529 (x2))
27880 : {
27881 : case 0:
27882 : if (((
27883 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27884 : (TARGET_SSE && ix86_pre_reload_split ()
27885 : && rtx_equal_p (operands[2], operands[4])) &&
27886 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27887 : (TARGET_AVX)) &&
27888 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27889 : ( 1)))
27890 : return gen_split_1354 (insn, operands);
27891 : break;
27892 :
27893 : case 1:
27894 : if ((
27895 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27896 : (TARGET_SSE && ix86_pre_reload_split ()
27897 : && rtx_equal_p (operands[2], operands[4])) &&
27898 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27899 : ( 1)))
27900 : return gen_split_1355 (insn, operands);
27901 : break;
27902 :
27903 : case 2:
27904 : if (((
27905 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27906 : (TARGET_SSE && ix86_pre_reload_split ()
27907 : && rtx_equal_p (operands[2], operands[4])) &&
27908 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27909 : (TARGET_AVX)) &&
27910 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27911 : ( 1)))
27912 : return gen_split_1356 (insn, operands);
27913 : break;
27914 :
27915 : case 3:
27916 : if (((
27917 : #line 3436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27918 : (TARGET_SSE && ix86_pre_reload_split ()
27919 : && rtx_equal_p (operands[2], operands[4])) &&
27920 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27921 : (TARGET_SSE2)) &&
27922 : #line 3439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27923 : ( 1)))
27924 : return gen_split_1357 (insn, operands);
27925 : break;
27926 :
27927 : default:
27928 : break;
27929 : }
27930 : x4 = XEXP (x3, 0);
27931 : operands[1] = x4;
27932 : switch (pattern531 (x2))
27933 : {
27934 : case 0:
27935 : if (!((
27936 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27937 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27938 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27939 : (TARGET_AVX2)) &&
27940 : #line 17652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27941 : ( 1)))
27942 : return NULL;
27943 : return gen_split_3317 (insn, operands);
27944 :
27945 : case 1:
27946 : if (!(
27947 : #line 17650 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27948 : (TARGET_SSE4_2 && ix86_pre_reload_split ()) &&
27949 : #line 17652 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27950 : ( 1)))
27951 : return NULL;
27952 : return gen_split_3318 (insn, operands);
27953 :
27954 : case 2:
27955 : switch (GET_MODE (operands[0]))
27956 : {
27957 : case E_V4DImode:
27958 : if (pattern956 (x2,
27959 : E_V4DImode) != 0)
27960 : return NULL;
27961 : if (((
27962 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27963 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27964 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27965 : (TARGET_AVX2)) &&
27966 : #line 17669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27967 : ( 1)))
27968 : return gen_split_3319 (insn, operands);
27969 : if (!(
27970 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27971 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27972 : #line 769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27973 : (TARGET_AVX2)))
27974 : return NULL;
27975 : return gen_split_3325 (insn, operands);
27976 :
27977 : case E_V2DImode:
27978 : if (pattern956 (x2,
27979 : E_V2DImode) != 0)
27980 : return NULL;
27981 : if ((
27982 : #line 17667 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27983 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27984 : #line 17669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27985 : ( 1)))
27986 : return gen_split_3320 (insn, operands);
27987 : if (!
27988 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27989 : (TARGET_SSE2 && ix86_pre_reload_split ()))
27990 : return NULL;
27991 : return gen_split_3326 (insn, operands);
27992 :
27993 : case E_V16HImode:
27994 : if (pattern956 (x2,
27995 : E_V16HImode) != 0
27996 : || !(
27997 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27998 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27999 : #line 767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28000 : (TARGET_AVX2)))
28001 : return NULL;
28002 : return gen_split_3321 (insn, operands);
28003 :
28004 : case E_V8HImode:
28005 : if (pattern956 (x2,
28006 : E_V8HImode) != 0
28007 : || !
28008 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28009 : (TARGET_SSE2 && ix86_pre_reload_split ()))
28010 : return NULL;
28011 : return gen_split_3322 (insn, operands);
28012 :
28013 : case E_V8SImode:
28014 : if (pattern956 (x2,
28015 : E_V8SImode) != 0
28016 : || !(
28017 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28018 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
28019 : #line 768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28020 : (TARGET_AVX2)))
28021 : return NULL;
28022 : return gen_split_3323 (insn, operands);
28023 :
28024 : case E_V4SImode:
28025 : if (pattern956 (x2,
28026 : E_V4SImode) != 0
28027 : || !
28028 : #line 17679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28029 : (TARGET_SSE2 && ix86_pre_reload_split ()))
28030 : return NULL;
28031 : return gen_split_3324 (insn, operands);
28032 :
28033 : default:
28034 : return NULL;
28035 : }
28036 :
28037 : default:
28038 : return NULL;
28039 : }
28040 :
28041 : case REG:
28042 : case SUBREG:
28043 : case MEM:
28044 : operands[1] = x3;
28045 : x5 = XEXP (x2, 1);
28046 : operands[2] = x5;
28047 : switch (GET_MODE (operands[0]))
28048 : {
28049 : case E_V32BFmode:
28050 : if (pattern957 (x2,
28051 : E_V32BFmode) != 0
28052 : || !((
28053 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28054 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28055 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28056 : (TARGET_AVX512F)) &&
28057 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28058 : ( 1)))
28059 : return NULL;
28060 : return gen_split_1570 (insn, operands);
28061 :
28062 : case E_V16BFmode:
28063 : if (pattern957 (x2,
28064 : E_V16BFmode) != 0
28065 : || !((
28066 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28067 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28068 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28069 : (TARGET_AVX)) &&
28070 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28071 : ( 1)))
28072 : return NULL;
28073 : return gen_split_1571 (insn, operands);
28074 :
28075 : case E_V8BFmode:
28076 : if (pattern957 (x2,
28077 : E_V8BFmode) != 0
28078 : || !((
28079 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28080 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28081 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28082 : (TARGET_SSE2)) &&
28083 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28084 : ( 1)))
28085 : return NULL;
28086 : return gen_split_1572 (insn, operands);
28087 :
28088 : case E_V32HFmode:
28089 : if (pattern957 (x2,
28090 : E_V32HFmode) != 0
28091 : || !((
28092 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28093 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28094 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28095 : (TARGET_AVX512F)) &&
28096 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28097 : ( 1)))
28098 : return NULL;
28099 : return gen_split_1573 (insn, operands);
28100 :
28101 : case E_V16HFmode:
28102 : if (pattern957 (x2,
28103 : E_V16HFmode) != 0
28104 : || !((
28105 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28106 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28107 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28108 : (TARGET_AVX)) &&
28109 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28110 : ( 1)))
28111 : return NULL;
28112 : return gen_split_1574 (insn, operands);
28113 :
28114 : case E_V8HFmode:
28115 : if (pattern957 (x2,
28116 : E_V8HFmode) != 0
28117 : || !((
28118 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28119 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28120 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28121 : (TARGET_SSE2)) &&
28122 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28123 : ( 1)))
28124 : return NULL;
28125 : return gen_split_1575 (insn, operands);
28126 :
28127 : case E_V16SFmode:
28128 : if (pattern957 (x2,
28129 : E_V16SFmode) != 0
28130 : || !((
28131 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28132 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28133 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28134 : (TARGET_AVX512F)) &&
28135 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28136 : ( 1)))
28137 : return NULL;
28138 : return gen_split_1576 (insn, operands);
28139 :
28140 : case E_V8SFmode:
28141 : if (pattern957 (x2,
28142 : E_V8SFmode) != 0
28143 : || !((
28144 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28145 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28146 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28147 : (TARGET_AVX)) &&
28148 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28149 : ( 1)))
28150 : return NULL;
28151 : return gen_split_1577 (insn, operands);
28152 :
28153 : case E_V4SFmode:
28154 : if (pattern957 (x2,
28155 : E_V4SFmode) != 0
28156 : || !(
28157 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28158 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28159 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28160 : ( 1)))
28161 : return NULL;
28162 : return gen_split_1578 (insn, operands);
28163 :
28164 : case E_V8DFmode:
28165 : if (pattern957 (x2,
28166 : E_V8DFmode) != 0
28167 : || !((
28168 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28169 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28170 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28171 : (TARGET_AVX512F)) &&
28172 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28173 : ( 1)))
28174 : return NULL;
28175 : return gen_split_1579 (insn, operands);
28176 :
28177 : case E_V4DFmode:
28178 : if (pattern957 (x2,
28179 : E_V4DFmode) != 0
28180 : || !((
28181 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28182 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28183 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28184 : (TARGET_AVX)) &&
28185 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28186 : ( 1)))
28187 : return NULL;
28188 : return gen_split_1580 (insn, operands);
28189 :
28190 : case E_V2DFmode:
28191 : if (pattern957 (x2,
28192 : E_V2DFmode) != 0
28193 : || !((
28194 : #line 5825 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28195 : (TARGET_SSE && ix86_pre_reload_split ()) &&
28196 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28197 : (TARGET_SSE2)) &&
28198 : #line 5827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28199 : ( 1)))
28200 : return NULL;
28201 : return gen_split_1581 (insn, operands);
28202 :
28203 : default:
28204 : return NULL;
28205 : }
28206 :
28207 : case AND:
28208 : return split_63 (x1, insn);
28209 :
28210 : case IOR:
28211 : x4 = XEXP (x3, 0);
28212 : switch (GET_CODE (x4))
28213 : {
28214 : case REG:
28215 : case SUBREG:
28216 : case MEM:
28217 : case NOT:
28218 : switch (pattern535 (x2))
28219 : {
28220 : case 0:
28221 : if (!((
28222 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28223 : ((64 == 64 || TARGET_AVX512VL
28224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28225 : && ix86_pre_reload_split ()
28226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28227 : STRIP_UNARY (operands[4]))
28228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28229 : STRIP_UNARY (operands[4]))
28230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28231 : STRIP_UNARY (operands[3]))
28232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28233 : STRIP_UNARY (operands[3])))) &&
28234 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28235 : (TARGET_AVX512F)) &&
28236 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28237 : ( 1)))
28238 : return NULL;
28239 : return gen_split_1750 (insn, operands);
28240 :
28241 : case 1:
28242 : if (!((
28243 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28244 : ((32 == 64 || TARGET_AVX512VL
28245 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28246 : && ix86_pre_reload_split ()
28247 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28248 : STRIP_UNARY (operands[4]))
28249 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28250 : STRIP_UNARY (operands[4]))
28251 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28252 : STRIP_UNARY (operands[3]))
28253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28254 : STRIP_UNARY (operands[3])))) &&
28255 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28256 : (TARGET_AVX)) &&
28257 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28258 : ( 1)))
28259 : return NULL;
28260 : return gen_split_1777 (insn, operands);
28261 :
28262 : case 2:
28263 : if (!(
28264 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28265 : ((16 == 64 || TARGET_AVX512VL
28266 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28267 : && ix86_pre_reload_split ()
28268 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28269 : STRIP_UNARY (operands[4]))
28270 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28271 : STRIP_UNARY (operands[4]))
28272 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28273 : STRIP_UNARY (operands[3]))
28274 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28275 : STRIP_UNARY (operands[3])))) &&
28276 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28277 : ( 1)))
28278 : return NULL;
28279 : return gen_split_1804 (insn, operands);
28280 :
28281 : case 3:
28282 : if (!((
28283 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28284 : ((64 == 64 || TARGET_AVX512VL
28285 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28286 : && ix86_pre_reload_split ()
28287 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28288 : STRIP_UNARY (operands[4]))
28289 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28290 : STRIP_UNARY (operands[4]))
28291 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28292 : STRIP_UNARY (operands[3]))
28293 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28294 : STRIP_UNARY (operands[3])))) &&
28295 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28296 : (TARGET_AVX512F)) &&
28297 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28298 : ( 1)))
28299 : return NULL;
28300 : return gen_split_1831 (insn, operands);
28301 :
28302 : case 4:
28303 : if (!((
28304 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28305 : ((32 == 64 || TARGET_AVX512VL
28306 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28307 : && ix86_pre_reload_split ()
28308 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28309 : STRIP_UNARY (operands[4]))
28310 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28311 : STRIP_UNARY (operands[4]))
28312 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28313 : STRIP_UNARY (operands[3]))
28314 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28315 : STRIP_UNARY (operands[3])))) &&
28316 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28317 : (TARGET_AVX)) &&
28318 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28319 : ( 1)))
28320 : return NULL;
28321 : return gen_split_1858 (insn, operands);
28322 :
28323 : case 5:
28324 : if (!(
28325 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28326 : ((16 == 64 || TARGET_AVX512VL
28327 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28328 : && ix86_pre_reload_split ()
28329 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28330 : STRIP_UNARY (operands[4]))
28331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28332 : STRIP_UNARY (operands[4]))
28333 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28334 : STRIP_UNARY (operands[3]))
28335 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28336 : STRIP_UNARY (operands[3])))) &&
28337 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28338 : ( 1)))
28339 : return NULL;
28340 : return gen_split_1885 (insn, operands);
28341 :
28342 : case 6:
28343 : if (!((
28344 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28345 : ((64 == 64 || TARGET_AVX512VL
28346 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28347 : && ix86_pre_reload_split ()
28348 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28349 : STRIP_UNARY (operands[4]))
28350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28351 : STRIP_UNARY (operands[4]))
28352 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28353 : STRIP_UNARY (operands[3]))
28354 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28355 : STRIP_UNARY (operands[3])))) &&
28356 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28357 : (TARGET_AVX512F)) &&
28358 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28359 : ( 1)))
28360 : return NULL;
28361 : return gen_split_1912 (insn, operands);
28362 :
28363 : case 7:
28364 : if (!((
28365 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28366 : ((32 == 64 || TARGET_AVX512VL
28367 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28368 : && ix86_pre_reload_split ()
28369 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28370 : STRIP_UNARY (operands[4]))
28371 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28372 : STRIP_UNARY (operands[4]))
28373 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28374 : STRIP_UNARY (operands[3]))
28375 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28376 : STRIP_UNARY (operands[3])))) &&
28377 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28378 : (TARGET_AVX)) &&
28379 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28380 : ( 1)))
28381 : return NULL;
28382 : return gen_split_1939 (insn, operands);
28383 :
28384 : case 8:
28385 : if (!(
28386 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28387 : ((16 == 64 || TARGET_AVX512VL
28388 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28389 : && ix86_pre_reload_split ()
28390 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28391 : STRIP_UNARY (operands[4]))
28392 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28393 : STRIP_UNARY (operands[4]))
28394 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28395 : STRIP_UNARY (operands[3]))
28396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28397 : STRIP_UNARY (operands[3])))) &&
28398 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28399 : ( 1)))
28400 : return NULL;
28401 : return gen_split_1966 (insn, operands);
28402 :
28403 : case 9:
28404 : if (!((
28405 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28406 : ((64 == 64 || TARGET_AVX512VL
28407 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28408 : && ix86_pre_reload_split ()
28409 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28410 : STRIP_UNARY (operands[4]))
28411 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28412 : STRIP_UNARY (operands[4]))
28413 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28414 : STRIP_UNARY (operands[3]))
28415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28416 : STRIP_UNARY (operands[3])))) &&
28417 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28418 : (TARGET_AVX512F)) &&
28419 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28420 : ( 1)))
28421 : return NULL;
28422 : return gen_split_1993 (insn, operands);
28423 :
28424 : case 10:
28425 : if (!((
28426 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28427 : ((32 == 64 || TARGET_AVX512VL
28428 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28429 : && ix86_pre_reload_split ()
28430 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28431 : STRIP_UNARY (operands[4]))
28432 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28433 : STRIP_UNARY (operands[4]))
28434 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28435 : STRIP_UNARY (operands[3]))
28436 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28437 : STRIP_UNARY (operands[3])))) &&
28438 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28439 : (TARGET_AVX)) &&
28440 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28441 : ( 1)))
28442 : return NULL;
28443 : return gen_split_2020 (insn, operands);
28444 :
28445 : case 11:
28446 : if (!(
28447 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28448 : ((16 == 64 || TARGET_AVX512VL
28449 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28450 : && ix86_pre_reload_split ()
28451 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28452 : STRIP_UNARY (operands[4]))
28453 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28454 : STRIP_UNARY (operands[4]))
28455 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28456 : STRIP_UNARY (operands[3]))
28457 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28458 : STRIP_UNARY (operands[3])))) &&
28459 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28460 : ( 1)))
28461 : return NULL;
28462 : return gen_split_2047 (insn, operands);
28463 :
28464 : case 12:
28465 : if (!((
28466 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28467 : ((64 == 64 || TARGET_AVX512VL
28468 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28469 : && ix86_pre_reload_split ()
28470 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28471 : STRIP_UNARY (operands[4]))
28472 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28473 : STRIP_UNARY (operands[4]))
28474 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28475 : STRIP_UNARY (operands[3]))
28476 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28477 : STRIP_UNARY (operands[3])))) &&
28478 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28479 : (TARGET_AVX512F)) &&
28480 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28481 : ( 1)))
28482 : return NULL;
28483 : return gen_split_1753 (insn, operands);
28484 :
28485 : case 13:
28486 : if (!((
28487 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28488 : ((32 == 64 || TARGET_AVX512VL
28489 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28490 : && ix86_pre_reload_split ()
28491 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28492 : STRIP_UNARY (operands[4]))
28493 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28494 : STRIP_UNARY (operands[4]))
28495 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28496 : STRIP_UNARY (operands[3]))
28497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28498 : STRIP_UNARY (operands[3])))) &&
28499 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28500 : (TARGET_AVX)) &&
28501 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28502 : ( 1)))
28503 : return NULL;
28504 : return gen_split_1780 (insn, operands);
28505 :
28506 : case 14:
28507 : if (!(
28508 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28509 : ((16 == 64 || TARGET_AVX512VL
28510 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28511 : && ix86_pre_reload_split ()
28512 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28513 : STRIP_UNARY (operands[4]))
28514 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28515 : STRIP_UNARY (operands[4]))
28516 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28517 : STRIP_UNARY (operands[3]))
28518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28519 : STRIP_UNARY (operands[3])))) &&
28520 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28521 : ( 1)))
28522 : return NULL;
28523 : return gen_split_1807 (insn, operands);
28524 :
28525 : case 15:
28526 : if (!((
28527 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28528 : ((64 == 64 || TARGET_AVX512VL
28529 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28530 : && ix86_pre_reload_split ()
28531 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28532 : STRIP_UNARY (operands[4]))
28533 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28534 : STRIP_UNARY (operands[4]))
28535 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28536 : STRIP_UNARY (operands[3]))
28537 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28538 : STRIP_UNARY (operands[3])))) &&
28539 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28540 : (TARGET_AVX512F)) &&
28541 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28542 : ( 1)))
28543 : return NULL;
28544 : return gen_split_1834 (insn, operands);
28545 :
28546 : case 16:
28547 : if (!((
28548 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28549 : ((32 == 64 || TARGET_AVX512VL
28550 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28551 : && ix86_pre_reload_split ()
28552 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28553 : STRIP_UNARY (operands[4]))
28554 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28555 : STRIP_UNARY (operands[4]))
28556 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28557 : STRIP_UNARY (operands[3]))
28558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28559 : STRIP_UNARY (operands[3])))) &&
28560 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28561 : (TARGET_AVX)) &&
28562 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28563 : ( 1)))
28564 : return NULL;
28565 : return gen_split_1861 (insn, operands);
28566 :
28567 : case 17:
28568 : if (!(
28569 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28570 : ((16 == 64 || TARGET_AVX512VL
28571 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28572 : && ix86_pre_reload_split ()
28573 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28574 : STRIP_UNARY (operands[4]))
28575 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28576 : STRIP_UNARY (operands[4]))
28577 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28578 : STRIP_UNARY (operands[3]))
28579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28580 : STRIP_UNARY (operands[3])))) &&
28581 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28582 : ( 1)))
28583 : return NULL;
28584 : return gen_split_1888 (insn, operands);
28585 :
28586 : case 18:
28587 : if (!((
28588 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28589 : ((64 == 64 || TARGET_AVX512VL
28590 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28591 : && ix86_pre_reload_split ()
28592 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28593 : STRIP_UNARY (operands[4]))
28594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28595 : STRIP_UNARY (operands[4]))
28596 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28597 : STRIP_UNARY (operands[3]))
28598 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28599 : STRIP_UNARY (operands[3])))) &&
28600 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28601 : (TARGET_AVX512F)) &&
28602 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28603 : ( 1)))
28604 : return NULL;
28605 : return gen_split_1915 (insn, operands);
28606 :
28607 : case 19:
28608 : if (!((
28609 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28610 : ((32 == 64 || TARGET_AVX512VL
28611 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28612 : && ix86_pre_reload_split ()
28613 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28614 : STRIP_UNARY (operands[4]))
28615 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28616 : STRIP_UNARY (operands[4]))
28617 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28618 : STRIP_UNARY (operands[3]))
28619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28620 : STRIP_UNARY (operands[3])))) &&
28621 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28622 : (TARGET_AVX)) &&
28623 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28624 : ( 1)))
28625 : return NULL;
28626 : return gen_split_1942 (insn, operands);
28627 :
28628 : case 20:
28629 : if (!(
28630 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28631 : ((16 == 64 || TARGET_AVX512VL
28632 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28633 : && ix86_pre_reload_split ()
28634 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28635 : STRIP_UNARY (operands[4]))
28636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28637 : STRIP_UNARY (operands[4]))
28638 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28639 : STRIP_UNARY (operands[3]))
28640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28641 : STRIP_UNARY (operands[3])))) &&
28642 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28643 : ( 1)))
28644 : return NULL;
28645 : return gen_split_1969 (insn, operands);
28646 :
28647 : case 21:
28648 : if (!((
28649 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28650 : ((64 == 64 || TARGET_AVX512VL
28651 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28652 : && ix86_pre_reload_split ()
28653 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28654 : STRIP_UNARY (operands[4]))
28655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28656 : STRIP_UNARY (operands[4]))
28657 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28658 : STRIP_UNARY (operands[3]))
28659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28660 : STRIP_UNARY (operands[3])))) &&
28661 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28662 : (TARGET_AVX512F)) &&
28663 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28664 : ( 1)))
28665 : return NULL;
28666 : return gen_split_1996 (insn, operands);
28667 :
28668 : case 22:
28669 : if (!((
28670 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28671 : ((32 == 64 || TARGET_AVX512VL
28672 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28673 : && ix86_pre_reload_split ()
28674 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28675 : STRIP_UNARY (operands[4]))
28676 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28677 : STRIP_UNARY (operands[4]))
28678 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28679 : STRIP_UNARY (operands[3]))
28680 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28681 : STRIP_UNARY (operands[3])))) &&
28682 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28683 : (TARGET_AVX)) &&
28684 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28685 : ( 1)))
28686 : return NULL;
28687 : return gen_split_2023 (insn, operands);
28688 :
28689 : case 23:
28690 : if (!(
28691 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28692 : ((16 == 64 || TARGET_AVX512VL
28693 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28694 : && ix86_pre_reload_split ()
28695 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28696 : STRIP_UNARY (operands[4]))
28697 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28698 : STRIP_UNARY (operands[4]))
28699 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28700 : STRIP_UNARY (operands[3]))
28701 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28702 : STRIP_UNARY (operands[3])))) &&
28703 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28704 : ( 1)))
28705 : return NULL;
28706 : return gen_split_2050 (insn, operands);
28707 :
28708 : case 24:
28709 : if (!((
28710 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28711 : ((64 == 64 || TARGET_AVX512VL
28712 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28713 : && ix86_pre_reload_split ()
28714 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28715 : STRIP_UNARY (operands[4]))
28716 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28717 : STRIP_UNARY (operands[4]))
28718 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28719 : STRIP_UNARY (operands[3]))
28720 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28721 : STRIP_UNARY (operands[3])))) &&
28722 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28723 : (TARGET_AVX512F)) &&
28724 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28725 : ( 1)))
28726 : return NULL;
28727 : return gen_split_1756 (insn, operands);
28728 :
28729 : case 25:
28730 : if (!((
28731 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28732 : ((32 == 64 || TARGET_AVX512VL
28733 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28734 : && ix86_pre_reload_split ()
28735 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28736 : STRIP_UNARY (operands[4]))
28737 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28738 : STRIP_UNARY (operands[4]))
28739 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28740 : STRIP_UNARY (operands[3]))
28741 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28742 : STRIP_UNARY (operands[3])))) &&
28743 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28744 : (TARGET_AVX)) &&
28745 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28746 : ( 1)))
28747 : return NULL;
28748 : return gen_split_1783 (insn, operands);
28749 :
28750 : case 26:
28751 : if (!(
28752 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28753 : ((16 == 64 || TARGET_AVX512VL
28754 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28755 : && ix86_pre_reload_split ()
28756 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28757 : STRIP_UNARY (operands[4]))
28758 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28759 : STRIP_UNARY (operands[4]))
28760 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28761 : STRIP_UNARY (operands[3]))
28762 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28763 : STRIP_UNARY (operands[3])))) &&
28764 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28765 : ( 1)))
28766 : return NULL;
28767 : return gen_split_1810 (insn, operands);
28768 :
28769 : case 27:
28770 : if (!((
28771 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28772 : ((64 == 64 || TARGET_AVX512VL
28773 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28774 : && ix86_pre_reload_split ()
28775 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28776 : STRIP_UNARY (operands[4]))
28777 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28778 : STRIP_UNARY (operands[4]))
28779 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28780 : STRIP_UNARY (operands[3]))
28781 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28782 : STRIP_UNARY (operands[3])))) &&
28783 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28784 : (TARGET_AVX512F)) &&
28785 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28786 : ( 1)))
28787 : return NULL;
28788 : return gen_split_1837 (insn, operands);
28789 :
28790 : case 28:
28791 : if (!((
28792 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28793 : ((32 == 64 || TARGET_AVX512VL
28794 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28795 : && ix86_pre_reload_split ()
28796 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28797 : STRIP_UNARY (operands[4]))
28798 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28799 : STRIP_UNARY (operands[4]))
28800 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28801 : STRIP_UNARY (operands[3]))
28802 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28803 : STRIP_UNARY (operands[3])))) &&
28804 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28805 : (TARGET_AVX)) &&
28806 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28807 : ( 1)))
28808 : return NULL;
28809 : return gen_split_1864 (insn, operands);
28810 :
28811 : case 29:
28812 : if (!(
28813 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28814 : ((16 == 64 || TARGET_AVX512VL
28815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28816 : && ix86_pre_reload_split ()
28817 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28818 : STRIP_UNARY (operands[4]))
28819 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28820 : STRIP_UNARY (operands[4]))
28821 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28822 : STRIP_UNARY (operands[3]))
28823 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28824 : STRIP_UNARY (operands[3])))) &&
28825 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28826 : ( 1)))
28827 : return NULL;
28828 : return gen_split_1891 (insn, operands);
28829 :
28830 : case 30:
28831 : if (!((
28832 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28833 : ((64 == 64 || TARGET_AVX512VL
28834 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28835 : && ix86_pre_reload_split ()
28836 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28837 : STRIP_UNARY (operands[4]))
28838 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28839 : STRIP_UNARY (operands[4]))
28840 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28841 : STRIP_UNARY (operands[3]))
28842 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28843 : STRIP_UNARY (operands[3])))) &&
28844 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28845 : (TARGET_AVX512F)) &&
28846 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28847 : ( 1)))
28848 : return NULL;
28849 : return gen_split_1918 (insn, operands);
28850 :
28851 : case 31:
28852 : if (!((
28853 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28854 : ((32 == 64 || TARGET_AVX512VL
28855 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28856 : && ix86_pre_reload_split ()
28857 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28858 : STRIP_UNARY (operands[4]))
28859 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28860 : STRIP_UNARY (operands[4]))
28861 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28862 : STRIP_UNARY (operands[3]))
28863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28864 : STRIP_UNARY (operands[3])))) &&
28865 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28866 : (TARGET_AVX)) &&
28867 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28868 : ( 1)))
28869 : return NULL;
28870 : return gen_split_1945 (insn, operands);
28871 :
28872 : case 32:
28873 : if (!(
28874 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28875 : ((16 == 64 || TARGET_AVX512VL
28876 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28877 : && ix86_pre_reload_split ()
28878 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28879 : STRIP_UNARY (operands[4]))
28880 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28881 : STRIP_UNARY (operands[4]))
28882 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28883 : STRIP_UNARY (operands[3]))
28884 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28885 : STRIP_UNARY (operands[3])))) &&
28886 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28887 : ( 1)))
28888 : return NULL;
28889 : return gen_split_1972 (insn, operands);
28890 :
28891 : case 33:
28892 : if (!((
28893 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28894 : ((64 == 64 || TARGET_AVX512VL
28895 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28896 : && ix86_pre_reload_split ()
28897 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28898 : STRIP_UNARY (operands[4]))
28899 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28900 : STRIP_UNARY (operands[4]))
28901 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28902 : STRIP_UNARY (operands[3]))
28903 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28904 : STRIP_UNARY (operands[3])))) &&
28905 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28906 : (TARGET_AVX512F)) &&
28907 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28908 : ( 1)))
28909 : return NULL;
28910 : return gen_split_1999 (insn, operands);
28911 :
28912 : case 34:
28913 : if (!((
28914 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28915 : ((32 == 64 || TARGET_AVX512VL
28916 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28917 : && ix86_pre_reload_split ()
28918 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28919 : STRIP_UNARY (operands[4]))
28920 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28921 : STRIP_UNARY (operands[4]))
28922 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28923 : STRIP_UNARY (operands[3]))
28924 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28925 : STRIP_UNARY (operands[3])))) &&
28926 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28927 : (TARGET_AVX)) &&
28928 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28929 : ( 1)))
28930 : return NULL;
28931 : return gen_split_2026 (insn, operands);
28932 :
28933 : case 35:
28934 : if (!(
28935 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28936 : ((16 == 64 || TARGET_AVX512VL
28937 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28938 : && ix86_pre_reload_split ()
28939 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28940 : STRIP_UNARY (operands[4]))
28941 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28942 : STRIP_UNARY (operands[4]))
28943 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28944 : STRIP_UNARY (operands[3]))
28945 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28946 : STRIP_UNARY (operands[3])))) &&
28947 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28948 : ( 1)))
28949 : return NULL;
28950 : return gen_split_2053 (insn, operands);
28951 :
28952 : case 36:
28953 : if (!((
28954 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28955 : ((64 == 64 || TARGET_AVX512VL
28956 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28957 : && ix86_pre_reload_split ()) &&
28958 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28959 : (TARGET_AVX512F)) &&
28960 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28961 : ( 1)))
28962 : return NULL;
28963 : return gen_split_3040 (insn, operands);
28964 :
28965 : case 37:
28966 : if (!((
28967 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28968 : ((32 == 64 || TARGET_AVX512VL
28969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28970 : && ix86_pre_reload_split ()) &&
28971 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28972 : (TARGET_AVX)) &&
28973 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28974 : ( 1)))
28975 : return NULL;
28976 : return gen_split_3049 (insn, operands);
28977 :
28978 : case 38:
28979 : if (!(
28980 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28981 : ((16 == 64 || TARGET_AVX512VL
28982 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28983 : && ix86_pre_reload_split ()) &&
28984 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28985 : ( 1)))
28986 : return NULL;
28987 : return gen_split_3058 (insn, operands);
28988 :
28989 : case 39:
28990 : if (!((
28991 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28992 : ((64 == 64 || TARGET_AVX512VL
28993 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28994 : && ix86_pre_reload_split ()) &&
28995 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28996 : (TARGET_AVX512F)) &&
28997 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28998 : ( 1)))
28999 : return NULL;
29000 : return gen_split_3067 (insn, operands);
29001 :
29002 : case 40:
29003 : if (!((
29004 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29005 : ((32 == 64 || TARGET_AVX512VL
29006 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29007 : && ix86_pre_reload_split ()) &&
29008 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29009 : (TARGET_AVX)) &&
29010 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29011 : ( 1)))
29012 : return NULL;
29013 : return gen_split_3076 (insn, operands);
29014 :
29015 : case 41:
29016 : if (!(
29017 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29018 : ((16 == 64 || TARGET_AVX512VL
29019 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29020 : && ix86_pre_reload_split ()) &&
29021 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29022 : ( 1)))
29023 : return NULL;
29024 : return gen_split_3085 (insn, operands);
29025 :
29026 : case 42:
29027 : if (!((
29028 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29029 : ((64 == 64 || TARGET_AVX512VL
29030 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29031 : && ix86_pre_reload_split ()) &&
29032 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29033 : (TARGET_AVX512F)) &&
29034 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29035 : ( 1)))
29036 : return NULL;
29037 : return gen_split_3094 (insn, operands);
29038 :
29039 : case 43:
29040 : if (!((
29041 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29042 : ((32 == 64 || TARGET_AVX512VL
29043 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29044 : && ix86_pre_reload_split ()) &&
29045 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29046 : (TARGET_AVX)) &&
29047 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ( 1)))
29049 : return NULL;
29050 : return gen_split_3103 (insn, operands);
29051 :
29052 : case 44:
29053 : if (!(
29054 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29055 : ((16 == 64 || TARGET_AVX512VL
29056 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29057 : && ix86_pre_reload_split ()) &&
29058 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29059 : ( 1)))
29060 : return NULL;
29061 : return gen_split_3112 (insn, operands);
29062 :
29063 : case 45:
29064 : if (!((
29065 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29066 : ((64 == 64 || TARGET_AVX512VL
29067 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29068 : && ix86_pre_reload_split ()) &&
29069 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29070 : (TARGET_AVX512F)) &&
29071 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29072 : ( 1)))
29073 : return NULL;
29074 : return gen_split_3121 (insn, operands);
29075 :
29076 : case 46:
29077 : if (!((
29078 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29079 : ((32 == 64 || TARGET_AVX512VL
29080 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29081 : && ix86_pre_reload_split ()) &&
29082 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29083 : (TARGET_AVX)) &&
29084 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29085 : ( 1)))
29086 : return NULL;
29087 : return gen_split_3130 (insn, operands);
29088 :
29089 : case 47:
29090 : if (!(
29091 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29092 : ((16 == 64 || TARGET_AVX512VL
29093 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29094 : && ix86_pre_reload_split ()) &&
29095 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29096 : ( 1)))
29097 : return NULL;
29098 : return gen_split_3139 (insn, operands);
29099 :
29100 : default:
29101 : return NULL;
29102 : }
29103 :
29104 : case AND:
29105 : switch (pattern537 (x2))
29106 : {
29107 : case 0:
29108 : if (!((
29109 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29110 : ((64 == 64 || TARGET_AVX512VL
29111 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29112 : && ix86_pre_reload_split ()
29113 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29114 : STRIP_UNARY (operands[4]))
29115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29116 : STRIP_UNARY (operands[4]))
29117 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29118 : STRIP_UNARY (operands[3]))
29119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29120 : STRIP_UNARY (operands[3])))) &&
29121 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29122 : (TARGET_AVX512F)) &&
29123 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29124 : ( 1)))
29125 : return NULL;
29126 : return gen_split_2398 (insn, operands);
29127 :
29128 : case 1:
29129 : if (!((
29130 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29131 : ((32 == 64 || TARGET_AVX512VL
29132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29133 : && ix86_pre_reload_split ()
29134 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29135 : STRIP_UNARY (operands[4]))
29136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29137 : STRIP_UNARY (operands[4]))
29138 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29139 : STRIP_UNARY (operands[3]))
29140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29141 : STRIP_UNARY (operands[3])))) &&
29142 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29143 : (TARGET_AVX)) &&
29144 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29145 : ( 1)))
29146 : return NULL;
29147 : return gen_split_2425 (insn, operands);
29148 :
29149 : case 2:
29150 : if (!(
29151 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29152 : ((16 == 64 || TARGET_AVX512VL
29153 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29154 : && ix86_pre_reload_split ()
29155 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29156 : STRIP_UNARY (operands[4]))
29157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29158 : STRIP_UNARY (operands[4]))
29159 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29160 : STRIP_UNARY (operands[3]))
29161 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29162 : STRIP_UNARY (operands[3])))) &&
29163 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29164 : ( 1)))
29165 : return NULL;
29166 : return gen_split_2452 (insn, operands);
29167 :
29168 : case 3:
29169 : if (!((
29170 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29171 : ((64 == 64 || TARGET_AVX512VL
29172 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29173 : && ix86_pre_reload_split ()
29174 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29175 : STRIP_UNARY (operands[4]))
29176 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29177 : STRIP_UNARY (operands[4]))
29178 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29179 : STRIP_UNARY (operands[3]))
29180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29181 : STRIP_UNARY (operands[3])))) &&
29182 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29183 : (TARGET_AVX512F)) &&
29184 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29185 : ( 1)))
29186 : return NULL;
29187 : return gen_split_2479 (insn, operands);
29188 :
29189 : case 4:
29190 : if (!((
29191 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29192 : ((32 == 64 || TARGET_AVX512VL
29193 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29194 : && ix86_pre_reload_split ()
29195 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29196 : STRIP_UNARY (operands[4]))
29197 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29198 : STRIP_UNARY (operands[4]))
29199 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29200 : STRIP_UNARY (operands[3]))
29201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29202 : STRIP_UNARY (operands[3])))) &&
29203 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29204 : (TARGET_AVX)) &&
29205 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29206 : ( 1)))
29207 : return NULL;
29208 : return gen_split_2506 (insn, operands);
29209 :
29210 : case 5:
29211 : if (!(
29212 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29213 : ((16 == 64 || TARGET_AVX512VL
29214 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29215 : && ix86_pre_reload_split ()
29216 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29217 : STRIP_UNARY (operands[4]))
29218 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29219 : STRIP_UNARY (operands[4]))
29220 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29221 : STRIP_UNARY (operands[3]))
29222 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29223 : STRIP_UNARY (operands[3])))) &&
29224 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29225 : ( 1)))
29226 : return NULL;
29227 : return gen_split_2533 (insn, operands);
29228 :
29229 : case 6:
29230 : if (!((
29231 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29232 : ((64 == 64 || TARGET_AVX512VL
29233 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29234 : && ix86_pre_reload_split ()
29235 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29236 : STRIP_UNARY (operands[4]))
29237 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29238 : STRIP_UNARY (operands[4]))
29239 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29240 : STRIP_UNARY (operands[3]))
29241 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29242 : STRIP_UNARY (operands[3])))) &&
29243 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29244 : (TARGET_AVX512F)) &&
29245 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29246 : ( 1)))
29247 : return NULL;
29248 : return gen_split_2560 (insn, operands);
29249 :
29250 : case 7:
29251 : if (!((
29252 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29253 : ((32 == 64 || TARGET_AVX512VL
29254 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29255 : && ix86_pre_reload_split ()
29256 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29257 : STRIP_UNARY (operands[4]))
29258 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29259 : STRIP_UNARY (operands[4]))
29260 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29261 : STRIP_UNARY (operands[3]))
29262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29263 : STRIP_UNARY (operands[3])))) &&
29264 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29265 : (TARGET_AVX)) &&
29266 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29267 : ( 1)))
29268 : return NULL;
29269 : return gen_split_2587 (insn, operands);
29270 :
29271 : case 8:
29272 : if (!(
29273 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29274 : ((16 == 64 || TARGET_AVX512VL
29275 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29276 : && ix86_pre_reload_split ()
29277 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29278 : STRIP_UNARY (operands[4]))
29279 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29280 : STRIP_UNARY (operands[4]))
29281 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29282 : STRIP_UNARY (operands[3]))
29283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29284 : STRIP_UNARY (operands[3])))) &&
29285 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29286 : ( 1)))
29287 : return NULL;
29288 : return gen_split_2614 (insn, operands);
29289 :
29290 : case 9:
29291 : if (!((
29292 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29293 : ((64 == 64 || TARGET_AVX512VL
29294 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29295 : && ix86_pre_reload_split ()
29296 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29297 : STRIP_UNARY (operands[4]))
29298 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29299 : STRIP_UNARY (operands[4]))
29300 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29301 : STRIP_UNARY (operands[3]))
29302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29303 : STRIP_UNARY (operands[3])))) &&
29304 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29305 : (TARGET_AVX512F)) &&
29306 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29307 : ( 1)))
29308 : return NULL;
29309 : return gen_split_2641 (insn, operands);
29310 :
29311 : case 10:
29312 : if (!((
29313 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29314 : ((32 == 64 || TARGET_AVX512VL
29315 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29316 : && ix86_pre_reload_split ()
29317 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29318 : STRIP_UNARY (operands[4]))
29319 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29320 : STRIP_UNARY (operands[4]))
29321 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29322 : STRIP_UNARY (operands[3]))
29323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29324 : STRIP_UNARY (operands[3])))) &&
29325 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29326 : (TARGET_AVX)) &&
29327 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29328 : ( 1)))
29329 : return NULL;
29330 : return gen_split_2668 (insn, operands);
29331 :
29332 : case 11:
29333 : if (!(
29334 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29335 : ((16 == 64 || TARGET_AVX512VL
29336 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29337 : && ix86_pre_reload_split ()
29338 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29339 : STRIP_UNARY (operands[4]))
29340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29341 : STRIP_UNARY (operands[4]))
29342 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29343 : STRIP_UNARY (operands[3]))
29344 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29345 : STRIP_UNARY (operands[3])))) &&
29346 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29347 : ( 1)))
29348 : return NULL;
29349 : return gen_split_2695 (insn, operands);
29350 :
29351 : default:
29352 : return NULL;
29353 : }
29354 :
29355 : case IOR:
29356 : switch (pattern537 (x2))
29357 : {
29358 : case 0:
29359 : if (!((
29360 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29361 : ((64 == 64 || TARGET_AVX512VL
29362 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29363 : && ix86_pre_reload_split ()
29364 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29365 : STRIP_UNARY (operands[4]))
29366 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29367 : STRIP_UNARY (operands[4]))
29368 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29369 : STRIP_UNARY (operands[3]))
29370 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29371 : STRIP_UNARY (operands[3])))) &&
29372 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29373 : (TARGET_AVX512F)) &&
29374 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29375 : ( 1)))
29376 : return NULL;
29377 : return gen_split_2401 (insn, operands);
29378 :
29379 : case 1:
29380 : if (!((
29381 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29382 : ((32 == 64 || TARGET_AVX512VL
29383 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29384 : && ix86_pre_reload_split ()
29385 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29386 : STRIP_UNARY (operands[4]))
29387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29388 : STRIP_UNARY (operands[4]))
29389 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29390 : STRIP_UNARY (operands[3]))
29391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29392 : STRIP_UNARY (operands[3])))) &&
29393 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29394 : (TARGET_AVX)) &&
29395 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29396 : ( 1)))
29397 : return NULL;
29398 : return gen_split_2428 (insn, operands);
29399 :
29400 : case 2:
29401 : if (!(
29402 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29403 : ((16 == 64 || TARGET_AVX512VL
29404 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29405 : && ix86_pre_reload_split ()
29406 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29407 : STRIP_UNARY (operands[4]))
29408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29409 : STRIP_UNARY (operands[4]))
29410 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29411 : STRIP_UNARY (operands[3]))
29412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29413 : STRIP_UNARY (operands[3])))) &&
29414 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29415 : ( 1)))
29416 : return NULL;
29417 : return gen_split_2455 (insn, operands);
29418 :
29419 : case 3:
29420 : if (!((
29421 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29422 : ((64 == 64 || TARGET_AVX512VL
29423 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29424 : && ix86_pre_reload_split ()
29425 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29426 : STRIP_UNARY (operands[4]))
29427 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29428 : STRIP_UNARY (operands[4]))
29429 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29430 : STRIP_UNARY (operands[3]))
29431 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29432 : STRIP_UNARY (operands[3])))) &&
29433 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29434 : (TARGET_AVX512F)) &&
29435 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29436 : ( 1)))
29437 : return NULL;
29438 : return gen_split_2482 (insn, operands);
29439 :
29440 : case 4:
29441 : if (!((
29442 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29443 : ((32 == 64 || TARGET_AVX512VL
29444 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29445 : && ix86_pre_reload_split ()
29446 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29447 : STRIP_UNARY (operands[4]))
29448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29449 : STRIP_UNARY (operands[4]))
29450 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29451 : STRIP_UNARY (operands[3]))
29452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29453 : STRIP_UNARY (operands[3])))) &&
29454 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29455 : (TARGET_AVX)) &&
29456 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29457 : ( 1)))
29458 : return NULL;
29459 : return gen_split_2509 (insn, operands);
29460 :
29461 : case 5:
29462 : if (!(
29463 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29464 : ((16 == 64 || TARGET_AVX512VL
29465 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29466 : && ix86_pre_reload_split ()
29467 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29468 : STRIP_UNARY (operands[4]))
29469 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29470 : STRIP_UNARY (operands[4]))
29471 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29472 : STRIP_UNARY (operands[3]))
29473 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29474 : STRIP_UNARY (operands[3])))) &&
29475 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29476 : ( 1)))
29477 : return NULL;
29478 : return gen_split_2536 (insn, operands);
29479 :
29480 : case 6:
29481 : if (!((
29482 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29483 : ((64 == 64 || TARGET_AVX512VL
29484 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29485 : && ix86_pre_reload_split ()
29486 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29487 : STRIP_UNARY (operands[4]))
29488 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29489 : STRIP_UNARY (operands[4]))
29490 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29491 : STRIP_UNARY (operands[3]))
29492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29493 : STRIP_UNARY (operands[3])))) &&
29494 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29495 : (TARGET_AVX512F)) &&
29496 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29497 : ( 1)))
29498 : return NULL;
29499 : return gen_split_2563 (insn, operands);
29500 :
29501 : case 7:
29502 : if (!((
29503 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29504 : ((32 == 64 || TARGET_AVX512VL
29505 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29506 : && ix86_pre_reload_split ()
29507 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29508 : STRIP_UNARY (operands[4]))
29509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29510 : STRIP_UNARY (operands[4]))
29511 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29512 : STRIP_UNARY (operands[3]))
29513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29514 : STRIP_UNARY (operands[3])))) &&
29515 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29516 : (TARGET_AVX)) &&
29517 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29518 : ( 1)))
29519 : return NULL;
29520 : return gen_split_2590 (insn, operands);
29521 :
29522 : case 8:
29523 : if (!(
29524 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29525 : ((16 == 64 || TARGET_AVX512VL
29526 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29527 : && ix86_pre_reload_split ()
29528 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29529 : STRIP_UNARY (operands[4]))
29530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29531 : STRIP_UNARY (operands[4]))
29532 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29533 : STRIP_UNARY (operands[3]))
29534 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29535 : STRIP_UNARY (operands[3])))) &&
29536 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29537 : ( 1)))
29538 : return NULL;
29539 : return gen_split_2617 (insn, operands);
29540 :
29541 : case 9:
29542 : if (!((
29543 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29544 : ((64 == 64 || TARGET_AVX512VL
29545 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29546 : && ix86_pre_reload_split ()
29547 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29548 : STRIP_UNARY (operands[4]))
29549 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29550 : STRIP_UNARY (operands[4]))
29551 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29552 : STRIP_UNARY (operands[3]))
29553 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29554 : STRIP_UNARY (operands[3])))) &&
29555 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29556 : (TARGET_AVX512F)) &&
29557 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29558 : ( 1)))
29559 : return NULL;
29560 : return gen_split_2644 (insn, operands);
29561 :
29562 : case 10:
29563 : if (!((
29564 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29565 : ((32 == 64 || TARGET_AVX512VL
29566 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29567 : && ix86_pre_reload_split ()
29568 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29569 : STRIP_UNARY (operands[4]))
29570 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29571 : STRIP_UNARY (operands[4]))
29572 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29573 : STRIP_UNARY (operands[3]))
29574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29575 : STRIP_UNARY (operands[3])))) &&
29576 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29577 : (TARGET_AVX)) &&
29578 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29579 : ( 1)))
29580 : return NULL;
29581 : return gen_split_2671 (insn, operands);
29582 :
29583 : case 11:
29584 : if (!(
29585 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29586 : ((16 == 64 || TARGET_AVX512VL
29587 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29588 : && ix86_pre_reload_split ()
29589 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29590 : STRIP_UNARY (operands[4]))
29591 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29592 : STRIP_UNARY (operands[4]))
29593 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29594 : STRIP_UNARY (operands[3]))
29595 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29596 : STRIP_UNARY (operands[3])))) &&
29597 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29598 : ( 1)))
29599 : return NULL;
29600 : return gen_split_2698 (insn, operands);
29601 :
29602 : default:
29603 : return NULL;
29604 : }
29605 :
29606 : case XOR:
29607 : switch (pattern537 (x2))
29608 : {
29609 : case 0:
29610 : if (!((
29611 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29612 : ((64 == 64 || TARGET_AVX512VL
29613 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29614 : && ix86_pre_reload_split ()
29615 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29616 : STRIP_UNARY (operands[4]))
29617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29618 : STRIP_UNARY (operands[4]))
29619 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29620 : STRIP_UNARY (operands[3]))
29621 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29622 : STRIP_UNARY (operands[3])))) &&
29623 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29624 : (TARGET_AVX512F)) &&
29625 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29626 : ( 1)))
29627 : return NULL;
29628 : return gen_split_2404 (insn, operands);
29629 :
29630 : case 1:
29631 : if (!((
29632 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29633 : ((32 == 64 || TARGET_AVX512VL
29634 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29635 : && ix86_pre_reload_split ()
29636 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29637 : STRIP_UNARY (operands[4]))
29638 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29639 : STRIP_UNARY (operands[4]))
29640 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29641 : STRIP_UNARY (operands[3]))
29642 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29643 : STRIP_UNARY (operands[3])))) &&
29644 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29645 : (TARGET_AVX)) &&
29646 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29647 : ( 1)))
29648 : return NULL;
29649 : return gen_split_2431 (insn, operands);
29650 :
29651 : case 2:
29652 : if (!(
29653 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29654 : ((16 == 64 || TARGET_AVX512VL
29655 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29656 : && ix86_pre_reload_split ()
29657 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29658 : STRIP_UNARY (operands[4]))
29659 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29660 : STRIP_UNARY (operands[4]))
29661 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29662 : STRIP_UNARY (operands[3]))
29663 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29664 : STRIP_UNARY (operands[3])))) &&
29665 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29666 : ( 1)))
29667 : return NULL;
29668 : return gen_split_2458 (insn, operands);
29669 :
29670 : case 3:
29671 : if (!((
29672 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29673 : ((64 == 64 || TARGET_AVX512VL
29674 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29675 : && ix86_pre_reload_split ()
29676 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29677 : STRIP_UNARY (operands[4]))
29678 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29679 : STRIP_UNARY (operands[4]))
29680 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29681 : STRIP_UNARY (operands[3]))
29682 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29683 : STRIP_UNARY (operands[3])))) &&
29684 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29685 : (TARGET_AVX512F)) &&
29686 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29687 : ( 1)))
29688 : return NULL;
29689 : return gen_split_2485 (insn, operands);
29690 :
29691 : case 4:
29692 : if (!((
29693 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29694 : ((32 == 64 || TARGET_AVX512VL
29695 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29696 : && ix86_pre_reload_split ()
29697 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29698 : STRIP_UNARY (operands[4]))
29699 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29700 : STRIP_UNARY (operands[4]))
29701 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29702 : STRIP_UNARY (operands[3]))
29703 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29704 : STRIP_UNARY (operands[3])))) &&
29705 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29706 : (TARGET_AVX)) &&
29707 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29708 : ( 1)))
29709 : return NULL;
29710 : return gen_split_2512 (insn, operands);
29711 :
29712 : case 5:
29713 : if (!(
29714 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29715 : ((16 == 64 || TARGET_AVX512VL
29716 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29717 : && ix86_pre_reload_split ()
29718 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29719 : STRIP_UNARY (operands[4]))
29720 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29721 : STRIP_UNARY (operands[4]))
29722 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29723 : STRIP_UNARY (operands[3]))
29724 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29725 : STRIP_UNARY (operands[3])))) &&
29726 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29727 : ( 1)))
29728 : return NULL;
29729 : return gen_split_2539 (insn, operands);
29730 :
29731 : case 6:
29732 : if (!((
29733 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29734 : ((64 == 64 || TARGET_AVX512VL
29735 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29736 : && ix86_pre_reload_split ()
29737 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29738 : STRIP_UNARY (operands[4]))
29739 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29740 : STRIP_UNARY (operands[4]))
29741 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29742 : STRIP_UNARY (operands[3]))
29743 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29744 : STRIP_UNARY (operands[3])))) &&
29745 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29746 : (TARGET_AVX512F)) &&
29747 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29748 : ( 1)))
29749 : return NULL;
29750 : return gen_split_2566 (insn, operands);
29751 :
29752 : case 7:
29753 : if (!((
29754 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29755 : ((32 == 64 || TARGET_AVX512VL
29756 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29757 : && ix86_pre_reload_split ()
29758 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29759 : STRIP_UNARY (operands[4]))
29760 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29761 : STRIP_UNARY (operands[4]))
29762 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29763 : STRIP_UNARY (operands[3]))
29764 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29765 : STRIP_UNARY (operands[3])))) &&
29766 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29767 : (TARGET_AVX)) &&
29768 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29769 : ( 1)))
29770 : return NULL;
29771 : return gen_split_2593 (insn, operands);
29772 :
29773 : case 8:
29774 : if (!(
29775 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29776 : ((16 == 64 || TARGET_AVX512VL
29777 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29778 : && ix86_pre_reload_split ()
29779 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29780 : STRIP_UNARY (operands[4]))
29781 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29782 : STRIP_UNARY (operands[4]))
29783 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29784 : STRIP_UNARY (operands[3]))
29785 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29786 : STRIP_UNARY (operands[3])))) &&
29787 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29788 : ( 1)))
29789 : return NULL;
29790 : return gen_split_2620 (insn, operands);
29791 :
29792 : case 9:
29793 : if (!((
29794 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29795 : ((64 == 64 || TARGET_AVX512VL
29796 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29797 : && ix86_pre_reload_split ()
29798 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29799 : STRIP_UNARY (operands[4]))
29800 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29801 : STRIP_UNARY (operands[4]))
29802 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29803 : STRIP_UNARY (operands[3]))
29804 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29805 : STRIP_UNARY (operands[3])))) &&
29806 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29807 : (TARGET_AVX512F)) &&
29808 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29809 : ( 1)))
29810 : return NULL;
29811 : return gen_split_2647 (insn, operands);
29812 :
29813 : case 10:
29814 : if (!((
29815 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29816 : ((32 == 64 || TARGET_AVX512VL
29817 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29818 : && ix86_pre_reload_split ()
29819 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29820 : STRIP_UNARY (operands[4]))
29821 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29822 : STRIP_UNARY (operands[4]))
29823 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29824 : STRIP_UNARY (operands[3]))
29825 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29826 : STRIP_UNARY (operands[3])))) &&
29827 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29828 : (TARGET_AVX)) &&
29829 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29830 : ( 1)))
29831 : return NULL;
29832 : return gen_split_2674 (insn, operands);
29833 :
29834 : case 11:
29835 : if (!(
29836 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29837 : ((16 == 64 || TARGET_AVX512VL
29838 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29839 : && ix86_pre_reload_split ()
29840 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29841 : STRIP_UNARY (operands[4]))
29842 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29843 : STRIP_UNARY (operands[4]))
29844 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29845 : STRIP_UNARY (operands[3]))
29846 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29847 : STRIP_UNARY (operands[3])))) &&
29848 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29849 : ( 1)))
29850 : return NULL;
29851 : return gen_split_2701 (insn, operands);
29852 :
29853 : default:
29854 : return NULL;
29855 : }
29856 :
29857 : default:
29858 : return NULL;
29859 : }
29860 :
29861 : case XOR:
29862 : return split_62 (x1, insn);
29863 :
29864 : case VEC_DUPLICATE:
29865 : x4 = XEXP (x3, 0);
29866 : if (GET_CODE (x4) != NOT)
29867 : return NULL;
29868 : x6 = XEXP (x4, 0);
29869 : operands[1] = x6;
29870 : x5 = XEXP (x2, 1);
29871 : operands[2] = x5;
29872 : switch (GET_MODE (operands[0]))
29873 : {
29874 : case E_V4SImode:
29875 : if (pattern1073 (x2,
29876 : E_V4SImode,
29877 : E_SImode) != 0)
29878 : return NULL;
29879 : if (register_operand (operands[1], E_SImode)
29880 : &&
29881 : #line 18955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29882 : (TARGET_SSE))
29883 : return gen_split_3436 (insn, operands);
29884 : if (!nonimmediate_operand (operands[1], E_SImode)
29885 : || !
29886 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29887 : (TARGET_AVX2))
29888 : return NULL;
29889 : return gen_split_3446 (insn, operands);
29890 :
29891 : case E_V2DImode:
29892 : if (pattern1073 (x2,
29893 : E_V2DImode,
29894 : E_DImode) != 0)
29895 : return NULL;
29896 : if (register_operand (operands[1], E_DImode)
29897 : &&
29898 : #line 18955 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29899 : (TARGET_SSE))
29900 : return gen_split_3437 (insn, operands);
29901 : if (!nonimmediate_operand (operands[1], E_DImode)
29902 : || !
29903 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29904 : (TARGET_AVX2))
29905 : return NULL;
29906 : return gen_split_3449 (insn, operands);
29907 :
29908 : case E_V64QImode:
29909 : if (pattern604 (x2,
29910 : E_V64QImode,
29911 : E_QImode) != 0
29912 : || !(
29913 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29914 : (TARGET_AVX2) &&
29915 : #line 572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29916 : (TARGET_AVX512BW)))
29917 : return NULL;
29918 : return gen_split_3438 (insn, operands);
29919 :
29920 : case E_V32QImode:
29921 : if (pattern604 (x2,
29922 : E_V32QImode,
29923 : E_QImode) != 0
29924 : || !
29925 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29926 : (TARGET_AVX2))
29927 : return NULL;
29928 : return gen_split_3439 (insn, operands);
29929 :
29930 : case E_V16QImode:
29931 : if (pattern604 (x2,
29932 : E_V16QImode,
29933 : E_QImode) != 0
29934 : || !
29935 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29936 : (TARGET_AVX2))
29937 : return NULL;
29938 : return gen_split_3440 (insn, operands);
29939 :
29940 : case E_V32HImode:
29941 : if (pattern604 (x2,
29942 : E_V32HImode,
29943 : E_HImode) != 0
29944 : || !(
29945 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29946 : (TARGET_AVX2) &&
29947 : #line 573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29948 : (TARGET_AVX512BW)))
29949 : return NULL;
29950 : return gen_split_3441 (insn, operands);
29951 :
29952 : case E_V16HImode:
29953 : if (pattern604 (x2,
29954 : E_V16HImode,
29955 : E_HImode) != 0
29956 : || !
29957 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29958 : (TARGET_AVX2))
29959 : return NULL;
29960 : return gen_split_3442 (insn, operands);
29961 :
29962 : case E_V8HImode:
29963 : if (pattern604 (x2,
29964 : E_V8HImode,
29965 : E_HImode) != 0
29966 : || !
29967 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29968 : (TARGET_AVX2))
29969 : return NULL;
29970 : return gen_split_3443 (insn, operands);
29971 :
29972 : case E_V16SImode:
29973 : if (pattern604 (x2,
29974 : E_V16SImode,
29975 : E_SImode) != 0
29976 : || !(
29977 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29978 : (TARGET_AVX2) &&
29979 : #line 574 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29980 : (TARGET_AVX512F)))
29981 : return NULL;
29982 : return gen_split_3444 (insn, operands);
29983 :
29984 : case E_V8SImode:
29985 : if (pattern604 (x2,
29986 : E_V8SImode,
29987 : E_SImode) != 0
29988 : || !
29989 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29990 : (TARGET_AVX2))
29991 : return NULL;
29992 : return gen_split_3445 (insn, operands);
29993 :
29994 : case E_V8DImode:
29995 : if (pattern604 (x2,
29996 : E_V8DImode,
29997 : E_DImode) != 0
29998 : || !(
29999 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30000 : (TARGET_AVX2) &&
30001 : #line 575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30002 : (TARGET_AVX512F)))
30003 : return NULL;
30004 : return gen_split_3447 (insn, operands);
30005 :
30006 : case E_V4DImode:
30007 : if (pattern604 (x2,
30008 : E_V4DImode,
30009 : E_DImode) != 0
30010 : || !
30011 : #line 18971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30012 : (TARGET_AVX2))
30013 : return NULL;
30014 : return gen_split_3448 (insn, operands);
30015 :
30016 : default:
30017 : return NULL;
30018 : }
30019 :
30020 : default:
30021 : return NULL;
30022 : }
30023 : }
30024 :
30025 : rtx_insn *
30026 : split_85 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30027 : {
30028 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30029 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30030 : rtx x10, x11, x12, x13;
30031 : rtx_insn *res ATTRIBUTE_UNUSED;
30032 : x2 = XEXP (x1, 1);
30033 : x3 = XEXP (x2, 0);
30034 : switch (GET_CODE (x3))
30035 : {
30036 : case UNSPEC:
30037 : if (XVECLEN (x3, 0) != 1
30038 : || XINT (x3, 1) != 178)
30039 : return NULL;
30040 : x4 = XEXP (x2, 2);
30041 : if (GET_CODE (x4) != AND
30042 : || GET_MODE (x4) != E_QImode)
30043 : return NULL;
30044 : x5 = XEXP (x4, 1);
30045 : if (GET_CODE (x5) != CONST_INT)
30046 : return NULL;
30047 : x6 = XVECEXP (x3, 0, 0);
30048 : operands[1] = x6;
30049 : x7 = XEXP (x2, 1);
30050 : operands[2] = x7;
30051 : switch (pattern1111 (x2))
30052 : {
30053 : case 0:
30054 : if (!((
30055 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30056 : (TARGET_AVX512F) &&
30057 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30058 : (TARGET_AVX512VL)) &&
30059 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30060 : ( 1)))
30061 : return NULL;
30062 : return gen_split_1212 (insn, operands);
30063 :
30064 : case 1:
30065 : if (!((
30066 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30067 : (TARGET_AVX512F) &&
30068 : #line 521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30069 : (TARGET_AVX512VL)) &&
30070 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30071 : ( 1)))
30072 : return NULL;
30073 : return gen_split_1213 (insn, operands);
30074 :
30075 : case 2:
30076 : if (!((
30077 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30078 : (TARGET_AVX512F) &&
30079 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30080 : (TARGET_AVX512VL)) &&
30081 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30082 : ( 1)))
30083 : return NULL;
30084 : return gen_split_1214 (insn, operands);
30085 :
30086 : case 3:
30087 : if (!((
30088 : #line 1636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30089 : (TARGET_AVX512F) &&
30090 : #line 522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30091 : (TARGET_AVX512VL)) &&
30092 : #line 1638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30093 : ( 1)))
30094 : return NULL;
30095 : return gen_split_1215 (insn, operands);
30096 :
30097 : case 4:
30098 : if (!((
30099 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30100 : (TARGET_AVX512F) &&
30101 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30102 : (TARGET_AVX512VL)) &&
30103 : #line 1657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30104 : ( 1)))
30105 : return NULL;
30106 : return gen_split_1216 (insn, operands);
30107 :
30108 : case 5:
30109 : if (!((
30110 : #line 1655 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30111 : (TARGET_AVX512F) &&
30112 : #line 528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30113 : (TARGET_AVX512VL)) &&
30114 : #line 1657 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30115 : ( 1)))
30116 : return NULL;
30117 : return gen_split_1217 (insn, operands);
30118 :
30119 : default:
30120 : return NULL;
30121 : }
30122 :
30123 : case MINUS:
30124 : x7 = XEXP (x2, 1);
30125 : if (GET_CODE (x7) != PLUS)
30126 : return NULL;
30127 : operands[6] = x2;
30128 : x8 = XEXP (x3, 0);
30129 : operands[1] = x8;
30130 : x9 = XEXP (x3, 1);
30131 : operands[2] = x9;
30132 : x10 = XEXP (x7, 0);
30133 : operands[3] = x10;
30134 : x11 = XEXP (x7, 1);
30135 : operands[4] = x11;
30136 : x4 = XEXP (x2, 2);
30137 : operands[5] = x4;
30138 : if (!const_int_operand (operands[5], E_VOIDmode))
30139 : return NULL;
30140 : switch (GET_MODE (operands[0]))
30141 : {
30142 : case E_V8SFmode:
30143 : if (pattern1456 (x2,
30144 : E_V8SFmode) != 0
30145 : || !(
30146 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30147 : (TARGET_SSE3
30148 : && can_create_pseudo_p ()
30149 : && ((rtx_equal_p (operands[1], operands[3])
30150 : && rtx_equal_p (operands[2], operands[4]))
30151 : || (rtx_equal_p (operands[1], operands[4])
30152 : && rtx_equal_p (operands[2], operands[3])))) &&
30153 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30154 : (TARGET_AVX)))
30155 : return NULL;
30156 : return gen_split_1358 (insn, operands);
30157 :
30158 : case E_V4SFmode:
30159 : if (pattern1456 (x2,
30160 : E_V4SFmode) != 0
30161 : || !
30162 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30163 : (TARGET_SSE3
30164 : && can_create_pseudo_p ()
30165 : && ((rtx_equal_p (operands[1], operands[3])
30166 : && rtx_equal_p (operands[2], operands[4]))
30167 : || (rtx_equal_p (operands[1], operands[4])
30168 : && rtx_equal_p (operands[2], operands[3])))))
30169 : return NULL;
30170 : return gen_split_1359 (insn, operands);
30171 :
30172 : case E_V4DFmode:
30173 : if (pattern1456 (x2,
30174 : E_V4DFmode) != 0
30175 : || !(
30176 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30177 : (TARGET_SSE3
30178 : && can_create_pseudo_p ()
30179 : && ((rtx_equal_p (operands[1], operands[3])
30180 : && rtx_equal_p (operands[2], operands[4]))
30181 : || (rtx_equal_p (operands[1], operands[4])
30182 : && rtx_equal_p (operands[2], operands[3])))) &&
30183 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30184 : (TARGET_AVX)))
30185 : return NULL;
30186 : return gen_split_1360 (insn, operands);
30187 :
30188 : case E_V2DFmode:
30189 : if (pattern1456 (x2,
30190 : E_V2DFmode) != 0
30191 : || !(
30192 : #line 3607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30193 : (TARGET_SSE3
30194 : && can_create_pseudo_p ()
30195 : && ((rtx_equal_p (operands[1], operands[3])
30196 : && rtx_equal_p (operands[2], operands[4]))
30197 : || (rtx_equal_p (operands[1], operands[4])
30198 : && rtx_equal_p (operands[2], operands[3])))) &&
30199 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30200 : (TARGET_SSE2)))
30201 : return NULL;
30202 : return gen_split_1361 (insn, operands);
30203 :
30204 : default:
30205 : return NULL;
30206 : }
30207 :
30208 : case PLUS:
30209 : x7 = XEXP (x2, 1);
30210 : if (GET_CODE (x7) != MINUS)
30211 : return NULL;
30212 : operands[6] = x2;
30213 : x8 = XEXP (x3, 0);
30214 : operands[1] = x8;
30215 : x9 = XEXP (x3, 1);
30216 : operands[2] = x9;
30217 : x10 = XEXP (x7, 0);
30218 : operands[3] = x10;
30219 : x11 = XEXP (x7, 1);
30220 : operands[4] = x11;
30221 : x4 = XEXP (x2, 2);
30222 : operands[5] = x4;
30223 : if (!const_int_operand (operands[5], E_VOIDmode))
30224 : return NULL;
30225 : switch (GET_MODE (operands[0]))
30226 : {
30227 : case E_V8SFmode:
30228 : if (pattern1457 (x2,
30229 : E_V8SFmode) != 0
30230 : || !(
30231 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30232 : (TARGET_SSE3
30233 : && can_create_pseudo_p ()
30234 : && ((rtx_equal_p (operands[1], operands[3])
30235 : && rtx_equal_p (operands[2], operands[4]))
30236 : || (rtx_equal_p (operands[1], operands[4])
30237 : && rtx_equal_p (operands[2], operands[3])))) &&
30238 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30239 : (TARGET_AVX)))
30240 : return NULL;
30241 : return gen_split_1362 (insn, operands);
30242 :
30243 : case E_V4SFmode:
30244 : if (pattern1457 (x2,
30245 : E_V4SFmode) != 0
30246 : || !
30247 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30248 : (TARGET_SSE3
30249 : && can_create_pseudo_p ()
30250 : && ((rtx_equal_p (operands[1], operands[3])
30251 : && rtx_equal_p (operands[2], operands[4]))
30252 : || (rtx_equal_p (operands[1], operands[4])
30253 : && rtx_equal_p (operands[2], operands[3])))))
30254 : return NULL;
30255 : return gen_split_1363 (insn, operands);
30256 :
30257 : case E_V4DFmode:
30258 : if (pattern1457 (x2,
30259 : E_V4DFmode) != 0
30260 : || !(
30261 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30262 : (TARGET_SSE3
30263 : && can_create_pseudo_p ()
30264 : && ((rtx_equal_p (operands[1], operands[3])
30265 : && rtx_equal_p (operands[2], operands[4]))
30266 : || (rtx_equal_p (operands[1], operands[4])
30267 : && rtx_equal_p (operands[2], operands[3])))) &&
30268 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30269 : (TARGET_AVX)))
30270 : return NULL;
30271 : return gen_split_1364 (insn, operands);
30272 :
30273 : case E_V2DFmode:
30274 : if (pattern1457 (x2,
30275 : E_V2DFmode) != 0
30276 : || !(
30277 : #line 3629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30278 : (TARGET_SSE3
30279 : && can_create_pseudo_p ()
30280 : && ((rtx_equal_p (operands[1], operands[3])
30281 : && rtx_equal_p (operands[2], operands[4]))
30282 : || (rtx_equal_p (operands[1], operands[4])
30283 : && rtx_equal_p (operands[2], operands[3])))) &&
30284 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30285 : (TARGET_SSE2)))
30286 : return NULL;
30287 : return gen_split_1365 (insn, operands);
30288 :
30289 : default:
30290 : return NULL;
30291 : }
30292 :
30293 : case CONST_INT:
30294 : case CONST_DOUBLE:
30295 : case CONST_VECTOR:
30296 : case REG:
30297 : case SUBREG:
30298 : case MEM:
30299 : return split_61 (x1, insn);
30300 :
30301 : case VEC_DUPLICATE:
30302 : x8 = XEXP (x3, 0);
30303 : switch (GET_CODE (x8))
30304 : {
30305 : case VEC_SELECT:
30306 : x12 = XEXP (x8, 1);
30307 : if (GET_CODE (x12) != PARALLEL
30308 : || XVECLEN (x12, 0) != 1)
30309 : return NULL;
30310 : x13 = XVECEXP (x12, 0, 0);
30311 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30312 : return NULL;
30313 : x4 = XEXP (x2, 2);
30314 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
30315 : return NULL;
30316 : switch (pattern1014 (x2))
30317 : {
30318 : case 0:
30319 : if (!(
30320 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30321 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30322 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30323 : ( 1)))
30324 : return NULL;
30325 : return gen_split_1622 (insn, operands);
30326 :
30327 : case 1:
30328 : if (!(
30329 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30330 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30331 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30332 : ( 1)))
30333 : return NULL;
30334 : return gen_split_1623 (insn, operands);
30335 :
30336 : case 2:
30337 : if (!(
30338 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30339 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30340 : #line 12368 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30341 : ( 1)))
30342 : return NULL;
30343 : return gen_split_1624 (insn, operands);
30344 :
30345 : default:
30346 : return NULL;
30347 : }
30348 :
30349 : case ZERO_EXTEND:
30350 : switch (pattern315 (x2))
30351 : {
30352 : case 0:
30353 : if (!((
30354 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30355 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30356 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30357 : (TARGET_AVX512F)) &&
30358 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30359 : ( 1)))
30360 : return NULL;
30361 : return gen_split_1625 (insn, operands);
30362 :
30363 : case 1:
30364 : if (!(
30365 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30366 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30367 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30368 : ( 1)))
30369 : return NULL;
30370 : return gen_split_1626 (insn, operands);
30371 :
30372 : case 2:
30373 : if (!(
30374 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30375 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30376 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30377 : ( 1)))
30378 : return NULL;
30379 : return gen_split_1627 (insn, operands);
30380 :
30381 : case 3:
30382 : if (!((
30383 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30384 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30385 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30386 : (TARGET_AVX512F)) &&
30387 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30388 : ( 1)))
30389 : return NULL;
30390 : return gen_split_1628 (insn, operands);
30391 :
30392 : case 4:
30393 : if (!((
30394 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30395 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30396 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30397 : (TARGET_AVX512F)) &&
30398 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30399 : ( 1)))
30400 : return NULL;
30401 : return gen_split_1632 (insn, operands);
30402 :
30403 : case 5:
30404 : if (!(
30405 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30406 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30407 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30408 : ( 1)))
30409 : return NULL;
30410 : return gen_split_1629 (insn, operands);
30411 :
30412 : case 6:
30413 : if (!((
30414 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30415 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30416 : #line 611 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30417 : (TARGET_AVX)) &&
30418 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30419 : ( 1)))
30420 : return NULL;
30421 : return gen_split_1633 (insn, operands);
30422 :
30423 : case 7:
30424 : if (!(
30425 : #line 12406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30426 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()) &&
30427 : #line 12408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30428 : ( 1)))
30429 : return NULL;
30430 : return gen_split_1630 (insn, operands);
30431 :
30432 : case 8:
30433 : if (!(
30434 : #line 12520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30435 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30436 : #line 12522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30437 : ( 1)))
30438 : return NULL;
30439 : return gen_split_1634 (insn, operands);
30440 :
30441 : default:
30442 : return NULL;
30443 : }
30444 :
30445 : case CONST_INT:
30446 : case CONST_WIDE_INT:
30447 : case CONST_POLY_INT:
30448 : case CONST_FIXED:
30449 : case CONST_DOUBLE:
30450 : case CONST_VECTOR:
30451 : case CONST:
30452 : case REG:
30453 : case SUBREG:
30454 : case LABEL_REF:
30455 : case SYMBOL_REF:
30456 : case HIGH:
30457 : x7 = XEXP (x2, 1);
30458 : switch (GET_CODE (x7))
30459 : {
30460 : case SUBREG:
30461 : case MEM:
30462 : if (!rtx_equal_p (x7, operands[0]))
30463 : return NULL;
30464 : x4 = XEXP (x2, 2);
30465 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
30466 : return NULL;
30467 : operands[1] = x8;
30468 : switch (GET_MODE (operands[0]))
30469 : {
30470 : case E_V4SImode:
30471 : if (pattern1196 (x2,
30472 : E_SImode,
30473 : E_V4SImode) != 0
30474 : || !
30475 : #line 12596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30476 : (TARGET_SSE && reload_completed))
30477 : return NULL;
30478 : return gen_split_1636 (insn, operands);
30479 :
30480 : case E_V4SFmode:
30481 : if (pattern1196 (x2,
30482 : E_SFmode,
30483 : E_V4SFmode) != 0
30484 : || !
30485 : #line 12596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30486 : (TARGET_SSE && reload_completed))
30487 : return NULL;
30488 : return gen_split_1637 (insn, operands);
30489 :
30490 : default:
30491 : return NULL;
30492 : }
30493 :
30494 : case REG:
30495 : operands[1] = x7;
30496 : operands[2] = x8;
30497 : x4 = XEXP (x2, 2);
30498 : operands[3] = x4;
30499 : if (!const_int_operand (operands[3], E_SImode))
30500 : return NULL;
30501 : switch (GET_MODE (operands[0]))
30502 : {
30503 : case E_V8HImode:
30504 : if (pattern1072 (x2,
30505 : E_V8HImode,
30506 : E_HImode) != 0
30507 : || !
30508 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30509 : (TARGET_AVX2 && reload_completed
30510 : && INTVAL (operands[3]) > 1
30511 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
30512 : < GET_MODE_NUNITS (V8HImode))))
30513 : return NULL;
30514 : return gen_split_3474 (insn, operands);
30515 :
30516 : case E_V8HFmode:
30517 : if (pattern1072 (x2,
30518 : E_V8HFmode,
30519 : E_HFmode) != 0
30520 : || !
30521 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30522 : (TARGET_AVX2 && reload_completed
30523 : && INTVAL (operands[3]) > 1
30524 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
30525 : < GET_MODE_NUNITS (V8HFmode))))
30526 : return NULL;
30527 : return gen_split_3475 (insn, operands);
30528 :
30529 : case E_V8BFmode:
30530 : if (pattern1072 (x2,
30531 : E_V8BFmode,
30532 : E_BFmode) != 0
30533 : || !
30534 : #line 20287 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30535 : (TARGET_AVX2 && reload_completed
30536 : && INTVAL (operands[3]) > 1
30537 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
30538 : < GET_MODE_NUNITS (V8BFmode))))
30539 : return NULL;
30540 : return gen_split_3476 (insn, operands);
30541 :
30542 : default:
30543 : return NULL;
30544 : }
30545 :
30546 : default:
30547 : return NULL;
30548 : }
30549 :
30550 : default:
30551 : return NULL;
30552 : }
30553 :
30554 : case SIGN_EXTEND:
30555 : switch (pattern415 (x2))
30556 : {
30557 : case 0:
30558 : if (!(
30559 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30560 : (TARGET_AVX512VL && TARGET_AVX512BW
30561 : && ix86_pre_reload_split ()) &&
30562 : #line 24640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30563 : ( 1)))
30564 : return NULL;
30565 : return gen_split_3610 (insn, operands);
30566 :
30567 : case 1:
30568 : if (!(
30569 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30570 : (TARGET_AVX512VL
30571 : && ix86_pre_reload_split ()) &&
30572 : #line 24818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30573 : ( 1)))
30574 : return NULL;
30575 : return gen_split_3618 (insn, operands);
30576 :
30577 : case 2:
30578 : if (!(
30579 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30580 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
30581 : #line 25261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30582 : ( 1)))
30583 : return NULL;
30584 : return gen_split_3644 (insn, operands);
30585 :
30586 : case 3:
30587 : if (!(
30588 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30589 : (TARGET_AVX512VL
30590 : && ix86_pre_reload_split ()) &&
30591 : #line 25106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30592 : ( 1)))
30593 : return NULL;
30594 : return gen_split_3636 (insn, operands);
30595 :
30596 : case 4:
30597 : if (!(
30598 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30599 : (TARGET_AVX512VL
30600 : && ix86_pre_reload_split ()) &&
30601 : #line 25516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30602 : ( 1)))
30603 : return NULL;
30604 : return gen_split_3655 (insn, operands);
30605 :
30606 : case 5:
30607 : if (!(
30608 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30609 : (TARGET_AVX512VL
30610 : && ix86_pre_reload_split ()) &&
30611 : #line 25793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30612 : ( 1)))
30613 : return NULL;
30614 : return gen_split_3667 (insn, operands);
30615 :
30616 : case 6:
30617 : if (!(
30618 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30619 : (TARGET_AVX512VL
30620 : && ix86_pre_reload_split ()) &&
30621 : #line 24912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30622 : ( 1)))
30623 : return NULL;
30624 : return gen_split_3624 (insn, operands);
30625 :
30626 : case 7:
30627 : if (!(
30628 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30629 : (TARGET_AVX512VL
30630 : && ix86_pre_reload_split ()) &&
30631 : #line 25352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30632 : ( 1)))
30633 : return NULL;
30634 : return gen_split_3648 (insn, operands);
30635 :
30636 : case 8:
30637 : if (!(
30638 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30639 : (TARGET_AVX512VL
30640 : && ix86_pre_reload_split ()) &&
30641 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30642 : ( 1)))
30643 : return NULL;
30644 : return gen_split_3659 (insn, operands);
30645 :
30646 : default:
30647 : return NULL;
30648 : }
30649 :
30650 : case ZERO_EXTEND:
30651 : switch (pattern415 (x2))
30652 : {
30653 : case 0:
30654 : if (!(
30655 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30656 : (TARGET_AVX512VL && TARGET_AVX512BW
30657 : && ix86_pre_reload_split ()) &&
30658 : #line 24640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30659 : ( 1)))
30660 : return NULL;
30661 : return gen_split_3611 (insn, operands);
30662 :
30663 : case 1:
30664 : if (!(
30665 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30666 : (TARGET_AVX512VL
30667 : && ix86_pre_reload_split ()) &&
30668 : #line 24818 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30669 : ( 1)))
30670 : return NULL;
30671 : return gen_split_3619 (insn, operands);
30672 :
30673 : case 2:
30674 : if (!(
30675 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30676 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
30677 : #line 25261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30678 : ( 1)))
30679 : return NULL;
30680 : return gen_split_3645 (insn, operands);
30681 :
30682 : case 3:
30683 : if (!(
30684 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30685 : (TARGET_AVX512VL
30686 : && ix86_pre_reload_split ()) &&
30687 : #line 25106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30688 : ( 1)))
30689 : return NULL;
30690 : return gen_split_3637 (insn, operands);
30691 :
30692 : case 4:
30693 : if (!(
30694 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30695 : (TARGET_AVX512VL
30696 : && ix86_pre_reload_split ()) &&
30697 : #line 25516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30698 : ( 1)))
30699 : return NULL;
30700 : return gen_split_3656 (insn, operands);
30701 :
30702 : case 5:
30703 : if (!(
30704 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30705 : (TARGET_AVX512VL
30706 : && ix86_pre_reload_split ()) &&
30707 : #line 25793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30708 : ( 1)))
30709 : return NULL;
30710 : return gen_split_3668 (insn, operands);
30711 :
30712 : case 6:
30713 : if (!(
30714 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30715 : (TARGET_AVX512VL
30716 : && ix86_pre_reload_split ()) &&
30717 : #line 24912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30718 : ( 1)))
30719 : return NULL;
30720 : return gen_split_3625 (insn, operands);
30721 :
30722 : case 7:
30723 : if (!(
30724 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30725 : (TARGET_AVX512VL
30726 : && ix86_pre_reload_split ()) &&
30727 : #line 25352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30728 : ( 1)))
30729 : return NULL;
30730 : return gen_split_3649 (insn, operands);
30731 :
30732 : case 8:
30733 : if (!(
30734 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30735 : (TARGET_AVX512VL
30736 : && ix86_pre_reload_split ()) &&
30737 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30738 : ( 1)))
30739 : return NULL;
30740 : return gen_split_3660 (insn, operands);
30741 :
30742 : default:
30743 : return NULL;
30744 : }
30745 :
30746 : default:
30747 : return NULL;
30748 : }
30749 : }
30750 :
30751 : rtx_insn *
30752 : split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
30753 : {
30754 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30755 : rtx x2, x3;
30756 : rtx_insn *res ATTRIBUTE_UNUSED;
30757 : recog_data.insn = NULL;
30758 : switch (GET_CODE (x1))
30759 : {
30760 : case EH_RETURN:
30761 : if (!
30762 : #line 21217 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30763 : (epilogue_completed))
30764 : return NULL;
30765 : return gen_split_875 (insn, operands);
30766 :
30767 : case PARALLEL:
30768 : case UNSPEC:
30769 : case UNSPEC_VOLATILE:
30770 : case SET:
30771 : switch (GET_CODE (x1))
30772 : {
30773 : case SET:
30774 : res = split_14 (x1, insn);
30775 : if (res != NULL_RTX)
30776 : return res;
30777 : break;
30778 :
30779 : case PARALLEL:
30780 : res = split_37 (x1, insn);
30781 : if (res != NULL_RTX)
30782 : return res;
30783 : break;
30784 :
30785 : default:
30786 : break;
30787 : }
30788 : operands[0] = x1;
30789 : if (tls_address_pattern (operands[0], E_VOIDmode)
30790 : &&
30791 : #line 23761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30792 : (TARGET_TLS_DIRECT_SEG_REFS))
30793 : return gen_split_936 (insn, operands);
30794 : switch (GET_CODE (x1))
30795 : {
30796 : case PARALLEL:
30797 : return split_88 (x1, insn);
30798 :
30799 : case SET:
30800 : x2 = XEXP (x1, 1);
30801 : switch (GET_CODE (x2))
30802 : {
30803 : case NEG:
30804 : res = split_41 (x1, insn);
30805 : if (res != NULL_RTX)
30806 : return res;
30807 : break;
30808 :
30809 : case IF_THEN_ELSE:
30810 : res = split_43 (x1, insn);
30811 : if (res != NULL_RTX)
30812 : return res;
30813 : break;
30814 :
30815 : case UNSPEC:
30816 : res = split_44 (x1, insn);
30817 : if (res != NULL_RTX)
30818 : return res;
30819 : break;
30820 :
30821 : case COMPARE:
30822 : res = split_45 (x1, insn);
30823 : if (res != NULL_RTX)
30824 : return res;
30825 : break;
30826 :
30827 : case NOT:
30828 : res = split_46 (x1, insn);
30829 : if (res != NULL_RTX)
30830 : return res;
30831 : break;
30832 :
30833 : case REG:
30834 : case SUBREG:
30835 : case MEM:
30836 : res = split_47 (x1, insn);
30837 : if (res != NULL_RTX)
30838 : return res;
30839 : break;
30840 :
30841 : case CONST_INT:
30842 : case CONST_DOUBLE:
30843 : case CONST_VECTOR:
30844 : operands[1] = x2;
30845 : x3 = XEXP (x1, 0);
30846 : operands[0] = x3;
30847 : switch (GET_MODE (operands[0]))
30848 : {
30849 : case E_V8QImode:
30850 : if (nonimmediate_gr_operand (operands[0], E_V8QImode)
30851 : && const0_operand (operands[1], E_V8QImode)
30852 : &&
30853 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30854 : (!TARGET_64BIT && reload_completed))
30855 : return gen_split_1024 (insn, operands);
30856 : if (memory_operand (operands[0], E_V8QImode)
30857 : && x86_64_const_vector_operand (operands[1], E_V8QImode)
30858 : && (
30859 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30860 : (TARGET_64BIT) &&
30861 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30862 : ( reload_completed)))
30863 : return gen_split_1060 (insn, operands);
30864 : break;
30865 :
30866 : case E_V4HImode:
30867 : if (nonimmediate_gr_operand (operands[0], E_V4HImode)
30868 : && const0_operand (operands[1], E_V4HImode)
30869 : &&
30870 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30871 : (!TARGET_64BIT && reload_completed))
30872 : return gen_split_1025 (insn, operands);
30873 : if (memory_operand (operands[0], E_V4HImode)
30874 : && x86_64_const_vector_operand (operands[1], E_V4HImode)
30875 : && (
30876 : #line 87 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30877 : (TARGET_64BIT) &&
30878 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30879 : ( reload_completed)))
30880 : return gen_split_1061 (insn, operands);
30881 : break;
30882 :
30883 : case E_V2SImode:
30884 : if (nonimmediate_gr_operand (operands[0], E_V2SImode)
30885 : && const0_operand (operands[1], E_V2SImode)
30886 : &&
30887 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30888 : (!TARGET_64BIT && reload_completed))
30889 : return gen_split_1026 (insn, operands);
30890 : if (memory_operand (operands[0], E_V2SImode)
30891 : && x86_64_const_vector_operand (operands[1], E_V2SImode)
30892 : && (
30893 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30894 : (TARGET_64BIT) &&
30895 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30896 : ( reload_completed)))
30897 : return gen_split_1064 (insn, operands);
30898 : break;
30899 :
30900 : case E_V1DImode:
30901 : if (nonimmediate_gr_operand (operands[0], E_V1DImode)
30902 : && const0_operand (operands[1], E_V1DImode)
30903 : &&
30904 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30905 : (!TARGET_64BIT && reload_completed))
30906 : return gen_split_1027 (insn, operands);
30907 : if (memory_operand (operands[0], E_V1DImode)
30908 : && x86_64_const_vector_operand (operands[1], E_V1DImode)
30909 : && (
30910 : #line 90 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30911 : (TARGET_64BIT) &&
30912 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30913 : ( reload_completed)))
30914 : return gen_split_1066 (insn, operands);
30915 : break;
30916 :
30917 : case E_V2SFmode:
30918 : if (nonimmediate_gr_operand (operands[0], E_V2SFmode)
30919 : && const0_operand (operands[1], E_V2SFmode)
30920 : &&
30921 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30922 : (!TARGET_64BIT && reload_completed))
30923 : return gen_split_1028 (insn, operands);
30924 : if (memory_operand (operands[0], E_V2SFmode)
30925 : && x86_64_const_vector_operand (operands[1], E_V2SFmode)
30926 : && (
30927 : #line 89 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30928 : (TARGET_64BIT) &&
30929 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30930 : ( reload_completed)))
30931 : return gen_split_1065 (insn, operands);
30932 : break;
30933 :
30934 : case E_V4HFmode:
30935 : if (nonimmediate_gr_operand (operands[0], E_V4HFmode)
30936 : && const0_operand (operands[1], E_V4HFmode)
30937 : &&
30938 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30939 : (!TARGET_64BIT && reload_completed))
30940 : return gen_split_1029 (insn, operands);
30941 : if (memory_operand (operands[0], E_V4HFmode)
30942 : && x86_64_const_vector_operand (operands[1], E_V4HFmode)
30943 : && (
30944 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30945 : (TARGET_64BIT) &&
30946 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30947 : ( reload_completed)))
30948 : return gen_split_1062 (insn, operands);
30949 : break;
30950 :
30951 : case E_V4BFmode:
30952 : if (nonimmediate_gr_operand (operands[0], E_V4BFmode)
30953 : && const0_operand (operands[1], E_V4BFmode)
30954 : &&
30955 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30956 : (!TARGET_64BIT && reload_completed))
30957 : return gen_split_1030 (insn, operands);
30958 : if (memory_operand (operands[0], E_V4BFmode)
30959 : && x86_64_const_vector_operand (operands[1], E_V4BFmode)
30960 : && (
30961 : #line 88 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30962 : (TARGET_64BIT) &&
30963 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30964 : ( reload_completed)))
30965 : return gen_split_1063 (insn, operands);
30966 : break;
30967 :
30968 : case E_V2QImode:
30969 : if (memory_operand (operands[0], E_V2QImode)
30970 : && x86_64_const_vector_operand (operands[1], E_V2QImode)
30971 : &&
30972 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30973 : ( reload_completed))
30974 : return gen_split_1054 (insn, operands);
30975 : break;
30976 :
30977 : case E_V4QImode:
30978 : if (memory_operand (operands[0], E_V4QImode)
30979 : && x86_64_const_vector_operand (operands[1], E_V4QImode)
30980 : &&
30981 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30982 : ( reload_completed))
30983 : return gen_split_1055 (insn, operands);
30984 : break;
30985 :
30986 : case E_V2HImode:
30987 : if (memory_operand (operands[0], E_V2HImode)
30988 : && x86_64_const_vector_operand (operands[1], E_V2HImode)
30989 : &&
30990 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
30991 : ( reload_completed))
30992 : return gen_split_1056 (insn, operands);
30993 : break;
30994 :
30995 : case E_V1SImode:
30996 : if (memory_operand (operands[0], E_V1SImode)
30997 : && x86_64_const_vector_operand (operands[1], E_V1SImode)
30998 : &&
30999 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31000 : ( reload_completed))
31001 : return gen_split_1057 (insn, operands);
31002 : break;
31003 :
31004 : case E_V2HFmode:
31005 : if (memory_operand (operands[0], E_V2HFmode)
31006 : && x86_64_const_vector_operand (operands[1], E_V2HFmode)
31007 : &&
31008 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31009 : ( reload_completed))
31010 : return gen_split_1058 (insn, operands);
31011 : break;
31012 :
31013 : case E_V2BFmode:
31014 : if (memory_operand (operands[0], E_V2BFmode)
31015 : && x86_64_const_vector_operand (operands[1], E_V2BFmode)
31016 : &&
31017 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31018 : ( reload_completed))
31019 : return gen_split_1059 (insn, operands);
31020 : break;
31021 :
31022 : default:
31023 : break;
31024 : }
31025 : break;
31026 :
31027 : case PLUS:
31028 : res = split_48 (x1, insn);
31029 : if (res != NULL_RTX)
31030 : return res;
31031 : break;
31032 :
31033 : case MINUS:
31034 : res = split_49 (x1, insn);
31035 : if (res != NULL_RTX)
31036 : return res;
31037 : break;
31038 :
31039 : case VEC_SELECT:
31040 : res = split_51 (x1, insn);
31041 : if (res != NULL_RTX)
31042 : return res;
31043 : break;
31044 :
31045 : case LT:
31046 : x3 = XEXP (x1, 0);
31047 : operands[0] = x3;
31048 : switch (pattern240 (x2))
31049 : {
31050 : case 0:
31051 : if ((
31052 : #line 3901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31053 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
31054 : #line 3903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31055 : ( 1)))
31056 : return gen_split_1096 (insn, operands);
31057 : break;
31058 :
31059 : case 1:
31060 : if ((
31061 : #line 3901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31062 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
31063 : #line 3903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31064 : ( 1)))
31065 : return gen_split_1097 (insn, operands);
31066 : break;
31067 :
31068 : case 2:
31069 : if ((
31070 : #line 3990 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31071 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
31072 : #line 3992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
31073 : ( 1)))
31074 : return gen_split_1101 (insn, operands);
31075 : break;
31076 :
31077 : default:
31078 : break;
31079 : }
31080 : break;
31081 :
31082 : case AND:
31083 : res = split_52 (x1, insn);
31084 : if (res != NULL_RTX)
31085 : return res;
31086 : break;
31087 :
31088 : case VEC_CONCAT:
31089 : res = split_53 (x1, insn);
31090 : if (res != NULL_RTX)
31091 : return res;
31092 : break;
31093 :
31094 : case VEC_MERGE:
31095 : res = split_54 (x1, insn);
31096 : if (res != NULL_RTX)
31097 : return res;
31098 : break;
31099 :
31100 : case ZERO_EXTEND:
31101 : res = split_55 (x1, insn);
31102 : if (res != NULL_RTX)
31103 : return res;
31104 : break;
31105 :
31106 : case IOR:
31107 : x3 = XEXP (x1, 0);
31108 : operands[0] = x3;
31109 : switch (pattern242 (x2))
31110 : {
31111 : case 0:
31112 : if (
31113 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31114 : (TARGET_AVX512F && reload_completed))
31115 : return gen_split_1234 (insn, operands);
31116 : break;
31117 :
31118 : case 1:
31119 : if (
31120 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31121 : (TARGET_AVX512F && reload_completed))
31122 : return gen_split_1237 (insn, operands);
31123 : break;
31124 :
31125 : case 2:
31126 : if ((
31127 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31128 : (TARGET_AVX512F && reload_completed) &&
31129 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31130 : (TARGET_AVX512BW)))
31131 : return gen_split_1240 (insn, operands);
31132 : break;
31133 :
31134 : case 3:
31135 : if ((
31136 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31137 : (TARGET_AVX512F && reload_completed) &&
31138 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31139 : (TARGET_AVX512BW)))
31140 : return gen_split_1243 (insn, operands);
31141 : break;
31142 :
31143 : default:
31144 : break;
31145 : }
31146 : break;
31147 :
31148 : case XOR:
31149 : x3 = XEXP (x1, 0);
31150 : operands[0] = x3;
31151 : switch (pattern242 (x2))
31152 : {
31153 : case 0:
31154 : if (
31155 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31156 : (TARGET_AVX512F && reload_completed))
31157 : return gen_split_1235 (insn, operands);
31158 : break;
31159 :
31160 : case 1:
31161 : if (
31162 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31163 : (TARGET_AVX512F && reload_completed))
31164 : return gen_split_1238 (insn, operands);
31165 : break;
31166 :
31167 : case 2:
31168 : if ((
31169 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31170 : (TARGET_AVX512F && reload_completed) &&
31171 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31172 : (TARGET_AVX512BW)))
31173 : return gen_split_1241 (insn, operands);
31174 : break;
31175 :
31176 : case 3:
31177 : if ((
31178 : #line 2138 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31179 : (TARGET_AVX512F && reload_completed) &&
31180 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31181 : (TARGET_AVX512BW)))
31182 : return gen_split_1244 (insn, operands);
31183 : break;
31184 :
31185 : default:
31186 : break;
31187 : }
31188 : break;
31189 :
31190 : case ASHIFT:
31191 : switch (pattern55 (x1))
31192 : {
31193 : case 0:
31194 : if (
31195 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31196 : (TARGET_AVX512F && reload_completed))
31197 : return gen_split_1266 (insn, operands);
31198 : break;
31199 :
31200 : case 1:
31201 : if (
31202 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31203 : (TARGET_AVX512F && reload_completed))
31204 : return gen_split_1268 (insn, operands);
31205 : break;
31206 :
31207 : case 2:
31208 : if ((
31209 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31210 : (TARGET_AVX512F && reload_completed) &&
31211 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31212 : (TARGET_AVX512BW)))
31213 : return gen_split_1270 (insn, operands);
31214 : break;
31215 :
31216 : case 3:
31217 : if ((
31218 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31219 : (TARGET_AVX512F && reload_completed) &&
31220 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31221 : (TARGET_AVX512BW)))
31222 : return gen_split_1272 (insn, operands);
31223 : break;
31224 :
31225 : default:
31226 : break;
31227 : }
31228 : break;
31229 :
31230 : case LSHIFTRT:
31231 : switch (pattern55 (x1))
31232 : {
31233 : case 0:
31234 : if (
31235 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31236 : (TARGET_AVX512F && reload_completed))
31237 : return gen_split_1267 (insn, operands);
31238 : break;
31239 :
31240 : case 1:
31241 : if (
31242 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31243 : (TARGET_AVX512F && reload_completed))
31244 : return gen_split_1269 (insn, operands);
31245 : break;
31246 :
31247 : case 2:
31248 : if ((
31249 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31250 : (TARGET_AVX512F && reload_completed) &&
31251 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31252 : (TARGET_AVX512BW)))
31253 : return gen_split_1271 (insn, operands);
31254 : break;
31255 :
31256 : case 3:
31257 : if ((
31258 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31259 : (TARGET_AVX512F && reload_completed) &&
31260 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31261 : (TARGET_AVX512BW)))
31262 : return gen_split_1273 (insn, operands);
31263 : break;
31264 :
31265 : default:
31266 : break;
31267 : }
31268 : break;
31269 :
31270 : case SIGN_EXTEND:
31271 : res = split_56 (x1, insn);
31272 : if (res != NULL_RTX)
31273 : return res;
31274 : break;
31275 :
31276 : case SS_PLUS:
31277 : if (pattern57 (x1) == 0
31278 : &&
31279 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31280 : (TARGET_SSSE3 && reload_completed
31281 : && SSE_REGNO_P (REGNO (operands[0]))))
31282 : return gen_split_3557 (insn, operands);
31283 : break;
31284 :
31285 : case SS_MINUS:
31286 : if (pattern57 (x1) == 0
31287 : &&
31288 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31289 : (TARGET_SSSE3 && reload_completed
31290 : && SSE_REGNO_P (REGNO (operands[0]))))
31291 : return gen_split_3559 (insn, operands);
31292 : break;
31293 :
31294 : case NE:
31295 : case EQ:
31296 : res = split_57 (x1, insn);
31297 : if (res != NULL_RTX)
31298 : return res;
31299 : break;
31300 :
31301 : default:
31302 : break;
31303 : }
31304 : x3 = XEXP (x1, 0);
31305 : operands[0] = x3;
31306 : return split_87 (x1, insn);
31307 :
31308 : default:
31309 : return NULL;
31310 : }
31311 :
31312 : default:
31313 : return NULL;
31314 : }
31315 : }
31316 :
31317 : rtx_insn *
31318 : peephole2_5 (rtx x1 ATTRIBUTE_UNUSED,
31319 : rtx_insn *insn ATTRIBUTE_UNUSED,
31320 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31321 : {
31322 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31323 : rtx x2, x3, x4, x5, x6, x7;
31324 : rtx_insn *res ATTRIBUTE_UNUSED;
31325 : x2 = XEXP (x1, 0);
31326 : switch (GET_CODE (x2))
31327 : {
31328 : case REG:
31329 : if (peep2_current_count < 2)
31330 : return NULL;
31331 : operands[0] = x2;
31332 : x3 = PATTERN (peep2_next_insn (1));
31333 : if (GET_CODE (x3) != SET)
31334 : return NULL;
31335 : x4 = XEXP (x3, 0);
31336 : if (GET_CODE (x4) != STRICT_LOW_PART)
31337 : return NULL;
31338 : x5 = XEXP (x4, 0);
31339 : operands[1] = x5;
31340 : x6 = XEXP (x3, 1);
31341 : operands[2] = x6;
31342 : switch (GET_MODE (operands[0]))
31343 : {
31344 : case E_SImode:
31345 : if (!general_reg_operand (operands[0], E_SImode))
31346 : return NULL;
31347 : switch (pattern1350 ())
31348 : {
31349 : case 0:
31350 : if (!
31351 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31352 : (REGNO (operands[0]) == REGNO (operands[1])
31353 : && (SImode != SImode
31354 : || !TARGET_ZERO_EXTEND_WITH_AND
31355 : || !optimize_function_for_speed_p (cfun))))
31356 : return NULL;
31357 : *pmatch_len_ = 1;
31358 : return gen_peephole2_45 (insn, operands);
31359 :
31360 : case 1:
31361 : if (!
31362 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31363 : (REGNO (operands[0]) == REGNO (operands[1])
31364 : && (SImode != SImode
31365 : || !TARGET_ZERO_EXTEND_WITH_AND
31366 : || !optimize_function_for_speed_p (cfun))))
31367 : return NULL;
31368 : *pmatch_len_ = 1;
31369 : return gen_peephole2_47 (insn, operands);
31370 :
31371 : default:
31372 : return NULL;
31373 : }
31374 :
31375 : case E_DImode:
31376 : if (!general_reg_operand (operands[0], E_DImode))
31377 : return NULL;
31378 : switch (pattern1350 ())
31379 : {
31380 : case 0:
31381 : if (!(
31382 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31383 : (REGNO (operands[0]) == REGNO (operands[1])
31384 : && (DImode != SImode
31385 : || !TARGET_ZERO_EXTEND_WITH_AND
31386 : || !optimize_function_for_speed_p (cfun))) &&
31387 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31388 : (TARGET_64BIT)))
31389 : return NULL;
31390 : *pmatch_len_ = 1;
31391 : return gen_peephole2_46 (insn, operands);
31392 :
31393 : case 1:
31394 : if (!(
31395 : #line 4959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31396 : (REGNO (operands[0]) == REGNO (operands[1])
31397 : && (DImode != SImode
31398 : || !TARGET_ZERO_EXTEND_WITH_AND
31399 : || !optimize_function_for_speed_p (cfun))) &&
31400 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31401 : (TARGET_64BIT)))
31402 : return NULL;
31403 : *pmatch_len_ = 1;
31404 : return gen_peephole2_48 (insn, operands);
31405 :
31406 : default:
31407 : return NULL;
31408 : }
31409 :
31410 : default:
31411 : return NULL;
31412 : }
31413 :
31414 : case SUBREG:
31415 : case MEM:
31416 : operands[0] = x2;
31417 : switch (GET_MODE (operands[0]))
31418 : {
31419 : case E_QImode:
31420 : if (!memory_operand (operands[0], E_QImode)
31421 : || !
31422 : #line 28367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31423 : (optimize_insn_for_speed_p ()
31424 : && ((QImode == HImode
31425 : && TARGET_LCP_STALL)
31426 : || (!TARGET_USE_MOV0
31427 : && TARGET_SPLIT_LONG_MOVES
31428 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
31429 : && peep2_regno_dead_p (0, FLAGS_REG)))
31430 : return NULL;
31431 : *pmatch_len_ = 0;
31432 : return gen_peephole2_278 (insn, operands);
31433 :
31434 : case E_HImode:
31435 : if (!memory_operand (operands[0], E_HImode)
31436 : || !
31437 : #line 28367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31438 : (optimize_insn_for_speed_p ()
31439 : && ((HImode == HImode
31440 : && TARGET_LCP_STALL)
31441 : || (!TARGET_USE_MOV0
31442 : && TARGET_SPLIT_LONG_MOVES
31443 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))
31444 : && peep2_regno_dead_p (0, FLAGS_REG)))
31445 : return NULL;
31446 : *pmatch_len_ = 0;
31447 : return gen_peephole2_279 (insn, operands);
31448 :
31449 : default:
31450 : return NULL;
31451 : }
31452 :
31453 : case STRICT_LOW_PART:
31454 : x7 = XEXP (x2, 0);
31455 : operands[0] = x7;
31456 : switch (GET_MODE (operands[0]))
31457 : {
31458 : case E_QImode:
31459 : if (!general_reg_operand (operands[0], E_QImode)
31460 : || !
31461 : #line 29187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31462 : ((! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
31463 : && peep2_regno_dead_p (0, FLAGS_REG)))
31464 : return NULL;
31465 : *pmatch_len_ = 0;
31466 : return gen_peephole2_365 (insn, operands);
31467 :
31468 : case E_HImode:
31469 : if (!general_reg_operand (operands[0], E_HImode)
31470 : || !
31471 : #line 29187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31472 : ((! TARGET_USE_MOV0 || optimize_insn_for_size_p ())
31473 : && peep2_regno_dead_p (0, FLAGS_REG)))
31474 : return NULL;
31475 : *pmatch_len_ = 0;
31476 : return gen_peephole2_366 (insn, operands);
31477 :
31478 : default:
31479 : return NULL;
31480 : }
31481 :
31482 : default:
31483 : return NULL;
31484 : }
31485 : }
31486 :
31487 : rtx_insn *
31488 : peephole2_8 (rtx x1 ATTRIBUTE_UNUSED,
31489 : rtx_insn *insn ATTRIBUTE_UNUSED,
31490 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31491 : {
31492 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31493 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31494 : rtx_insn *res ATTRIBUTE_UNUSED;
31495 : x2 = XEXP (x1, 1);
31496 : switch (GET_CODE (x2))
31497 : {
31498 : case CONST_INT:
31499 : case CONST_WIDE_INT:
31500 : case CONST_POLY_INT:
31501 : case CONST_FIXED:
31502 : case CONST_DOUBLE:
31503 : case CONST_VECTOR:
31504 : case CONST:
31505 : case LABEL_REF:
31506 : case SYMBOL_REF:
31507 : case HIGH:
31508 : operands[1] = x2;
31509 : x3 = XEXP (x1, 0);
31510 : operands[0] = x3;
31511 : switch (GET_CODE (operands[0]))
31512 : {
31513 : case MEM:
31514 : if (push_operand (operands[0], E_DImode)
31515 : && immediate_operand (operands[1], E_DImode)
31516 : &&
31517 : #line 2228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31518 : (TARGET_64BIT
31519 : && !symbolic_operand (operands[1], DImode)
31520 : && !x86_64_immediate_operand (operands[1], DImode)))
31521 : {
31522 : *pmatch_len_ = 0;
31523 : res = gen_peephole2_3 (insn, operands);
31524 : if (res != NULL_RTX)
31525 : return res;
31526 : }
31527 : break;
31528 :
31529 : case REG:
31530 : case SUBREG:
31531 : res = peephole2_4 (x1, insn, pmatch_len_);
31532 : if (res != NULL_RTX)
31533 : return res;
31534 : break;
31535 :
31536 : default:
31537 : break;
31538 : }
31539 : switch (GET_MODE (operands[0]))
31540 : {
31541 : case E_HImode:
31542 : if (memory_operand (operands[0], E_HImode)
31543 : && const_int_operand (operands[1], E_HImode)
31544 : &&
31545 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31546 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
31547 : && optimize_insn_for_size_p () && optimize_size > 1
31548 : && peep2_regno_dead_p (0, FLAGS_REG)))
31549 : {
31550 : *pmatch_len_ = 0;
31551 : res = gen_peephole2_8 (insn, operands);
31552 : if (res != NULL_RTX)
31553 : return res;
31554 : }
31555 : break;
31556 :
31557 : case E_SImode:
31558 : if (memory_operand (operands[0], E_SImode)
31559 : && const_int_operand (operands[1], E_SImode)
31560 : &&
31561 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31562 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
31563 : && optimize_insn_for_size_p () && optimize_size > 1
31564 : && peep2_regno_dead_p (0, FLAGS_REG)))
31565 : {
31566 : *pmatch_len_ = 0;
31567 : res = gen_peephole2_9 (insn, operands);
31568 : if (res != NULL_RTX)
31569 : return res;
31570 : }
31571 : break;
31572 :
31573 : case E_DImode:
31574 : if (memory_operand (operands[0], E_DImode)
31575 : && const_int_operand (operands[1], E_DImode)
31576 : && (
31577 : #line 2987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31578 : ((operands[1] == const0_rtx || operands[1] == constm1_rtx)
31579 : && optimize_insn_for_size_p () && optimize_size > 1
31580 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
31581 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31582 : (TARGET_64BIT)))
31583 : {
31584 : *pmatch_len_ = 0;
31585 : res = gen_peephole2_10 (insn, operands);
31586 : if (res != NULL_RTX)
31587 : return res;
31588 : }
31589 : break;
31590 :
31591 : default:
31592 : break;
31593 : }
31594 : if (x2 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
31595 : {
31596 : res = peephole2_5 (x1, insn, pmatch_len_);
31597 : if (res != NULL_RTX)
31598 : return res;
31599 : }
31600 : operands[1] = x2;
31601 : operands[0] = x3;
31602 : switch (GET_MODE (operands[0]))
31603 : {
31604 : case E_QImode:
31605 : if (memory_operand (operands[0], E_QImode)
31606 : && immediate_operand (operands[1], E_QImode)
31607 : &&
31608 : #line 28383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31609 : (optimize_insn_for_speed_p ()
31610 : && ((QImode == HImode
31611 : && TARGET_LCP_STALL)
31612 : || (TARGET_SPLIT_LONG_MOVES
31613 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
31614 : {
31615 : *pmatch_len_ = 0;
31616 : res = gen_peephole2_281 (insn, operands);
31617 : if (res != NULL_RTX)
31618 : return res;
31619 : }
31620 : break;
31621 :
31622 : case E_HImode:
31623 : if (memory_operand (operands[0], E_HImode)
31624 : && immediate_operand (operands[1], E_HImode)
31625 : &&
31626 : #line 28383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31627 : (optimize_insn_for_speed_p ()
31628 : && ((HImode == HImode
31629 : && TARGET_LCP_STALL)
31630 : || (TARGET_SPLIT_LONG_MOVES
31631 : && get_attr_length (insn) >= ix86_cur_cost ()->large_insn))))
31632 : {
31633 : *pmatch_len_ = 0;
31634 : res = gen_peephole2_282 (insn, operands);
31635 : if (res != NULL_RTX)
31636 : return res;
31637 : }
31638 : break;
31639 :
31640 : default:
31641 : break;
31642 : }
31643 : break;
31644 :
31645 : case REG:
31646 : res = peephole2_6 (x1, insn, pmatch_len_);
31647 : if (res != NULL_RTX)
31648 : return res;
31649 : break;
31650 :
31651 : case SUBREG:
31652 : case MEM:
31653 : res = peephole2_7 (x1, insn, pmatch_len_);
31654 : if (res != NULL_RTX)
31655 : return res;
31656 : break;
31657 :
31658 : default:
31659 : break;
31660 : }
31661 : if (peep2_current_count < 2)
31662 : return NULL;
31663 : x4 = PATTERN (peep2_next_insn (1));
31664 : if (GET_CODE (x4) != SET)
31665 : return NULL;
31666 : x3 = XEXP (x1, 0);
31667 : switch (GET_MODE (x3))
31668 : {
31669 : case E_HImode:
31670 : if (peep2_current_count >= 3
31671 : && peep2_current_count >= 4)
31672 : {
31673 : operands[2] = x3;
31674 : if (general_reg_operand (operands[2], E_HImode))
31675 : {
31676 : operands[3] = x2;
31677 : if (general_gr_operand (operands[3], E_HImode))
31678 : {
31679 : x5 = XEXP (x4, 0);
31680 : operands[0] = x5;
31681 : if (general_reg_operand (operands[0], E_HImode))
31682 : {
31683 : x6 = XEXP (x4, 1);
31684 : if (pattern964 (x6,
31685 : E_HImode) == 0
31686 : &&
31687 : #line 26984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31688 : (TARGET_CMOVE
31689 : && REGNO (operands[2]) != REGNO (operands[0])
31690 : && REGNO (operands[2]) != REGNO (operands[1])
31691 : && peep2_reg_dead_p (2, operands[1])
31692 : && peep2_reg_dead_p (4, operands[2])
31693 : && !reg_overlap_mentioned_p (operands[0], operands[3])
31694 : && !reg_mentioned_p (operands[2], operands[6])))
31695 : {
31696 : *pmatch_len_ = 3;
31697 : res = gen_peephole2_226 (insn, operands);
31698 : if (res != NULL_RTX)
31699 : return res;
31700 : }
31701 : }
31702 : }
31703 : }
31704 : }
31705 : operands[0] = x3;
31706 : operands[1] = x2;
31707 : if (x86_64_general_operand (operands[1], E_HImode)
31708 : && general_reg_operand (operands[0], E_HImode))
31709 : {
31710 : x5 = XEXP (x4, 0);
31711 : operands[2] = x5;
31712 : if (general_reg_operand (operands[2], E_HImode))
31713 : {
31714 : x6 = XEXP (x4, 1);
31715 : if (rtx_equal_p (x6, operands[0])
31716 : &&
31717 : #line 27581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31718 : (peep2_reg_dead_p (2, operands[0])))
31719 : {
31720 : *pmatch_len_ = 1;
31721 : res = gen_peephole2_250 (insn, operands);
31722 : if (res != NULL_RTX)
31723 : return res;
31724 : }
31725 : }
31726 : }
31727 : if (peep2_current_count < 3
31728 : || pattern849 (x4,
31729 : E_HImode) != 0)
31730 : return NULL;
31731 : switch (GET_MODE (operands[4]))
31732 : {
31733 : case E_HImode:
31734 : x7 = PATTERN (peep2_next_insn (2));
31735 : x8 = XVECEXP (x7, 0, 0);
31736 : x9 = XEXP (x8, 1);
31737 : if (pattern1896 (x9,
31738 : E_HImode) != 0
31739 : || !
31740 : #line 29029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31741 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31742 : && (REGNO (operands[4]) == REGNO (operands[0])
31743 : || REGNO (operands[4]) == REGNO (operands[3]))
31744 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31745 : ? 3 : 0], operands[5])
31746 : ? rtx_equal_p (operands[2], operands[6])
31747 : : rtx_equal_p (operands[2], operands[5])
31748 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31749 : ? 3 : 0], operands[6]))
31750 : && peep2_reg_dead_p (4, operands[4])
31751 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31752 : ? 3 : 0])
31753 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31754 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31755 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31756 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31757 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31758 : && (HImode != QImode
31759 : || immediate_operand (operands[2], QImode)
31760 : || any_QIreg_operand (operands[2], QImode))))
31761 : return NULL;
31762 : *pmatch_len_ = 4;
31763 : return gen_peephole2_356 (insn, operands);
31764 :
31765 : case E_SImode:
31766 : x7 = PATTERN (peep2_next_insn (2));
31767 : x8 = XVECEXP (x7, 0, 0);
31768 : x9 = XEXP (x8, 1);
31769 : if (pattern1897 (x9,
31770 : E_HImode) != 0
31771 : || !
31772 : #line 29073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31773 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31774 : && (REGNO (operands[5]) == REGNO (operands[0])
31775 : || REGNO (operands[5]) == REGNO (operands[3]))
31776 : && REGNO (operands[5]) == REGNO (operands[4])
31777 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31778 : ? 3 : 0], operands[6])
31779 : ? (REG_P (operands[2])
31780 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
31781 : : rtx_equal_p (operands[2], operands[7]))
31782 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31783 : ? 3 : 0], operands[7])
31784 : && REG_P (operands[2])
31785 : && REGNO (operands[2]) == REGNO (operands[6])))
31786 : && peep2_reg_dead_p (4, operands[5])
31787 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
31788 : ? 3 : 0])
31789 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31790 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31791 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31792 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31793 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31794 : && (HImode != QImode
31795 : || immediate_operand (operands[2], SImode)
31796 : || any_QIreg_operand (operands[2], SImode))))
31797 : return NULL;
31798 : *pmatch_len_ = 4;
31799 : return gen_peephole2_360 (insn, operands);
31800 :
31801 : default:
31802 : return NULL;
31803 : }
31804 :
31805 : case E_QImode:
31806 : operands[0] = x3;
31807 : operands[1] = x2;
31808 : if (x86_64_general_operand (operands[1], E_QImode)
31809 : && general_reg_operand (operands[0], E_QImode))
31810 : {
31811 : x5 = XEXP (x4, 0);
31812 : operands[2] = x5;
31813 : if (general_reg_operand (operands[2], E_QImode))
31814 : {
31815 : x6 = XEXP (x4, 1);
31816 : if (rtx_equal_p (x6, operands[0])
31817 : &&
31818 : #line 27581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31819 : (peep2_reg_dead_p (2, operands[0])))
31820 : {
31821 : *pmatch_len_ = 1;
31822 : res = gen_peephole2_249 (insn, operands);
31823 : if (res != NULL_RTX)
31824 : return res;
31825 : }
31826 : }
31827 : }
31828 : if (peep2_current_count < 3
31829 : || pattern849 (x4,
31830 : E_QImode) != 0)
31831 : return NULL;
31832 : switch (GET_MODE (operands[4]))
31833 : {
31834 : case E_QImode:
31835 : x7 = PATTERN (peep2_next_insn (2));
31836 : x8 = XVECEXP (x7, 0, 0);
31837 : x9 = XEXP (x8, 1);
31838 : if (pattern1896 (x9,
31839 : E_QImode) != 0
31840 : || !
31841 : #line 29029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31842 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31843 : && (REGNO (operands[4]) == REGNO (operands[0])
31844 : || REGNO (operands[4]) == REGNO (operands[3]))
31845 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31846 : ? 3 : 0], operands[5])
31847 : ? rtx_equal_p (operands[2], operands[6])
31848 : : rtx_equal_p (operands[2], operands[5])
31849 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31850 : ? 3 : 0], operands[6]))
31851 : && peep2_reg_dead_p (4, operands[4])
31852 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31853 : ? 3 : 0])
31854 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31855 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31856 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31857 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31858 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31859 : && (QImode != QImode
31860 : || immediate_operand (operands[2], QImode)
31861 : || any_QIreg_operand (operands[2], QImode))))
31862 : return NULL;
31863 : *pmatch_len_ = 4;
31864 : return gen_peephole2_355 (insn, operands);
31865 :
31866 : case E_SImode:
31867 : x7 = PATTERN (peep2_next_insn (2));
31868 : x8 = XVECEXP (x7, 0, 0);
31869 : x9 = XEXP (x8, 1);
31870 : if (pattern1897 (x9,
31871 : E_QImode) != 0
31872 : || !
31873 : #line 29073 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31874 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31875 : && (REGNO (operands[5]) == REGNO (operands[0])
31876 : || REGNO (operands[5]) == REGNO (operands[3]))
31877 : && REGNO (operands[5]) == REGNO (operands[4])
31878 : && (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31879 : ? 3 : 0], operands[6])
31880 : ? (REG_P (operands[2])
31881 : ? REG_P (operands[7]) && REGNO (operands[2]) == REGNO (operands[7])
31882 : : rtx_equal_p (operands[2], operands[7]))
31883 : : (rtx_equal_p (operands[REGNO (operands[5]) == REGNO (operands[0])
31884 : ? 3 : 0], operands[7])
31885 : && REG_P (operands[2])
31886 : && REGNO (operands[2]) == REGNO (operands[6])))
31887 : && peep2_reg_dead_p (4, operands[5])
31888 : && peep2_reg_dead_p (5, operands[REGNO (operands[5]) == REGNO (operands[0])
31889 : ? 3 : 0])
31890 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31891 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31892 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31893 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31894 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31895 : && (QImode != QImode
31896 : || immediate_operand (operands[2], SImode)
31897 : || any_QIreg_operand (operands[2], SImode))))
31898 : return NULL;
31899 : *pmatch_len_ = 4;
31900 : return gen_peephole2_359 (insn, operands);
31901 :
31902 : default:
31903 : return NULL;
31904 : }
31905 :
31906 : default:
31907 : return NULL;
31908 : }
31909 : }
31910 :
31911 : rtx_insn *
31912 : peephole2_14 (rtx x1 ATTRIBUTE_UNUSED,
31913 : rtx_insn *insn ATTRIBUTE_UNUSED,
31914 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31915 : {
31916 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31917 : rtx x2, x3, x4, x5, x6;
31918 : rtx_insn *res ATTRIBUTE_UNUSED;
31919 : x2 = XEXP (x1, 0);
31920 : operands[0] = x2;
31921 : res = peephole2_12 (x1, insn, pmatch_len_);
31922 : if (res != NULL_RTX)
31923 : return res;
31924 : if (peep2_current_count < 2)
31925 : return NULL;
31926 : if (peep2_current_count >= 3
31927 : && peep2_current_count >= 4)
31928 : {
31929 : if (general_reg_operand (x2, E_SImode))
31930 : {
31931 : res = peephole2_13 (x1, insn, pmatch_len_);
31932 : if (res != NULL_RTX)
31933 : return res;
31934 : }
31935 : if (peep2_current_count >= 5
31936 : && pattern606 (x1,
31937 : E_SImode) == 0
31938 : &&
31939 : #line 27531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31940 : (optimize_insn_for_size_p ()
31941 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
31942 : {
31943 : *pmatch_len_ = 4;
31944 : res = gen_peephole2_243 (insn, operands);
31945 : if (res != NULL_RTX)
31946 : return res;
31947 : }
31948 : }
31949 : operands[3] = x2;
31950 : if (peep2_current_count >= 3)
31951 : {
31952 : x3 = XEXP (x1, 1);
31953 : if (pattern418 (x3,
31954 : E_SImode) == 0
31955 : &&
31956 : #line 27549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31957 : (optimize_insn_for_size_p ()
31958 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
31959 : {
31960 : *pmatch_len_ = 2;
31961 : res = gen_peephole2_245 (insn, operands);
31962 : if (res != NULL_RTX)
31963 : return res;
31964 : }
31965 : }
31966 : if (general_reg_operand (operands[3], E_SImode))
31967 : {
31968 : x3 = XEXP (x1, 1);
31969 : switch (pattern419 (x3,
31970 : E_SImode))
31971 : {
31972 : case 0:
31973 : if ((
31974 : #line 28080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31975 : (GET_MODE (operands[2]) == word_mode
31976 : && peep2_reg_dead_p (0, operands[3])
31977 : && peep2_reg_dead_p (2, operands[2])
31978 : && !reg_mentioned_p (operands[3], operands[0])
31979 : && !reg_mentioned_p (operands[3], operands[1])) &&
31980 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31981 : (ptr_mode == SImode)))
31982 : {
31983 : *pmatch_len_ = 1;
31984 : res = gen_peephole2_261 (insn, operands);
31985 : if (res != NULL_RTX)
31986 : return res;
31987 : }
31988 : break;
31989 :
31990 : case 1:
31991 : if ((
31992 : #line 28080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31993 : (GET_MODE (operands[2]) == word_mode
31994 : && peep2_reg_dead_p (0, operands[3])
31995 : && peep2_reg_dead_p (2, operands[2])
31996 : && !reg_mentioned_p (operands[3], operands[0])
31997 : && !reg_mentioned_p (operands[3], operands[1])) &&
31998 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31999 : (ptr_mode == DImode)))
32000 : {
32001 : *pmatch_len_ = 1;
32002 : res = gen_peephole2_263 (insn, operands);
32003 : if (res != NULL_RTX)
32004 : return res;
32005 : }
32006 : break;
32007 :
32008 : default:
32009 : break;
32010 : }
32011 : }
32012 : x4 = PATTERN (peep2_next_insn (1));
32013 : if (GET_CODE (x4) != SET)
32014 : return NULL;
32015 : operands[2] = x2;
32016 : if (memory_operand (operands[2], E_SImode))
32017 : {
32018 : x3 = XEXP (x1, 1);
32019 : operands[0] = x3;
32020 : if (general_reg_operand (operands[0], E_SImode))
32021 : {
32022 : x5 = XEXP (x4, 1);
32023 : if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
32024 : {
32025 : x6 = XEXP (x4, 0);
32026 : operands[1] = x6;
32027 : if (memory_operand (operands[1], E_SImode)
32028 : &&
32029 : #line 27564 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32030 : (optimize_insn_for_size_p ()
32031 : && INSN_UID (peep2_next_insn (0)) == ix86_last_zero_store_uid))
32032 : {
32033 : *pmatch_len_ = 1;
32034 : res = gen_peephole2_247 (insn, operands);
32035 : if (res != NULL_RTX)
32036 : return res;
32037 : }
32038 : }
32039 : }
32040 : }
32041 : operands[0] = x2;
32042 : if (!general_reg_operand (operands[0], E_SImode))
32043 : return NULL;
32044 : x3 = XEXP (x1, 1);
32045 : operands[1] = x3;
32046 : if (!x86_64_general_operand (operands[1], E_SImode))
32047 : return NULL;
32048 : x6 = XEXP (x4, 0);
32049 : operands[2] = x6;
32050 : if (!general_reg_operand (operands[2], E_SImode))
32051 : return NULL;
32052 : x5 = XEXP (x4, 1);
32053 : if (!rtx_equal_p (x5, operands[0])
32054 : || !
32055 : #line 27581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32056 : (peep2_reg_dead_p (2, operands[0])))
32057 : return NULL;
32058 : *pmatch_len_ = 1;
32059 : return gen_peephole2_251 (insn, operands);
32060 : }
32061 :
32062 : rtx_insn *
32063 : peephole2_17 (rtx x1 ATTRIBUTE_UNUSED,
32064 : rtx_insn *insn ATTRIBUTE_UNUSED,
32065 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32066 : {
32067 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32068 : rtx x2, x3;
32069 : rtx_insn *res ATTRIBUTE_UNUSED;
32070 : x2 = PATTERN (peep2_next_insn (1));
32071 : if (GET_CODE (x2) != SET)
32072 : return NULL;
32073 : x3 = XEXP (x2, 0);
32074 : if (!general_reg_operand (x3, E_DImode))
32075 : return NULL;
32076 : operands[8] = x3;
32077 : switch (pattern962 (x1,
32078 : E_DImode,
32079 : E_TImode))
32080 : {
32081 : case 0:
32082 : if ((
32083 : #line 10003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32084 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32085 : && peep2_reg_dead_p (4, operands[0])
32086 : && peep2_reg_dead_p (3, operands[2])
32087 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32088 : && !reg_overlap_mentioned_p (operands[2], operands[1])
32089 : && !reg_overlap_mentioned_p (operands[6], operands[9])
32090 : && (rtx_equal_p (operands[6], operands[0])
32091 : ? (rtx_equal_p (operands[7], operands[1])
32092 : && rtx_equal_p (operands[8], operands[2]))
32093 : : (rtx_equal_p (operands[8], operands[0])
32094 : && rtx_equal_p (operands[9], operands[1])
32095 : && rtx_equal_p (operands[6], operands[2])))) &&
32096 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32097 : (TARGET_64BIT)))
32098 : {
32099 : *pmatch_len_ = 3;
32100 : res = gen_peephole2_117 (insn, operands);
32101 : if (res != NULL_RTX)
32102 : return res;
32103 : }
32104 : break;
32105 :
32106 : case 1:
32107 : if ((
32108 : #line 10058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32109 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32110 : && peep2_reg_dead_p (6, operands[0])
32111 : && peep2_reg_dead_p (3, operands[2])
32112 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32113 : && !reg_overlap_mentioned_p (operands[2], operands[1])
32114 : && !reg_overlap_mentioned_p (operands[6], operands[9])
32115 : && !reg_overlap_mentioned_p (operands[0], operands[10])
32116 : && !reg_overlap_mentioned_p (operands[10], operands[1])
32117 : && !reg_overlap_mentioned_p (operands[0], operands[11])
32118 : && !reg_overlap_mentioned_p (operands[11], operands[1])
32119 : && (rtx_equal_p (operands[6], operands[0])
32120 : ? (rtx_equal_p (operands[7], operands[1])
32121 : && rtx_equal_p (operands[8], operands[2]))
32122 : : (rtx_equal_p (operands[8], operands[0])
32123 : && rtx_equal_p (operands[9], operands[1])
32124 : && rtx_equal_p (operands[6], operands[2])))) &&
32125 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32126 : (TARGET_64BIT)))
32127 : {
32128 : *pmatch_len_ = 5;
32129 : res = gen_peephole2_119 (insn, operands);
32130 : if (res != NULL_RTX)
32131 : return res;
32132 : }
32133 : break;
32134 :
32135 : default:
32136 : break;
32137 : }
32138 : operands[0] = x3;
32139 : if (pattern965 (x1,
32140 : E_DImode) != 0
32141 : || !(
32142 : #line 26984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32143 : (TARGET_CMOVE
32144 : && REGNO (operands[2]) != REGNO (operands[0])
32145 : && REGNO (operands[2]) != REGNO (operands[1])
32146 : && peep2_reg_dead_p (2, operands[1])
32147 : && peep2_reg_dead_p (4, operands[2])
32148 : && !reg_overlap_mentioned_p (operands[0], operands[3])
32149 : && !reg_mentioned_p (operands[2], operands[6])) &&
32150 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32151 : (TARGET_64BIT)))
32152 : return NULL;
32153 : *pmatch_len_ = 3;
32154 : return gen_peephole2_228 (insn, operands);
32155 : }
32156 :
32157 : rtx_insn *
32158 : peephole2_22 (rtx x1 ATTRIBUTE_UNUSED,
32159 : rtx_insn *insn ATTRIBUTE_UNUSED,
32160 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32161 : {
32162 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32163 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32164 : rtx_insn *res ATTRIBUTE_UNUSED;
32165 : if (peep2_current_count >= 3)
32166 : {
32167 : res = peephole2_20 (x1, insn, pmatch_len_);
32168 : if (res != NULL_RTX)
32169 : return res;
32170 : }
32171 : x2 = XEXP (x1, 0);
32172 : operands[0] = x2;
32173 : x3 = XEXP (x1, 1);
32174 : operands[1] = x3;
32175 : if (fp_register_operand (operands[1], E_VOIDmode)
32176 : && fp_register_operand (operands[0], E_VOIDmode))
32177 : {
32178 : res = peephole2_21 (x1, insn, pmatch_len_);
32179 : if (res != NULL_RTX)
32180 : return res;
32181 : }
32182 : if (general_reg_operand (operands[1], E_QImode))
32183 : {
32184 : x4 = PATTERN (peep2_next_insn (1));
32185 : if (pattern420 (x4,
32186 : E_QImode) == 0
32187 : &&
32188 : #line 28543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32189 : (REGNO (operands[0]) != REGNO (operands[1])
32190 : && (QImode != QImode
32191 : || any_QIreg_operand (operands[1], QImode))))
32192 : {
32193 : *pmatch_len_ = 1;
32194 : res = gen_peephole2_301 (insn, operands);
32195 : if (res != NULL_RTX)
32196 : return res;
32197 : }
32198 : }
32199 : if (general_reg_operand (operands[1], E_HImode))
32200 : {
32201 : x4 = PATTERN (peep2_next_insn (1));
32202 : if (pattern420 (x4,
32203 : E_HImode) == 0
32204 : &&
32205 : #line 28543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32206 : (REGNO (operands[0]) != REGNO (operands[1])
32207 : && (HImode != QImode
32208 : || any_QIreg_operand (operands[1], QImode))))
32209 : {
32210 : *pmatch_len_ = 1;
32211 : res = gen_peephole2_302 (insn, operands);
32212 : if (res != NULL_RTX)
32213 : return res;
32214 : }
32215 : }
32216 : if (general_reg_operand (operands[1], E_DImode))
32217 : {
32218 : x4 = PATTERN (peep2_next_insn (1));
32219 : if (pattern420 (x4,
32220 : E_DImode) == 0
32221 : && (
32222 : #line 28543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32223 : (REGNO (operands[0]) != REGNO (operands[1])
32224 : && (DImode != QImode
32225 : || any_QIreg_operand (operands[1], QImode))) &&
32226 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32227 : (TARGET_64BIT)))
32228 : {
32229 : *pmatch_len_ = 1;
32230 : res = gen_peephole2_304 (insn, operands);
32231 : if (res != NULL_RTX)
32232 : return res;
32233 : }
32234 : }
32235 : if (peep2_current_count < 3
32236 : || peep2_current_count < 4)
32237 : return NULL;
32238 : if (memory_operand (operands[1], E_QImode))
32239 : {
32240 : x4 = PATTERN (peep2_next_insn (1));
32241 : if (pattern734 (x4,
32242 : E_QImode) == 0)
32243 : {
32244 : x5 = XVECEXP (x4, 0, 0);
32245 : x6 = XEXP (x5, 1);
32246 : operands[3] = x6;
32247 : if (pattern1359 (x4,
32248 : E_QImode) == 0)
32249 : {
32250 : x7 = PATTERN (peep2_next_insn (2));
32251 : x8 = XEXP (x7, 0);
32252 : if (rtx_equal_p (x8, operands[1]))
32253 : {
32254 : x9 = PATTERN (peep2_next_insn (3));
32255 : if (pattern1850 (x9) == 0
32256 : &&
32257 : #line 28634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32258 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32259 : && peep2_reg_dead_p (4, operands[0])
32260 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32261 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32262 : && (QImode != QImode
32263 : || immediate_operand (operands[2], QImode)
32264 : || any_QIreg_operand (operands[2], QImode))
32265 : && ix86_match_ccmode (peep2_next_insn (3),
32266 : (GET_CODE (operands[3]) == PLUS
32267 : || GET_CODE (operands[3]) == MINUS)
32268 : ? CCGOCmode : CCNOmode)))
32269 : {
32270 : *pmatch_len_ = 3;
32271 : res = gen_peephole2_315 (insn, operands);
32272 : if (res != NULL_RTX)
32273 : return res;
32274 : }
32275 : }
32276 : if (peep2_current_count >= 5
32277 : && pattern1851 (x8,
32278 : E_QImode) == 0
32279 : &&
32280 : #line 28915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32281 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32282 : && peep2_reg_dead_p (3, operands[0])
32283 : && peep2_reg_dead_p (5, operands[4])
32284 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32285 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32286 : && !reg_overlap_mentioned_p (operands[4], operands[1])
32287 : && (QImode != QImode
32288 : || immediate_operand (operands[2], QImode)
32289 : || any_QIreg_operand (operands[2], QImode))
32290 : && ix86_match_ccmode (peep2_next_insn (4),
32291 : (GET_CODE (operands[3]) == PLUS
32292 : || GET_CODE (operands[3]) == MINUS)
32293 : ? CCGOCmode : CCNOmode)))
32294 : {
32295 : *pmatch_len_ = 4;
32296 : res = gen_peephole2_345 (insn, operands);
32297 : if (res != NULL_RTX)
32298 : return res;
32299 : }
32300 : }
32301 : if (GET_CODE (x6) == XOR
32302 : && pattern1360 (x4,
32303 : E_QImode) == 0
32304 : &&
32305 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32306 : (TARGET_APX_NDD
32307 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32308 : && REGNO (operands[3]) == REGNO (operands[0])
32309 : && (rtx_equal_p (operands[0], operands[5])
32310 : ? rtx_equal_p (operands[2], operands[6])
32311 : : rtx_equal_p (operands[2], operands[5])
32312 : && rtx_equal_p (operands[0], operands[6]))
32313 : && peep2_reg_dead_p (3, operands[4])
32314 : && peep2_reg_dead_p (4, operands[0])
32315 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32316 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32317 : && (QImode != QImode
32318 : || immediate_operand (operands[2], QImode)
32319 : || any_QIreg_operand (operands[2], QImode))))
32320 : {
32321 : *pmatch_len_ = 3;
32322 : res = gen_peephole2_339 (insn, operands);
32323 : if (res != NULL_RTX)
32324 : return res;
32325 : }
32326 : }
32327 : }
32328 : if (memory_operand (operands[1], E_HImode))
32329 : {
32330 : x4 = PATTERN (peep2_next_insn (1));
32331 : if (pattern734 (x4,
32332 : E_HImode) == 0)
32333 : {
32334 : x5 = XVECEXP (x4, 0, 0);
32335 : x6 = XEXP (x5, 1);
32336 : operands[3] = x6;
32337 : if (pattern1359 (x4,
32338 : E_HImode) == 0)
32339 : {
32340 : x7 = PATTERN (peep2_next_insn (2));
32341 : x8 = XEXP (x7, 0);
32342 : if (rtx_equal_p (x8, operands[1]))
32343 : {
32344 : x9 = PATTERN (peep2_next_insn (3));
32345 : if (pattern1850 (x9) == 0
32346 : &&
32347 : #line 28634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32348 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32349 : && peep2_reg_dead_p (4, operands[0])
32350 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32351 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32352 : && (HImode != QImode
32353 : || immediate_operand (operands[2], QImode)
32354 : || any_QIreg_operand (operands[2], QImode))
32355 : && ix86_match_ccmode (peep2_next_insn (3),
32356 : (GET_CODE (operands[3]) == PLUS
32357 : || GET_CODE (operands[3]) == MINUS)
32358 : ? CCGOCmode : CCNOmode)))
32359 : {
32360 : *pmatch_len_ = 3;
32361 : res = gen_peephole2_316 (insn, operands);
32362 : if (res != NULL_RTX)
32363 : return res;
32364 : }
32365 : }
32366 : if (peep2_current_count >= 5
32367 : && pattern1851 (x8,
32368 : E_HImode) == 0
32369 : &&
32370 : #line 28915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32371 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32372 : && peep2_reg_dead_p (3, operands[0])
32373 : && peep2_reg_dead_p (5, operands[4])
32374 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32375 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32376 : && !reg_overlap_mentioned_p (operands[4], operands[1])
32377 : && (HImode != QImode
32378 : || immediate_operand (operands[2], QImode)
32379 : || any_QIreg_operand (operands[2], QImode))
32380 : && ix86_match_ccmode (peep2_next_insn (4),
32381 : (GET_CODE (operands[3]) == PLUS
32382 : || GET_CODE (operands[3]) == MINUS)
32383 : ? CCGOCmode : CCNOmode)))
32384 : {
32385 : *pmatch_len_ = 4;
32386 : res = gen_peephole2_346 (insn, operands);
32387 : if (res != NULL_RTX)
32388 : return res;
32389 : }
32390 : }
32391 : if (GET_CODE (x6) == XOR
32392 : && pattern1360 (x4,
32393 : E_HImode) == 0
32394 : &&
32395 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32396 : (TARGET_APX_NDD
32397 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32398 : && REGNO (operands[3]) == REGNO (operands[0])
32399 : && (rtx_equal_p (operands[0], operands[5])
32400 : ? rtx_equal_p (operands[2], operands[6])
32401 : : rtx_equal_p (operands[2], operands[5])
32402 : && rtx_equal_p (operands[0], operands[6]))
32403 : && peep2_reg_dead_p (3, operands[4])
32404 : && peep2_reg_dead_p (4, operands[0])
32405 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32406 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32407 : && (HImode != QImode
32408 : || immediate_operand (operands[2], QImode)
32409 : || any_QIreg_operand (operands[2], QImode))))
32410 : {
32411 : *pmatch_len_ = 3;
32412 : res = gen_peephole2_340 (insn, operands);
32413 : if (res != NULL_RTX)
32414 : return res;
32415 : }
32416 : }
32417 : }
32418 : if (!memory_operand (operands[1], E_DImode))
32419 : return NULL;
32420 : x4 = PATTERN (peep2_next_insn (1));
32421 : if (pattern734 (x4,
32422 : E_DImode) != 0)
32423 : return NULL;
32424 : x5 = XVECEXP (x4, 0, 0);
32425 : x6 = XEXP (x5, 1);
32426 : operands[3] = x6;
32427 : if (pattern1361 (x4,
32428 : E_DImode) == 0
32429 : && pattern1358 (x5) == 0)
32430 : {
32431 : x7 = PATTERN (peep2_next_insn (2));
32432 : x8 = XEXP (x7, 0);
32433 : if (rtx_equal_p (x8, operands[1]))
32434 : {
32435 : x9 = PATTERN (peep2_next_insn (3));
32436 : if (pattern1850 (x9) == 0
32437 : && (
32438 : #line 28634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32439 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32440 : && peep2_reg_dead_p (4, operands[0])
32441 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32442 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32443 : && (DImode != QImode
32444 : || immediate_operand (operands[2], QImode)
32445 : || any_QIreg_operand (operands[2], QImode))
32446 : && ix86_match_ccmode (peep2_next_insn (3),
32447 : (GET_CODE (operands[3]) == PLUS
32448 : || GET_CODE (operands[3]) == MINUS)
32449 : ? CCGOCmode : CCNOmode)) &&
32450 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32451 : (TARGET_64BIT)))
32452 : {
32453 : *pmatch_len_ = 3;
32454 : res = gen_peephole2_318 (insn, operands);
32455 : if (res != NULL_RTX)
32456 : return res;
32457 : }
32458 : }
32459 : if (peep2_current_count >= 5
32460 : && pattern1851 (x8,
32461 : E_DImode) == 0
32462 : && (
32463 : #line 28915 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32464 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32465 : && peep2_reg_dead_p (3, operands[0])
32466 : && peep2_reg_dead_p (5, operands[4])
32467 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32468 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32469 : && !reg_overlap_mentioned_p (operands[4], operands[1])
32470 : && (DImode != QImode
32471 : || immediate_operand (operands[2], QImode)
32472 : || any_QIreg_operand (operands[2], QImode))
32473 : && ix86_match_ccmode (peep2_next_insn (4),
32474 : (GET_CODE (operands[3]) == PLUS
32475 : || GET_CODE (operands[3]) == MINUS)
32476 : ? CCGOCmode : CCNOmode)) &&
32477 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32478 : (TARGET_64BIT)))
32479 : {
32480 : *pmatch_len_ = 4;
32481 : res = gen_peephole2_348 (insn, operands);
32482 : if (res != NULL_RTX)
32483 : return res;
32484 : }
32485 : }
32486 : if (GET_CODE (x6) != XOR
32487 : || pattern1362 (x4,
32488 : E_DImode) != 0)
32489 : return NULL;
32490 : x7 = PATTERN (peep2_next_insn (2));
32491 : if (GET_CODE (x7) != SET
32492 : || pattern1832 (x7,
32493 : E_DImode) != 0
32494 : || !(
32495 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32496 : (TARGET_APX_NDD
32497 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32498 : && REGNO (operands[3]) == REGNO (operands[0])
32499 : && (rtx_equal_p (operands[0], operands[5])
32500 : ? rtx_equal_p (operands[2], operands[6])
32501 : : rtx_equal_p (operands[2], operands[5])
32502 : && rtx_equal_p (operands[0], operands[6]))
32503 : && peep2_reg_dead_p (3, operands[4])
32504 : && peep2_reg_dead_p (4, operands[0])
32505 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32506 : && !reg_overlap_mentioned_p (operands[0], operands[2])
32507 : && (DImode != QImode
32508 : || immediate_operand (operands[2], QImode)
32509 : || any_QIreg_operand (operands[2], QImode))) &&
32510 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32511 : (TARGET_64BIT)))
32512 : return NULL;
32513 : *pmatch_len_ = 3;
32514 : return gen_peephole2_342 (insn, operands);
32515 : }
32516 :
32517 : rtx_insn *
32518 : peephole2_41 (rtx x1 ATTRIBUTE_UNUSED,
32519 : rtx_insn *insn ATTRIBUTE_UNUSED,
32520 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32521 : {
32522 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32523 : rtx x2, x3, x4, x5, x6, x7, x8;
32524 : rtx_insn *res ATTRIBUTE_UNUSED;
32525 : x2 = XVECEXP (x1, 0, 1);
32526 : if (pattern236 (x2,
32527 : E_CCmode,
32528 : 17) != 0)
32529 : return NULL;
32530 : x3 = XVECEXP (x1, 0, 0);
32531 : x4 = XEXP (x3, 1);
32532 : switch (XWINT (x4, 0))
32533 : {
32534 : case 0L:
32535 : res = peephole2_40 (x1, insn, pmatch_len_);
32536 : if (res != NULL_RTX)
32537 : return res;
32538 : break;
32539 :
32540 : case 1L:
32541 : x5 = XEXP (x3, 0);
32542 : if (GET_CODE (x5) == ZERO_EXTRACT
32543 : && pattern1076 (x5) == 0
32544 : &&
32545 : #line 19417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32546 : (TARGET_64BIT && !TARGET_USE_BT))
32547 : {
32548 : *pmatch_len_ = 0;
32549 : res = gen_peephole2_185 (insn, operands);
32550 : if (res != NULL_RTX)
32551 : return res;
32552 : }
32553 : break;
32554 :
32555 : default:
32556 : break;
32557 : }
32558 : if (peep2_current_count < 2
32559 : || peep2_current_count < 3)
32560 : return NULL;
32561 : x5 = XEXP (x3, 0);
32562 : operands[0] = x5;
32563 : x6 = PATTERN (peep2_next_insn (1));
32564 : if (pattern421 (x6,
32565 : UNSPEC_VOLATILE,
32566 : 3) != 0)
32567 : return NULL;
32568 : x7 = XVECEXP (x6, 0, 1);
32569 : if (GET_CODE (x7) != SET)
32570 : return NULL;
32571 : x8 = PATTERN (peep2_next_insn (2));
32572 : if (pattern1546 (x8) != 0)
32573 : return NULL;
32574 : switch (GET_MODE (operands[0]))
32575 : {
32576 : case E_SImode:
32577 : if (!register_operand (operands[0], E_SImode))
32578 : return NULL;
32579 : operands[1] = x4;
32580 : switch (pattern1835 (x6,
32581 : E_SImode))
32582 : {
32583 : case 0:
32584 : if (
32585 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32586 : (REGNO (operands[0]) == REGNO (operands[2])))
32587 : {
32588 : *pmatch_len_ = 2;
32589 : res = gen_peephole2_439 (insn, operands);
32590 : if (res != NULL_RTX)
32591 : return res;
32592 : }
32593 : break;
32594 :
32595 : case 1:
32596 : if (
32597 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32598 : (REGNO (operands[0]) == REGNO (operands[2])))
32599 : {
32600 : *pmatch_len_ = 2;
32601 : res = gen_peephole2_441 (insn, operands);
32602 : if (res != NULL_RTX)
32603 : return res;
32604 : }
32605 : break;
32606 :
32607 : case 2:
32608 : if (
32609 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32610 : (REGNO (operands[0]) == REGNO (operands[2])))
32611 : {
32612 : *pmatch_len_ = 2;
32613 : res = gen_peephole2_443 (insn, operands);
32614 : if (res != NULL_RTX)
32615 : return res;
32616 : }
32617 : break;
32618 :
32619 : case 3:
32620 : if ((
32621 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32622 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32623 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32624 : (TARGET_64BIT)))
32625 : {
32626 : *pmatch_len_ = 2;
32627 : res = gen_peephole2_445 (insn, operands);
32628 : if (res != NULL_RTX)
32629 : return res;
32630 : }
32631 : break;
32632 :
32633 : default:
32634 : break;
32635 : }
32636 : operands[2] = x4;
32637 : if (pattern1786 (x6,
32638 : E_SImode) != 0
32639 : || !
32640 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32641 : (peep2_reg_dead_p (3, operands[0])
32642 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32643 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32644 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32645 : return NULL;
32646 : *pmatch_len_ = 2;
32647 : return gen_peephole2_453 (insn, operands);
32648 :
32649 : case E_DImode:
32650 : if (!register_operand (operands[0], E_DImode))
32651 : return NULL;
32652 : operands[1] = x4;
32653 : switch (pattern1835 (x6,
32654 : E_DImode))
32655 : {
32656 : case 0:
32657 : if ((
32658 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32659 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32660 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32661 : (TARGET_64BIT)))
32662 : {
32663 : *pmatch_len_ = 2;
32664 : res = gen_peephole2_440 (insn, operands);
32665 : if (res != NULL_RTX)
32666 : return res;
32667 : }
32668 : break;
32669 :
32670 : case 1:
32671 : if ((
32672 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32673 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32674 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32675 : (TARGET_64BIT)))
32676 : {
32677 : *pmatch_len_ = 2;
32678 : res = gen_peephole2_442 (insn, operands);
32679 : if (res != NULL_RTX)
32680 : return res;
32681 : }
32682 : break;
32683 :
32684 : case 2:
32685 : if ((
32686 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32687 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32688 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32689 : (TARGET_64BIT)))
32690 : {
32691 : *pmatch_len_ = 2;
32692 : res = gen_peephole2_444 (insn, operands);
32693 : if (res != NULL_RTX)
32694 : return res;
32695 : }
32696 : break;
32697 :
32698 : case 3:
32699 : if ((
32700 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32701 : (REGNO (operands[0]) == REGNO (operands[2])) &&
32702 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32703 : (TARGET_64BIT)))
32704 : {
32705 : *pmatch_len_ = 2;
32706 : res = gen_peephole2_446 (insn, operands);
32707 : if (res != NULL_RTX)
32708 : return res;
32709 : }
32710 : break;
32711 :
32712 : default:
32713 : break;
32714 : }
32715 : operands[2] = x4;
32716 : if (pattern1786 (x6,
32717 : E_DImode) != 0
32718 : || !(
32719 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32720 : (peep2_reg_dead_p (3, operands[0])
32721 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32722 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32723 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32724 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32725 : (TARGET_64BIT)))
32726 : return NULL;
32727 : *pmatch_len_ = 2;
32728 : return gen_peephole2_454 (insn, operands);
32729 :
32730 : case E_QImode:
32731 : if (pattern1787 (x4,
32732 : E_QImode) != 0
32733 : || !
32734 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32735 : (peep2_reg_dead_p (3, operands[0])
32736 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32737 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32738 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32739 : return NULL;
32740 : *pmatch_len_ = 2;
32741 : return gen_peephole2_451 (insn, operands);
32742 :
32743 : case E_HImode:
32744 : if (pattern1787 (x4,
32745 : E_HImode) != 0
32746 : || !
32747 : #line 754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32748 : (peep2_reg_dead_p (3, operands[0])
32749 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32750 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32751 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32752 : return NULL;
32753 : *pmatch_len_ = 2;
32754 : return gen_peephole2_452 (insn, operands);
32755 :
32756 : default:
32757 : return NULL;
32758 : }
32759 : }
32760 :
32761 : rtx_insn *
32762 : peephole2_49 (rtx x1 ATTRIBUTE_UNUSED,
32763 : rtx_insn *insn ATTRIBUTE_UNUSED,
32764 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32765 : {
32766 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32767 : rtx x2, x3, x4, x5, x6, x7, x8;
32768 : rtx_insn *res ATTRIBUTE_UNUSED;
32769 : x2 = XVECEXP (x1, 0, 1);
32770 : x3 = XEXP (x2, 0);
32771 : if (GET_CODE (x3) != MEM
32772 : || GET_MODE (x3) != E_BLKmode)
32773 : return NULL;
32774 : x4 = XEXP (x3, 0);
32775 : if (GET_CODE (x4) != SCRATCH)
32776 : return NULL;
32777 : x5 = XVECEXP (x1, 0, 0);
32778 : x6 = XEXP (x5, 1);
32779 : x7 = XEXP (x6, 1);
32780 : operands[1] = x7;
32781 : x8 = XEXP (x6, 0);
32782 : if (!rtx_equal_p (x8, operands[0]))
32783 : return NULL;
32784 : switch (GET_MODE (operands[0]))
32785 : {
32786 : case E_SImode:
32787 : if (!register_operand (operands[0], E_SImode)
32788 : || GET_MODE (x6) != E_SImode
32789 : || !x86_64_nonmemory_operand (operands[1], E_SImode)
32790 : || !(
32791 : #line 27738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32792 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
32793 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32794 : (Pmode == SImode)))
32795 : return NULL;
32796 : *pmatch_len_ = 0;
32797 : return gen_peephole2_253 (insn, operands);
32798 :
32799 : case E_DImode:
32800 : if (!register_operand (operands[0], E_DImode)
32801 : || GET_MODE (x6) != E_DImode
32802 : || !x86_64_nonmemory_operand (operands[1], E_DImode)
32803 : || !(
32804 : #line 27738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32805 : (peep2_regno_dead_p (0, FLAGS_REG)) &&
32806 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32807 : (Pmode == DImode)))
32808 : return NULL;
32809 : *pmatch_len_ = 0;
32810 : return gen_peephole2_254 (insn, operands);
32811 :
32812 : default:
32813 : return NULL;
32814 : }
32815 : }
32816 :
32817 : rtx_insn *
32818 : peephole2_51 (rtx x1 ATTRIBUTE_UNUSED,
32819 : rtx_insn *insn ATTRIBUTE_UNUSED,
32820 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32821 : {
32822 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32823 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32824 : rtx x10, x11, x12, x13, x14;
32825 : rtx_insn *res ATTRIBUTE_UNUSED;
32826 : if (peep2_current_count < 3)
32827 : return NULL;
32828 : x2 = XVECEXP (x1, 0, 0);
32829 : x3 = XEXP (x2, 1);
32830 : operands[2] = x3;
32831 : x4 = XEXP (x2, 0);
32832 : operands[0] = x4;
32833 : x5 = XEXP (x3, 1);
32834 : operands[1] = x5;
32835 : x6 = XEXP (x3, 0);
32836 : if (!rtx_equal_p (x6, operands[0]))
32837 : return NULL;
32838 : x7 = PATTERN (peep2_next_insn (1));
32839 : if (GET_CODE (x7) != SET)
32840 : return NULL;
32841 : x8 = XEXP (x7, 1);
32842 : if (!rtx_equal_p (x8, operands[0]))
32843 : return NULL;
32844 : x9 = XEXP (x7, 0);
32845 : if (!rtx_equal_p (x9, operands[1]))
32846 : return NULL;
32847 : x10 = PATTERN (peep2_next_insn (2));
32848 : if (GET_CODE (x10) != SET)
32849 : return NULL;
32850 : x11 = XEXP (x10, 1);
32851 : if (GET_CODE (x11) != COMPARE)
32852 : return NULL;
32853 : x12 = XEXP (x11, 1);
32854 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32855 : return NULL;
32856 : x13 = XEXP (x10, 0);
32857 : if (GET_CODE (x13) != REG
32858 : || REGNO (x13) != 17)
32859 : return NULL;
32860 : x14 = XEXP (x11, 0);
32861 : if (!rtx_equal_p (x14, operands[0]))
32862 : return NULL;
32863 : switch (GET_MODE (operands[0]))
32864 : {
32865 : case E_QImode:
32866 : if (!register_operand (operands[0], E_QImode)
32867 : || !plusminuslogic_operator (operands[2], E_QImode)
32868 : || !memory_operand (operands[1], E_QImode)
32869 : || !
32870 : #line 28769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32871 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32872 : && COMMUTATIVE_ARITH_P (operands[2])
32873 : && peep2_reg_dead_p (3, operands[0])
32874 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32875 : && ix86_match_ccmode (peep2_next_insn (2),
32876 : GET_CODE (operands[2]) == PLUS
32877 : ? CCGOCmode : CCNOmode)))
32878 : return NULL;
32879 : *pmatch_len_ = 2;
32880 : return gen_peephole2_331 (insn, operands);
32881 :
32882 : case E_HImode:
32883 : if (!register_operand (operands[0], E_HImode)
32884 : || !plusminuslogic_operator (operands[2], E_HImode)
32885 : || !memory_operand (operands[1], E_HImode)
32886 : || !
32887 : #line 28769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32888 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32889 : && COMMUTATIVE_ARITH_P (operands[2])
32890 : && peep2_reg_dead_p (3, operands[0])
32891 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32892 : && ix86_match_ccmode (peep2_next_insn (2),
32893 : GET_CODE (operands[2]) == PLUS
32894 : ? CCGOCmode : CCNOmode)))
32895 : return NULL;
32896 : *pmatch_len_ = 2;
32897 : return gen_peephole2_332 (insn, operands);
32898 :
32899 : case E_SImode:
32900 : if (!register_operand (operands[0], E_SImode)
32901 : || !plusminuslogic_operator (operands[2], E_SImode)
32902 : || !memory_operand (operands[1], E_SImode)
32903 : || !
32904 : #line 28769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32905 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32906 : && COMMUTATIVE_ARITH_P (operands[2])
32907 : && peep2_reg_dead_p (3, operands[0])
32908 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32909 : && ix86_match_ccmode (peep2_next_insn (2),
32910 : GET_CODE (operands[2]) == PLUS
32911 : ? CCGOCmode : CCNOmode)))
32912 : return NULL;
32913 : *pmatch_len_ = 2;
32914 : return gen_peephole2_333 (insn, operands);
32915 :
32916 : case E_DImode:
32917 : if (!register_operand (operands[0], E_DImode)
32918 : || !plusminuslogic_operator (operands[2], E_DImode)
32919 : || !memory_operand (operands[1], E_DImode)
32920 : || !(
32921 : #line 28769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32922 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32923 : && COMMUTATIVE_ARITH_P (operands[2])
32924 : && peep2_reg_dead_p (3, operands[0])
32925 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32926 : && ix86_match_ccmode (peep2_next_insn (2),
32927 : GET_CODE (operands[2]) == PLUS
32928 : ? CCGOCmode : CCNOmode)) &&
32929 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32930 : (TARGET_64BIT)))
32931 : return NULL;
32932 : *pmatch_len_ = 2;
32933 : return gen_peephole2_334 (insn, operands);
32934 :
32935 : default:
32936 : return NULL;
32937 : }
32938 : }
|