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 75812 : pattern3 (rtx x1, machine_mode i1)
57 : {
58 75812 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 75812 : int res ATTRIBUTE_UNUSED;
60 75812 : if (!register_operand (operands[0], i1)
61 74514 : || GET_MODE (x1) != i1
62 74514 : || !nonimmediate_operand (operands[1], i1)
63 144438 : || !nonimmediate_operand (operands[2], i1))
64 25136 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 224233 : pattern13 (rtx x1, int *pnum_clobbers)
70 : {
71 224233 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 224233 : rtx x2, x3, x4, x5;
73 224233 : int res ATTRIBUTE_UNUSED;
74 224233 : if (pnum_clobbers == NULL)
75 : return -1;
76 224233 : x2 = XEXP (x1, 0);
77 224233 : operands[0] = x2;
78 224233 : x3 = XEXP (x1, 1);
79 224233 : x4 = XEXP (x3, 0);
80 224233 : operands[1] = x4;
81 224233 : x5 = XEXP (x3, 1);
82 224233 : operands[2] = x5;
83 224233 : switch (GET_MODE (operands[0]))
84 : {
85 43267 : case E_SImode:
86 43267 : return pattern12 (x3,
87 43267 : E_SImode); /* [-1, 0] */
88 :
89 180966 : case E_DImode:
90 180966 : if (pattern12 (x3,
91 : E_DImode) != 0)
92 : return -1;
93 : return 1;
94 :
95 : default:
96 : return -1;
97 : }
98 : }
99 :
100 : int
101 355592 : pattern20 (rtx x1, int *pnum_clobbers)
102 : {
103 355592 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
104 355592 : rtx x2, x3;
105 355592 : int res ATTRIBUTE_UNUSED;
106 355592 : if (pnum_clobbers == NULL)
107 : return -1;
108 352181 : x2 = XEXP (x1, 0);
109 352181 : operands[0] = x2;
110 352181 : x3 = XEXP (x1, 1);
111 352181 : return pattern19 (x3); /* [-1, 1] */
112 : }
113 :
114 : int
115 3166466 : pattern24 (rtx x1)
116 : {
117 3166466 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
118 3166466 : int res ATTRIBUTE_UNUSED;
119 3166466 : switch (GET_MODE (operands[0]))
120 : {
121 640343 : case E_SImode:
122 640343 : if (!register_operand (operands[0], E_SImode)
123 640343 : || GET_MODE (x1) != E_SImode)
124 : return -1;
125 : return 0;
126 :
127 2060468 : case E_DImode:
128 2060468 : if (!register_operand (operands[0], E_DImode)
129 2060468 : || GET_MODE (x1) != E_DImode)
130 : return -1;
131 : return 1;
132 :
133 : default:
134 : return -1;
135 : }
136 : }
137 :
138 : int
139 1095 : pattern31 (rtx x1)
140 : {
141 1095 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
142 1095 : int res ATTRIBUTE_UNUSED;
143 1095 : if (!register_operand (operands[0], E_V1TImode)
144 1080 : || GET_MODE (x1) != E_V1TImode
145 1080 : || !register_operand (operands[1], E_V1TImode)
146 2163 : || !const_0_to_255_operand (operands[2], E_SImode))
147 27 : return -1;
148 : return 0;
149 : }
150 :
151 : int
152 20223 : pattern33 (rtx x1)
153 : {
154 20223 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
155 20223 : rtx x2, x3, x4, x5;
156 20223 : int res ATTRIBUTE_UNUSED;
157 20223 : x2 = XEXP (x1, 0);
158 20223 : operands[0] = x2;
159 20223 : x3 = XEXP (x1, 1);
160 20223 : x4 = XEXP (x3, 0);
161 20223 : operands[1] = x4;
162 20223 : x5 = XEXP (x3, 1);
163 20223 : operands[2] = x5;
164 20223 : switch (GET_CODE (operands[2]))
165 : {
166 14708 : case CONST_INT:
167 14708 : switch (GET_MODE (operands[0]))
168 : {
169 248 : case E_V1TImode:
170 248 : return pattern31 (x3); /* [-1, 0] */
171 :
172 142 : case E_V16SImode:
173 142 : if (pattern32 (x3,
174 : E_V16SImode) != 0)
175 : return -1;
176 : return 1;
177 :
178 186 : case E_V8SImode:
179 186 : if (pattern32 (x3,
180 : E_V8SImode) != 0)
181 : return -1;
182 : return 2;
183 :
184 712 : case E_V4SImode:
185 712 : if (!register_operand (operands[0], E_V4SImode)
186 632 : || GET_MODE (x3) != E_V4SImode
187 1344 : || !nonimmediate_operand (operands[1], E_V4SImode))
188 105 : return -1;
189 : return 3;
190 :
191 132 : case E_V8DImode:
192 132 : if (pattern32 (x3,
193 : E_V8DImode) != 0)
194 : return -1;
195 : return 4;
196 :
197 132 : case E_V4DImode:
198 132 : if (pattern32 (x3,
199 : E_V4DImode) != 0)
200 : return -1;
201 : return 5;
202 :
203 378 : case E_V2DImode:
204 378 : if (!register_operand (operands[0], E_V2DImode)
205 343 : || GET_MODE (x3) != E_V2DImode
206 721 : || !nonimmediate_operand (operands[1], E_V2DImode))
207 35 : return -1;
208 : return 6;
209 :
210 532 : case E_V16QImode:
211 532 : if (!register_operand (operands[0], E_V16QImode)
212 439 : || GET_MODE (x3) != E_V16QImode
213 439 : || !nonimmediate_operand (operands[1], E_V16QImode)
214 971 : || !const_0_to_7_operand (operands[2], E_SImode))
215 93 : return -1;
216 : return 7;
217 :
218 188 : case E_V8HImode:
219 188 : if (!register_operand (operands[0], E_V8HImode)
220 157 : || GET_MODE (x3) != E_V8HImode
221 157 : || !nonimmediate_operand (operands[1], E_V8HImode)
222 345 : || !const_0_to_15_operand (operands[2], E_SImode))
223 31 : return -1;
224 : return 8;
225 :
226 : default:
227 : return -1;
228 : }
229 :
230 5330 : case REG:
231 5330 : case SUBREG:
232 5330 : case MEM:
233 5330 : switch (GET_MODE (operands[0]))
234 : {
235 154 : case E_V16SImode:
236 154 : if (pattern12 (x3,
237 : E_V16SImode) != 0)
238 : return -1;
239 : return 9;
240 :
241 154 : case E_V8SImode:
242 154 : if (pattern12 (x3,
243 : E_V8SImode) != 0)
244 : return -1;
245 : return 10;
246 :
247 137 : case E_V4SImode:
248 137 : if (pattern12 (x3,
249 : E_V4SImode) != 0)
250 : return -1;
251 : return 11;
252 :
253 148 : case E_V8DImode:
254 148 : if (pattern12 (x3,
255 : E_V8DImode) != 0)
256 : return -1;
257 : return 12;
258 :
259 148 : case E_V4DImode:
260 148 : if (pattern12 (x3,
261 : E_V4DImode) != 0)
262 : return -1;
263 : return 13;
264 :
265 120 : case E_V2DImode:
266 120 : if (pattern12 (x3,
267 : E_V2DImode) != 0)
268 : return -1;
269 : return 14;
270 :
271 : default:
272 : return -1;
273 : }
274 :
275 : default:
276 : return -1;
277 : }
278 : }
279 :
280 : int
281 495252 : pattern55 (rtx x1)
282 : {
283 495252 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
284 495252 : rtx x2, x3, x4, x5;
285 495252 : int res ATTRIBUTE_UNUSED;
286 495252 : x2 = XEXP (x1, 0);
287 495252 : operands[0] = x2;
288 495252 : x3 = XEXP (x1, 1);
289 495252 : x4 = XEXP (x3, 0);
290 495252 : operands[1] = x4;
291 495252 : x5 = XEXP (x3, 1);
292 495252 : operands[2] = x5;
293 495252 : if (!const_int_operand (operands[2], E_VOIDmode))
294 : return -1;
295 474742 : switch (GET_MODE (operands[0]))
296 : {
297 2575 : case E_QImode:
298 2575 : if (!mask_reg_operand (operands[0], E_QImode)
299 0 : || GET_MODE (x3) != E_QImode
300 2575 : || !mask_reg_operand (operands[1], E_QImode))
301 2575 : return -1;
302 : return 0;
303 :
304 3065 : case E_HImode:
305 3065 : if (!mask_reg_operand (operands[0], E_HImode)
306 0 : || GET_MODE (x3) != E_HImode
307 3065 : || !mask_reg_operand (operands[1], E_HImode))
308 3065 : return -1;
309 : return 1;
310 :
311 40787 : case E_SImode:
312 40787 : if (!mask_reg_operand (operands[0], E_SImode)
313 0 : || GET_MODE (x3) != E_SImode
314 40787 : || !mask_reg_operand (operands[1], E_SImode))
315 40787 : return -1;
316 : return 2;
317 :
318 149291 : case E_DImode:
319 149291 : if (!mask_reg_operand (operands[0], E_DImode)
320 0 : || GET_MODE (x3) != E_DImode
321 149291 : || !mask_reg_operand (operands[1], E_DImode))
322 149291 : return -1;
323 : return 3;
324 :
325 : default:
326 : return -1;
327 : }
328 : }
329 :
330 : int
331 151633 : pattern68 (rtx x1)
332 : {
333 151633 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
334 151633 : rtx x2, x3, x4, x5;
335 151633 : int res ATTRIBUTE_UNUSED;
336 151633 : x2 = XEXP (x1, 0);
337 151633 : operands[0] = x2;
338 151633 : x3 = XEXP (x1, 1);
339 151633 : x4 = XVECEXP (x3, 0, 0);
340 151633 : operands[1] = x4;
341 151633 : x5 = XVECEXP (x3, 0, 1);
342 151633 : operands[2] = x5;
343 151633 : switch (GET_MODE (operands[0]))
344 : {
345 13252 : case E_V8QImode:
346 13252 : return pattern67 (x3,
347 13252 : E_V8QImode); /* [-1, 0] */
348 :
349 2398 : case E_V4HImode:
350 2398 : if (!register_operand (operands[0], E_V4HImode)
351 2384 : || GET_MODE (x3) != E_V4HImode
352 2384 : || !register_operand (operands[1], E_V2SImode)
353 4107 : || !register_operand (operands[2], E_V2SImode))
354 1153 : return -1;
355 : return 1;
356 :
357 : default:
358 : return -1;
359 : }
360 : }
361 :
362 : int
363 1485 : pattern78 (rtx x1, int *pnum_clobbers)
364 : {
365 1485 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
366 1485 : rtx x2, x3, x4;
367 1485 : int res ATTRIBUTE_UNUSED;
368 1485 : if (pnum_clobbers == NULL)
369 : return -1;
370 1485 : x2 = XEXP (x1, 0);
371 1485 : x3 = XEXP (x2, 0);
372 1485 : operands[0] = x3;
373 1485 : switch (GET_MODE (operands[0]))
374 : {
375 236 : case E_QImode:
376 236 : x4 = XEXP (x1, 1);
377 236 : return pattern77 (x4,
378 236 : E_QImode); /* [-1, 0] */
379 :
380 1249 : case E_HImode:
381 1249 : x4 = XEXP (x1, 1);
382 1249 : if (pattern77 (x4,
383 : E_HImode) != 0)
384 : return -1;
385 : return 1;
386 :
387 : default:
388 : return -1;
389 : }
390 : }
391 :
392 : int
393 2991 : pattern86 (rtx x1)
394 : {
395 2991 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
396 2991 : rtx x2, x3;
397 2991 : int res ATTRIBUTE_UNUSED;
398 2991 : x2 = XEXP (x1, 0);
399 2991 : if (GET_MODE (x2) != E_QImode
400 810 : || !register_operand (operands[0], E_HImode)
401 3184 : || GET_MODE (x1) != E_HImode)
402 2798 : return -1;
403 193 : x3 = XEXP (x2, 0);
404 193 : operands[1] = x3;
405 193 : if (!nonimmediate_operand (operands[1], E_QImode))
406 : return -1;
407 : return 0;
408 : }
409 :
410 : int
411 13786410 : pattern89 (rtx x1, machine_mode i1, int i2, int i3)
412 : {
413 13786410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
414 13786410 : int res ATTRIBUTE_UNUSED;
415 13786410 : if (GET_CODE (x1) != UNSPEC
416 25810 : || XVECLEN (x1, 0) != i3
417 19704 : || XINT (x1, 1) != i2
418 17666 : || GET_MODE (x1) != i1)
419 13768744 : return -1;
420 : return 0;
421 : }
422 :
423 : int
424 29493 : pattern96 (rtx x1, int *pnum_clobbers)
425 : {
426 29493 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
427 29493 : rtx x2, x3, x4, x5, x6, x7;
428 29493 : int res ATTRIBUTE_UNUSED;
429 29493 : if (pnum_clobbers == NULL)
430 : return -1;
431 29493 : x2 = XEXP (x1, 1);
432 29493 : x3 = XEXP (x2, 0);
433 29493 : x4 = XEXP (x3, 1);
434 29493 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
435 : return -1;
436 22483 : x5 = XEXP (x1, 0);
437 22483 : operands[0] = x5;
438 22483 : x6 = XEXP (x3, 0);
439 22483 : operands[2] = x6;
440 22483 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
441 : return -1;
442 1685 : x7 = XEXP (x2, 1);
443 1685 : operands[1] = x7;
444 1685 : switch (GET_MODE (operands[0]))
445 : {
446 38 : case E_QImode:
447 38 : return pattern95 (x2,
448 38 : E_QImode); /* [-1, 0] */
449 :
450 11 : case E_HImode:
451 11 : if (pattern95 (x2,
452 : E_HImode) != 0)
453 : return -1;
454 : return 1;
455 :
456 : default:
457 : return -1;
458 : }
459 : }
460 :
461 : int
462 867 : pattern105 (rtx x1, machine_mode i1)
463 : {
464 867 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
465 867 : rtx x2;
466 867 : int res ATTRIBUTE_UNUSED;
467 867 : if (!memory_operand (operands[0], i1)
468 867 : || GET_MODE (x1) != i1)
469 : return -1;
470 867 : x2 = XEXP (x1, 0);
471 867 : if (GET_MODE (x2) != i1)
472 : return -1;
473 867 : switch (GET_MODE (operands[1]))
474 : {
475 452 : case E_V4SImode:
476 452 : if (!register_operand (operands[1], E_V4SImode))
477 : return -1;
478 : return 0;
479 :
480 415 : case E_V4DImode:
481 415 : if (!register_operand (operands[1], E_V4DImode))
482 : return -1;
483 : return 1;
484 :
485 : default:
486 : return -1;
487 : }
488 : }
489 :
490 : int
491 29464 : pattern112 (rtx x1, int *pnum_clobbers)
492 : {
493 29464 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
494 29464 : rtx x2, x3, x4, x5;
495 29464 : int res ATTRIBUTE_UNUSED;
496 29464 : if (pnum_clobbers == NULL)
497 : return -1;
498 29464 : x2 = XEXP (x1, 0);
499 29464 : x3 = XEXP (x2, 1);
500 29464 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
501 : return -1;
502 22454 : x4 = XEXP (x2, 0);
503 22454 : operands[2] = x4;
504 22454 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
505 : return -1;
506 1656 : x5 = XEXP (x1, 1);
507 1656 : operands[1] = x5;
508 1656 : switch (GET_MODE (operands[0]))
509 : {
510 961 : case E_SImode:
511 961 : return pattern111 (x1,
512 961 : E_SImode); /* [-1, 0] */
513 :
514 671 : case E_DImode:
515 671 : if (pattern111 (x1,
516 : E_DImode) != 0)
517 : return -1;
518 : return 1;
519 :
520 : default:
521 : return -1;
522 : }
523 : }
524 :
525 : int
526 704747 : pattern121 (rtx x1)
527 : {
528 704747 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
529 704747 : rtx x2;
530 704747 : int res ATTRIBUTE_UNUSED;
531 704747 : x2 = XEXP (x1, 0);
532 704747 : operands[1] = x2;
533 704747 : switch (GET_MODE (operands[0]))
534 : {
535 401891 : case E_DImode:
536 401891 : if (!nonimmediate_operand (operands[0], E_DImode)
537 401543 : || GET_MODE (x1) != E_DImode
538 803434 : || !nonimmediate_operand (operands[1], E_DImode))
539 432 : return -1;
540 : return 0;
541 :
542 234687 : case E_SImode:
543 234687 : if (!nonimmediate_operand (operands[0], E_SImode)
544 234026 : || GET_MODE (x1) != E_SImode
545 468713 : || !nonimmediate_operand (operands[1], E_SImode))
546 1431 : return -1;
547 : return 1;
548 :
549 : default:
550 : return -1;
551 : }
552 : }
553 :
554 : int
555 1771 : pattern131 (rtx x1)
556 : {
557 1771 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
558 1771 : rtx x2, x3, x4, x5, x6, x7;
559 1771 : int res ATTRIBUTE_UNUSED;
560 1771 : x2 = XEXP (x1, 1);
561 1771 : x3 = XVECEXP (x2, 0, 0);
562 1771 : if (GET_CODE (x3) != VEC_SELECT)
563 : return -1;
564 234 : x4 = XEXP (x3, 1);
565 234 : if (GET_CODE (x4) != PARALLEL
566 234 : || XVECLEN (x4, 0) != 1)
567 : return -1;
568 234 : x5 = XVECEXP (x4, 0, 0);
569 234 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
570 : return -1;
571 234 : x6 = XEXP (x1, 0);
572 234 : operands[0] = x6;
573 234 : x7 = XEXP (x3, 0);
574 234 : operands[1] = x7;
575 234 : switch (GET_MODE (operands[0]))
576 : {
577 134 : case E_SImode:
578 134 : return pattern130 (x2,
579 134 : E_SImode); /* [-1, 1] */
580 :
581 100 : case E_DImode:
582 100 : res = pattern130 (x2,
583 : E_DImode);
584 100 : if (res >= 0)
585 76 : return res + 2; /* [2, 3] */
586 : return -1;
587 :
588 : default:
589 : return -1;
590 : }
591 : }
592 :
593 : int
594 9546 : pattern142 (rtx x1, machine_mode i1, machine_mode i2)
595 : {
596 9546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
597 9546 : rtx x2;
598 9546 : int res ATTRIBUTE_UNUSED;
599 9546 : if (!register_operand (operands[0], i1)
600 9546 : || GET_MODE (x1) != i1)
601 : return -1;
602 8924 : x2 = XEXP (x1, 0);
603 8924 : if (GET_MODE (x2) != i1
604 8924 : || !nonimm_or_0_operand (operands[2], i1)
605 17402 : || !register_operand (operands[3], i2))
606 815 : return -1;
607 : return 0;
608 : }
609 :
610 : int
611 2556 : pattern149 (rtx x1, machine_mode i1, machine_mode i2)
612 : {
613 2556 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
614 2556 : rtx x2;
615 2556 : int res ATTRIBUTE_UNUSED;
616 2556 : if (!register_operand (operands[0], i1)
617 2556 : || GET_MODE (x1) != i1)
618 : return -1;
619 2426 : x2 = XEXP (x1, 0);
620 2426 : if (GET_MODE (x2) != i1
621 2426 : || !nonimmediate_operand (operands[1], i1)
622 2426 : || !nonimm_or_0_operand (operands[3], i1)
623 4776 : || !register_operand (operands[4], i2))
624 236 : return -1;
625 : return 0;
626 : }
627 :
628 : int
629 673 : pattern153 (rtx x1, machine_mode i1)
630 : {
631 673 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
632 673 : rtx x2;
633 673 : int res ATTRIBUTE_UNUSED;
634 673 : if (!register_operand (operands[0], E_V16HImode)
635 673 : || GET_MODE (x1) != E_V16HImode)
636 : return -1;
637 638 : x2 = XEXP (x1, 0);
638 638 : if (GET_MODE (x2) != E_V16HImode
639 638 : || !nonimmediate_operand (operands[1], i1)
640 626 : || !nonimm_or_0_operand (operands[2], E_V16HImode)
641 1246 : || !register_operand (operands[3], E_HImode))
642 78 : return -1;
643 : return 0;
644 : }
645 :
646 : int
647 9 : pattern156 (rtx x1, machine_mode i1, machine_mode i2)
648 : {
649 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
650 9 : rtx x2;
651 9 : int res ATTRIBUTE_UNUSED;
652 9 : if (!register_operand (operands[0], i1)
653 9 : || GET_MODE (x1) != i1)
654 : return -1;
655 6 : x2 = XEXP (x1, 0);
656 6 : if (GET_MODE (x2) != i1
657 6 : || !memory_operand (operands[1], i2)
658 6 : || !nonimm_or_0_operand (operands[2], i1)
659 12 : || !register_operand (operands[3], E_QImode))
660 0 : return -1;
661 : return 0;
662 : }
663 :
664 : int
665 1618 : pattern160 (rtx x1, machine_mode i1)
666 : {
667 1618 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
668 1618 : int res ATTRIBUTE_UNUSED;
669 1618 : if (!register_operand (operands[0], i1)
670 1410 : || GET_MODE (x1) != i1
671 1410 : || !vector_operand (operands[1], i1)
672 3005 : || !vector_operand (operands[2], i1))
673 239 : return -1;
674 : return 0;
675 : }
676 :
677 : int
678 116 : pattern162 (rtx x1)
679 : {
680 116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
681 116 : rtx x2, x3, x4, x5;
682 116 : int res ATTRIBUTE_UNUSED;
683 116 : x2 = XEXP (x1, 1);
684 116 : if (GET_MODE (x2) != E_V32HImode)
685 : return -1;
686 116 : x3 = XEXP (x1, 0);
687 116 : operands[0] = x3;
688 116 : if (!register_operand (operands[0], E_V32HImode))
689 : return -1;
690 108 : x4 = XVECEXP (x2, 0, 0);
691 108 : operands[1] = x4;
692 108 : if (!nonimmediate_operand (operands[1], E_V32HImode))
693 : return -1;
694 108 : x5 = XVECEXP (x2, 0, 1);
695 108 : operands[2] = x5;
696 108 : if (!const_0_to_255_operand (operands[2], E_SImode))
697 : return -1;
698 : return 0;
699 : }
700 :
701 : int
702 7314 : pattern166 (rtx x1, machine_mode i1)
703 : {
704 7314 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
705 7314 : rtx x2, x3, x4, x5;
706 7314 : int res ATTRIBUTE_UNUSED;
707 7314 : x2 = XEXP (x1, 1);
708 7314 : if (GET_MODE (x2) != i1)
709 : return -1;
710 7314 : x3 = XEXP (x1, 0);
711 7314 : operands[0] = x3;
712 7314 : if (!register_operand (operands[0], i1))
713 : return -1;
714 6988 : x4 = XVECEXP (x2, 0, 0);
715 6988 : operands[1] = x4;
716 6988 : if (!register_operand (operands[1], i1))
717 : return -1;
718 5422 : x5 = XVECEXP (x2, 0, 1);
719 5422 : operands[2] = x5;
720 5422 : if (!vector_operand (operands[2], i1))
721 : return -1;
722 : return 0;
723 : }
724 :
725 : int
726 18 : pattern174 (rtx x1, machine_mode i1)
727 : {
728 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
729 18 : int res ATTRIBUTE_UNUSED;
730 18 : if (!register_operand (operands[0], i1)
731 18 : || GET_MODE (x1) != i1
732 18 : || !vector_operand (operands[1], i1)
733 18 : || !bcst_vector_operand (operands[2], i1)
734 36 : || !vector_operand (operands[3], i1))
735 0 : return -1;
736 : return 0;
737 : }
738 :
739 : int
740 4729 : pattern180 (rtx x1)
741 : {
742 4729 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
743 4729 : rtx x2, x3, x4, x5, x6;
744 4729 : int res ATTRIBUTE_UNUSED;
745 4729 : x2 = XEXP (x1, 0);
746 4729 : operands[0] = x2;
747 4729 : x3 = XEXP (x1, 1);
748 4729 : x4 = XVECEXP (x3, 0, 0);
749 4729 : operands[1] = x4;
750 4729 : x5 = XVECEXP (x3, 0, 1);
751 4729 : operands[2] = x5;
752 4729 : x6 = XVECEXP (x3, 0, 2);
753 4729 : operands[3] = x6;
754 4729 : if (!const_0_to_255_operand (operands[3], E_VOIDmode))
755 : return -1;
756 4729 : switch (GET_MODE (operands[0]))
757 : {
758 1627 : case E_V64QImode:
759 1627 : return pattern158 (x3,
760 1627 : E_V64QImode); /* [-1, 0] */
761 :
762 342 : case E_V32QImode:
763 342 : if (pattern158 (x3,
764 : E_V32QImode) != 0)
765 : return -1;
766 : return 1;
767 :
768 2760 : case E_V16QImode:
769 2760 : if (pattern158 (x3,
770 : E_V16QImode) != 0)
771 : return -1;
772 : return 2;
773 :
774 : default:
775 : return -1;
776 : }
777 : }
778 :
779 : int
780 1011 : pattern188 (rtx x1)
781 : {
782 1011 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
783 1011 : rtx x2, x3, x4;
784 1011 : int res ATTRIBUTE_UNUSED;
785 1011 : x2 = XEXP (x1, 0);
786 1011 : if (GET_MODE (x2) != E_DImode)
787 : return -1;
788 910 : x3 = XEXP (x1, 1);
789 910 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
790 857 : || !register_operand (operands[0], E_V2DImode)
791 1765 : || GET_MODE (x1) != E_V2DImode)
792 55 : return -1;
793 855 : x4 = XEXP (x2, 0);
794 855 : operands[1] = x4;
795 855 : switch (GET_MODE (operands[1]))
796 : {
797 25 : case E_HImode:
798 25 : if (!nonimmediate_operand (operands[1], E_HImode))
799 : return -1;
800 : return 0;
801 :
802 808 : case E_SImode:
803 808 : if (!nonimmediate_operand (operands[1], E_SImode))
804 : return -1;
805 : return 1;
806 :
807 : default:
808 : return -1;
809 : }
810 : }
811 :
812 : int
813 807 : pattern197 (rtx x1, machine_mode i1, machine_mode i2)
814 : {
815 807 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
816 807 : rtx x2, x3, x4, x5;
817 807 : int res ATTRIBUTE_UNUSED;
818 807 : if (!register_operand (operands[0], i2)
819 807 : || GET_MODE (x1) != i2)
820 : return -1;
821 778 : x2 = XEXP (x1, 0);
822 778 : if (GET_MODE (x2) != i2)
823 : return -1;
824 778 : x3 = XEXP (x2, 0);
825 778 : if (GET_MODE (x3) != i1
826 778 : || !register_operand (operands[1], i2)
827 1486 : || !vector_operand (operands[2], i2))
828 70 : return -1;
829 708 : x4 = XEXP (x1, 1);
830 708 : if (GET_MODE (x4) != i2)
831 : return -1;
832 708 : x5 = XEXP (x4, 0);
833 708 : if (GET_MODE (x5) != i1)
834 : return -1;
835 : return 0;
836 : }
837 :
838 : int
839 450804 : pattern202 (rtx x1, rtx_code i1)
840 : {
841 450804 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
842 450804 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
843 450804 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
844 450804 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
845 450804 : int res ATTRIBUTE_UNUSED;
846 450804 : x2 = XEXP (x1, 0);
847 450804 : x3 = XEXP (x2, 0);
848 450804 : if (GET_CODE (x3) != VEC_SELECT)
849 : return -1;
850 206601 : x4 = XEXP (x3, 1);
851 206601 : if (GET_CODE (x4) != PARALLEL)
852 : return -1;
853 206601 : x5 = XEXP (x1, 1);
854 206601 : if (GET_CODE (x5) != i1)
855 : return -1;
856 172134 : x6 = XEXP (x5, 0);
857 172134 : if (GET_CODE (x6) != VEC_SELECT)
858 : return -1;
859 172094 : x7 = XEXP (x6, 1);
860 172094 : if (GET_CODE (x7) != PARALLEL)
861 : return -1;
862 172094 : x8 = XEXP (x3, 0);
863 172094 : operands[1] = x8;
864 172094 : x9 = XEXP (x6, 0);
865 172094 : operands[2] = x9;
866 172094 : switch (XVECLEN (x4, 0))
867 : {
868 5946 : case 8:
869 5946 : x10 = XVECEXP (x4, 0, 0);
870 5946 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
871 : return -1;
872 5946 : x11 = XVECEXP (x4, 0, 1);
873 5946 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
874 : return -1;
875 5802 : x12 = XVECEXP (x4, 0, 2);
876 5802 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
877 : return -1;
878 5802 : x13 = XVECEXP (x4, 0, 3);
879 5802 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
880 : return -1;
881 5802 : x14 = XVECEXP (x4, 0, 4);
882 5802 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
883 : return -1;
884 5802 : x15 = XVECEXP (x4, 0, 5);
885 5802 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
886 : return -1;
887 5802 : x16 = XVECEXP (x4, 0, 6);
888 5802 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
889 : return -1;
890 5802 : x17 = XVECEXP (x4, 0, 7);
891 5802 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
892 5802 : || XVECLEN (x7, 0) != 8)
893 : return -1;
894 5802 : x18 = XVECEXP (x7, 0, 0);
895 5802 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
896 : return -1;
897 5802 : x19 = XVECEXP (x7, 0, 1);
898 5802 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
899 : return -1;
900 5802 : x20 = XVECEXP (x7, 0, 2);
901 5802 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
902 : return -1;
903 5802 : x21 = XVECEXP (x7, 0, 3);
904 5802 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
905 : return -1;
906 5802 : x22 = XVECEXP (x7, 0, 4);
907 5802 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
908 : return -1;
909 5802 : x23 = XVECEXP (x7, 0, 5);
910 5802 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
911 : return -1;
912 5802 : x24 = XVECEXP (x7, 0, 6);
913 5802 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
914 : return -1;
915 5802 : x25 = XVECEXP (x7, 0, 7);
916 5802 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14]
917 5802 : || pattern201 (x1,
918 : E_V16SImode,
919 : E_V8SImode,
920 : E_V8DImode) != 0)
921 716 : return -1;
922 : return 0;
923 :
924 9961 : case 4:
925 9961 : x10 = XVECEXP (x4, 0, 0);
926 9961 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
927 : return -1;
928 9961 : x11 = XVECEXP (x4, 0, 1);
929 9961 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
930 : return -1;
931 9957 : x12 = XVECEXP (x4, 0, 2);
932 9957 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
933 : return -1;
934 9957 : x13 = XVECEXP (x4, 0, 3);
935 9957 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
936 9957 : || XVECLEN (x7, 0) != 4)
937 : return -1;
938 9957 : x18 = XVECEXP (x7, 0, 0);
939 9957 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
940 : return -1;
941 9957 : x19 = XVECEXP (x7, 0, 1);
942 9957 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
943 : return -1;
944 9957 : x20 = XVECEXP (x7, 0, 2);
945 9957 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
946 : return -1;
947 9957 : x21 = XVECEXP (x7, 0, 3);
948 9957 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 6]
949 9957 : || pattern201 (x1,
950 : E_V8SImode,
951 : E_V4SImode,
952 : E_V4DImode) != 0)
953 1825 : return -1;
954 : return 1;
955 :
956 156173 : case 2:
957 156173 : x10 = XVECEXP (x4, 0, 0);
958 156173 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
959 : return -1;
960 156072 : x11 = XVECEXP (x4, 0, 1);
961 156072 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
962 156060 : || XVECLEN (x7, 0) != 2)
963 : return -1;
964 156060 : x18 = XVECEXP (x7, 0, 0);
965 156060 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
966 : return -1;
967 156060 : x19 = XVECEXP (x7, 0, 1);
968 156060 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 2]
969 156060 : || !register_operand (operands[0], E_V2DImode)
970 155948 : || GET_MODE (x1) != E_V2DImode
971 155948 : || GET_MODE (x2) != E_V2DImode
972 155948 : || GET_MODE (x3) != E_V2SImode
973 155948 : || !vector_operand (operands[1], E_V4SImode)
974 128311 : || GET_MODE (x5) != E_V2DImode
975 128311 : || GET_MODE (x6) != E_V2SImode
976 284371 : || !vector_operand (operands[2], E_V4SImode))
977 43135 : return -1;
978 : return 2;
979 :
980 : default:
981 : return -1;
982 : }
983 : }
984 :
985 : int
986 907078 : pattern232 (rtx x1)
987 : {
988 907078 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
989 907078 : rtx x2, x3, x4, x5, x6;
990 907078 : int res ATTRIBUTE_UNUSED;
991 907078 : x2 = XVECEXP (x1, 0, 0);
992 907078 : x3 = XEXP (x2, 1);
993 907078 : x4 = XEXP (x3, 1);
994 907078 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
995 : return -1;
996 252949 : x5 = XEXP (x2, 0);
997 252949 : if (GET_CODE (x5) != REG
998 252949 : || REGNO (x5) != 17)
999 : return -1;
1000 252949 : x6 = XVECEXP (x1, 0, 1);
1001 252949 : if (GET_CODE (x6) != SET)
1002 13743 : return -1;
1003 : return 0;
1004 : }
1005 :
1006 : int
1007 376238 : pattern241 (rtx x1)
1008 : {
1009 376238 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1010 376238 : rtx x2, x3;
1011 376238 : int res ATTRIBUTE_UNUSED;
1012 376238 : x2 = XEXP (x1, 0);
1013 376238 : operands[1] = x2;
1014 376238 : x3 = XEXP (x1, 1);
1015 376238 : operands[2] = x3;
1016 376238 : switch (GET_MODE (operands[0]))
1017 : {
1018 4591 : case E_V4HImode:
1019 4591 : return pattern203 (x1,
1020 4591 : E_V4HImode); /* [-1, 0] */
1021 :
1022 3626 : case E_V2SImode:
1023 3626 : if (pattern203 (x1,
1024 : E_V2SImode) != 0)
1025 : return -1;
1026 : return 1;
1027 :
1028 158 : case E_V2HImode:
1029 158 : if (pattern203 (x1,
1030 : E_V2HImode) != 0)
1031 : return -1;
1032 : return 2;
1033 :
1034 : default:
1035 : return -1;
1036 : }
1037 : }
1038 :
1039 : int
1040 381781 : pattern251 (rtx x1)
1041 : {
1042 381781 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1043 381781 : int res ATTRIBUTE_UNUSED;
1044 381781 : switch (GET_MODE (operands[0]))
1045 : {
1046 250243 : case E_DImode:
1047 250243 : if (!register_operand (operands[0], E_DImode)
1048 249710 : || GET_MODE (x1) != E_DImode
1049 499953 : || !register_operand (operands[1], E_DImode))
1050 2135 : return -1;
1051 : return 0;
1052 :
1053 4422 : case E_TImode:
1054 4422 : if (!register_operand (operands[0], E_TImode)
1055 4421 : || GET_MODE (x1) != E_TImode
1056 8843 : || !register_operand (operands[1], E_TImode))
1057 31 : return -1;
1058 : return 1;
1059 :
1060 : default:
1061 : return -1;
1062 : }
1063 : }
1064 :
1065 : int
1066 138 : pattern258 (rtx x1)
1067 : {
1068 138 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1069 138 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1070 138 : rtx x10;
1071 138 : int res ATTRIBUTE_UNUSED;
1072 138 : x2 = XEXP (x1, 0);
1073 138 : if (GET_CODE (x2) != ZERO_EXTRACT)
1074 : return -1;
1075 138 : x3 = XEXP (x2, 1);
1076 138 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1077 : return -1;
1078 138 : x4 = XEXP (x2, 2);
1079 138 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1080 : return -1;
1081 138 : x5 = XEXP (x2, 0);
1082 138 : operands[0] = x5;
1083 138 : if (!int248_register_operand (operands[0], E_VOIDmode))
1084 : return -1;
1085 138 : x6 = XEXP (x1, 1);
1086 138 : x7 = XEXP (x6, 0);
1087 138 : x8 = XEXP (x7, 0);
1088 138 : x9 = XEXP (x8, 0);
1089 138 : x10 = XEXP (x9, 0);
1090 138 : operands[1] = x10;
1091 138 : if (!int248_register_operand (operands[1], E_VOIDmode))
1092 : return -1;
1093 : return 0;
1094 : }
1095 :
1096 : int
1097 2125 : pattern273 (rtx x1)
1098 : {
1099 2125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1100 2125 : rtx x2, x3, x4, x5;
1101 2125 : int res ATTRIBUTE_UNUSED;
1102 2125 : x2 = XEXP (x1, 0);
1103 2125 : x3 = XEXP (x2, 0);
1104 2125 : operands[1] = x3;
1105 2125 : x4 = XEXP (x1, 1);
1106 2125 : x5 = XEXP (x4, 0);
1107 2125 : operands[2] = x5;
1108 2125 : switch (GET_MODE (operands[0]))
1109 : {
1110 429 : case E_V8QImode:
1111 429 : return pattern272 (x1,
1112 : E_V4HImode,
1113 : E_V4QImode,
1114 429 : E_V8QImode); /* [-1, 0] */
1115 :
1116 658 : case E_V4HImode:
1117 658 : if (pattern272 (x1,
1118 : E_V2SImode,
1119 : E_V2HImode,
1120 : E_V4HImode) != 0)
1121 : return -1;
1122 : return 1;
1123 :
1124 : default:
1125 : return -1;
1126 : }
1127 : }
1128 :
1129 : int
1130 943 : pattern283 (rtx x1)
1131 : {
1132 943 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1133 943 : rtx x2;
1134 943 : int res ATTRIBUTE_UNUSED;
1135 943 : if (!register_operand (operands[0], E_SImode)
1136 943 : || GET_MODE (x1) != E_SImode)
1137 : return -1;
1138 938 : x2 = XEXP (x1, 0);
1139 938 : switch (GET_MODE (x2))
1140 : {
1141 432 : case E_QImode:
1142 432 : if (!nonimmediate_operand (operands[1], E_QImode))
1143 : return -1;
1144 : return 0;
1145 :
1146 506 : case E_HImode:
1147 506 : if (!nonimmediate_operand (operands[1], E_HImode))
1148 : return -1;
1149 : return 1;
1150 :
1151 : default:
1152 : return -1;
1153 : }
1154 : }
1155 :
1156 : int
1157 720 : pattern291 (rtx x1, rtx_code i1)
1158 : {
1159 720 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1160 720 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1161 720 : rtx x10, x11, x12;
1162 720 : int res ATTRIBUTE_UNUSED;
1163 720 : x2 = XEXP (x1, 0);
1164 720 : x3 = XEXP (x2, 1);
1165 720 : if (GET_MODE (x3) != E_QImode)
1166 : return -1;
1167 656 : x4 = XEXP (x3, 1);
1168 656 : if (GET_CODE (x4) != CONST_INT)
1169 : return -1;
1170 656 : x5 = XEXP (x1, 1);
1171 656 : if (GET_CODE (x5) != SUBREG
1172 656 : || maybe_ne (SUBREG_BYTE (x5), 0))
1173 : return -1;
1174 589 : x6 = XEXP (x5, 0);
1175 589 : if (GET_CODE (x6) != i1)
1176 : return -1;
1177 589 : x7 = XEXP (x6, 0);
1178 589 : if (GET_CODE (x7) != ZERO_EXTEND)
1179 : return -1;
1180 589 : x8 = XEXP (x6, 1);
1181 589 : if (GET_CODE (x8) != MINUS
1182 589 : || GET_MODE (x8) != E_QImode)
1183 : return -1;
1184 589 : x9 = XEXP (x8, 0);
1185 589 : if (GET_CODE (x9) != CONST_INT)
1186 : return -1;
1187 589 : x10 = XEXP (x8, 1);
1188 589 : if (GET_CODE (x10) != AND
1189 589 : || GET_MODE (x10) != E_QImode)
1190 : return -1;
1191 589 : x11 = XEXP (x10, 1);
1192 589 : if (GET_CODE (x11) != CONST_INT)
1193 : return -1;
1194 589 : x12 = XEXP (x3, 0);
1195 589 : if (!nonmemory_operand (x12, E_QImode))
1196 : return -1;
1197 585 : switch (XWINT (x4, 0))
1198 : {
1199 576 : case 63L:
1200 576 : if (XWINT (x9, 0) != 64L
1201 576 : || XWINT (x11, 0) != 63L
1202 1152 : || pattern290 (x1,
1203 : E_DImode,
1204 : E_TImode) != 0)
1205 32 : return -1;
1206 : return 0;
1207 :
1208 6 : case 31L:
1209 6 : if (XWINT (x9, 0) != 32L
1210 6 : || XWINT (x11, 0) != 31L)
1211 : return -1;
1212 : return 1;
1213 :
1214 : default:
1215 : return -1;
1216 : }
1217 : }
1218 :
1219 : int
1220 1194 : pattern311 (rtx x1)
1221 : {
1222 1194 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1223 1194 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1224 1194 : int res ATTRIBUTE_UNUSED;
1225 1194 : x2 = XEXP (x1, 2);
1226 1194 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1227 : return -1;
1228 1170 : x3 = XEXP (x1, 0);
1229 1170 : x4 = XEXP (x3, 0);
1230 1170 : x5 = XEXP (x4, 0);
1231 1170 : operands[1] = x5;
1232 1170 : x6 = XEXP (x4, 1);
1233 1170 : operands[2] = x6;
1234 1170 : x7 = XEXP (x3, 1);
1235 1170 : operands[3] = x7;
1236 1170 : x8 = XEXP (x3, 2);
1237 1170 : operands[4] = x8;
1238 1170 : if (!register_operand (operands[4], E_QImode))
1239 : return -1;
1240 1134 : x9 = XEXP (x1, 1);
1241 1134 : if (!rtx_equal_p (x9, operands[1]))
1242 : return -1;
1243 1134 : switch (GET_MODE (operands[0]))
1244 : {
1245 698 : case E_V8HFmode:
1246 698 : return pattern310 (x1,
1247 698 : E_V8HFmode); /* [-1, 0] */
1248 :
1249 218 : case E_V4SFmode:
1250 218 : if (pattern310 (x1,
1251 : E_V4SFmode) != 0)
1252 : return -1;
1253 : return 1;
1254 :
1255 218 : case E_V2DFmode:
1256 218 : if (pattern310 (x1,
1257 : E_V2DFmode) != 0)
1258 : return -1;
1259 : return 2;
1260 :
1261 : default:
1262 : return -1;
1263 : }
1264 : }
1265 :
1266 : int
1267 0 : pattern321 (rtx x1, machine_mode i1, machine_mode i2)
1268 : {
1269 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1270 0 : rtx x2, x3;
1271 0 : int res ATTRIBUTE_UNUSED;
1272 0 : if (!register_operand (operands[0], i1)
1273 0 : || GET_MODE (x1) != i1
1274 0 : || !vector_all_ones_operand (operands[1], i1)
1275 0 : || !const0_operand (operands[2], i1))
1276 0 : return -1;
1277 0 : x2 = XEXP (x1, 2);
1278 0 : if (GET_MODE (x2) != i2)
1279 : return -1;
1280 0 : x3 = XEXP (x2, 0);
1281 0 : if (GET_MODE (x3) != i2
1282 0 : || !nonimmediate_operand (operands[3], i1)
1283 0 : || !nonimmediate_operand (operands[4], i1)
1284 0 : || !const_0_to_7_operand (operands[5], E_SImode))
1285 0 : return -1;
1286 : return 0;
1287 : }
1288 :
1289 : int
1290 470 : pattern329 (rtx x1)
1291 : {
1292 470 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1293 470 : rtx x2;
1294 470 : int res ATTRIBUTE_UNUSED;
1295 470 : x2 = XVECEXP (x1, 0, 0);
1296 470 : operands[1] = x2;
1297 470 : switch (GET_MODE (operands[0]))
1298 : {
1299 228 : case E_V16QImode:
1300 228 : if (!register_operand (operands[0], E_V16QImode)
1301 224 : || GET_MODE (x1) != E_V16QImode
1302 452 : || !nonimmediate_operand (operands[1], E_V16HFmode))
1303 8 : return -1;
1304 : return 0;
1305 :
1306 234 : case E_V32QImode:
1307 234 : if (!register_operand (operands[0], E_V32QImode)
1308 226 : || GET_MODE (x1) != E_V32QImode
1309 460 : || !nonimmediate_operand (operands[1], E_V32HFmode))
1310 12 : return -1;
1311 : return 1;
1312 :
1313 : default:
1314 : return -1;
1315 : }
1316 : }
1317 :
1318 : int
1319 981 : pattern333 (rtx x1, rtx_code i1)
1320 : {
1321 981 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1322 981 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1323 981 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
1324 981 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
1325 981 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
1326 981 : rtx x34, x35, x36, x37, x38, x39;
1327 981 : int res ATTRIBUTE_UNUSED;
1328 981 : x2 = XEXP (x1, 0);
1329 981 : x3 = XEXP (x2, 0);
1330 981 : x4 = XEXP (x3, 0);
1331 981 : if (GET_CODE (x4) != VEC_SELECT)
1332 : return -1;
1333 454 : x5 = XEXP (x4, 1);
1334 454 : if (GET_CODE (x5) != PARALLEL
1335 454 : || XVECLEN (x5, 0) != 1)
1336 : return -1;
1337 454 : x6 = XVECEXP (x5, 0, 0);
1338 454 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1339 : return -1;
1340 454 : x7 = XEXP (x3, 1);
1341 454 : if (GET_CODE (x7) != VEC_SELECT)
1342 : return -1;
1343 454 : x8 = XEXP (x7, 1);
1344 454 : if (GET_CODE (x8) != PARALLEL
1345 454 : || XVECLEN (x8, 0) != 1)
1346 : return -1;
1347 454 : x9 = XVECEXP (x8, 0, 0);
1348 454 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
1349 : return -1;
1350 454 : x10 = XEXP (x2, 1);
1351 454 : if (GET_CODE (x10) != i1)
1352 : return -1;
1353 428 : x11 = XEXP (x10, 0);
1354 428 : if (GET_CODE (x11) != VEC_SELECT)
1355 : return -1;
1356 428 : x12 = XEXP (x11, 1);
1357 428 : if (GET_CODE (x12) != PARALLEL
1358 428 : || XVECLEN (x12, 0) != 1)
1359 : return -1;
1360 428 : x13 = XVECEXP (x12, 0, 0);
1361 428 : if (GET_CODE (x13) != CONST_INT)
1362 : return -1;
1363 428 : x14 = XEXP (x10, 1);
1364 428 : if (GET_CODE (x14) != VEC_SELECT)
1365 : return -1;
1366 428 : x15 = XEXP (x14, 1);
1367 428 : if (GET_CODE (x15) != PARALLEL
1368 428 : || XVECLEN (x15, 0) != 1)
1369 : return -1;
1370 428 : x16 = XVECEXP (x15, 0, 0);
1371 428 : if (GET_CODE (x16) != CONST_INT)
1372 : return -1;
1373 428 : x17 = XEXP (x1, 1);
1374 428 : if (GET_CODE (x17) != VEC_CONCAT)
1375 : return -1;
1376 428 : x18 = XEXP (x17, 0);
1377 428 : if (GET_CODE (x18) != i1)
1378 : return -1;
1379 428 : x19 = XEXP (x18, 0);
1380 428 : if (GET_CODE (x19) != VEC_SELECT)
1381 : return -1;
1382 428 : x20 = XEXP (x19, 1);
1383 428 : if (GET_CODE (x20) != PARALLEL
1384 428 : || XVECLEN (x20, 0) != 1)
1385 : return -1;
1386 428 : x21 = XVECEXP (x20, 0, 0);
1387 428 : if (GET_CODE (x21) != CONST_INT)
1388 : return -1;
1389 428 : x22 = XEXP (x18, 1);
1390 428 : if (GET_CODE (x22) != VEC_SELECT)
1391 : return -1;
1392 428 : x23 = XEXP (x22, 1);
1393 428 : if (GET_CODE (x23) != PARALLEL
1394 428 : || XVECLEN (x23, 0) != 1)
1395 : return -1;
1396 428 : x24 = XVECEXP (x23, 0, 0);
1397 428 : if (GET_CODE (x24) != CONST_INT)
1398 : return -1;
1399 428 : x25 = XEXP (x17, 1);
1400 428 : if (GET_CODE (x25) != i1)
1401 : return -1;
1402 428 : x26 = XEXP (x25, 0);
1403 428 : if (GET_CODE (x26) != VEC_SELECT)
1404 : return -1;
1405 428 : x27 = XEXP (x26, 1);
1406 428 : if (GET_CODE (x27) != PARALLEL
1407 428 : || XVECLEN (x27, 0) != 1)
1408 : return -1;
1409 428 : x28 = XVECEXP (x27, 0, 0);
1410 428 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
1411 : return -1;
1412 428 : x29 = XEXP (x25, 1);
1413 428 : if (GET_CODE (x29) != VEC_SELECT)
1414 : return -1;
1415 428 : x30 = XEXP (x29, 1);
1416 428 : if (GET_CODE (x30) != PARALLEL
1417 428 : || XVECLEN (x30, 0) != 1)
1418 : return -1;
1419 428 : x31 = XVECEXP (x30, 0, 0);
1420 428 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
1421 : return -1;
1422 428 : x32 = XEXP (x4, 0);
1423 428 : operands[1] = x32;
1424 428 : x33 = XEXP (x7, 0);
1425 428 : if (!rtx_equal_p (x33, operands[1]))
1426 : return -1;
1427 428 : switch (XWINT (x13, 0))
1428 : {
1429 208 : case 0L:
1430 208 : if (XWINT (x16, 0) != 1L
1431 208 : || XWINT (x21, 0) != 2L
1432 208 : || XWINT (x24, 0) != 3L
1433 208 : || !register_operand (operands[0], E_V4DFmode)
1434 204 : || GET_MODE (x1) != E_V4DFmode
1435 204 : || GET_MODE (x2) != E_V2DFmode
1436 204 : || GET_MODE (x3) != E_DFmode
1437 204 : || GET_MODE (x4) != E_DFmode
1438 204 : || !register_operand (operands[1], E_V4DFmode)
1439 180 : || GET_MODE (x7) != E_DFmode
1440 180 : || GET_MODE (x10) != E_DFmode
1441 388 : || GET_MODE (x11) != E_DFmode)
1442 28 : return -1;
1443 180 : x34 = XEXP (x11, 0);
1444 180 : operands[2] = x34;
1445 180 : if (!nonimmediate_operand (operands[2], E_V4DFmode)
1446 156 : || GET_MODE (x14) != E_DFmode
1447 156 : || GET_MODE (x17) != E_V2DFmode
1448 156 : || GET_MODE (x18) != E_DFmode
1449 156 : || GET_MODE (x19) != E_DFmode
1450 156 : || GET_MODE (x22) != E_DFmode
1451 156 : || GET_MODE (x25) != E_DFmode
1452 156 : || GET_MODE (x26) != E_DFmode
1453 336 : || GET_MODE (x29) != E_DFmode)
1454 : return -1;
1455 156 : x35 = XEXP (x14, 0);
1456 156 : if (!rtx_equal_p (x35, operands[2]))
1457 : return -1;
1458 156 : x36 = XEXP (x19, 0);
1459 156 : if (!rtx_equal_p (x36, operands[1]))
1460 : return -1;
1461 156 : x37 = XEXP (x22, 0);
1462 156 : if (!rtx_equal_p (x37, operands[1]))
1463 : return -1;
1464 156 : x38 = XEXP (x26, 0);
1465 156 : if (!rtx_equal_p (x38, operands[2]))
1466 : return -1;
1467 156 : x39 = XEXP (x29, 0);
1468 156 : if (!rtx_equal_p (x39, operands[2]))
1469 : return -1;
1470 : return 0;
1471 :
1472 220 : case 2L:
1473 220 : if (XWINT (x16, 0) != 3L
1474 220 : || XWINT (x21, 0) != 0L
1475 220 : || XWINT (x24, 0) != 1L
1476 220 : || !register_operand (operands[0], E_V4SFmode)
1477 220 : || GET_MODE (x1) != E_V4SFmode
1478 220 : || GET_MODE (x2) != E_V2SFmode
1479 220 : || GET_MODE (x3) != E_SFmode
1480 220 : || GET_MODE (x4) != E_SFmode
1481 220 : || !register_operand (operands[1], E_V4SFmode)
1482 198 : || GET_MODE (x7) != E_SFmode
1483 198 : || GET_MODE (x10) != E_SFmode
1484 198 : || GET_MODE (x11) != E_SFmode
1485 198 : || GET_MODE (x14) != E_SFmode
1486 198 : || GET_MODE (x17) != E_V2SFmode
1487 198 : || GET_MODE (x18) != E_SFmode
1488 418 : || GET_MODE (x19) != E_SFmode)
1489 22 : return -1;
1490 198 : x36 = XEXP (x19, 0);
1491 198 : operands[2] = x36;
1492 198 : if (!vector_operand (operands[2], E_V4SFmode)
1493 198 : || GET_MODE (x22) != E_SFmode
1494 198 : || GET_MODE (x25) != E_SFmode
1495 198 : || GET_MODE (x26) != E_SFmode
1496 396 : || GET_MODE (x29) != E_SFmode)
1497 : return -1;
1498 198 : x34 = XEXP (x11, 0);
1499 198 : if (!rtx_equal_p (x34, operands[1]))
1500 : return -1;
1501 198 : x35 = XEXP (x14, 0);
1502 198 : if (!rtx_equal_p (x35, operands[1]))
1503 : return -1;
1504 198 : x37 = XEXP (x22, 0);
1505 198 : if (!rtx_equal_p (x37, operands[2]))
1506 : return -1;
1507 198 : x38 = XEXP (x26, 0);
1508 198 : if (!rtx_equal_p (x38, operands[2]))
1509 : return -1;
1510 198 : x39 = XEXP (x29, 0);
1511 198 : if (!rtx_equal_p (x39, operands[2]))
1512 : return -1;
1513 : return 1;
1514 :
1515 : default:
1516 : return -1;
1517 : }
1518 : }
1519 :
1520 : int
1521 193 : pattern381 (rtx x1, machine_mode i1)
1522 : {
1523 193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1524 193 : rtx x2;
1525 193 : int res ATTRIBUTE_UNUSED;
1526 193 : if (!register_operand (operands[0], i1)
1527 193 : || GET_MODE (x1) != i1)
1528 : return -1;
1529 193 : x2 = XEXP (x1, 0);
1530 193 : if (GET_MODE (x2) != i1
1531 193 : || !general_operand (operands[1], i1))
1532 10 : return -1;
1533 : return 0;
1534 : }
1535 :
1536 : int
1537 187260 : pattern385 (rtx x1)
1538 : {
1539 187260 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1540 187260 : rtx x2, x3, x4;
1541 187260 : int res ATTRIBUTE_UNUSED;
1542 187260 : x2 = XVECEXP (x1, 0, 1);
1543 187260 : if (GET_CODE (x2) != CLOBBER)
1544 : return -1;
1545 169201 : x3 = XEXP (x2, 0);
1546 169201 : if (GET_CODE (x3) != REG
1547 169201 : || REGNO (x3) != 17
1548 338402 : || GET_MODE (x3) != E_CCmode)
1549 : return -1;
1550 169201 : x4 = XVECEXP (x1, 0, 0);
1551 169201 : return pattern384 (x4); /* [-1, 1] */
1552 : }
1553 :
1554 : int
1555 3975 : pattern391 (rtx x1)
1556 : {
1557 3975 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1558 3975 : int res ATTRIBUTE_UNUSED;
1559 3975 : switch (GET_MODE (operands[0]))
1560 : {
1561 105 : case E_SFmode:
1562 105 : if (!register_operand (operands[0], E_SFmode)
1563 105 : || GET_MODE (x1) != E_SFmode)
1564 : return -1;
1565 : return 0;
1566 :
1567 1509 : case E_DFmode:
1568 1509 : if (!register_operand (operands[0], E_DFmode)
1569 1509 : || GET_MODE (x1) != E_DFmode)
1570 : return -1;
1571 : return 1;
1572 :
1573 2361 : case E_XFmode:
1574 2361 : if (!register_operand (operands[0], E_XFmode)
1575 2361 : || GET_MODE (x1) != E_XFmode)
1576 : return -1;
1577 : return 2;
1578 :
1579 : default:
1580 : return -1;
1581 : }
1582 : }
1583 :
1584 : int
1585 168 : pattern400 ()
1586 : {
1587 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1588 168 : int res ATTRIBUTE_UNUSED;
1589 168 : switch (GET_MODE (operands[0]))
1590 : {
1591 84 : case E_SImode:
1592 84 : if (!register_operand (operands[0], E_SImode)
1593 84 : || !memory_operand (operands[1], E_SImode))
1594 0 : return -1;
1595 : return 0;
1596 :
1597 84 : case E_DImode:
1598 84 : if (!register_operand (operands[0], E_DImode)
1599 84 : || !memory_operand (operands[1], E_DImode))
1600 0 : return -1;
1601 : return 1;
1602 :
1603 : default:
1604 : return -1;
1605 : }
1606 : }
1607 :
1608 : int
1609 29962 : pattern409 (rtx x1)
1610 : {
1611 29962 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1612 29962 : rtx x2, x3, x4, x5, x6, x7, x8;
1613 29962 : int res ATTRIBUTE_UNUSED;
1614 29962 : x2 = XVECEXP (x1, 0, 1);
1615 29962 : if (GET_CODE (x2) != CLOBBER)
1616 : return -1;
1617 29962 : x3 = XEXP (x2, 0);
1618 29962 : if (GET_CODE (x3) != REG
1619 29962 : || REGNO (x3) != 17
1620 56954 : || GET_MODE (x3) != E_CCmode)
1621 : return -1;
1622 26992 : x4 = XVECEXP (x1, 0, 0);
1623 26992 : x5 = XEXP (x4, 1);
1624 26992 : x6 = XEXP (x5, 1);
1625 26992 : switch (GET_CODE (x6))
1626 : {
1627 63 : case AND:
1628 63 : if (GET_MODE (x6) != E_QImode)
1629 : return -1;
1630 63 : x7 = XEXP (x4, 0);
1631 63 : operands[0] = x7;
1632 63 : x8 = XEXP (x5, 0);
1633 63 : operands[1] = x8;
1634 63 : return pattern209 (x5); /* [-1, 3] */
1635 :
1636 19 : case PLUS:
1637 19 : if (GET_MODE (x6) != E_QImode)
1638 : return -1;
1639 19 : x7 = XEXP (x4, 0);
1640 19 : operands[0] = x7;
1641 19 : x8 = XEXP (x5, 0);
1642 19 : operands[1] = x8;
1643 19 : res = pattern210 (x5);
1644 19 : if (res >= 0)
1645 8 : return res + 4; /* [4, 7] */
1646 : return -1;
1647 :
1648 7 : case MINUS:
1649 7 : if (GET_MODE (x6) != E_QImode)
1650 : return -1;
1651 7 : x7 = XEXP (x4, 0);
1652 7 : operands[0] = x7;
1653 7 : x8 = XEXP (x5, 0);
1654 7 : operands[1] = x8;
1655 7 : res = pattern211 (x5);
1656 7 : if (res >= 0)
1657 5 : return res + 8; /* [8, 11] */
1658 : return -1;
1659 :
1660 : case CONST_INT:
1661 : case CONST_WIDE_INT:
1662 : case CONST_POLY_INT:
1663 : case CONST_FIXED:
1664 : case CONST_DOUBLE:
1665 : case CONST_VECTOR:
1666 : case CONST:
1667 : case REG:
1668 : case SUBREG:
1669 : case LABEL_REF:
1670 : case SYMBOL_REF:
1671 : case HIGH:
1672 : return 12;
1673 :
1674 : default:
1675 : return -1;
1676 : }
1677 : }
1678 :
1679 : int
1680 3693 : pattern426 (rtx x1)
1681 : {
1682 3693 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1683 3693 : rtx x2, x3, x4;
1684 3693 : int res ATTRIBUTE_UNUSED;
1685 3693 : if (GET_CODE (x1) != ZERO_EXTRACT)
1686 : return -1;
1687 2217 : x2 = XEXP (x1, 1);
1688 2217 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1689 : return -1;
1690 368 : x3 = XEXP (x1, 2);
1691 368 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
1692 : return -1;
1693 368 : x4 = XEXP (x1, 0);
1694 368 : operands[0] = x4;
1695 368 : if (!int248_register_operand (operands[0], E_VOIDmode))
1696 : return -1;
1697 : return 0;
1698 : }
1699 :
1700 : int
1701 2025101 : pattern433 (rtx x1)
1702 : {
1703 2025101 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1704 2025101 : rtx x2, x3, x4, x5;
1705 2025101 : int res ATTRIBUTE_UNUSED;
1706 2025101 : x2 = XEXP (x1, 0);
1707 2025101 : x3 = XEXP (x2, 0);
1708 2025101 : operands[1] = x3;
1709 2025101 : x4 = XEXP (x2, 1);
1710 2025101 : operands[2] = x4;
1711 2025101 : x5 = XEXP (x1, 1);
1712 2025101 : operands[3] = x5;
1713 2025101 : switch (GET_MODE (operands[0]))
1714 : {
1715 2984 : case E_QImode:
1716 2984 : return pattern432 (x1,
1717 2984 : E_QImode); /* [-1, 0] */
1718 :
1719 2923 : case E_HImode:
1720 2923 : if (pattern432 (x1,
1721 : E_HImode) != 0)
1722 : return -1;
1723 : return 1;
1724 :
1725 : default:
1726 : return -1;
1727 : }
1728 : }
1729 :
1730 : int
1731 9481 : pattern440 (rtx x1, int *pnum_clobbers)
1732 : {
1733 9481 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1734 9481 : rtx x2, x3, x4, x5, x6;
1735 9481 : int res ATTRIBUTE_UNUSED;
1736 9481 : if (pnum_clobbers == NULL)
1737 : return -1;
1738 9481 : x2 = XEXP (x1, 1);
1739 9481 : x3 = XEXP (x2, 1);
1740 9481 : x4 = XEXP (x3, 1);
1741 9481 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1742 : return -1;
1743 7836 : x5 = XEXP (x1, 0);
1744 7836 : operands[0] = x5;
1745 7836 : x6 = XEXP (x3, 0);
1746 7836 : operands[2] = x6;
1747 7836 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1748 : return -1;
1749 3970 : switch (GET_MODE (operands[0]))
1750 : {
1751 116 : case E_QImode:
1752 116 : return pattern439 (x2,
1753 116 : E_QImode); /* [-1, 0] */
1754 :
1755 3 : case E_HImode:
1756 3 : if (pattern439 (x2,
1757 : E_HImode) != 0)
1758 : return -1;
1759 : return 1;
1760 :
1761 : default:
1762 : return -1;
1763 : }
1764 : }
1765 :
1766 : int
1767 115010 : pattern453 (rtx x1, machine_mode i1)
1768 : {
1769 115010 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1770 115010 : rtx x2, x3, x4, x5, x6, x7;
1771 115010 : int res ATTRIBUTE_UNUSED;
1772 115010 : x2 = XEXP (x1, 1);
1773 115010 : x3 = XEXP (x2, 1);
1774 115010 : if (maybe_ne (SUBREG_BYTE (x3), 0)
1775 115010 : || GET_MODE (x3) != E_QImode)
1776 : return -1;
1777 113086 : x4 = XEXP (x1, 0);
1778 113086 : operands[0] = x4;
1779 113086 : if (!nonimmediate_operand (operands[0], i1)
1780 51268 : || GET_MODE (x2) != i1
1781 164354 : || !nonimmediate_operand (operands[1], i1))
1782 102670 : return -1;
1783 10416 : x5 = XEXP (x3, 0);
1784 10416 : switch (GET_CODE (x5))
1785 : {
1786 2346 : case AND:
1787 2346 : x6 = XEXP (x5, 0);
1788 2346 : operands[2] = x6;
1789 2346 : if (!int248_register_operand (operands[2], E_VOIDmode))
1790 : return -1;
1791 611 : x7 = XEXP (x5, 1);
1792 611 : operands[3] = x7;
1793 611 : if (!const_int_operand (operands[3], E_VOIDmode))
1794 : return -1;
1795 : return 0;
1796 :
1797 0 : case PLUS:
1798 0 : x6 = XEXP (x5, 0);
1799 0 : operands[2] = x6;
1800 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
1801 : return -1;
1802 0 : x7 = XEXP (x5, 1);
1803 0 : operands[3] = x7;
1804 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1805 : return -1;
1806 : return 1;
1807 :
1808 0 : case MINUS:
1809 0 : x6 = XEXP (x5, 0);
1810 0 : operands[3] = x6;
1811 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1812 : return -1;
1813 0 : x7 = XEXP (x5, 1);
1814 0 : operands[2] = x7;
1815 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
1816 : return -1;
1817 : return 2;
1818 :
1819 : default:
1820 : return -1;
1821 : }
1822 : }
1823 :
1824 : int
1825 2084 : pattern470 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
1826 : {
1827 2084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1828 2084 : rtx x2;
1829 2084 : int res ATTRIBUTE_UNUSED;
1830 2084 : if (!register_operand (operands[0], i2)
1831 2084 : || GET_MODE (x1) != i2)
1832 : return -1;
1833 2028 : x2 = XEXP (x1, 0);
1834 2028 : if (GET_MODE (x2) != i2
1835 2028 : || !register_operand (operands[1], i4)
1836 2028 : || !nonimmediate_operand (operands[2], i3)
1837 2028 : || !nonimm_or_0_operand (operands[3], i2)
1838 4000 : || !register_operand (operands[4], i1))
1839 144 : return -1;
1840 : return 0;
1841 : }
1842 :
1843 : int
1844 1992 : pattern478 (rtx x1, machine_mode i1)
1845 : {
1846 1992 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1847 1992 : rtx x2, x3, x4, x5, x6, x7;
1848 1992 : int res ATTRIBUTE_UNUSED;
1849 1992 : x2 = XEXP (x1, 0);
1850 1992 : x3 = XVECEXP (x2, 0, 0);
1851 1992 : operands[1] = x3;
1852 1992 : x4 = XVECEXP (x2, 0, 1);
1853 1992 : operands[2] = x4;
1854 1992 : x5 = XVECEXP (x2, 0, 2);
1855 1992 : operands[3] = x5;
1856 1992 : if (!const_0_to_255_operand (operands[3], i1))
1857 : return -1;
1858 1992 : x6 = XEXP (x1, 1);
1859 1992 : operands[4] = x6;
1860 1992 : x7 = XEXP (x1, 2);
1861 1992 : operands[5] = x7;
1862 1992 : switch (GET_MODE (operands[0]))
1863 : {
1864 688 : case E_V64QImode:
1865 688 : return pattern477 (x1,
1866 : E_V64QImode,
1867 688 : E_DImode); /* [-1, 0] */
1868 :
1869 669 : case E_V32QImode:
1870 669 : if (pattern477 (x1,
1871 : E_V32QImode,
1872 : E_SImode) != 0)
1873 : return -1;
1874 : return 1;
1875 :
1876 635 : case E_V16QImode:
1877 635 : if (pattern477 (x1,
1878 : E_V16QImode,
1879 : E_HImode) != 0)
1880 : return -1;
1881 : return 2;
1882 :
1883 : default:
1884 : return -1;
1885 : }
1886 : }
1887 :
1888 : int
1889 3840 : pattern487 (rtx x1)
1890 : {
1891 3840 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1892 3840 : rtx x2, x3, x4, x5, x6, x7;
1893 3840 : int res ATTRIBUTE_UNUSED;
1894 3840 : x2 = XEXP (x1, 0);
1895 3840 : x3 = XVECEXP (x2, 0, 0);
1896 3840 : operands[1] = x3;
1897 3840 : x4 = XVECEXP (x2, 0, 1);
1898 3840 : operands[2] = x4;
1899 3840 : x5 = XVECEXP (x2, 0, 2);
1900 3840 : operands[3] = x5;
1901 3840 : x6 = XEXP (x1, 1);
1902 3840 : switch (GET_CODE (x6))
1903 : {
1904 1900 : case REG:
1905 1900 : case SUBREG:
1906 1900 : if (!rtx_equal_p (x6, operands[1]))
1907 : return -1;
1908 1900 : x7 = XEXP (x1, 2);
1909 1900 : operands[4] = x7;
1910 1900 : switch (GET_MODE (operands[0]))
1911 : {
1912 216 : case E_V32HImode:
1913 216 : return pattern484 (x1,
1914 : E_V32HImode,
1915 216 : E_SImode); /* [-1, 0] */
1916 :
1917 210 : case E_V16SImode:
1918 210 : if (pattern484 (x1,
1919 : E_V16SImode,
1920 : E_HImode) != 0)
1921 : return -1;
1922 : return 1;
1923 :
1924 216 : case E_V8DImode:
1925 216 : if (pattern484 (x1,
1926 : E_V8DImode,
1927 : E_QImode) != 0)
1928 : return -1;
1929 : return 2;
1930 :
1931 216 : case E_V16HImode:
1932 216 : if (pattern484 (x1,
1933 : E_V16HImode,
1934 : E_HImode) != 0)
1935 : return -1;
1936 : return 3;
1937 :
1938 210 : case E_V8SImode:
1939 210 : if (pattern484 (x1,
1940 : E_V8SImode,
1941 : E_QImode) != 0)
1942 : return -1;
1943 : return 4;
1944 :
1945 216 : case E_V4DImode:
1946 216 : if (pattern484 (x1,
1947 : E_V4DImode,
1948 : E_QImode) != 0)
1949 : return -1;
1950 : return 5;
1951 :
1952 210 : case E_V8HImode:
1953 210 : if (pattern484 (x1,
1954 : E_V8HImode,
1955 : E_QImode) != 0)
1956 : return -1;
1957 : return 6;
1958 :
1959 200 : case E_V4SImode:
1960 200 : if (pattern484 (x1,
1961 : E_V4SImode,
1962 : E_QImode) != 0)
1963 : return -1;
1964 : return 7;
1965 :
1966 206 : case E_V2DImode:
1967 206 : if (pattern484 (x1,
1968 : E_V2DImode,
1969 : E_QImode) != 0)
1970 : return -1;
1971 : return 8;
1972 :
1973 : default:
1974 : return -1;
1975 : }
1976 :
1977 1908 : case CONST_INT:
1978 1908 : case CONST_DOUBLE:
1979 1908 : case CONST_VECTOR:
1980 1908 : operands[4] = x6;
1981 1908 : x7 = XEXP (x1, 2);
1982 1908 : operands[5] = x7;
1983 1908 : switch (GET_MODE (operands[0]))
1984 : {
1985 216 : case E_V32HImode:
1986 216 : if (pattern486 (x1,
1987 : E_V32HImode,
1988 : E_SImode) != 0)
1989 : return -1;
1990 : return 9;
1991 :
1992 214 : case E_V16SImode:
1993 214 : if (pattern486 (x1,
1994 : E_V16SImode,
1995 : E_HImode) != 0)
1996 : return -1;
1997 : return 10;
1998 :
1999 220 : case E_V8DImode:
2000 220 : if (pattern486 (x1,
2001 : E_V8DImode,
2002 : E_QImode) != 0)
2003 : return -1;
2004 : return 11;
2005 :
2006 214 : case E_V16HImode:
2007 214 : if (pattern486 (x1,
2008 : E_V16HImode,
2009 : E_HImode) != 0)
2010 : return -1;
2011 : return 12;
2012 :
2013 212 : case E_V8SImode:
2014 212 : if (pattern486 (x1,
2015 : E_V8SImode,
2016 : E_QImode) != 0)
2017 : return -1;
2018 : return 13;
2019 :
2020 218 : case E_V4DImode:
2021 218 : if (pattern486 (x1,
2022 : E_V4DImode,
2023 : E_QImode) != 0)
2024 : return -1;
2025 : return 14;
2026 :
2027 206 : case E_V8HImode:
2028 206 : if (pattern486 (x1,
2029 : E_V8HImode,
2030 : E_QImode) != 0)
2031 : return -1;
2032 : return 15;
2033 :
2034 202 : case E_V4SImode:
2035 202 : if (pattern486 (x1,
2036 : E_V4SImode,
2037 : E_QImode) != 0)
2038 : return -1;
2039 : return 16;
2040 :
2041 206 : case E_V2DImode:
2042 206 : if (pattern486 (x1,
2043 : E_V2DImode,
2044 : E_QImode) != 0)
2045 : return -1;
2046 : return 17;
2047 :
2048 : default:
2049 : return -1;
2050 : }
2051 :
2052 : default:
2053 : return -1;
2054 : }
2055 : }
2056 :
2057 : int
2058 5935 : pattern513 (rtx x1)
2059 : {
2060 5935 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2061 5935 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2062 5935 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2063 5935 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
2064 5935 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
2065 5935 : rtx x34, x35, x36, x37, x38, x39;
2066 5935 : int res ATTRIBUTE_UNUSED;
2067 5935 : x2 = XEXP (x1, 1);
2068 5935 : if (GET_CODE (x2) != CONST_VECTOR)
2069 : return -1;
2070 5935 : x3 = XEXP (x1, 0);
2071 5935 : x4 = XEXP (x3, 0);
2072 5935 : x5 = XEXP (x4, 0);
2073 5935 : operands[1] = x5;
2074 5935 : x6 = XEXP (x3, 1);
2075 5935 : switch (GET_CODE (x6))
2076 : {
2077 4114 : case VEC_SELECT:
2078 4114 : x7 = XEXP (x6, 1);
2079 4114 : if (GET_CODE (x7) != PARALLEL)
2080 : return -1;
2081 4114 : x8 = XEXP (x6, 0);
2082 4114 : operands[2] = x8;
2083 4114 : x9 = XEXP (x3, 2);
2084 4114 : operands[3] = x9;
2085 4114 : switch (XVECLEN (x7, 0))
2086 : {
2087 1228 : case 2:
2088 1228 : x10 = XVECEXP (x7, 0, 0);
2089 1228 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2090 : return -1;
2091 1228 : x11 = XVECEXP (x7, 0, 1);
2092 1228 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
2093 1228 : || !register_operand (operands[1], E_V2DImode))
2094 0 : return -1;
2095 1228 : switch (XVECLEN (x2, 0))
2096 : {
2097 411 : case 14:
2098 411 : if (GET_MODE (x2) != E_V14QImode)
2099 : return -1;
2100 411 : x12 = XVECEXP (x2, 0, 0);
2101 411 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2102 : return -1;
2103 411 : x13 = XVECEXP (x2, 0, 1);
2104 411 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2105 : return -1;
2106 411 : x14 = XVECEXP (x2, 0, 2);
2107 411 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2108 : return -1;
2109 411 : x15 = XVECEXP (x2, 0, 3);
2110 411 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2111 : return -1;
2112 411 : x16 = XVECEXP (x2, 0, 4);
2113 411 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2114 : return -1;
2115 411 : x17 = XVECEXP (x2, 0, 5);
2116 411 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2117 : return -1;
2118 411 : x18 = XVECEXP (x2, 0, 6);
2119 411 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2120 : return -1;
2121 411 : x19 = XVECEXP (x2, 0, 7);
2122 411 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2123 : return -1;
2124 411 : x20 = XVECEXP (x2, 0, 8);
2125 411 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2126 : return -1;
2127 411 : x21 = XVECEXP (x2, 0, 9);
2128 411 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2129 : return -1;
2130 411 : x22 = XVECEXP (x2, 0, 10);
2131 411 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2132 : return -1;
2133 411 : x23 = XVECEXP (x2, 0, 11);
2134 411 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2135 : return -1;
2136 411 : x24 = XVECEXP (x2, 0, 12);
2137 411 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2138 : return -1;
2139 411 : x25 = XVECEXP (x2, 0, 13);
2140 411 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2141 411 : || pattern508 (x1,
2142 : E_V16QImode,
2143 : E_V2QImode) != 0)
2144 11 : return -1;
2145 : return 0;
2146 :
2147 424 : case 6:
2148 424 : if (GET_MODE (x2) != E_V6HImode)
2149 : return -1;
2150 424 : x12 = XVECEXP (x2, 0, 0);
2151 424 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2152 : return -1;
2153 424 : x13 = XVECEXP (x2, 0, 1);
2154 424 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2155 : return -1;
2156 424 : x14 = XVECEXP (x2, 0, 2);
2157 424 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2158 : return -1;
2159 424 : x15 = XVECEXP (x2, 0, 3);
2160 424 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2161 : return -1;
2162 424 : x16 = XVECEXP (x2, 0, 4);
2163 424 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2164 : return -1;
2165 424 : x17 = XVECEXP (x2, 0, 5);
2166 424 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2167 424 : || pattern508 (x1,
2168 : E_V8HImode,
2169 : E_V2HImode) != 0)
2170 23 : return -1;
2171 : return 1;
2172 :
2173 393 : case 2:
2174 393 : if (GET_MODE (x2) != E_V2SImode)
2175 : return -1;
2176 393 : x12 = XVECEXP (x2, 0, 0);
2177 393 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2178 : return -1;
2179 393 : x13 = XVECEXP (x2, 0, 1);
2180 393 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2181 393 : || pattern508 (x1,
2182 : E_V4SImode,
2183 : E_V2SImode) != 0)
2184 3 : return -1;
2185 : return 2;
2186 :
2187 : default:
2188 : return -1;
2189 : }
2190 :
2191 1662 : case 4:
2192 1662 : x10 = XVECEXP (x7, 0, 0);
2193 1662 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2194 : return -1;
2195 1662 : x11 = XVECEXP (x7, 0, 1);
2196 1662 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2197 : return -1;
2198 1662 : x26 = XVECEXP (x7, 0, 2);
2199 1662 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2200 : return -1;
2201 1662 : x27 = XVECEXP (x7, 0, 3);
2202 1662 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2203 : return -1;
2204 1662 : switch (XVECLEN (x2, 0))
2205 : {
2206 828 : case 12:
2207 828 : if (GET_MODE (x2) != E_V12QImode)
2208 : return -1;
2209 828 : x12 = XVECEXP (x2, 0, 0);
2210 828 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2211 : return -1;
2212 828 : x13 = XVECEXP (x2, 0, 1);
2213 828 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2214 : return -1;
2215 828 : x14 = XVECEXP (x2, 0, 2);
2216 828 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2217 : return -1;
2218 828 : x15 = XVECEXP (x2, 0, 3);
2219 828 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2220 : return -1;
2221 828 : x16 = XVECEXP (x2, 0, 4);
2222 828 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2223 : return -1;
2224 828 : x17 = XVECEXP (x2, 0, 5);
2225 828 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2226 : return -1;
2227 828 : x18 = XVECEXP (x2, 0, 6);
2228 828 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2229 : return -1;
2230 828 : x19 = XVECEXP (x2, 0, 7);
2231 828 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2232 : return -1;
2233 828 : x20 = XVECEXP (x2, 0, 8);
2234 828 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2235 : return -1;
2236 828 : x21 = XVECEXP (x2, 0, 9);
2237 828 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2238 : return -1;
2239 828 : x22 = XVECEXP (x2, 0, 10);
2240 828 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2241 : return -1;
2242 828 : x23 = XVECEXP (x2, 0, 11);
2243 828 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2244 : return -1;
2245 828 : res = pattern509 (x1,
2246 : E_V16QImode,
2247 : E_V4QImode);
2248 828 : if (res >= 0)
2249 805 : return res + 3; /* [3, 4] */
2250 : return -1;
2251 :
2252 834 : case 4:
2253 834 : if (GET_MODE (x2) != E_V4HImode)
2254 : return -1;
2255 834 : x12 = XVECEXP (x2, 0, 0);
2256 834 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2257 : return -1;
2258 834 : x13 = XVECEXP (x2, 0, 1);
2259 834 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2260 : return -1;
2261 834 : x14 = XVECEXP (x2, 0, 2);
2262 834 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2263 : return -1;
2264 834 : x15 = XVECEXP (x2, 0, 3);
2265 834 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2266 : return -1;
2267 834 : res = pattern509 (x1,
2268 : E_V8HImode,
2269 : E_V4HImode);
2270 834 : if (res >= 0)
2271 823 : return res + 5; /* [5, 6] */
2272 : return -1;
2273 :
2274 : default:
2275 : return -1;
2276 : }
2277 :
2278 1224 : case 8:
2279 1224 : x10 = XVECEXP (x7, 0, 0);
2280 1224 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2281 : return -1;
2282 1224 : x11 = XVECEXP (x7, 0, 1);
2283 1224 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2284 : return -1;
2285 1224 : x26 = XVECEXP (x7, 0, 2);
2286 1224 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
2287 : return -1;
2288 1224 : x27 = XVECEXP (x7, 0, 3);
2289 1224 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
2290 : return -1;
2291 1224 : x28 = XVECEXP (x7, 0, 4);
2292 1224 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
2293 : return -1;
2294 1224 : x29 = XVECEXP (x7, 0, 5);
2295 1224 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
2296 : return -1;
2297 1224 : x30 = XVECEXP (x7, 0, 6);
2298 1224 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
2299 : return -1;
2300 1224 : x31 = XVECEXP (x7, 0, 7);
2301 1224 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
2302 1224 : || XVECLEN (x2, 0) != 8
2303 1224 : || GET_MODE (x2) != E_V8QImode)
2304 : return -1;
2305 1224 : x12 = XVECEXP (x2, 0, 0);
2306 1224 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2307 : return -1;
2308 1224 : x13 = XVECEXP (x2, 0, 1);
2309 1224 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2310 : return -1;
2311 1224 : x14 = XVECEXP (x2, 0, 2);
2312 1224 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2313 : return -1;
2314 1224 : x15 = XVECEXP (x2, 0, 3);
2315 1224 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2316 : return -1;
2317 1224 : x16 = XVECEXP (x2, 0, 4);
2318 1224 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2319 : return -1;
2320 1224 : x17 = XVECEXP (x2, 0, 5);
2321 1224 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2322 : return -1;
2323 1224 : x18 = XVECEXP (x2, 0, 6);
2324 1224 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2325 : return -1;
2326 1224 : x19 = XVECEXP (x2, 0, 7);
2327 1224 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2328 1224 : || !register_operand (operands[0], E_V16QImode)
2329 1206 : || GET_MODE (x1) != E_V16QImode
2330 1206 : || GET_MODE (x3) != E_V8QImode
2331 1206 : || GET_MODE (x4) != E_V8QImode
2332 1206 : || GET_MODE (x6) != E_V8QImode
2333 2430 : || !nonimm_or_0_operand (operands[2], E_V16QImode))
2334 18 : return -1;
2335 1206 : res = pattern510 ();
2336 1206 : if (res >= 0)
2337 1206 : return res + 7; /* [7, 9] */
2338 : return -1;
2339 :
2340 : default:
2341 : return -1;
2342 : }
2343 :
2344 1821 : case CONST_VECTOR:
2345 1821 : x9 = XEXP (x3, 2);
2346 1821 : operands[2] = x9;
2347 1821 : switch (XVECLEN (x6, 0))
2348 : {
2349 555 : case 2:
2350 555 : x32 = XVECEXP (x6, 0, 0);
2351 555 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2352 : return -1;
2353 540 : x33 = XVECEXP (x6, 0, 1);
2354 540 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2355 540 : || !register_operand (operands[1], E_V2DImode))
2356 0 : return -1;
2357 540 : switch (XVECLEN (x2, 0))
2358 : {
2359 180 : case 14:
2360 180 : if (GET_MODE (x2) != E_V14QImode)
2361 : return -1;
2362 180 : x12 = XVECEXP (x2, 0, 0);
2363 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2364 : return -1;
2365 180 : x13 = XVECEXP (x2, 0, 1);
2366 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2367 : return -1;
2368 180 : x14 = XVECEXP (x2, 0, 2);
2369 180 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2370 : return -1;
2371 180 : x15 = XVECEXP (x2, 0, 3);
2372 180 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2373 : return -1;
2374 180 : x16 = XVECEXP (x2, 0, 4);
2375 180 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2376 : return -1;
2377 180 : x17 = XVECEXP (x2, 0, 5);
2378 180 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2379 : return -1;
2380 180 : x18 = XVECEXP (x2, 0, 6);
2381 180 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2382 : return -1;
2383 180 : x19 = XVECEXP (x2, 0, 7);
2384 180 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2385 : return -1;
2386 180 : x20 = XVECEXP (x2, 0, 8);
2387 180 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2388 : return -1;
2389 180 : x21 = XVECEXP (x2, 0, 9);
2390 180 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2391 : return -1;
2392 180 : x22 = XVECEXP (x2, 0, 10);
2393 180 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2394 : return -1;
2395 180 : x23 = XVECEXP (x2, 0, 11);
2396 180 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2397 : return -1;
2398 180 : x24 = XVECEXP (x2, 0, 12);
2399 180 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2400 : return -1;
2401 180 : x25 = XVECEXP (x2, 0, 13);
2402 180 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2403 180 : || pattern511 (x1,
2404 : E_V2QImode,
2405 : E_V16QImode) != 0)
2406 0 : return -1;
2407 : return 10;
2408 :
2409 180 : case 6:
2410 180 : if (GET_MODE (x2) != E_V6HImode)
2411 : return -1;
2412 180 : x12 = XVECEXP (x2, 0, 0);
2413 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2414 : return -1;
2415 180 : x13 = XVECEXP (x2, 0, 1);
2416 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2417 : return -1;
2418 180 : x14 = XVECEXP (x2, 0, 2);
2419 180 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2420 : return -1;
2421 180 : x15 = XVECEXP (x2, 0, 3);
2422 180 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2423 : return -1;
2424 180 : x16 = XVECEXP (x2, 0, 4);
2425 180 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2426 : return -1;
2427 180 : x17 = XVECEXP (x2, 0, 5);
2428 180 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2429 180 : || pattern511 (x1,
2430 : E_V2HImode,
2431 : E_V8HImode) != 0)
2432 0 : return -1;
2433 : return 11;
2434 :
2435 180 : case 2:
2436 180 : if (GET_MODE (x2) != E_V2SImode)
2437 : return -1;
2438 180 : x12 = XVECEXP (x2, 0, 0);
2439 180 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2440 : return -1;
2441 180 : x13 = XVECEXP (x2, 0, 1);
2442 180 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2443 180 : || pattern511 (x1,
2444 : E_V2SImode,
2445 : E_V4SImode) != 0)
2446 0 : return -1;
2447 : return 12;
2448 :
2449 : default:
2450 : return -1;
2451 : }
2452 :
2453 726 : case 4:
2454 726 : x32 = XVECEXP (x6, 0, 0);
2455 726 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2456 : return -1;
2457 720 : x33 = XVECEXP (x6, 0, 1);
2458 720 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2459 : return -1;
2460 720 : x34 = XVECEXP (x6, 0, 2);
2461 720 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2462 : return -1;
2463 720 : x35 = XVECEXP (x6, 0, 3);
2464 720 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2465 : return -1;
2466 720 : switch (XVECLEN (x2, 0))
2467 : {
2468 360 : case 12:
2469 360 : if (GET_MODE (x2) != E_V12QImode)
2470 : return -1;
2471 360 : x12 = XVECEXP (x2, 0, 0);
2472 360 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2473 : return -1;
2474 360 : x13 = XVECEXP (x2, 0, 1);
2475 360 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2476 : return -1;
2477 360 : x14 = XVECEXP (x2, 0, 2);
2478 360 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2479 : return -1;
2480 360 : x15 = XVECEXP (x2, 0, 3);
2481 360 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2482 : return -1;
2483 360 : x16 = XVECEXP (x2, 0, 4);
2484 360 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2485 : return -1;
2486 360 : x17 = XVECEXP (x2, 0, 5);
2487 360 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2488 : return -1;
2489 360 : x18 = XVECEXP (x2, 0, 6);
2490 360 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2491 : return -1;
2492 360 : x19 = XVECEXP (x2, 0, 7);
2493 360 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2494 : return -1;
2495 360 : x20 = XVECEXP (x2, 0, 8);
2496 360 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2497 : return -1;
2498 360 : x21 = XVECEXP (x2, 0, 9);
2499 360 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2500 : return -1;
2501 360 : x22 = XVECEXP (x2, 0, 10);
2502 360 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2503 : return -1;
2504 360 : x23 = XVECEXP (x2, 0, 11);
2505 360 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2506 : return -1;
2507 360 : res = pattern512 (x1,
2508 : E_V4QImode,
2509 : E_V16QImode);
2510 360 : if (res >= 0)
2511 360 : return res + 13; /* [13, 14] */
2512 : return -1;
2513 :
2514 360 : case 4:
2515 360 : if (GET_MODE (x2) != E_V4HImode)
2516 : return -1;
2517 360 : x12 = XVECEXP (x2, 0, 0);
2518 360 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2519 : return -1;
2520 360 : x13 = XVECEXP (x2, 0, 1);
2521 360 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2522 : return -1;
2523 360 : x14 = XVECEXP (x2, 0, 2);
2524 360 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2525 : return -1;
2526 360 : x15 = XVECEXP (x2, 0, 3);
2527 360 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2528 : return -1;
2529 360 : res = pattern512 (x1,
2530 : E_V4HImode,
2531 : E_V8HImode);
2532 360 : if (res >= 0)
2533 360 : return res + 15; /* [15, 16] */
2534 : return -1;
2535 :
2536 : default:
2537 : return -1;
2538 : }
2539 :
2540 540 : case 8:
2541 540 : if (GET_MODE (x6) != E_V8QImode)
2542 : return -1;
2543 540 : x32 = XVECEXP (x6, 0, 0);
2544 540 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2545 : return -1;
2546 540 : x33 = XVECEXP (x6, 0, 1);
2547 540 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2548 : return -1;
2549 540 : x34 = XVECEXP (x6, 0, 2);
2550 540 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2551 : return -1;
2552 540 : x35 = XVECEXP (x6, 0, 3);
2553 540 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2554 : return -1;
2555 540 : x36 = XVECEXP (x6, 0, 4);
2556 540 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2557 : return -1;
2558 540 : x37 = XVECEXP (x6, 0, 5);
2559 540 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2560 : return -1;
2561 540 : x38 = XVECEXP (x6, 0, 6);
2562 540 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2563 : return -1;
2564 540 : x39 = XVECEXP (x6, 0, 7);
2565 540 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2566 540 : || XVECLEN (x2, 0) != 8
2567 540 : || GET_MODE (x2) != E_V8QImode)
2568 : return -1;
2569 540 : x12 = XVECEXP (x2, 0, 0);
2570 540 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2571 : return -1;
2572 540 : x13 = XVECEXP (x2, 0, 1);
2573 540 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2574 : return -1;
2575 540 : x14 = XVECEXP (x2, 0, 2);
2576 540 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2577 : return -1;
2578 540 : x15 = XVECEXP (x2, 0, 3);
2579 540 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2580 : return -1;
2581 540 : x16 = XVECEXP (x2, 0, 4);
2582 540 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2583 : return -1;
2584 540 : x17 = XVECEXP (x2, 0, 5);
2585 540 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2586 : return -1;
2587 540 : x18 = XVECEXP (x2, 0, 6);
2588 540 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2589 : return -1;
2590 540 : x19 = XVECEXP (x2, 0, 7);
2591 540 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
2592 540 : || !register_operand (operands[0], E_V16QImode)
2593 540 : || GET_MODE (x1) != E_V16QImode
2594 540 : || GET_MODE (x3) != E_V8QImode
2595 1080 : || GET_MODE (x4) != E_V8QImode)
2596 0 : return -1;
2597 540 : res = pattern510 ();
2598 540 : if (res >= 0)
2599 540 : return res + 17; /* [17, 19] */
2600 : return -1;
2601 :
2602 : default:
2603 : return -1;
2604 : }
2605 :
2606 : default:
2607 : return -1;
2608 : }
2609 : }
2610 :
2611 : int
2612 43658 : pattern730 (rtx x1, rtx_code i1)
2613 : {
2614 43658 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2615 43658 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2616 43658 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
2617 43658 : rtx x18;
2618 43658 : int res ATTRIBUTE_UNUSED;
2619 43658 : x2 = XVECEXP (x1, 0, 0);
2620 43658 : x3 = XEXP (x2, 1);
2621 43658 : x4 = XEXP (x3, 0);
2622 43658 : x5 = XEXP (x4, 0);
2623 43658 : if (GET_CODE (x5) != SIGN_EXTEND)
2624 : return -1;
2625 37407 : x6 = XEXP (x3, 1);
2626 37407 : if (GET_CODE (x6) != SIGN_EXTEND)
2627 : return -1;
2628 37407 : x7 = XEXP (x6, 0);
2629 37407 : if (GET_CODE (x7) != i1)
2630 : return -1;
2631 37407 : x8 = XEXP (x2, 0);
2632 37407 : if (GET_CODE (x8) != REG
2633 37407 : || REGNO (x8) != 17
2634 74814 : || GET_MODE (x8) != E_CCOmode)
2635 : return -1;
2636 37407 : x9 = XVECEXP (x1, 0, 1);
2637 37407 : if (GET_CODE (x9) != SET)
2638 : return -1;
2639 37407 : x10 = XEXP (x9, 1);
2640 37407 : if (GET_CODE (x10) != i1
2641 37407 : || GET_MODE (x3) != E_CCOmode)
2642 : return -1;
2643 37407 : x11 = XEXP (x5, 0);
2644 37407 : operands[1] = x11;
2645 37407 : x12 = XEXP (x9, 0);
2646 37407 : operands[0] = x12;
2647 37407 : x13 = XEXP (x7, 0);
2648 37407 : if (!rtx_equal_p (x13, operands[1]))
2649 : return -1;
2650 37406 : x14 = XEXP (x10, 0);
2651 37406 : if (!rtx_equal_p (x14, operands[1]))
2652 : return -1;
2653 37405 : x15 = XEXP (x4, 1);
2654 37405 : switch (GET_CODE (x15))
2655 : {
2656 25713 : case SIGN_EXTEND:
2657 25713 : x16 = XEXP (x15, 0);
2658 25713 : operands[2] = x16;
2659 25713 : x17 = XEXP (x7, 1);
2660 25713 : if (!rtx_equal_p (x17, operands[2]))
2661 : return -1;
2662 25713 : x18 = XEXP (x10, 1);
2663 25713 : if (!rtx_equal_p (x18, operands[2]))
2664 : return -1;
2665 25713 : switch (GET_MODE (x4))
2666 : {
2667 11886 : case E_TImode:
2668 11886 : return pattern728 (x1,
2669 : E_DImode,
2670 11886 : E_TImode); /* [-1, 0] */
2671 :
2672 3384 : case E_POImode:
2673 3384 : if (pattern728 (x1,
2674 : E_TImode,
2675 : E_POImode) != 0)
2676 : return -1;
2677 : return 1;
2678 :
2679 : default:
2680 : return -1;
2681 : }
2682 :
2683 11692 : case CONST_INT:
2684 11692 : case CONST_WIDE_INT:
2685 11692 : operands[3] = x15;
2686 11692 : x17 = XEXP (x7, 1);
2687 11692 : operands[2] = x17;
2688 11692 : x18 = XEXP (x10, 1);
2689 11692 : if (!rtx_equal_p (x18, operands[2]))
2690 : return -1;
2691 11692 : switch (GET_MODE (x4))
2692 : {
2693 3729 : case E_TImode:
2694 3729 : if (pattern729 (x1,
2695 : E_DImode,
2696 : E_TImode) != 0)
2697 : return -1;
2698 : return 2;
2699 :
2700 1007 : case E_POImode:
2701 1007 : if (pattern729 (x1,
2702 : E_TImode,
2703 : E_POImode) != 0)
2704 : return -1;
2705 : return 3;
2706 :
2707 : default:
2708 : return -1;
2709 : }
2710 :
2711 : default:
2712 : return -1;
2713 : }
2714 : }
2715 :
2716 : int
2717 5579 : pattern760 (rtx x1, machine_mode i1)
2718 : {
2719 5579 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2720 5579 : rtx x2;
2721 5579 : int res ATTRIBUTE_UNUSED;
2722 5579 : if (!register_operand (operands[0], i1)
2723 5579 : || GET_MODE (x1) != i1)
2724 : return -1;
2725 4063 : x2 = XEXP (x1, 0);
2726 4063 : if (GET_MODE (x2) != i1
2727 4063 : || !register_operand (operands[1], i1))
2728 3854 : return -1;
2729 : return 0;
2730 : }
2731 :
2732 : int
2733 10790 : pattern764 (rtx x1, machine_mode i1)
2734 : {
2735 10790 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2736 10790 : rtx x2;
2737 10790 : int res ATTRIBUTE_UNUSED;
2738 10790 : if (!register_operand (operands[0], i1)
2739 10790 : || GET_MODE (x1) != i1)
2740 : return -1;
2741 10038 : x2 = XEXP (x1, 0);
2742 10038 : if (GET_MODE (x2) != i1
2743 10038 : || !nonimmediate_operand (operands[1], i1))
2744 3453 : return -1;
2745 : return 0;
2746 : }
2747 :
2748 : int
2749 0 : pattern772 (rtx x1, machine_mode i1, machine_mode i2)
2750 : {
2751 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2752 0 : int res ATTRIBUTE_UNUSED;
2753 0 : if (!vector_all_ones_operand (operands[3], i1)
2754 0 : || !const0_operand (operands[4], i1)
2755 0 : || GET_MODE (x1) != i2
2756 0 : || !register_operand (operands[1], i1)
2757 0 : || !const0_operand (operands[2], i1))
2758 0 : return -1;
2759 : return 0;
2760 : }
2761 :
2762 : int
2763 176 : pattern777 (rtx x1)
2764 : {
2765 176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2766 176 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2767 176 : rtx x10;
2768 176 : int res ATTRIBUTE_UNUSED;
2769 176 : x2 = XEXP (x1, 0);
2770 176 : x3 = XEXP (x2, 0);
2771 176 : if (GET_MODE (x3) != E_V8HFmode)
2772 : return -1;
2773 176 : x4 = XEXP (x2, 2);
2774 176 : if (GET_CODE (x4) != UNSPEC
2775 176 : || XVECLEN (x4, 0) != 1
2776 176 : || XINT (x4, 1) != 224
2777 176 : || GET_MODE (x4) != E_QImode)
2778 : return -1;
2779 176 : x5 = XEXP (x1, 2);
2780 176 : if (XWINT (x5, 0) != 3L
2781 176 : || !register_operand (operands[0], E_V8HFmode)
2782 148 : || GET_MODE (x1) != E_V8HFmode
2783 324 : || GET_MODE (x2) != E_V8HFmode)
2784 28 : return -1;
2785 148 : x6 = XVECEXP (x3, 0, 0);
2786 148 : operands[1] = x6;
2787 148 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
2788 : return -1;
2789 148 : x7 = XVECEXP (x3, 0, 1);
2790 148 : operands[2] = x7;
2791 148 : if (!vector_operand (operands[2], E_V8HFmode))
2792 : return -1;
2793 148 : x8 = XEXP (x2, 1);
2794 148 : operands[3] = x8;
2795 148 : if (!nonimm_or_0_operand (operands[3], E_V8HFmode))
2796 : return -1;
2797 148 : x9 = XVECEXP (x4, 0, 0);
2798 148 : operands[4] = x9;
2799 148 : if (!register_operand (operands[4], E_QImode))
2800 : return -1;
2801 132 : x10 = XEXP (x1, 1);
2802 132 : if (!rtx_equal_p (x10, operands[1]))
2803 : return -1;
2804 : return 0;
2805 : }
2806 :
2807 : int
2808 2186 : pattern793 (rtx x1, machine_mode i1)
2809 : {
2810 2186 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2811 2186 : int res ATTRIBUTE_UNUSED;
2812 2186 : if (!register_operand (operands[0], i1)
2813 2174 : || GET_MODE (x1) != i1
2814 2174 : || !register_operand (operands[2], i1)
2815 3851 : || !memory_operand (operands[1], i1))
2816 655 : return -1;
2817 : return 0;
2818 : }
2819 :
2820 : int
2821 48998 : pattern802 (rtx x1, machine_mode i1, machine_mode i2)
2822 : {
2823 48998 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2824 48998 : rtx x2;
2825 48998 : int res ATTRIBUTE_UNUSED;
2826 48998 : if (!register_operand (operands[0], i2)
2827 47955 : || GET_MODE (x1) != i2
2828 96953 : || !nonimmediate_operand (operands[1], i1))
2829 6000 : return -1;
2830 42998 : x2 = XEXP (x1, 1);
2831 42998 : if (!rtx_equal_p (x2, operands[1]))
2832 : return -1;
2833 : return 0;
2834 : }
2835 :
2836 : int
2837 103742 : pattern808 (machine_mode i1)
2838 : {
2839 103742 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2840 103742 : int res ATTRIBUTE_UNUSED;
2841 103742 : if (!register_operand (operands[0], i1)
2842 100556 : || !ix86_comparison_uns_operator (operands[1], i1)
2843 100459 : || !register_operand (operands[2], i1)
2844 169500 : || !nonimmediate_operand (operands[3], i1))
2845 102555 : return -1;
2846 : return 0;
2847 : }
2848 :
2849 : int
2850 1272071 : pattern817 (rtx x1)
2851 : {
2852 1272071 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2853 1272071 : rtx x2, x3, x4, x5, x6;
2854 1272071 : int res ATTRIBUTE_UNUSED;
2855 1272071 : if (!movq_parallel (operands[3], E_VOIDmode))
2856 : return -1;
2857 99480 : x2 = XEXP (x1, 0);
2858 99480 : x3 = XEXP (x2, 0);
2859 99480 : operands[1] = x3;
2860 99480 : x4 = XEXP (x2, 1);
2861 99480 : operands[2] = x4;
2862 99480 : x5 = XEXP (x1, 1);
2863 99480 : x6 = XVECEXP (x5, 0, 0);
2864 99480 : operands[4] = x6;
2865 99480 : if (!const_int_operand (operands[4], E_VOIDmode))
2866 : return -1;
2867 99480 : switch (GET_MODE (operands[0]))
2868 : {
2869 24 : case E_V64QImode:
2870 24 : return pattern811 (x1,
2871 : E_V64QImode,
2872 24 : E_V128QImode); /* [-1, 0] */
2873 :
2874 28 : case E_V32QImode:
2875 28 : if (pattern811 (x1,
2876 : E_V32QImode,
2877 : E_V64QImode) != 0)
2878 : return -1;
2879 : return 1;
2880 :
2881 254 : case E_V16QImode:
2882 254 : if (pattern811 (x1,
2883 : E_V16QImode,
2884 : E_V32QImode) != 0)
2885 : return -1;
2886 : return 2;
2887 :
2888 46 : case E_V32HImode:
2889 46 : if (pattern811 (x1,
2890 : E_V32HImode,
2891 : E_V64HImode) != 0)
2892 : return -1;
2893 : return 3;
2894 :
2895 50 : case E_V16HImode:
2896 50 : if (pattern811 (x1,
2897 : E_V16HImode,
2898 : E_V32HImode) != 0)
2899 : return -1;
2900 : return 4;
2901 :
2902 399 : case E_V8HImode:
2903 399 : if (pattern811 (x1,
2904 : E_V8HImode,
2905 : E_V16HImode) != 0)
2906 : return -1;
2907 : return 5;
2908 :
2909 : default:
2910 : return -1;
2911 : }
2912 : }
2913 :
2914 : int
2915 12013 : pattern828 (rtx x1)
2916 : {
2917 12013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2918 12013 : rtx x2;
2919 12013 : int res ATTRIBUTE_UNUSED;
2920 12013 : if (GET_MODE (x1) != E_SImode)
2921 : return -1;
2922 12013 : x2 = XVECEXP (x1, 0, 3);
2923 12013 : if (GET_CODE (x2) != REG
2924 12013 : || REGNO (x2) != 7
2925 24026 : || GET_MODE (x2) != E_SImode)
2926 0 : return -1;
2927 : return 0;
2928 : }
2929 :
2930 : int
2931 61 : pattern833 (rtx x1, int *pnum_clobbers)
2932 : {
2933 61 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2934 61 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2935 61 : int res ATTRIBUTE_UNUSED;
2936 61 : x2 = XVECEXP (x1, 0, 0);
2937 61 : x3 = XEXP (x2, 1);
2938 61 : x4 = XEXP (x3, 0);
2939 61 : x5 = XEXP (x4, 0);
2940 61 : if (GET_MODE (x5) != E_SImode)
2941 : return -1;
2942 39 : x6 = XEXP (x3, 1);
2943 39 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
2944 : return -1;
2945 0 : x7 = XEXP (x2, 0);
2946 0 : operands[0] = x7;
2947 0 : if (!register_operand (operands[0], E_DImode)
2948 0 : || GET_MODE (x3) != E_DImode
2949 0 : || GET_MODE (x4) != E_DImode)
2950 : return -1;
2951 0 : x8 = XEXP (x5, 0);
2952 0 : operands[1] = x8;
2953 0 : if (!nonimmediate_operand (operands[1], E_SImode))
2954 : return -1;
2955 0 : x9 = XVECEXP (x1, 0, 1);
2956 0 : return pattern832 (x9, pnum_clobbers); /* [-1, 1] */
2957 : }
2958 :
2959 : int
2960 8 : pattern841 (rtx x1)
2961 : {
2962 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2963 8 : rtx x2, x3, x4, x5;
2964 8 : int res ATTRIBUTE_UNUSED;
2965 8 : x2 = XVECEXP (x1, 0, 2);
2966 8 : if (GET_CODE (x2) != CLOBBER)
2967 : return -1;
2968 8 : x3 = XEXP (x2, 0);
2969 8 : if (GET_CODE (x3) != REG
2970 8 : || REGNO (x3) != 17
2971 16 : || GET_MODE (x3) != E_CCmode)
2972 : return -1;
2973 8 : x4 = XVECEXP (x1, 0, 0);
2974 8 : x5 = XEXP (x4, 0);
2975 8 : operands[0] = x5;
2976 8 : return 0;
2977 : }
2978 :
2979 : int
2980 56 : pattern845 (rtx x1)
2981 : {
2982 56 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2983 56 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2984 56 : int res ATTRIBUTE_UNUSED;
2985 56 : x2 = XEXP (x1, 1);
2986 56 : x3 = XEXP (x2, 0);
2987 56 : if (GET_MODE (x3) != E_DImode)
2988 : return -1;
2989 56 : x4 = XEXP (x3, 0);
2990 56 : if (GET_CODE (x4) != MINUS
2991 54 : || GET_MODE (x4) != E_SImode)
2992 : return -1;
2993 54 : x5 = XEXP (x4, 0);
2994 54 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
2995 : return -1;
2996 54 : x6 = XEXP (x4, 1);
2997 54 : if (GET_CODE (x6) != SUBREG
2998 54 : || maybe_ne (SUBREG_BYTE (x6), 0)
2999 108 : || GET_MODE (x6) != E_SImode)
3000 : return -1;
3001 54 : x7 = XEXP (x6, 0);
3002 54 : if (GET_CODE (x7) != CLZ
3003 54 : || GET_MODE (x7) != E_DImode)
3004 : return -1;
3005 54 : x8 = XEXP (x2, 1);
3006 54 : if (XWINT (x8, 0) != 63L
3007 54 : || !register_operand (operands[0], E_DImode)
3008 54 : || GET_MODE (x1) != E_DImode
3009 54 : || !const_int_operand (operands[2], E_DImode)
3010 92 : || GET_MODE (x2) != E_DImode)
3011 16 : return -1;
3012 38 : x9 = XEXP (x7, 0);
3013 38 : operands[1] = x9;
3014 38 : if (!nonimmediate_operand (operands[1], E_DImode))
3015 : return -1;
3016 : return 0;
3017 : }
3018 :
3019 : int
3020 176 : pattern858 (rtx x1)
3021 : {
3022 176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3023 176 : rtx x2, x3, x4, x5, x6, x7;
3024 176 : int res ATTRIBUTE_UNUSED;
3025 176 : x2 = XVECEXP (x1, 0, 0);
3026 176 : if (GET_CODE (x2) != VEC_SELECT)
3027 : return -1;
3028 176 : x3 = XEXP (x2, 1);
3029 176 : if (GET_CODE (x3) != PARALLEL
3030 176 : || XVECLEN (x3, 0) != 1)
3031 : return -1;
3032 176 : x4 = XVECEXP (x3, 0, 0);
3033 176 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3034 : return -1;
3035 176 : x5 = XVECEXP (x1, 0, 1);
3036 176 : if (GET_CODE (x5) != VEC_SELECT)
3037 : return -1;
3038 176 : x6 = XEXP (x5, 1);
3039 176 : if (GET_CODE (x6) != PARALLEL
3040 176 : || XVECLEN (x6, 0) != 1)
3041 : return -1;
3042 176 : x7 = XVECEXP (x6, 0, 0);
3043 176 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3044 0 : return -1;
3045 : return 0;
3046 : }
3047 :
3048 : int
3049 475 : pattern865 (rtx x1)
3050 : {
3051 475 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3052 475 : rtx x2, x3, x4, x5;
3053 475 : int res ATTRIBUTE_UNUSED;
3054 475 : x2 = XEXP (x1, 0);
3055 475 : x3 = XEXP (x2, 1);
3056 475 : x4 = XEXP (x3, 1);
3057 475 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3058 : return -1;
3059 472 : x5 = XEXP (x3, 0);
3060 472 : operands[3] = x5;
3061 472 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
3062 : return -1;
3063 469 : switch (GET_MODE (operands[0]))
3064 : {
3065 0 : case E_QImode:
3066 0 : return pattern864 (x1,
3067 0 : E_QImode); /* [-1, 0] */
3068 :
3069 0 : case E_HImode:
3070 0 : if (pattern864 (x1,
3071 : E_HImode) != 0)
3072 : return -1;
3073 : return 1;
3074 :
3075 : default:
3076 : return -1;
3077 : }
3078 : }
3079 :
3080 : int
3081 3410 : pattern871 (rtx x1, machine_mode i1)
3082 : {
3083 3410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3084 3410 : rtx x2;
3085 3410 : int res ATTRIBUTE_UNUSED;
3086 3410 : if (!memory_operand (operands[0], i1)
3087 3410 : || GET_MODE (x1) != i1)
3088 : return -1;
3089 1368 : x2 = XVECEXP (x1, 0, 0);
3090 1368 : if (GET_MODE (x2) != i1
3091 1368 : || !nonmemory_operand (operands[1], i1))
3092 1351 : return -1;
3093 : return 0;
3094 : }
3095 :
3096 : int
3097 2583 : pattern876 (rtx x1, machine_mode i1, machine_mode i2)
3098 : {
3099 2583 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3100 2583 : rtx x2;
3101 2583 : int res ATTRIBUTE_UNUSED;
3102 2583 : if (!register_operand (operands[0], i1)
3103 2583 : || GET_MODE (x1) != i1)
3104 : return -1;
3105 2456 : x2 = XEXP (x1, 0);
3106 2456 : if (GET_MODE (x2) != i1
3107 2456 : || !nonimmediate_operand (operands[2], i2)
3108 4691 : || !register_operand (operands[1], i1))
3109 705 : return -1;
3110 : return 0;
3111 : }
3112 :
3113 : int
3114 7732 : pattern884 (rtx x1, machine_mode i1)
3115 : {
3116 7732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3117 7732 : rtx x2;
3118 7732 : int res ATTRIBUTE_UNUSED;
3119 7732 : if (!register_operand (operands[0], i1)
3120 7732 : || GET_MODE (x1) != i1)
3121 : return -1;
3122 7660 : x2 = XEXP (x1, 1);
3123 7660 : if (GET_MODE (x2) != i1
3124 7660 : || !nonimmediate_operand (operands[1], i1))
3125 1321 : return -1;
3126 : return 0;
3127 : }
3128 :
3129 : int
3130 2490 : pattern890 (rtx x1)
3131 : {
3132 2490 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3133 2490 : rtx x2, x3;
3134 2490 : int res ATTRIBUTE_UNUSED;
3135 2490 : x2 = XVECEXP (x1, 0, 0);
3136 2490 : x3 = XVECEXP (x2, 0, 0);
3137 2490 : operands[1] = x3;
3138 2490 : if (!const48_operand (operands[2], E_SImode))
3139 : return -1;
3140 2490 : switch (GET_MODE (operands[0]))
3141 : {
3142 796 : case E_SImode:
3143 796 : return pattern889 (x1,
3144 796 : E_SImode); /* [-1, 2] */
3145 :
3146 784 : case E_DImode:
3147 784 : res = pattern889 (x1,
3148 : E_DImode);
3149 784 : if (res >= 0)
3150 736 : return res + 3; /* [3, 5] */
3151 : return -1;
3152 :
3153 : default:
3154 : return -1;
3155 : }
3156 : }
3157 :
3158 : int
3159 125379 : pattern898 (rtx x1, machine_mode i1, machine_mode i2)
3160 : {
3161 125379 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3162 125379 : rtx x2, x3;
3163 125379 : int res ATTRIBUTE_UNUSED;
3164 125379 : if (!register_operand (operands[0], i1)
3165 125379 : || GET_MODE (x1) != i1)
3166 : return -1;
3167 125254 : x2 = XEXP (x1, 0);
3168 125254 : if (GET_MODE (x2) != i1)
3169 : return -1;
3170 125254 : x3 = XEXP (x2, 0);
3171 125254 : if (GET_MODE (x3) != i2
3172 125254 : || !register_operand (operands[1], i1))
3173 802 : return -1;
3174 124452 : switch (GET_MODE (operands[2]))
3175 : {
3176 71864 : case E_SImode:
3177 71864 : if (!nonimmediate_operand (operands[2], E_SImode))
3178 : return -1;
3179 : return 0;
3180 :
3181 52588 : case E_DImode:
3182 52588 : if (!nonimmediate_operand (operands[2], E_DImode))
3183 : return -1;
3184 : return 1;
3185 :
3186 : default:
3187 : return -1;
3188 : }
3189 : }
3190 :
3191 : int
3192 1128 : pattern912 (rtx x1, machine_mode i1, machine_mode i2)
3193 : {
3194 1128 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3195 1128 : rtx x2, x3, x4;
3196 1128 : int res ATTRIBUTE_UNUSED;
3197 1128 : if (!register_operand (operands[0], i1)
3198 1128 : || GET_MODE (x1) != i1)
3199 : return -1;
3200 1092 : x2 = XVECEXP (x1, 0, 0);
3201 1092 : if (GET_MODE (x2) != i1)
3202 : return -1;
3203 1092 : x3 = XEXP (x2, 0);
3204 1092 : if (GET_MODE (x3) != i1)
3205 : return -1;
3206 1092 : x4 = XEXP (x3, 0);
3207 1092 : if (GET_MODE (x4) != i2
3208 1092 : || !register_operand (operands[1], i1))
3209 28 : return -1;
3210 1064 : switch (GET_MODE (operands[2]))
3211 : {
3212 532 : case E_SImode:
3213 532 : if (!register_operand (operands[2], E_SImode))
3214 : return -1;
3215 : return 0;
3216 :
3217 532 : case E_DImode:
3218 532 : if (!register_operand (operands[2], E_DImode))
3219 : return -1;
3220 : return 1;
3221 :
3222 : default:
3223 : return -1;
3224 : }
3225 : }
3226 :
3227 : int
3228 2760 : pattern920 (rtx x1, machine_mode i1)
3229 : {
3230 2760 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3231 2760 : int res ATTRIBUTE_UNUSED;
3232 2760 : if (!register_operand (operands[0], i1)
3233 2307 : || GET_MODE (x1) != i1
3234 2307 : || !nonimmediate_operand (operands[1], i1)
3235 5038 : || !nonimm_or_0_operand (operands[2], i1))
3236 761 : return -1;
3237 : return 0;
3238 : }
3239 :
3240 : int
3241 376 : pattern925 (rtx x1)
3242 : {
3243 376 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3244 376 : rtx x2;
3245 376 : int res ATTRIBUTE_UNUSED;
3246 376 : x2 = XEXP (x1, 0);
3247 376 : if (GET_MODE (x2) != E_V8QImode
3248 376 : || !register_operand (operands[0], E_V16QImode)
3249 376 : || GET_MODE (x1) != E_V16QImode
3250 376 : || !register_operand (operands[1], E_V16QImode)
3251 368 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3252 710 : || !const0_operand (operands[3], E_V8QImode))
3253 42 : return -1;
3254 : return 0;
3255 : }
3256 :
3257 : int
3258 232 : pattern929 (rtx x1, machine_mode i1)
3259 : {
3260 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3261 232 : rtx x2;
3262 232 : int res ATTRIBUTE_UNUSED;
3263 232 : if (!register_operand (operands[0], i1)
3264 232 : || GET_MODE (x1) != i1)
3265 : return -1;
3266 223 : x2 = XEXP (x1, 0);
3267 223 : if (GET_MODE (x2) != i1
3268 223 : || !nonimmediate_operand (operands[1], i1)
3269 220 : || !nonimmediate_operand (operands[2], i1)
3270 443 : || !nonimmediate_operand (operands[3], i1))
3271 3 : return -1;
3272 : return 0;
3273 : }
3274 :
3275 : int
3276 180121 : pattern934 (rtx x1)
3277 : {
3278 180121 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3279 180121 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3280 180121 : rtx x10, x11, x12, x13, x14, x15;
3281 180121 : int res ATTRIBUTE_UNUSED;
3282 180121 : x2 = XVECEXP (x1, 0, 2);
3283 180121 : if (GET_CODE (x2) != CONST_INT)
3284 : return -1;
3285 180121 : x3 = XVECEXP (x1, 0, 3);
3286 180121 : if (GET_CODE (x3) != CONST_INT)
3287 : return -1;
3288 180121 : x4 = XVECEXP (x1, 0, 4);
3289 180121 : if (GET_CODE (x4) != CONST_INT)
3290 : return -1;
3291 180121 : x5 = XVECEXP (x1, 0, 5);
3292 180121 : if (GET_CODE (x5) != CONST_INT)
3293 : return -1;
3294 180121 : x6 = XVECEXP (x1, 0, 6);
3295 180121 : if (GET_CODE (x6) != CONST_INT)
3296 : return -1;
3297 180121 : x7 = XVECEXP (x1, 0, 7);
3298 180121 : if (GET_CODE (x7) != CONST_INT)
3299 : return -1;
3300 180121 : x8 = XVECEXP (x1, 0, 8);
3301 180121 : if (GET_CODE (x8) != CONST_INT)
3302 : return -1;
3303 180121 : x9 = XVECEXP (x1, 0, 9);
3304 180121 : if (GET_CODE (x9) != CONST_INT)
3305 : return -1;
3306 180121 : x10 = XVECEXP (x1, 0, 10);
3307 180121 : if (GET_CODE (x10) != CONST_INT)
3308 : return -1;
3309 180121 : x11 = XVECEXP (x1, 0, 11);
3310 180121 : if (GET_CODE (x11) != CONST_INT)
3311 : return -1;
3312 180121 : x12 = XVECEXP (x1, 0, 12);
3313 180121 : if (GET_CODE (x12) != CONST_INT)
3314 : return -1;
3315 180121 : x13 = XVECEXP (x1, 0, 13);
3316 180121 : if (GET_CODE (x13) != CONST_INT)
3317 : return -1;
3318 180121 : x14 = XVECEXP (x1, 0, 14);
3319 180121 : if (GET_CODE (x14) != CONST_INT)
3320 : return -1;
3321 180121 : x15 = XVECEXP (x1, 0, 15);
3322 180121 : if (GET_CODE (x15) != CONST_INT)
3323 0 : return -1;
3324 : return 0;
3325 : }
3326 :
3327 : int
3328 7916 : pattern950 (rtx x1, machine_mode i1)
3329 : {
3330 7916 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3331 7916 : rtx x2;
3332 7916 : int res ATTRIBUTE_UNUSED;
3333 7916 : if (!register_operand (operands[0], i1)
3334 7916 : || GET_MODE (x1) != i1)
3335 : return -1;
3336 7865 : x2 = XEXP (x1, 0);
3337 7865 : if (GET_MODE (x2) != i1
3338 7865 : || !register_operand (operands[1], i1))
3339 3139 : return -1;
3340 : return 0;
3341 : }
3342 :
3343 : int
3344 885 : pattern959 (rtx x1, machine_mode i1)
3345 : {
3346 885 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3347 885 : rtx x2;
3348 885 : int res ATTRIBUTE_UNUSED;
3349 885 : if (!register_operand (operands[0], i1)
3350 885 : || GET_MODE (x1) != i1)
3351 : return -1;
3352 877 : x2 = XEXP (x1, 0);
3353 877 : if (GET_MODE (x2) != i1
3354 877 : || !register_operand (operands[1], i1)
3355 297 : || !const0_operand (operands[2], i1)
3356 957 : || !const1_operand (operands[3], i1))
3357 877 : return -1;
3358 : return 0;
3359 : }
3360 :
3361 : int
3362 4583474 : pattern967 (rtx x1, machine_mode i1)
3363 : {
3364 4583474 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3365 4583474 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3366 4583474 : int res ATTRIBUTE_UNUSED;
3367 4583474 : operands[1] = x1;
3368 4583474 : if (!general_reg_operand (operands[1], i1))
3369 : return -1;
3370 1094120 : x2 = PATTERN (peep2_next_insn (2));
3371 1094120 : if (GET_CODE (x2) != PARALLEL
3372 169032 : || XVECLEN (x2, 0) != 2)
3373 : return -1;
3374 156812 : x3 = XVECEXP (x2, 0, 0);
3375 156812 : if (GET_CODE (x3) != SET)
3376 : return -1;
3377 156676 : x4 = XEXP (x3, 0);
3378 156676 : if (GET_CODE (x4) != REG
3379 156676 : || REGNO (x4) != 17)
3380 : return -1;
3381 18079 : x5 = XVECEXP (x2, 0, 1);
3382 18079 : if (GET_CODE (x5) != SET)
3383 : return -1;
3384 17460 : x6 = XEXP (x3, 1);
3385 17460 : operands[5] = x6;
3386 17460 : x7 = XEXP (x5, 1);
3387 17460 : operands[6] = x7;
3388 17460 : x8 = XEXP (x5, 0);
3389 17460 : if (!rtx_equal_p (x8, operands[0]))
3390 : return -1;
3391 10629 : x9 = PATTERN (peep2_next_insn (3));
3392 10629 : return pattern966 (x9,
3393 10629 : i1); /* [-1, 0] */
3394 : }
3395 :
3396 : int
3397 7308 : pattern974 (rtx x1, machine_mode i1)
3398 : {
3399 7308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3400 7308 : int res ATTRIBUTE_UNUSED;
3401 7308 : if (!register_operand (operands[0], i1)
3402 7301 : || GET_MODE (x1) != i1
3403 7301 : || !register_operand (operands[1], i1)
3404 14578 : || !register_operand (operands[2], i1))
3405 51 : return -1;
3406 : return 0;
3407 : }
3408 :
3409 : int
3410 168 : pattern978 (rtx x1)
3411 : {
3412 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3413 168 : rtx x2;
3414 168 : int res ATTRIBUTE_UNUSED;
3415 168 : if (!register_operand (operands[0], E_QImode)
3416 168 : || GET_MODE (x1) != E_QImode)
3417 : return -1;
3418 168 : x2 = XEXP (x1, 0);
3419 168 : if (GET_MODE (x2) != E_QImode)
3420 : return -1;
3421 168 : switch (GET_MODE (operands[1]))
3422 : {
3423 3 : case E_V8SImode:
3424 3 : if (!register_operand (operands[1], E_V8SImode)
3425 3 : || !nonimmediate_operand (operands[2], E_V8SImode)
3426 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3427 0 : return -1;
3428 : return 0;
3429 :
3430 0 : case E_V4SImode:
3431 0 : if (!register_operand (operands[1], E_V4SImode)
3432 0 : || !nonimmediate_operand (operands[2], E_V4SImode)
3433 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3434 0 : return -1;
3435 : return 1;
3436 :
3437 29 : case E_V8DImode:
3438 29 : if (!register_operand (operands[1], E_V8DImode)
3439 29 : || !nonimmediate_operand (operands[2], E_V8DImode)
3440 58 : || !const_0_to_7_operand (operands[3], E_SImode))
3441 0 : return -1;
3442 : return 2;
3443 :
3444 0 : case E_V4DImode:
3445 0 : if (!register_operand (operands[1], E_V4DImode)
3446 0 : || !nonimmediate_operand (operands[2], E_V4DImode)
3447 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3448 0 : return -1;
3449 : return 3;
3450 :
3451 0 : case E_V2DImode:
3452 0 : if (!register_operand (operands[1], E_V2DImode)
3453 0 : || !nonimmediate_operand (operands[2], E_V2DImode)
3454 0 : || !const_0_to_7_operand (operands[3], E_SImode))
3455 0 : return -1;
3456 : return 4;
3457 :
3458 0 : case E_V8HFmode:
3459 0 : if (!register_operand (operands[1], E_V8HFmode)
3460 0 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3461 0 : || !const_0_to_31_operand (operands[3], E_SImode))
3462 0 : return -1;
3463 : return 5;
3464 :
3465 3 : case E_V8SFmode:
3466 3 : if (!register_operand (operands[1], E_V8SFmode)
3467 3 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3468 6 : || !const_0_to_31_operand (operands[3], E_SImode))
3469 0 : return -1;
3470 : return 6;
3471 :
3472 21 : case E_V4SFmode:
3473 21 : if (!register_operand (operands[1], E_V4SFmode)
3474 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3475 33 : || !const_0_to_31_operand (operands[3], E_SImode))
3476 9 : return -1;
3477 : return 7;
3478 :
3479 50 : case E_V8DFmode:
3480 50 : if (!register_operand (operands[1], E_V8DFmode)
3481 50 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3482 100 : || !const_0_to_31_operand (operands[3], E_SImode))
3483 0 : return -1;
3484 : return 8;
3485 :
3486 25 : case E_V4DFmode:
3487 25 : if (!register_operand (operands[1], E_V4DFmode)
3488 25 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3489 50 : || !const_0_to_31_operand (operands[3], E_SImode))
3490 0 : return -1;
3491 : return 9;
3492 :
3493 34 : case E_V2DFmode:
3494 34 : if (!register_operand (operands[1], E_V2DFmode)
3495 34 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3496 68 : || !const_0_to_31_operand (operands[3], E_SImode))
3497 0 : return -1;
3498 : return 10;
3499 :
3500 3 : case E_V8HImode:
3501 3 : if (!register_operand (operands[1], E_V8HImode)
3502 3 : || !nonimmediate_operand (operands[2], E_V8HImode)
3503 6 : || !const_0_to_7_operand (operands[3], E_SImode))
3504 0 : return -1;
3505 : return 11;
3506 :
3507 : default:
3508 : return -1;
3509 : }
3510 : }
3511 :
3512 : int
3513 622 : pattern1001 (rtx x1)
3514 : {
3515 622 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3516 622 : rtx x2;
3517 622 : int res ATTRIBUTE_UNUSED;
3518 622 : if (!register_operand (operands[0], E_V8DImode)
3519 622 : || GET_MODE (x1) != E_V8DImode)
3520 : return -1;
3521 508 : x2 = XEXP (x1, 0);
3522 508 : if (GET_MODE (x2) != E_V8DImode
3523 508 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
3524 972 : || !register_operand (operands[3], E_QImode))
3525 108 : return -1;
3526 400 : switch (GET_MODE (operands[1]))
3527 : {
3528 146 : case E_V8HFmode:
3529 146 : if (!vector_operand (operands[1], E_V8HFmode))
3530 : return -1;
3531 : return 0;
3532 :
3533 126 : case E_V8DFmode:
3534 126 : if (!vector_operand (operands[1], E_V8DFmode))
3535 : return -1;
3536 : return 1;
3537 :
3538 128 : case E_V8SFmode:
3539 128 : if (!vector_operand (operands[1], E_V8SFmode))
3540 : return -1;
3541 : return 2;
3542 :
3543 : default:
3544 : return -1;
3545 : }
3546 : }
3547 :
3548 : int
3549 3351 : pattern1009 (rtx x1, machine_mode i1)
3550 : {
3551 3351 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3552 3351 : rtx x2, x3, x4;
3553 3351 : int res ATTRIBUTE_UNUSED;
3554 3351 : if (!register_operand (operands[0], i1)
3555 3351 : || GET_MODE (x1) != i1)
3556 : return -1;
3557 3239 : x2 = XEXP (x1, 0);
3558 3239 : if (GET_MODE (x2) != i1)
3559 : return -1;
3560 3239 : x3 = XVECEXP (x2, 0, 0);
3561 3239 : if (!register_operand (x3, i1))
3562 : return -1;
3563 3201 : x4 = XVECEXP (x2, 0, 1);
3564 3201 : if (!register_operand (x4, i1))
3565 : return -1;
3566 : return 0;
3567 : }
3568 :
3569 : int
3570 0 : pattern1019 (rtx x1, machine_mode i1, machine_mode i2)
3571 : {
3572 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3573 0 : rtx x2, x3;
3574 0 : int res ATTRIBUTE_UNUSED;
3575 0 : if (!register_operand (operands[0], i1)
3576 0 : || GET_MODE (x1) != i1
3577 0 : || !vector_operand (operands[1], i1)
3578 0 : || !vector_operand (operands[2], i1))
3579 0 : return -1;
3580 0 : x2 = XEXP (x1, 2);
3581 0 : if (GET_MODE (x2) != i2)
3582 : return -1;
3583 0 : x3 = XVECEXP (x2, 0, 0);
3584 0 : if (GET_MODE (x3) != i1
3585 0 : || !register_operand (operands[3], i1)
3586 0 : || !const0_operand (operands[4], i1))
3587 0 : return -1;
3588 : return 0;
3589 : }
3590 :
3591 : int
3592 444 : pattern1026 (rtx x1, machine_mode i1)
3593 : {
3594 444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3595 444 : int res ATTRIBUTE_UNUSED;
3596 444 : if (!register_operand (operands[0], i1)
3597 444 : || GET_MODE (x1) != i1
3598 444 : || !ix86_comparison_uns_operator (operands[1], i1)
3599 444 : || !register_operand (operands[2], i1)
3600 888 : || !nonimmediate_operand (operands[3], i1))
3601 0 : return -1;
3602 : return 0;
3603 : }
3604 :
3605 : int
3606 213 : pattern1032 (rtx x1, machine_mode i1, machine_mode i2)
3607 : {
3608 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3609 213 : rtx x2;
3610 213 : int res ATTRIBUTE_UNUSED;
3611 213 : x2 = XVECEXP (x1, 0, 0);
3612 213 : if (GET_MODE (x2) != i2
3613 213 : || !register_operand (operands[0], i2)
3614 209 : || GET_MODE (x1) != i2
3615 209 : || !register_operand (operands[1], i1)
3616 418 : || !const48_operand (operands[2], E_SImode))
3617 8 : return -1;
3618 : return 0;
3619 : }
3620 :
3621 : int
3622 29502 : pattern1038 (rtx x1, machine_mode i1)
3623 : {
3624 29502 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3625 29502 : int res ATTRIBUTE_UNUSED;
3626 29502 : if (!register_operand (operands[0], i1)
3627 28637 : || GET_MODE (x1) != i1
3628 28637 : || !register_operand (operands[1], i1)
3629 21454 : || !vector_operand (operands[2], i1)
3630 48010 : || !register_operand (operands[3], i1))
3631 13909 : return -1;
3632 : return 0;
3633 : }
3634 :
3635 : int
3636 1312 : pattern1044 (rtx x1, machine_mode i1, machine_mode i2)
3637 : {
3638 1312 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3639 1312 : rtx x2;
3640 1312 : int res ATTRIBUTE_UNUSED;
3641 1312 : if (!nonimmediate_operand (operands[0], i2)
3642 1312 : || GET_MODE (x1) != i2
3643 2624 : || !nonimmediate_operand (operands[1], i1))
3644 0 : return -1;
3645 1312 : x2 = XEXP (x1, 1);
3646 1312 : if (GET_MODE (x2) != i1)
3647 : return -1;
3648 : return 0;
3649 : }
3650 :
3651 : int
3652 9623 : pattern1052 (rtx x1)
3653 : {
3654 9623 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3655 9623 : rtx x2, x3, x4;
3656 9623 : int res ATTRIBUTE_UNUSED;
3657 9623 : x2 = XEXP (x1, 0);
3658 9623 : x3 = XEXP (x2, 0);
3659 9623 : operands[1] = x3;
3660 9623 : x4 = XEXP (x2, 1);
3661 9623 : operands[2] = x4;
3662 9623 : return pattern1051 (x1); /* [-1, 5] */
3663 : }
3664 :
3665 : int
3666 328 : pattern1053 (rtx x1, machine_mode i1)
3667 : {
3668 328 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3669 328 : rtx x2, x3, x4, x5, x6;
3670 328 : int res ATTRIBUTE_UNUSED;
3671 328 : if (!register_operand (operands[0], i1))
3672 : return -1;
3673 328 : x2 = XVECEXP (x1, 0, 0);
3674 328 : x3 = XEXP (x2, 1);
3675 328 : if (GET_MODE (x3) != i1)
3676 : return -1;
3677 328 : x4 = XEXP (x3, 0);
3678 328 : switch (GET_MODE (x4))
3679 : {
3680 70 : case E_HImode:
3681 70 : if (!register_operand (operands[4], E_HImode))
3682 : return -1;
3683 70 : x5 = XVECEXP (x1, 0, 1);
3684 70 : x6 = XEXP (x5, 1);
3685 70 : if (GET_MODE (x6) != E_HImode)
3686 : return -1;
3687 70 : switch (GET_MODE (operands[1]))
3688 : {
3689 14 : case E_V16SImode:
3690 14 : if (!nonimmediate_operand (operands[1], E_V16SImode)
3691 12 : || !nonimmediate_operand (operands[2], E_V16SImode)
3692 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3693 2 : return -1;
3694 : return 0;
3695 :
3696 14 : case E_V16HFmode:
3697 14 : if (!nonimmediate_operand (operands[1], E_V16HFmode)
3698 12 : || !nonimmediate_operand (operands[2], E_V16HFmode)
3699 26 : || !const_0_to_31_operand (operands[3], E_SImode))
3700 2 : return -1;
3701 : return 1;
3702 :
3703 14 : case E_V16SFmode:
3704 14 : if (!nonimmediate_operand (operands[1], E_V16SFmode)
3705 12 : || !nonimmediate_operand (operands[2], E_V16SFmode)
3706 26 : || !const_0_to_31_operand (operands[3], E_SImode))
3707 2 : return -1;
3708 : return 2;
3709 :
3710 14 : case E_V16QImode:
3711 14 : if (!nonimmediate_operand (operands[1], E_V16QImode)
3712 12 : || !nonimmediate_operand (operands[2], E_V16QImode)
3713 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3714 2 : return -1;
3715 : return 3;
3716 :
3717 14 : case E_V16HImode:
3718 14 : if (!nonimmediate_operand (operands[1], E_V16HImode)
3719 12 : || !nonimmediate_operand (operands[2], E_V16HImode)
3720 26 : || !const_0_to_7_operand (operands[3], E_SImode))
3721 2 : return -1;
3722 : return 4;
3723 :
3724 : default:
3725 : return -1;
3726 : }
3727 :
3728 237 : case E_QImode:
3729 237 : if (!register_operand (operands[4], E_QImode))
3730 : return -1;
3731 237 : x5 = XVECEXP (x1, 0, 1);
3732 237 : x6 = XEXP (x5, 1);
3733 237 : if (GET_MODE (x6) != E_QImode)
3734 : return -1;
3735 237 : switch (GET_MODE (operands[1]))
3736 : {
3737 21 : case E_V8SImode:
3738 21 : if (!nonimmediate_operand (operands[1], E_V8SImode)
3739 18 : || !nonimmediate_operand (operands[2], E_V8SImode)
3740 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3741 3 : return -1;
3742 : return 5;
3743 :
3744 21 : case E_V4SImode:
3745 21 : if (!nonimmediate_operand (operands[1], E_V4SImode)
3746 18 : || !nonimmediate_operand (operands[2], E_V4SImode)
3747 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3748 3 : return -1;
3749 : return 6;
3750 :
3751 21 : case E_V8DImode:
3752 21 : if (!nonimmediate_operand (operands[1], E_V8DImode)
3753 18 : || !nonimmediate_operand (operands[2], E_V8DImode)
3754 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3755 3 : return -1;
3756 : return 7;
3757 :
3758 21 : case E_V4DImode:
3759 21 : if (!nonimmediate_operand (operands[1], E_V4DImode)
3760 18 : || !nonimmediate_operand (operands[2], E_V4DImode)
3761 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3762 3 : return -1;
3763 : return 8;
3764 :
3765 21 : case E_V2DImode:
3766 21 : if (!nonimmediate_operand (operands[1], E_V2DImode)
3767 18 : || !nonimmediate_operand (operands[2], E_V2DImode)
3768 39 : || !const_0_to_7_operand (operands[3], E_SImode))
3769 3 : return -1;
3770 : return 9;
3771 :
3772 15 : case E_V8HFmode:
3773 15 : if (!nonimmediate_operand (operands[1], E_V8HFmode)
3774 15 : || !nonimmediate_operand (operands[2], E_V8HFmode)
3775 30 : || !const_0_to_31_operand (operands[3], E_SImode))
3776 0 : return -1;
3777 : return 10;
3778 :
3779 21 : case E_V8SFmode:
3780 21 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
3781 18 : || !nonimmediate_operand (operands[2], E_V8SFmode)
3782 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3783 3 : return -1;
3784 : return 11;
3785 :
3786 21 : case E_V4SFmode:
3787 21 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
3788 18 : || !nonimmediate_operand (operands[2], E_V4SFmode)
3789 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3790 3 : return -1;
3791 : return 12;
3792 :
3793 21 : case E_V8DFmode:
3794 21 : if (!nonimmediate_operand (operands[1], E_V8DFmode)
3795 18 : || !nonimmediate_operand (operands[2], E_V8DFmode)
3796 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3797 3 : return -1;
3798 : return 13;
3799 :
3800 21 : case E_V4DFmode:
3801 21 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
3802 18 : || !nonimmediate_operand (operands[2], E_V4DFmode)
3803 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3804 3 : return -1;
3805 : return 14;
3806 :
3807 21 : case E_V2DFmode:
3808 21 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
3809 18 : || !nonimmediate_operand (operands[2], E_V2DFmode)
3810 39 : || !const_0_to_31_operand (operands[3], E_SImode))
3811 3 : return -1;
3812 : return 15;
3813 :
3814 12 : case E_V8HImode:
3815 12 : if (!nonimmediate_operand (operands[1], E_V8HImode)
3816 12 : || !nonimmediate_operand (operands[2], E_V8HImode)
3817 24 : || !const_0_to_7_operand (operands[3], E_SImode))
3818 0 : return -1;
3819 : return 16;
3820 :
3821 : default:
3822 : return -1;
3823 : }
3824 :
3825 21 : case E_SImode:
3826 21 : if (!register_operand (operands[4], E_SImode))
3827 : return -1;
3828 21 : x5 = XVECEXP (x1, 0, 1);
3829 21 : x6 = XEXP (x5, 1);
3830 21 : if (GET_MODE (x6) != E_SImode)
3831 : return -1;
3832 21 : switch (GET_MODE (operands[1]))
3833 : {
3834 7 : case E_V32HFmode:
3835 7 : if (!nonimmediate_operand (operands[1], E_V32HFmode)
3836 6 : || !nonimmediate_operand (operands[2], E_V32HFmode)
3837 13 : || !const_0_to_31_operand (operands[3], E_SImode))
3838 1 : return -1;
3839 : return 17;
3840 :
3841 7 : case E_V32QImode:
3842 7 : if (!nonimmediate_operand (operands[1], E_V32QImode)
3843 6 : || !nonimmediate_operand (operands[2], E_V32QImode)
3844 13 : || !const_0_to_7_operand (operands[3], E_SImode))
3845 1 : return -1;
3846 : return 18;
3847 :
3848 7 : case E_V32HImode:
3849 7 : if (!nonimmediate_operand (operands[1], E_V32HImode)
3850 6 : || !nonimmediate_operand (operands[2], E_V32HImode)
3851 13 : || !const_0_to_7_operand (operands[3], E_SImode))
3852 1 : return -1;
3853 : return 19;
3854 :
3855 : default:
3856 : return -1;
3857 : }
3858 :
3859 0 : case E_DImode:
3860 0 : if (!nonimmediate_operand (operands[1], E_V64QImode)
3861 0 : || !nonimmediate_operand (operands[2], E_V64QImode)
3862 0 : || !const_0_to_7_operand (operands[3], E_SImode)
3863 0 : || !register_operand (operands[4], E_DImode))
3864 0 : return -1;
3865 0 : x5 = XVECEXP (x1, 0, 1);
3866 0 : x6 = XEXP (x5, 1);
3867 0 : if (GET_MODE (x6) != E_DImode)
3868 : return -1;
3869 : return 20;
3870 :
3871 : default:
3872 : return -1;
3873 : }
3874 : }
3875 :
3876 : int
3877 15126 : pattern1132 (rtx x1, machine_mode i1)
3878 : {
3879 15126 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3880 15126 : int res ATTRIBUTE_UNUSED;
3881 15126 : if (!register_operand (operands[0], i1)
3882 15082 : || GET_MODE (x1) != i1
3883 15082 : || !nonimmediate_operand (operands[2], i1)
3884 12996 : || !register_operand (operands[1], i1)
3885 22189 : || !avx2_pblendw_operand (operands[3], E_SImode))
3886 8153 : return -1;
3887 : return 0;
3888 : }
3889 :
3890 : int
3891 558 : pattern1139 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
3892 : {
3893 558 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3894 558 : rtx x2, x3, x4;
3895 558 : int res ATTRIBUTE_UNUSED;
3896 558 : if (!register_operand (operands[0], i2)
3897 558 : || GET_MODE (x1) != i2)
3898 : return -1;
3899 543 : x2 = XEXP (x1, 0);
3900 543 : if (GET_MODE (x2) != i2)
3901 : return -1;
3902 543 : x3 = XEXP (x2, 0);
3903 543 : if (GET_MODE (x3) != i4
3904 543 : || !nonimmediate_operand (operands[2], i3))
3905 0 : return -1;
3906 543 : x4 = XEXP (x2, 1);
3907 543 : return pattern1138 (x4,
3908 : i1,
3909 : i2,
3910 : i3,
3911 543 : i4); /* [-1, 0] */
3912 : }
3913 :
3914 : int
3915 630 : pattern1145 (rtx x1, machine_mode i1)
3916 : {
3917 630 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3918 630 : rtx x2;
3919 630 : int res ATTRIBUTE_UNUSED;
3920 630 : if (!register_operand (operands[0], i1)
3921 630 : || GET_MODE (x1) != i1)
3922 : return -1;
3923 594 : x2 = XVECEXP (x1, 0, 0);
3924 594 : if (GET_MODE (x2) != i1
3925 594 : || !register_operand (operands[1], i1)
3926 1168 : || !register_operand (operands[2], i1))
3927 28 : return -1;
3928 : return 0;
3929 : }
3930 :
3931 : int
3932 526 : pattern1152 (rtx x1, machine_mode i1, machine_mode i2)
3933 : {
3934 526 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3935 526 : rtx x2;
3936 526 : int res ATTRIBUTE_UNUSED;
3937 526 : if (!register_operand (operands[0], i2)
3938 526 : || GET_MODE (x1) != i2)
3939 : return -1;
3940 433 : x2 = XEXP (x1, 0);
3941 433 : if (GET_MODE (x2) != i1
3942 433 : || !nonimmediate_operand (operands[1], i2)
3943 785 : || !const0_operand (operands[2], i1))
3944 87 : return -1;
3945 : return 0;
3946 : }
3947 :
3948 : int
3949 3636 : pattern1160 (rtx x1, machine_mode i1)
3950 : {
3951 3636 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3952 3636 : int res ATTRIBUTE_UNUSED;
3953 3636 : if (!memory_operand (operands[0], i1)
3954 3636 : || GET_MODE (x1) != i1
3955 7272 : || !memory_operand (operands[1], i1))
3956 0 : return -1;
3957 3636 : switch (GET_MODE (operands[2]))
3958 : {
3959 16 : case E_SImode:
3960 16 : if (!register_operand (operands[2], E_SImode))
3961 : return -1;
3962 : return 0;
3963 :
3964 3620 : case E_DImode:
3965 3620 : if (!register_operand (operands[2], E_DImode))
3966 : return -1;
3967 : return 1;
3968 :
3969 : default:
3970 : return -1;
3971 : }
3972 : }
3973 :
3974 : int
3975 60046 : pattern1169 (rtx x1)
3976 : {
3977 60046 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3978 60046 : rtx x2, x3, x4, x5;
3979 60046 : int res ATTRIBUTE_UNUSED;
3980 60046 : x2 = XEXP (x1, 0);
3981 60046 : x3 = XEXP (x2, 0);
3982 60046 : x4 = XEXP (x3, 0);
3983 60046 : if (GET_CODE (x4) != ZERO_EXTEND)
3984 : return -1;
3985 159 : x5 = XEXP (x2, 1);
3986 159 : if (GET_CODE (x5) != ZERO_EXTEND)
3987 : return -1;
3988 107 : return pattern360 (x1); /* [-1, 3] */
3989 : }
3990 :
3991 : int
3992 0 : pattern1173 (rtx x1, machine_mode i1)
3993 : {
3994 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3995 0 : rtx x2, x3;
3996 0 : int res ATTRIBUTE_UNUSED;
3997 0 : if (!nonimmediate_operand (operands[0], i1)
3998 0 : || GET_MODE (x1) != i1)
3999 : return -1;
4000 0 : x2 = XEXP (x1, 0);
4001 0 : if (GET_MODE (x2) != i1)
4002 : return -1;
4003 0 : x3 = XEXP (x2, 0);
4004 0 : if (GET_MODE (x3) != i1
4005 0 : || !nonimmediate_operand (operands[1], i1)
4006 0 : || !immediate_operand (operands[2], i1))
4007 0 : return -1;
4008 : return 0;
4009 : }
4010 :
4011 : int
4012 26772 : pattern1180 (rtx x1)
4013 : {
4014 26772 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4015 26772 : rtx x2, x3, x4;
4016 26772 : int res ATTRIBUTE_UNUSED;
4017 26772 : x2 = XEXP (x1, 1);
4018 26772 : x3 = XEXP (x2, 1);
4019 26772 : if (maybe_ne (SUBREG_BYTE (x3), 0)
4020 26772 : || GET_MODE (x3) != E_QImode)
4021 : return -1;
4022 26772 : x4 = XEXP (x1, 0);
4023 26772 : operands[0] = x4;
4024 26772 : return pattern1179 (x2); /* [-1, 11] */
4025 : }
4026 :
4027 : int
4028 517 : pattern1187 (rtx x1, machine_mode i1, machine_mode i2)
4029 : {
4030 517 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4031 517 : rtx x2, x3;
4032 517 : int res ATTRIBUTE_UNUSED;
4033 517 : x2 = XEXP (x1, 0);
4034 517 : if (GET_MODE (x2) != E_SImode
4035 517 : || !register_operand (operands[0], i2)
4036 1034 : || GET_MODE (x1) != i2)
4037 0 : return -1;
4038 517 : x3 = XEXP (x2, 0);
4039 517 : operands[1] = x3;
4040 517 : if (!nonimmediate_operand (operands[1], i1))
4041 : return -1;
4042 : return 0;
4043 : }
4044 :
4045 : int
4046 49 : pattern1193 ()
4047 : {
4048 49 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4049 49 : int res ATTRIBUTE_UNUSED;
4050 49 : switch (GET_MODE (operands[4]))
4051 : {
4052 14 : case E_QImode:
4053 14 : if (!register_operand (operands[4], E_QImode))
4054 : return -1;
4055 : return 0;
4056 :
4057 14 : case E_HImode:
4058 14 : if (!register_operand (operands[4], E_HImode))
4059 : return -1;
4060 : return 1;
4061 :
4062 7 : case E_SImode:
4063 7 : if (!register_operand (operands[4], E_SImode))
4064 : return -1;
4065 : return 2;
4066 :
4067 14 : case E_DImode:
4068 14 : if (!register_operand (operands[4], E_DImode))
4069 : return -1;
4070 : return 3;
4071 :
4072 : default:
4073 : return -1;
4074 : }
4075 : }
4076 :
4077 : int
4078 38931 : pattern1205 (rtx x1, machine_mode i1)
4079 : {
4080 38931 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4081 38931 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4082 38931 : rtx x10, x11, x12;
4083 38931 : int res ATTRIBUTE_UNUSED;
4084 38931 : x2 = XVECEXP (x1, 0, 0);
4085 38931 : x3 = XEXP (x2, 1);
4086 38931 : if (GET_MODE (x3) != i1)
4087 : return -1;
4088 37438 : x4 = XEXP (x3, 0);
4089 37438 : if (GET_CODE (x4) != PLUS
4090 16 : || GET_MODE (x4) != i1)
4091 : return -1;
4092 16 : x5 = XEXP (x4, 0);
4093 16 : if (!ix86_carry_flag_operator (x5, i1))
4094 : return -1;
4095 16 : operands[4] = x5;
4096 16 : x6 = XEXP (x5, 1);
4097 16 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4098 : return -1;
4099 16 : x7 = XVECEXP (x1, 0, 1);
4100 16 : if (GET_CODE (x7) != CLOBBER)
4101 : return -1;
4102 16 : x8 = XEXP (x7, 0);
4103 16 : if (GET_CODE (x8) != REG
4104 16 : || REGNO (x8) != 17
4105 32 : || GET_MODE (x8) != E_CCmode)
4106 : return -1;
4107 16 : x9 = XEXP (x5, 0);
4108 16 : operands[3] = x9;
4109 16 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4110 : return -1;
4111 16 : x10 = XEXP (x3, 1);
4112 16 : operands[2] = x10;
4113 16 : if (!memory_operand (operands[2], i1))
4114 : return -1;
4115 6 : x11 = XEXP (x4, 1);
4116 6 : if (!rtx_equal_p (x11, operands[0]))
4117 : return -1;
4118 6 : x12 = XEXP (x2, 0);
4119 6 : return pattern1204 (x12,
4120 6 : i1); /* [-1, 1] */
4121 : }
4122 :
4123 : int
4124 1252 : pattern1215 (rtx x1, machine_mode i1)
4125 : {
4126 1252 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4127 1252 : int res ATTRIBUTE_UNUSED;
4128 1252 : if (!register_operand (operands[0], i1)
4129 1252 : || GET_MODE (x1) != i1)
4130 : return -1;
4131 921 : return pattern1214 (); /* [-1, 2] */
4132 : }
4133 :
4134 : int
4135 197 : pattern1219 (rtx x1, machine_mode i1)
4136 : {
4137 197 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4138 197 : int res ATTRIBUTE_UNUSED;
4139 197 : if (!nonimmediate_operand (operands[0], i1)
4140 197 : || GET_MODE (x1) != i1
4141 197 : || !nonimmediate_operand (operands[1], i1)
4142 382 : || !ix86_carry_flag_unset_operator (operands[2], i1))
4143 41 : return -1;
4144 : return 0;
4145 : }
4146 :
4147 : int
4148 116 : pattern1225 (rtx x1, machine_mode i1)
4149 : {
4150 116 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4151 116 : rtx x2, x3;
4152 116 : int res ATTRIBUTE_UNUSED;
4153 116 : if (!register_operand (operands[0], i1)
4154 116 : || GET_MODE (x1) != i1)
4155 : return -1;
4156 104 : x2 = XEXP (x1, 0);
4157 104 : if (GET_MODE (x2) != i1)
4158 : return -1;
4159 104 : x3 = XEXP (x2, 0);
4160 104 : if (GET_MODE (x3) != i1
4161 104 : || !nonimmediate_operand (operands[1], i1)
4162 104 : || !nonimm_or_0_operand (operands[3], i1)
4163 208 : || !register_operand (operands[2], i1))
4164 0 : return -1;
4165 : return 0;
4166 : }
4167 :
4168 : int
4169 652 : pattern1232 (rtx x1)
4170 : {
4171 652 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4172 652 : int res ATTRIBUTE_UNUSED;
4173 652 : if (!const48_operand (operands[3], E_SImode))
4174 : return -1;
4175 652 : switch (GET_MODE (operands[0]))
4176 : {
4177 130 : case E_V32HFmode:
4178 130 : return pattern1231 (x1,
4179 130 : E_V32HFmode); /* [-1, 0] */
4180 :
4181 0 : case E_V16HFmode:
4182 0 : if (pattern1231 (x1,
4183 : E_V16HFmode) != 0)
4184 : return -1;
4185 : return 1;
4186 :
4187 0 : case E_V8HFmode:
4188 0 : if (pattern1231 (x1,
4189 : E_V8HFmode) != 0)
4190 : return -1;
4191 : return 2;
4192 :
4193 282 : case E_V16SFmode:
4194 282 : if (pattern1231 (x1,
4195 : E_V16SFmode) != 0)
4196 : return -1;
4197 : return 3;
4198 :
4199 0 : case E_V8SFmode:
4200 0 : if (pattern1231 (x1,
4201 : E_V8SFmode) != 0)
4202 : return -1;
4203 : return 4;
4204 :
4205 0 : case E_V4SFmode:
4206 0 : if (pattern1231 (x1,
4207 : E_V4SFmode) != 0)
4208 : return -1;
4209 : return 5;
4210 :
4211 240 : case E_V8DFmode:
4212 240 : if (pattern1231 (x1,
4213 : E_V8DFmode) != 0)
4214 : return -1;
4215 : return 6;
4216 :
4217 0 : case E_V4DFmode:
4218 0 : if (pattern1231 (x1,
4219 : E_V4DFmode) != 0)
4220 : return -1;
4221 : return 7;
4222 :
4223 0 : case E_V2DFmode:
4224 0 : if (pattern1231 (x1,
4225 : E_V2DFmode) != 0)
4226 : return -1;
4227 : return 8;
4228 :
4229 : default:
4230 : return -1;
4231 : }
4232 : }
4233 :
4234 : int
4235 161776 : pattern1245 (rtx x1, machine_mode i1)
4236 : {
4237 161776 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4238 161776 : rtx x2, x3;
4239 161776 : int res ATTRIBUTE_UNUSED;
4240 161776 : if (!nonimmediate_operand (operands[0], i1)
4241 58345 : || GET_MODE (x1) != i1
4242 220121 : || !nonimmediate_operand (operands[1], i1))
4243 124078 : return -1;
4244 37698 : x2 = XEXP (x1, 1);
4245 37698 : x3 = XEXP (x2, 0);
4246 37698 : return pattern1244 (x3); /* [-1, 2] */
4247 : }
4248 :
4249 : int
4250 23 : pattern1249 (rtx x1, rtx_code i1)
4251 : {
4252 23 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4253 23 : rtx x2, x3, x4, x5, x6, x7;
4254 23 : int res ATTRIBUTE_UNUSED;
4255 23 : x2 = XVECEXP (x1, 0, 1);
4256 23 : x3 = XEXP (x2, 1);
4257 23 : if (GET_MODE (x3) != E_DImode)
4258 : return -1;
4259 9 : x4 = XEXP (x3, 0);
4260 9 : if (GET_CODE (x4) != i1
4261 0 : || GET_MODE (x4) != E_SImode)
4262 : return -1;
4263 0 : x5 = XVECEXP (x1, 0, 0);
4264 0 : x6 = XEXP (x5, 1);
4265 0 : x7 = XEXP (x6, 0);
4266 0 : if (GET_MODE (x7) != E_SImode)
4267 0 : return -1;
4268 : return 0;
4269 : }
4270 :
4271 : int
4272 211 : pattern1254 (rtx x1, machine_mode i1)
4273 : {
4274 211 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4275 211 : rtx x2, x3, x4;
4276 211 : int res ATTRIBUTE_UNUSED;
4277 211 : if (GET_MODE (x1) != i1)
4278 : return -1;
4279 211 : x2 = XEXP (x1, 0);
4280 211 : if (GET_MODE (x2) != i1)
4281 : return -1;
4282 211 : x3 = XEXP (x1, 1);
4283 211 : if (GET_MODE (x3) != i1)
4284 : return -1;
4285 211 : x4 = XEXP (x3, 0);
4286 211 : if (!register_operand (x4, i1))
4287 : return -1;
4288 : return 0;
4289 : }
4290 :
4291 : int
4292 553 : pattern1259 (rtx x1)
4293 : {
4294 553 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4295 553 : rtx x2, x3, x4, x5;
4296 553 : int res ATTRIBUTE_UNUSED;
4297 553 : x2 = XEXP (x1, 0);
4298 553 : x3 = XEXP (x2, 0);
4299 553 : x4 = XEXP (x3, 1);
4300 553 : operands[2] = x4;
4301 553 : if (!register_operand (operands[2], E_QImode))
4302 : return -1;
4303 474 : x5 = XEXP (x1, 1);
4304 474 : operands[1] = x5;
4305 474 : switch (GET_MODE (operands[0]))
4306 : {
4307 277 : case E_SImode:
4308 277 : return pattern1258 (x1,
4309 277 : E_SImode); /* [-1, 0] */
4310 :
4311 185 : case E_DImode:
4312 185 : if (pattern1258 (x1,
4313 : E_DImode) != 0)
4314 : return -1;
4315 : return 1;
4316 :
4317 : default:
4318 : return -1;
4319 : }
4320 : }
4321 :
4322 : int
4323 2079 : pattern1268 (rtx x1)
4324 : {
4325 2079 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4326 2079 : rtx x2, x3;
4327 2079 : int res ATTRIBUTE_UNUSED;
4328 2079 : if (GET_CODE (x1) != SET)
4329 : return -1;
4330 2061 : x2 = XEXP (x1, 1);
4331 2061 : if (GET_CODE (x2) != PLUS
4332 2061 : || GET_MODE (x2) != E_SImode)
4333 : return -1;
4334 2061 : x3 = XEXP (x2, 0);
4335 2061 : if (GET_CODE (x3) != REG
4336 2061 : || REGNO (x3) != 7
4337 4122 : || GET_MODE (x3) != E_SImode)
4338 0 : return -1;
4339 : return 0;
4340 : }
4341 :
4342 : int
4343 2 : pattern1272 (rtx x1, machine_mode i1, machine_mode i2)
4344 : {
4345 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4346 2 : int res ATTRIBUTE_UNUSED;
4347 2 : if (!vector_all_ones_operand (operands[3], i1)
4348 2 : || !const0_operand (operands[4], i1)
4349 2 : || GET_MODE (x1) != i2
4350 2 : || !vector_operand (operands[0], i1)
4351 4 : || !const0_operand (operands[1], i1))
4352 0 : return -1;
4353 : return 0;
4354 : }
4355 :
4356 : int
4357 325 : pattern1277 (rtx x1, machine_mode i1, machine_mode i2)
4358 : {
4359 325 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4360 325 : rtx x2, x3;
4361 325 : int res ATTRIBUTE_UNUSED;
4362 325 : if (GET_CODE (x1) != SIGN_EXTEND
4363 325 : || GET_MODE (x1) != i2)
4364 : return -1;
4365 325 : x2 = XEXP (x1, 0);
4366 325 : if (GET_CODE (x2) != VEC_SELECT
4367 325 : || GET_MODE (x2) != i1)
4368 : return -1;
4369 325 : x3 = XEXP (x2, 1);
4370 325 : if (GET_CODE (x3) != PARALLEL)
4371 0 : return -1;
4372 : return 0;
4373 : }
4374 :
4375 : int
4376 665 : pattern1285 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4377 : {
4378 665 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4379 665 : rtx x2;
4380 665 : int res ATTRIBUTE_UNUSED;
4381 665 : if (!register_operand (operands[0], i1)
4382 665 : || GET_MODE (x1) != i1)
4383 : return -1;
4384 620 : x2 = XEXP (x1, 0);
4385 620 : if (GET_MODE (x2) != i1
4386 620 : || !register_operand (operands[1], i3)
4387 1236 : || pattern485 (
4388 : i1,
4389 : i2) != 0)
4390 34 : return -1;
4391 : return 0;
4392 : }
4393 :
4394 : int
4395 0 : pattern1291 (rtx x1, machine_mode i1, machine_mode i2)
4396 : {
4397 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4398 0 : rtx x2, x3, x4;
4399 0 : int res ATTRIBUTE_UNUSED;
4400 0 : if (!register_operand (operands[0], i1)
4401 0 : || GET_MODE (x1) != i1)
4402 : return -1;
4403 0 : x2 = XEXP (x1, 0);
4404 0 : if (GET_MODE (x2) != i1)
4405 : return -1;
4406 0 : x3 = XEXP (x2, 0);
4407 0 : if (GET_MODE (x3) != i1)
4408 : return -1;
4409 0 : x4 = XEXP (x3, 0);
4410 0 : if (GET_MODE (x4) != i2
4411 0 : || !nonimmediate_operand (operands[1], i2)
4412 0 : || !nonimm_or_0_operand (operands[3], i1)
4413 0 : || !register_operand (operands[2], i1))
4414 0 : return -1;
4415 : return 0;
4416 : }
4417 :
4418 : int
4419 787 : pattern1302 (rtx x1, machine_mode i1, machine_mode i2)
4420 : {
4421 787 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4422 787 : rtx x2, x3;
4423 787 : int res ATTRIBUTE_UNUSED;
4424 787 : if (!register_operand (operands[0], i2)
4425 787 : || GET_MODE (x1) != i2)
4426 : return -1;
4427 763 : x2 = XEXP (x1, 0);
4428 763 : if (GET_MODE (x2) != i2
4429 763 : || !nonimmediate_operand (operands[1], i2))
4430 27 : return -1;
4431 736 : x3 = XEXP (x2, 2);
4432 736 : return pattern1301 (x3,
4433 : i1,
4434 736 : i2); /* [-1, 0] */
4435 : }
4436 :
4437 : int
4438 378 : pattern1308 (rtx x1, machine_mode i1)
4439 : {
4440 378 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4441 378 : rtx x2;
4442 378 : int res ATTRIBUTE_UNUSED;
4443 378 : if (!register_operand (operands[0], i1)
4444 378 : || GET_MODE (x1) != i1)
4445 : return -1;
4446 367 : x2 = XEXP (x1, 0);
4447 367 : if (GET_MODE (x2) != i1
4448 367 : || !vector_operand (operands[1], i1))
4449 28 : return -1;
4450 : return 0;
4451 : }
4452 :
4453 : int
4454 1476 : pattern1314 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4455 : {
4456 1476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4457 1476 : rtx x2, x3;
4458 1476 : int res ATTRIBUTE_UNUSED;
4459 1476 : x2 = XVECEXP (x1, 0, 0);
4460 1476 : x3 = XEXP (x2, 0);
4461 1476 : if (GET_MODE (x3) != i2
4462 1476 : || !register_operand (operands[0], i2)
4463 1421 : || GET_MODE (x1) != i2
4464 1421 : || GET_MODE (x2) != i2
4465 1421 : || !register_operand (operands[1], i3)
4466 1421 : || !nonimm_or_0_operand (operands[2], i2)
4467 1393 : || !register_operand (operands[3], i1)
4468 2817 : || !const48_operand (operands[4], E_SImode))
4469 135 : return -1;
4470 : return 0;
4471 : }
4472 :
4473 : int
4474 253 : pattern1321 (rtx x1, machine_mode i1)
4475 : {
4476 253 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4477 253 : rtx x2;
4478 253 : int res ATTRIBUTE_UNUSED;
4479 253 : if (!register_operand (operands[0], i1)
4480 253 : || GET_MODE (x1) != i1)
4481 : return -1;
4482 242 : x2 = XVECEXP (x1, 0, 0);
4483 242 : if (GET_MODE (x2) != i1
4484 242 : || !register_operand (operands[1], i1)
4485 481 : || !nonimmediate_operand (operands[2], i1))
4486 3 : return -1;
4487 : return 0;
4488 : }
4489 :
4490 : int
4491 779410 : pattern1325 (rtx x1, machine_mode i1, machine_mode i2)
4492 : {
4493 779410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4494 779410 : rtx x2, x3;
4495 779410 : int res ATTRIBUTE_UNUSED;
4496 779410 : if (!register_operand (operands[0], i1)
4497 779410 : || GET_MODE (x1) != i1)
4498 : return -1;
4499 394915 : x2 = XEXP (x1, 0);
4500 394915 : if (GET_MODE (x2) != i2
4501 394915 : || !register_operand (operands[1], i1))
4502 74607 : return -1;
4503 320308 : x3 = XEXP (x2, 1);
4504 320308 : operands[2] = x3;
4505 320308 : if (!vector_operand (operands[2], i1))
4506 : return -1;
4507 : return 0;
4508 : }
4509 :
4510 : int
4511 4052 : pattern1331 (rtx x1, machine_mode i1)
4512 : {
4513 4052 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4514 4052 : int res ATTRIBUTE_UNUSED;
4515 4052 : if (!nonimmediate_operand (operands[1], i1)
4516 3314 : || !const_1_to_31_operand (operands[2], E_QImode)
4517 2080 : || !nonimmediate_operand (operands[0], i1)
4518 6132 : || GET_MODE (x1) != i1)
4519 1972 : return -1;
4520 : return 0;
4521 : }
4522 :
4523 : int
4524 224 : pattern1337 (rtx x1, machine_mode i1)
4525 : {
4526 224 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4527 224 : rtx x2, x3;
4528 224 : int res ATTRIBUTE_UNUSED;
4529 224 : if (!register_operand (operands[0], i1)
4530 224 : || GET_MODE (x1) != i1)
4531 : return -1;
4532 224 : x2 = XEXP (x1, 0);
4533 224 : if (GET_MODE (x2) != i1
4534 224 : || !nonimmediate_operand (operands[1], i1))
4535 0 : return -1;
4536 224 : x3 = XEXP (x1, 1);
4537 224 : if (GET_MODE (x3) != i1)
4538 : return -1;
4539 : return 0;
4540 : }
4541 :
4542 : int
4543 1273423 : pattern1343 (rtx x1, int *pnum_clobbers)
4544 : {
4545 1273423 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4546 1273423 : rtx x2, x3;
4547 1273423 : int res ATTRIBUTE_UNUSED;
4548 1273423 : x2 = XVECEXP (x1, 0, 2);
4549 1273423 : switch (GET_CODE (x2))
4550 : {
4551 18 : case UNSPEC:
4552 18 : if (pnum_clobbers == NULL)
4553 : return -1;
4554 18 : return pattern394 (x1); /* [-1, 1] */
4555 :
4556 1246920 : case CLOBBER:
4557 1246920 : x3 = XEXP (x2, 0);
4558 1246920 : if (GET_CODE (x3) != REG
4559 1246920 : || REGNO (x3) != 17
4560 2493840 : || GET_MODE (x3) != E_CCmode)
4561 : return -1;
4562 1246920 : switch (GET_MODE (operands[0]))
4563 : {
4564 6882 : case E_HImode:
4565 6882 : if (pattern393 (x1,
4566 : E_HImode) != 0)
4567 : return -1;
4568 : return 2;
4569 :
4570 241903 : case E_SImode:
4571 241903 : if (pattern393 (x1,
4572 : E_SImode) != 0)
4573 : return -1;
4574 : return 3;
4575 :
4576 998135 : case E_DImode:
4577 998135 : if (pattern393 (x1,
4578 : E_DImode) != 0)
4579 : return -1;
4580 : return 4;
4581 :
4582 : default:
4583 : return -1;
4584 : }
4585 :
4586 0 : case USE:
4587 0 : res = pattern396 (x1);
4588 0 : if (res >= 0)
4589 0 : return res + 5; /* [5, 7] */
4590 : return -1;
4591 :
4592 : default:
4593 : return -1;
4594 : }
4595 : }
4596 :
4597 : int
4598 22328 : pattern1362 (rtx x1, machine_mode i1)
4599 : {
4600 22328 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4601 22328 : rtx x2, x3, x4, x5, x6, x7, x8;
4602 22328 : int res ATTRIBUTE_UNUSED;
4603 22328 : x2 = XVECEXP (x1, 0, 0);
4604 22328 : x3 = XEXP (x2, 1);
4605 22328 : if (GET_MODE (x3) != i1)
4606 : return -1;
4607 22262 : x4 = XVECEXP (x1, 0, 1);
4608 22262 : if (GET_CODE (x4) != CLOBBER)
4609 : return -1;
4610 22262 : x5 = XEXP (x4, 0);
4611 22262 : if (GET_CODE (x5) != REG
4612 22262 : || REGNO (x5) != 17
4613 44524 : || GET_MODE (x5) != E_CCmode)
4614 : return -1;
4615 22262 : x6 = XEXP (x2, 0);
4616 22262 : operands[4] = x6;
4617 22262 : if (!register_operand (operands[4], i1))
4618 : return -1;
4619 22225 : x7 = XEXP (x3, 0);
4620 22225 : operands[3] = x7;
4621 22225 : if (!register_operand (operands[3], i1))
4622 : return -1;
4623 22216 : x8 = XEXP (x3, 1);
4624 22216 : operands[2] = x8;
4625 22216 : if (!x86_64_nonmemory_operand (operands[2], i1))
4626 : return -1;
4627 : return 0;
4628 : }
4629 :
4630 : int
4631 827 : pattern1373 (rtx x1)
4632 : {
4633 827 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4634 827 : rtx x2, x3, x4, x5, x6, x7, x8;
4635 827 : int res ATTRIBUTE_UNUSED;
4636 827 : if (!register_operand (operands[0], E_DImode))
4637 : return -1;
4638 589 : x2 = XEXP (x1, 0);
4639 589 : x3 = XEXP (x2, 0);
4640 589 : operands[1] = x3;
4641 589 : if (!nonimmediate_operand (operands[1], E_DImode))
4642 : return -1;
4643 589 : x4 = XEXP (x1, 1);
4644 589 : if (GET_MODE (x4) != E_DImode)
4645 : return -1;
4646 589 : x5 = XEXP (x4, 0);
4647 589 : if (GET_MODE (x5) != E_TImode)
4648 : return -1;
4649 589 : x6 = XEXP (x5, 0);
4650 589 : if (GET_MODE (x6) != E_TImode)
4651 : return -1;
4652 589 : x7 = XEXP (x6, 0);
4653 589 : operands[2] = x7;
4654 589 : if (!register_operand (operands[2], E_DImode))
4655 : return -1;
4656 589 : x8 = XEXP (x5, 1);
4657 589 : operands[4] = x8;
4658 589 : if (!const_0_to_255_operand (operands[4], E_QImode))
4659 : return -1;
4660 : return 0;
4661 : }
4662 :
4663 : int
4664 1814 : pattern1382 (machine_mode i1, machine_mode i2)
4665 : {
4666 1814 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4667 1814 : int res ATTRIBUTE_UNUSED;
4668 1814 : if (!bcst_vector_operand (operands[2], i1)
4669 1808 : || !bcst_vector_operand (operands[3], i1)
4670 1808 : || !const0_operand (operands[4], i1)
4671 3622 : || !register_operand (operands[5], i2))
4672 6 : return -1;
4673 : return 0;
4674 : }
4675 :
4676 : int
4677 1294 : pattern1388 (rtx x1, machine_mode i1, machine_mode i2)
4678 : {
4679 1294 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4680 1294 : int res ATTRIBUTE_UNUSED;
4681 1294 : if (!bcst_vector_operand (operands[2], i2)
4682 1290 : || GET_MODE (x1) != i2
4683 1290 : || !bcst_vector_operand (operands[3], i2)
4684 1290 : || !const0_operand (operands[4], i2)
4685 2584 : || !register_operand (operands[5], i1))
4686 4 : return -1;
4687 : return 0;
4688 : }
4689 :
4690 : int
4691 279 : pattern1396 (rtx x1, machine_mode i1, machine_mode i2)
4692 : {
4693 279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4694 279 : rtx x2, x3;
4695 279 : int res ATTRIBUTE_UNUSED;
4696 279 : if (!register_operand (operands[0], i2)
4697 279 : || GET_MODE (x1) != i2)
4698 : return -1;
4699 273 : x2 = XEXP (x1, 0);
4700 273 : if (GET_MODE (x2) != i2)
4701 : return -1;
4702 273 : x3 = XEXP (x2, 0);
4703 273 : if (GET_MODE (x3) != i2
4704 273 : || !nonimmediate_operand (operands[1], i2)
4705 546 : || pattern1384 (
4706 : i1,
4707 : i2) != 0)
4708 0 : return -1;
4709 : return 0;
4710 : }
4711 :
4712 : int
4713 1941 : pattern1405 (rtx x1, machine_mode i1)
4714 : {
4715 1941 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4716 1941 : rtx x2, x3, x4;
4717 1941 : int res ATTRIBUTE_UNUSED;
4718 1941 : if (!register_operand (operands[0], i1)
4719 1941 : || GET_MODE (x1) != i1)
4720 : return -1;
4721 1866 : x2 = XVECEXP (x1, 0, 0);
4722 1866 : if (GET_MODE (x2) != i1)
4723 : return -1;
4724 1866 : x3 = XEXP (x2, 0);
4725 1866 : if (GET_MODE (x3) != i1)
4726 : return -1;
4727 1866 : x4 = XEXP (x3, 0);
4728 1866 : if (GET_MODE (x4) != i1
4729 1866 : || !register_operand (operands[1], i1)
4730 1866 : || !register_operand (operands[2], i1)
4731 3732 : || !nonimm_or_0_operand (operands[4], i1))
4732 0 : return -1;
4733 : return 0;
4734 : }
4735 :
4736 : int
4737 1903 : pattern1415 (rtx x1, machine_mode i1)
4738 : {
4739 1903 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4740 1903 : rtx x2, x3;
4741 1903 : int res ATTRIBUTE_UNUSED;
4742 1903 : if (!register_operand (operands[0], i1)
4743 1903 : || GET_MODE (x1) != i1)
4744 : return -1;
4745 1791 : x2 = XVECEXP (x1, 0, 0);
4746 1791 : if (GET_MODE (x2) != i1)
4747 : return -1;
4748 1791 : x3 = XEXP (x2, 0);
4749 1791 : if (GET_MODE (x3) != i1
4750 1791 : || !register_operand (operands[1], i1)
4751 3489 : || !register_operand (operands[2], i1))
4752 149 : return -1;
4753 : return 0;
4754 : }
4755 :
4756 : int
4757 102645 : pattern1424 (rtx x1, machine_mode i1, machine_mode i2)
4758 : {
4759 102645 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4760 102645 : rtx x2;
4761 102645 : int res ATTRIBUTE_UNUSED;
4762 102645 : if (!register_operand (operands[0], i1)
4763 102645 : || GET_MODE (x1) != i1)
4764 : return -1;
4765 102235 : x2 = XEXP (x1, 0);
4766 102235 : if (GET_MODE (x2) != i2
4767 102141 : || !register_operand (operands[1], i1)
4768 203096 : || !nonimmediate_operand (operands[2], i1))
4769 1955 : return -1;
4770 : return 0;
4771 : }
4772 :
4773 : int
4774 108359 : pattern1428 (rtx x1)
4775 : {
4776 108359 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4777 108359 : rtx x2, x3;
4778 108359 : int res ATTRIBUTE_UNUSED;
4779 108359 : x2 = XEXP (x1, 1);
4780 108359 : if (maybe_ne (SUBREG_BYTE (x2), 0)
4781 108359 : || GET_MODE (x2) != E_QImode)
4782 : return -1;
4783 108359 : x3 = XEXP (x2, 0);
4784 108359 : if (GET_CODE (x3) != AND)
4785 : return -1;
4786 12198 : return pattern822 (x1); /* [-1, 1] */
4787 : }
4788 :
4789 : int
4790 38 : pattern1434 (rtx x1)
4791 : {
4792 38 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4793 38 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4794 38 : rtx x10, x11, x12;
4795 38 : int res ATTRIBUTE_UNUSED;
4796 38 : x2 = XVECEXP (x1, 0, 1);
4797 38 : x3 = XEXP (x2, 1);
4798 38 : x4 = XEXP (x3, 0);
4799 38 : if (!rtx_equal_p (x4, operands[2]))
4800 : return -1;
4801 38 : x5 = XVECEXP (x1, 0, 0);
4802 38 : x6 = XEXP (x5, 1);
4803 38 : x7 = XEXP (x6, 0);
4804 38 : x8 = XEXP (x7, 0);
4805 38 : x9 = XEXP (x8, 0);
4806 38 : operands[3] = x9;
4807 38 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4808 : return -1;
4809 38 : x10 = XEXP (x7, 1);
4810 38 : operands[1] = x10;
4811 38 : x11 = XEXP (x2, 0);
4812 38 : operands[0] = x11;
4813 38 : x12 = XEXP (x3, 1);
4814 38 : if (!rtx_equal_p (x12, operands[1]))
4815 : return -1;
4816 38 : switch (GET_MODE (x7))
4817 : {
4818 : case E_QImode:
4819 : return 0;
4820 :
4821 : case E_HImode:
4822 : return 1;
4823 :
4824 : case E_SImode:
4825 : return 2;
4826 :
4827 : case E_DImode:
4828 : return 3;
4829 :
4830 : default:
4831 : return -1;
4832 : }
4833 : }
4834 :
4835 : int
4836 156876 : pattern1451 (rtx x1, machine_mode i1)
4837 : {
4838 156876 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4839 156876 : rtx x2, x3, x4, x5, x6, x7;
4840 156876 : int res ATTRIBUTE_UNUSED;
4841 156876 : if (!register_operand (operands[2], i1)
4842 156876 : || !register_operand (operands[0], i1))
4843 0 : return -1;
4844 156876 : x2 = XVECEXP (x1, 0, 1);
4845 156876 : x3 = XEXP (x2, 1);
4846 156876 : if (GET_MODE (x3) != i1)
4847 : return -1;
4848 156876 : x4 = XEXP (x3, 0);
4849 156876 : if (GET_MODE (x4) != i1
4850 156876 : || !register_operand (operands[5], i1)
4851 156851 : || !register_operand (operands[3], i1)
4852 310635 : || !register_operand (operands[1], i1))
4853 3117 : return -1;
4854 153759 : x5 = XVECEXP (x1, 0, 2);
4855 153759 : x6 = XEXP (x5, 1);
4856 153759 : if (GET_MODE (x6) != i1)
4857 : return -1;
4858 153759 : x7 = XEXP (x6, 0);
4859 153759 : if (GET_MODE (x7) != i1
4860 153759 : || !register_operand (operands[4], i1))
4861 11596 : return -1;
4862 : return 0;
4863 : }
4864 :
4865 : int
4866 678 : pattern1465 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
4867 : {
4868 678 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4869 678 : rtx x2, x3;
4870 678 : int res ATTRIBUTE_UNUSED;
4871 678 : if (!register_operand (operands[0], i1)
4872 678 : || GET_MODE (x1) != i1)
4873 : return -1;
4874 647 : x2 = XEXP (x1, 0);
4875 647 : if (GET_MODE (x2) != i1
4876 647 : || !register_operand (operands[2], i2)
4877 647 : || !register_operand (operands[1], i1)
4878 1265 : || !nonimmediate_operand (operands[3], i1))
4879 29 : return -1;
4880 618 : x3 = XEXP (x1, 1);
4881 618 : if (GET_MODE (x3) != i1
4882 618 : || !register_operand (operands[4], i3))
4883 36 : return -1;
4884 : return 0;
4885 : }
4886 :
4887 : int
4888 3504 : pattern1473 (rtx x1, machine_mode i1, machine_mode i2)
4889 : {
4890 3504 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4891 3504 : rtx x2;
4892 3504 : int res ATTRIBUTE_UNUSED;
4893 3504 : if (!register_operand (operands[0], i1)
4894 3326 : || GET_MODE (x1) != i1
4895 3326 : || !nonimmediate_operand (operands[1], i1)
4896 6772 : || !general_operand (operands[2], i1))
4897 827 : return -1;
4898 2677 : x2 = XEXP (x1, 2);
4899 2677 : if (GET_MODE (x2) != i2
4900 2677 : || !nonimmediate_operand (operands[3], i1)
4901 2304 : || !general_operand (operands[4], i1)
4902 4981 : || !const_0_to_31_operand (operands[5], E_SImode))
4903 373 : return -1;
4904 : return 0;
4905 : }
4906 :
4907 : int
4908 2268 : pattern1482 (rtx x1, machine_mode i1, machine_mode i2)
4909 : {
4910 2268 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4911 2268 : rtx x2, x3;
4912 2268 : int res ATTRIBUTE_UNUSED;
4913 2268 : if (!register_operand (operands[0], i1)
4914 2268 : || GET_MODE (x1) != i1)
4915 : return -1;
4916 2178 : x2 = XEXP (x1, 0);
4917 2178 : if (GET_MODE (x2) != i1)
4918 : return -1;
4919 2178 : x3 = XEXP (x2, 0);
4920 2178 : if (GET_MODE (x3) != i2
4921 2178 : || !register_operand (operands[1], i1)
4922 2130 : || !nonimmediate_operand (operands[2], i2)
4923 4218 : || !nonimm_or_0_operand (operands[3], i1))
4924 174 : return -1;
4925 : return 0;
4926 : }
4927 :
4928 : int
4929 232 : pattern1489 (rtx x1, int i1, int i2, int i3, int i4, int i5)
4930 : {
4931 232 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4932 232 : rtx x2, x3, x4, x5, x6;
4933 232 : int res ATTRIBUTE_UNUSED;
4934 232 : x2 = XVECEXP (x1, 0, 7);
4935 232 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i5])
4936 : return -1;
4937 232 : x3 = XVECEXP (x1, 0, 8);
4938 232 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4939 : return -1;
4940 232 : x4 = XVECEXP (x1, 0, 9);
4941 232 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4942 : return -1;
4943 232 : x5 = XVECEXP (x1, 0, 10);
4944 232 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4945 : return -1;
4946 232 : x6 = XVECEXP (x1, 0, 11);
4947 232 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1]
4948 232 : || pattern1481 (x1) != 0)
4949 0 : return -1;
4950 : return 0;
4951 : }
4952 :
4953 : int
4954 723 : pattern1502 (rtx x1)
4955 : {
4956 723 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4957 723 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4958 723 : int res ATTRIBUTE_UNUSED;
4959 723 : x2 = XVECEXP (x1, 0, 1);
4960 723 : x3 = XEXP (x2, 1);
4961 723 : x4 = XEXP (x3, 0);
4962 723 : x5 = XEXP (x4, 0);
4963 723 : if (!rtx_equal_p (x5, operands[1]))
4964 : return -1;
4965 723 : x6 = XEXP (x3, 1);
4966 723 : if (!rtx_equal_p (x6, operands[1]))
4967 : return -1;
4968 723 : x7 = XVECEXP (x1, 0, 0);
4969 723 : x8 = XEXP (x7, 1);
4970 723 : x9 = XEXP (x8, 0);
4971 723 : switch (GET_MODE (x9))
4972 : {
4973 456 : case E_SImode:
4974 456 : return pattern1501 (x1,
4975 456 : E_SImode); /* [-1, 0] */
4976 :
4977 132 : case E_DImode:
4978 132 : if (pattern1501 (x1,
4979 : E_DImode) != 0)
4980 : return -1;
4981 : return 1;
4982 :
4983 : default:
4984 : return -1;
4985 : }
4986 : }
4987 :
4988 : int
4989 5369 : pattern1513 (rtx x1, machine_mode i1)
4990 : {
4991 5369 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4992 5369 : rtx x2;
4993 5369 : int res ATTRIBUTE_UNUSED;
4994 5369 : if (!mask_reg_operand (operands[0], i1)
4995 5369 : || GET_MODE (x1) != i1)
4996 : return -1;
4997 0 : x2 = XEXP (x1, 0);
4998 0 : if (GET_MODE (x2) != i1
4999 0 : || !mask_reg_operand (operands[1], i1)
5000 0 : || !mask_reg_operand (operands[2], i1))
5001 0 : return -1;
5002 : return 0;
5003 : }
5004 :
5005 : int
5006 29602 : pattern1517 (rtx x1, machine_mode i1)
5007 : {
5008 29602 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5009 29602 : rtx x2, x3, x4, x5, x6, x7, x8;
5010 29602 : int res ATTRIBUTE_UNUSED;
5011 29602 : x2 = XVECEXP (x1, 0, 0);
5012 29602 : x3 = XEXP (x2, 1);
5013 29602 : switch (GET_CODE (x3))
5014 : {
5015 3250 : case COMPARE:
5016 3250 : x4 = XEXP (x3, 0);
5017 3250 : if (!plusminuslogic_operator (x4, i1))
5018 : return -1;
5019 2353 : operands[3] = x4;
5020 2353 : x5 = XEXP (x3, 1);
5021 2353 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5022 : return -1;
5023 2345 : x6 = XEXP (x2, 0);
5024 2345 : if (GET_CODE (x6) != REG
5025 2345 : || REGNO (x6) != 17)
5026 : return -1;
5027 2345 : x7 = XVECEXP (x1, 0, 1);
5028 2345 : if (GET_CODE (x7) != SET)
5029 : return -1;
5030 2134 : x8 = XEXP (x4, 1);
5031 2134 : operands[2] = x8;
5032 2134 : if (!nonmemory_operand (operands[2], i1)
5033 2134 : || pattern1516 (x1) != 0)
5034 164 : return -1;
5035 : return 0;
5036 :
5037 18826 : case PLUS:
5038 18826 : case MINUS:
5039 18826 : case AND:
5040 18826 : case IOR:
5041 18826 : case XOR:
5042 18826 : if (peep2_current_count < 4)
5043 : return -1;
5044 : return 1;
5045 :
5046 : default:
5047 : return -1;
5048 : }
5049 : }
5050 :
5051 : int
5052 22380 : pattern1534 (rtx x1)
5053 : {
5054 22380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5055 22380 : rtx x2, x3, x4, x5;
5056 22380 : int res ATTRIBUTE_UNUSED;
5057 22380 : if (!int248_register_operand (operands[2], E_VOIDmode))
5058 : return -1;
5059 21026 : x2 = XEXP (x1, 1);
5060 21026 : x3 = XEXP (x2, 1);
5061 21026 : operands[1] = x3;
5062 21026 : if (!nonimmediate_operand (operands[1], E_QImode))
5063 : return -1;
5064 10619 : x4 = XEXP (x1, 0);
5065 10619 : switch (GET_CODE (x4))
5066 : {
5067 35 : case STRICT_LOW_PART:
5068 35 : x5 = XEXP (x4, 0);
5069 35 : operands[0] = x5;
5070 35 : if (!register_operand (operands[0], E_QImode))
5071 : return -1;
5072 35 : return pattern1533 (); /* [-1, 2] */
5073 :
5074 10584 : case REG:
5075 10584 : case SUBREG:
5076 10584 : case MEM:
5077 10584 : operands[0] = x4;
5078 10584 : if (!nonimmediate_operand (operands[0], E_QImode))
5079 : return -1;
5080 10584 : res = pattern1533 ();
5081 10584 : if (res >= 0)
5082 436 : return res + 3; /* [3, 5] */
5083 : return -1;
5084 :
5085 : default:
5086 : return -1;
5087 : }
5088 : }
5089 :
5090 : int
5091 6432 : pattern1548 (rtx x1)
5092 : {
5093 6432 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5094 6432 : rtx x2, x3;
5095 6432 : int res ATTRIBUTE_UNUSED;
5096 6432 : if (GET_CODE (x1) != SET)
5097 : return -1;
5098 5734 : x2 = XEXP (x1, 1);
5099 5734 : if (GET_CODE (x2) != COMPARE
5100 3292 : || GET_MODE (x2) != E_CCZmode)
5101 : return -1;
5102 3238 : x3 = XEXP (x1, 0);
5103 3238 : if (GET_CODE (x3) != REG
5104 3238 : || REGNO (x3) != 17
5105 6476 : || GET_MODE (x3) != E_CCZmode)
5106 0 : return -1;
5107 : return 0;
5108 : }
5109 :
5110 : int
5111 757 : pattern1553 (rtx x1, machine_mode i1)
5112 : {
5113 757 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5114 757 : rtx x2, x3;
5115 757 : int res ATTRIBUTE_UNUSED;
5116 757 : if (!register_operand (operands[0], i1)
5117 757 : || GET_MODE (x1) != i1)
5118 : return -1;
5119 739 : x2 = XEXP (x1, 0);
5120 739 : if (GET_MODE (x2) != i1)
5121 : return -1;
5122 739 : x3 = XEXP (x2, 0);
5123 739 : if (GET_MODE (x3) != i1
5124 739 : || !nonimmediate_operand (operands[2], i1)
5125 739 : || !nonimm_or_0_operand (operands[4], i1)
5126 1478 : || !register_operand (operands[1], i1))
5127 0 : return -1;
5128 : return 0;
5129 : }
5130 :
5131 : int
5132 1279 : pattern1561 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5133 : {
5134 1279 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5135 1279 : rtx x2, x3, x4, x5, x6, x7;
5136 1279 : int res ATTRIBUTE_UNUSED;
5137 1279 : if (!register_operand (operands[0], i2)
5138 1279 : || GET_MODE (x1) != i2)
5139 : return -1;
5140 1238 : x2 = XEXP (x1, 0);
5141 1238 : if (GET_MODE (x2) != i2)
5142 : return -1;
5143 1238 : x3 = XEXP (x2, 0);
5144 1238 : if (GET_MODE (x3) != i3)
5145 : return -1;
5146 1238 : x4 = XEXP (x3, 0);
5147 1238 : if (GET_MODE (x4) != i3)
5148 : return -1;
5149 1238 : x5 = XEXP (x4, 0);
5150 1238 : if (GET_MODE (x5) != i3)
5151 : return -1;
5152 1238 : x6 = XEXP (x5, 0);
5153 1238 : if (GET_MODE (x6) != i3
5154 1238 : || !vector_operand (operands[1], i2))
5155 0 : return -1;
5156 1238 : x7 = XEXP (x5, 1);
5157 1238 : if (GET_MODE (x7) != i3
5158 1238 : || !vector_operand (operands[2], i2)
5159 1238 : || !const1_operand (operands[5], i3)
5160 1238 : || !nonimm_or_0_operand (operands[3], i2)
5161 2445 : || !register_operand (operands[4], i1))
5162 110 : return -1;
5163 : return 0;
5164 : }
5165 :
5166 : int
5167 161125 : pattern1576 (rtx x1)
5168 : {
5169 161125 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5170 161125 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5171 161125 : rtx x10, x11, x12, x13, x14, x15, x16;
5172 161125 : int res ATTRIBUTE_UNUSED;
5173 161125 : x2 = XVECEXP (x1, 0, 0);
5174 161125 : x3 = XEXP (x2, 1);
5175 161125 : x4 = XEXP (x3, 0);
5176 161125 : x5 = XEXP (x4, 0);
5177 161125 : x6 = XEXP (x5, 0);
5178 161125 : operands[1] = x6;
5179 161125 : x7 = XEXP (x3, 1);
5180 161125 : x8 = XEXP (x7, 0);
5181 161125 : x9 = XEXP (x8, 0);
5182 161125 : if (!rtx_equal_p (x9, operands[1]))
5183 : return -1;
5184 156191 : x10 = XVECEXP (x1, 0, 1);
5185 156191 : x11 = XEXP (x10, 1);
5186 156191 : x12 = XEXP (x11, 0);
5187 156191 : if (!rtx_equal_p (x12, operands[1]))
5188 : return -1;
5189 152989 : x13 = XEXP (x4, 1);
5190 152989 : switch (GET_CODE (x13))
5191 : {
5192 90457 : case SIGN_EXTEND:
5193 90457 : x14 = XEXP (x13, 0);
5194 90457 : operands[2] = x14;
5195 90457 : x15 = XEXP (x8, 1);
5196 90457 : if (!rtx_equal_p (x15, operands[2]))
5197 : return -1;
5198 90420 : x16 = XEXP (x11, 1);
5199 90420 : if (!rtx_equal_p (x16, operands[2]))
5200 : return -1;
5201 90173 : switch (GET_MODE (x4))
5202 : {
5203 5089 : case E_HImode:
5204 5089 : return pattern1574 (x1,
5205 : E_QImode,
5206 5089 : E_HImode); /* [-1, 0] */
5207 :
5208 5994 : case E_SImode:
5209 5994 : if (pattern1574 (x1,
5210 : E_HImode,
5211 : E_SImode) != 0)
5212 : return -1;
5213 : return 1;
5214 :
5215 23293 : case E_DImode:
5216 23293 : if (GET_MODE (x5) != E_DImode
5217 23293 : || !nonimmediate_operand (operands[1], E_SImode)
5218 22892 : || GET_MODE (x13) != E_DImode
5219 22892 : || !x86_64_sext_operand (operands[2], E_SImode)
5220 45878 : || pattern727 (x1,
5221 : E_SImode,
5222 : E_DImode) != 0)
5223 708 : return -1;
5224 : return 2;
5225 :
5226 38584 : case E_TImode:
5227 38584 : if (GET_MODE (x5) != E_TImode
5228 38584 : || !nonimmediate_operand (operands[1], E_DImode)
5229 38232 : || GET_MODE (x13) != E_TImode
5230 76816 : || pattern727 (x1,
5231 : E_DImode,
5232 : E_TImode) != 0)
5233 352 : return -1;
5234 : return 3;
5235 :
5236 17213 : case E_POImode:
5237 17213 : if (pattern728 (x1,
5238 : E_TImode,
5239 : E_POImode) != 0)
5240 : return -1;
5241 : return 4;
5242 :
5243 : default:
5244 : return -1;
5245 : }
5246 :
5247 61536 : case CONST_INT:
5248 61536 : case CONST_WIDE_INT:
5249 61536 : operands[3] = x13;
5250 61536 : x15 = XEXP (x8, 1);
5251 61536 : operands[2] = x15;
5252 61536 : x16 = XEXP (x11, 1);
5253 61536 : if (!rtx_equal_p (x16, operands[2]))
5254 : return -1;
5255 61170 : switch (GET_MODE (x4))
5256 : {
5257 5936 : case E_HImode:
5258 5936 : if (pattern1575 (x1,
5259 : E_QImode,
5260 : E_HImode) != 0)
5261 : return -1;
5262 : return 5;
5263 :
5264 5928 : case E_SImode:
5265 5928 : if (pattern1575 (x1,
5266 : E_HImode,
5267 : E_SImode) != 0)
5268 : return -1;
5269 : return 6;
5270 :
5271 12348 : case E_DImode:
5272 12348 : if (pattern1575 (x1,
5273 : E_SImode,
5274 : E_DImode) != 0)
5275 : return -1;
5276 : return 7;
5277 :
5278 24308 : case E_TImode:
5279 24308 : if (GET_MODE (x5) != E_TImode
5280 24308 : || !nonimmediate_operand (operands[1], E_DImode)
5281 48616 : || pattern727 (x1,
5282 : E_DImode,
5283 : E_TImode) != 0)
5284 0 : return -1;
5285 : return 8;
5286 :
5287 12650 : case E_POImode:
5288 12650 : if (pattern729 (x1,
5289 : E_TImode,
5290 : E_POImode) != 0)
5291 : return -1;
5292 : return 9;
5293 :
5294 : default:
5295 : return -1;
5296 : }
5297 :
5298 : default:
5299 : return -1;
5300 : }
5301 : }
5302 :
5303 : int
5304 344 : pattern1624 (machine_mode i1)
5305 : {
5306 344 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5307 344 : int res ATTRIBUTE_UNUSED;
5308 344 : if (!vsib_address_operand (operands[0], i1))
5309 : return -1;
5310 276 : switch (GET_MODE (operands[2]))
5311 : {
5312 150 : case E_V4SImode:
5313 150 : if (!register_operand (operands[2], E_V4SImode))
5314 : return -1;
5315 : return 0;
5316 :
5317 126 : case E_V2DImode:
5318 126 : if (!register_operand (operands[2], E_V2DImode))
5319 : return -1;
5320 : return 1;
5321 :
5322 : default:
5323 : return -1;
5324 : }
5325 : }
5326 :
5327 : int
5328 147 : pattern1633 (rtx x1, machine_mode i1, machine_mode i2)
5329 : {
5330 147 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5331 147 : rtx x2, x3;
5332 147 : int res ATTRIBUTE_UNUSED;
5333 147 : if (!register_operand (operands[0], i2)
5334 129 : || GET_MODE (x1) != i2
5335 129 : || !register_operand (operands[6], E_QImode)
5336 182 : || !vsib_mem_operator (operands[5], i1))
5337 112 : return -1;
5338 35 : x2 = XVECEXP (x1, 0, 2);
5339 35 : x3 = XEXP (x2, 0);
5340 35 : switch (GET_MODE (x3))
5341 : {
5342 0 : case E_SImode:
5343 0 : return pattern1632 (
5344 0 : E_SImode); /* [-1, 1] */
5345 :
5346 35 : case E_DImode:
5347 35 : res = pattern1632 (
5348 : E_DImode);
5349 35 : if (res >= 0)
5350 17 : return res + 2; /* [2, 3] */
5351 : return -1;
5352 :
5353 : default:
5354 : return -1;
5355 : }
5356 : }
5357 :
5358 : int
5359 201 : pattern1645 (rtx x1, machine_mode i1)
5360 : {
5361 201 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5362 201 : rtx x2;
5363 201 : int res ATTRIBUTE_UNUSED;
5364 201 : if (!nonimmediate_operand (operands[0], i1)
5365 201 : || GET_MODE (x1) != i1)
5366 : return -1;
5367 201 : x2 = XEXP (x1, 0);
5368 201 : if (GET_MODE (x2) != i1
5369 201 : || !nonimmediate_operand (operands[1], i1)
5370 201 : || !ix86_carry_flag_operator (operands[4], i1)
5371 402 : || !general_operand (operands[2], i1))
5372 0 : return -1;
5373 : return 0;
5374 : }
5375 :
5376 : int
5377 2055 : pattern1653 (rtx x1, machine_mode i1)
5378 : {
5379 2055 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5380 2055 : rtx x2, x3, x4;
5381 2055 : int res ATTRIBUTE_UNUSED;
5382 2055 : if (!nonmemory_operand (operands[1], i1))
5383 : return -1;
5384 2055 : operands[3] = x1;
5385 2055 : if (!register_operand (operands[3], i1))
5386 : return -1;
5387 8 : x2 = PATTERN (peep2_next_insn (1));
5388 8 : x3 = XEXP (x2, 1);
5389 8 : if (!rtx_equal_p (x3, operands[3]))
5390 : return -1;
5391 8 : x4 = XEXP (x2, 0);
5392 8 : if (!rtx_equal_p (x4, operands[0]))
5393 : return -1;
5394 : return 0;
5395 : }
5396 :
5397 : int
5398 440 : pattern1662 (rtx x1, machine_mode i1, machine_mode i2)
5399 : {
5400 440 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5401 440 : rtx x2, x3, x4, x5, x6;
5402 440 : int res ATTRIBUTE_UNUSED;
5403 440 : if (!register_operand (operands[0], i1)
5404 440 : || GET_MODE (x1) != i1)
5405 : return -1;
5406 410 : x2 = XEXP (x1, 0);
5407 410 : if (GET_MODE (x2) != i1)
5408 : return -1;
5409 410 : x3 = XEXP (x2, 0);
5410 410 : if (GET_MODE (x3) != i2
5411 410 : || !register_operand (operands[1], i1))
5412 0 : return -1;
5413 410 : x4 = XEXP (x3, 1);
5414 410 : operands[2] = x4;
5415 410 : if (!nonimmediate_operand (operands[2], i1))
5416 : return -1;
5417 410 : x5 = XEXP (x1, 1);
5418 410 : operands[3] = x5;
5419 410 : if (!nonimm_or_0_operand (operands[3], i1))
5420 : return -1;
5421 396 : x6 = XEXP (x1, 2);
5422 396 : operands[4] = x6;
5423 396 : return 0;
5424 : }
5425 :
5426 : int
5427 231 : pattern1672 (rtx x1, machine_mode i1)
5428 : {
5429 231 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5430 231 : rtx x2, x3, x4;
5431 231 : int res ATTRIBUTE_UNUSED;
5432 231 : if (!register_operand (operands[0], i1)
5433 231 : || GET_MODE (x1) != i1)
5434 : return -1;
5435 198 : x2 = XVECEXP (x1, 0, 0);
5436 198 : if (GET_MODE (x2) != i1)
5437 : return -1;
5438 198 : x3 = XEXP (x2, 0);
5439 198 : if (GET_MODE (x3) != i1
5440 198 : || !nonimmediate_operand (operands[1], i1)
5441 396 : || !register_operand (operands[2], i1))
5442 19 : return -1;
5443 179 : x4 = XEXP (x3, 2);
5444 179 : if (GET_MODE (x4) != i1
5445 179 : || !register_operand (operands[3], i1))
5446 6 : return -1;
5447 : return 0;
5448 : }
5449 :
5450 : int
5451 4836 : pattern1682 (rtx x1)
5452 : {
5453 4836 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5454 4836 : rtx x2, x3, x4, x5, x6, x7;
5455 4836 : int res ATTRIBUTE_UNUSED;
5456 4836 : x2 = XVECEXP (x1, 0, 2);
5457 4836 : if (XWINT (x2, 0) != 2L)
5458 : return -1;
5459 812 : x3 = XVECEXP (x1, 0, 3);
5460 812 : if (XWINT (x3, 0) != 2L)
5461 : return -1;
5462 812 : x4 = XVECEXP (x1, 0, 4);
5463 812 : if (XWINT (x4, 0) != 4L)
5464 : return -1;
5465 812 : x5 = XVECEXP (x1, 0, 5);
5466 812 : if (XWINT (x5, 0) != 4L)
5467 : return -1;
5468 812 : x6 = XVECEXP (x1, 0, 6);
5469 812 : if (XWINT (x6, 0) != 6L)
5470 : return -1;
5471 812 : x7 = XVECEXP (x1, 0, 7);
5472 812 : if (XWINT (x7, 0) != 6L)
5473 0 : return -1;
5474 : return 0;
5475 : }
5476 :
5477 : int
5478 444 : pattern1692 (machine_mode i1, machine_mode i2)
5479 : {
5480 444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5481 444 : int res ATTRIBUTE_UNUSED;
5482 444 : if (!vector_operand (operands[2], i2)
5483 328 : || !register_operand (operands[3], i1)
5484 238 : || !const0_operand (operands[4], i1)
5485 538 : || !const_0_to_7_operand (operands[5], E_SImode))
5486 350 : return -1;
5487 : return 0;
5488 : }
5489 :
5490 : int
5491 331 : pattern1699 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5492 : {
5493 331 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5494 331 : rtx x2, x3;
5495 331 : int res ATTRIBUTE_UNUSED;
5496 331 : if (!register_operand (operands[0], i1)
5497 331 : || GET_MODE (x1) != i1)
5498 : return -1;
5499 323 : x2 = XVECEXP (x1, 0, 0);
5500 323 : if (GET_MODE (x2) != i1)
5501 : return -1;
5502 323 : x3 = XEXP (x2, 0);
5503 323 : if (GET_MODE (x3) != i1
5504 323 : || !register_operand (operands[1], i1)
5505 323 : || !register_operand (operands[2], i1)
5506 323 : || !nonimmediate_operand (operands[3], i2)
5507 323 : || !const0_operand (operands[5], i1)
5508 646 : || !register_operand (operands[6], i3))
5509 2 : return -1;
5510 : return 0;
5511 : }
5512 :
5513 : int
5514 18 : pattern1711 (rtx x1, machine_mode i1)
5515 : {
5516 18 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5517 18 : rtx x2, x3, x4, x5;
5518 18 : int res ATTRIBUTE_UNUSED;
5519 18 : x2 = XVECEXP (x1, 0, 0);
5520 18 : x3 = XEXP (x2, 0);
5521 18 : if (GET_MODE (x3) != i1
5522 18 : || !register_operand (operands[1], i1)
5523 36 : || !register_operand (operands[2], i1))
5524 0 : return -1;
5525 18 : x4 = XVECEXP (x1, 0, 1);
5526 18 : if (GET_MODE (x4) != i1)
5527 : return -1;
5528 18 : x5 = XEXP (x4, 0);
5529 18 : if (GET_MODE (x5) != i1)
5530 : return -1;
5531 : return 0;
5532 : }
5533 :
5534 : int
5535 45 : pattern1717 (rtx x1)
5536 : {
5537 45 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5538 45 : rtx x2, x3;
5539 45 : int res ATTRIBUTE_UNUSED;
5540 45 : x2 = XEXP (x1, 0);
5541 45 : switch (GET_MODE (x2))
5542 : {
5543 6 : case E_HImode:
5544 6 : x3 = XEXP (x1, 1);
5545 6 : if (GET_MODE (x3) != E_HImode
5546 6 : || !extract_high_operator (operands[3], E_HImode))
5547 0 : return -1;
5548 : return 0;
5549 :
5550 30 : case E_SImode:
5551 30 : x3 = XEXP (x1, 1);
5552 30 : if (GET_MODE (x3) != E_SImode
5553 30 : || !extract_high_operator (operands[3], E_SImode))
5554 0 : return -1;
5555 : return 1;
5556 :
5557 9 : case E_DImode:
5558 9 : x3 = XEXP (x1, 1);
5559 9 : if (GET_MODE (x3) != E_DImode
5560 9 : || !extract_high_operator (operands[3], E_DImode))
5561 0 : return -1;
5562 : return 2;
5563 :
5564 : default:
5565 : return -1;
5566 : }
5567 : }
5568 :
5569 : int
5570 5258 : pattern1730 ()
5571 : {
5572 5258 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5573 5258 : int res ATTRIBUTE_UNUSED;
5574 5258 : if (!const_0_to_3_operand (operands[2], E_VOIDmode)
5575 5000 : || !const_0_to_3_operand (operands[3], E_VOIDmode)
5576 4955 : || !const_0_to_3_operand (operands[4], E_VOIDmode)
5577 4930 : || !const_0_to_3_operand (operands[5], E_VOIDmode)
5578 4927 : || !const_4_to_7_operand (operands[6], E_VOIDmode)
5579 4731 : || !const_4_to_7_operand (operands[7], E_VOIDmode)
5580 4731 : || !const_4_to_7_operand (operands[8], E_VOIDmode)
5581 9988 : || !const_4_to_7_operand (operands[9], E_VOIDmode))
5582 528 : return -1;
5583 : return 0;
5584 : }
5585 :
5586 : int
5587 855 : pattern1740 (machine_mode i1)
5588 : {
5589 855 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5590 855 : int res ATTRIBUTE_UNUSED;
5591 855 : if (!vsib_address_operand (operands[3], i1))
5592 : return -1;
5593 851 : switch (GET_MODE (operands[2]))
5594 : {
5595 442 : case E_V8SImode:
5596 442 : if (!register_operand (operands[2], E_V8SImode))
5597 : return -1;
5598 : return 0;
5599 :
5600 409 : case E_V8DImode:
5601 409 : if (!register_operand (operands[2], E_V8DImode))
5602 : return -1;
5603 : return 1;
5604 :
5605 : default:
5606 : return -1;
5607 : }
5608 : }
5609 :
5610 : int
5611 214 : pattern1746 (machine_mode i1)
5612 : {
5613 214 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5614 214 : int res ATTRIBUTE_UNUSED;
5615 214 : if (!vsib_address_operand (operands[3], i1))
5616 : return -1;
5617 214 : switch (GET_MODE (operands[2]))
5618 : {
5619 68 : case E_V4SImode:
5620 68 : if (!register_operand (operands[2], E_V4SImode))
5621 : return -1;
5622 : return 0;
5623 :
5624 146 : case E_V2DImode:
5625 146 : if (!register_operand (operands[2], E_V2DImode))
5626 : return -1;
5627 : return 1;
5628 :
5629 : default:
5630 : return -1;
5631 : }
5632 : }
5633 :
5634 : int
5635 768 : pattern1755 (rtx x1, machine_mode i1)
5636 : {
5637 768 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5638 768 : rtx x2;
5639 768 : int res ATTRIBUTE_UNUSED;
5640 768 : if (!register_operand (operands[0], i1)
5641 768 : || GET_MODE (x1) != i1)
5642 : return -1;
5643 718 : x2 = XEXP (x1, 0);
5644 718 : if (GET_MODE (x2) != i1
5645 718 : || !register_operand (operands[1], i1)
5646 637 : || !const_0_to_7_operand (operands[2], E_VOIDmode)
5647 637 : || !const_0_to_7_operand (operands[3], E_VOIDmode)
5648 637 : || !const_0_to_7_operand (operands[4], E_VOIDmode)
5649 637 : || !const_0_to_7_operand (operands[5], E_VOIDmode)
5650 637 : || !const_0_to_7_operand (operands[6], E_VOIDmode)
5651 637 : || !const_0_to_7_operand (operands[7], E_VOIDmode)
5652 637 : || !const_0_to_7_operand (operands[8], E_VOIDmode)
5653 637 : || !const_0_to_7_operand (operands[9], E_VOIDmode)
5654 1355 : || !nonimm_or_0_operand (operands[10], i1))
5655 105 : return -1;
5656 : return 0;
5657 : }
5658 :
5659 : int
5660 200 : pattern1765 (machine_mode i1)
5661 : {
5662 200 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5663 200 : int res ATTRIBUTE_UNUSED;
5664 200 : if (!vsib_address_operand (operands[3], i1))
5665 : return -1;
5666 180 : switch (GET_MODE (operands[4]))
5667 : {
5668 90 : case E_V4SImode:
5669 90 : if (!register_operand (operands[4], E_V4SImode))
5670 : return -1;
5671 : return 0;
5672 :
5673 90 : case E_V4DImode:
5674 90 : if (!register_operand (operands[4], E_V4DImode))
5675 : return -1;
5676 : return 1;
5677 :
5678 : default:
5679 : return -1;
5680 : }
5681 : }
5682 :
5683 : int
5684 1315 : pattern1773 (rtx x1, machine_mode i1, machine_mode i2)
5685 : {
5686 1315 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5687 1315 : rtx x2, x3;
5688 1315 : int res ATTRIBUTE_UNUSED;
5689 1315 : if (!register_operand (operands[0], i2)
5690 1315 : || GET_MODE (x1) != i2
5691 1315 : || !register_operand (operands[1], i2)
5692 1315 : || !register_operand (operands[7], E_QImode)
5693 1308 : || !vsib_mem_operator (operands[6], i1)
5694 2623 : || !scratch_operand (operands[2], E_QImode))
5695 7 : return -1;
5696 1308 : x2 = XVECEXP (x1, 0, 2);
5697 1308 : x3 = XEXP (x2, 0);
5698 1308 : switch (GET_MODE (x3))
5699 : {
5700 0 : case E_SImode:
5701 0 : return pattern1772 (
5702 0 : E_SImode); /* [-1, 1] */
5703 :
5704 1308 : case E_DImode:
5705 1308 : res = pattern1772 (
5706 : E_DImode);
5707 1308 : if (res >= 0)
5708 1248 : return res + 2; /* [2, 3] */
5709 : return -1;
5710 :
5711 : default:
5712 : return -1;
5713 : }
5714 : }
5715 :
5716 : int
5717 53 : pattern1788 (rtx x1, machine_mode i1)
5718 : {
5719 53 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5720 53 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5721 53 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
5722 53 : int res ATTRIBUTE_UNUSED;
5723 53 : if (!constm1_operand (operands[2], i1))
5724 : return -1;
5725 49 : x2 = XVECEXP (x1, 0, 0);
5726 49 : x3 = XEXP (x2, 1);
5727 49 : if (XVECLEN (x3, 0) != 2
5728 49 : || XINT (x3, 1) != 110
5729 49 : || GET_MODE (x3) != i1)
5730 : return -1;
5731 35 : x4 = XVECEXP (x1, 0, 1);
5732 35 : x5 = XEXP (x4, 1);
5733 35 : if (GET_CODE (x5) != PLUS
5734 35 : || GET_MODE (x5) != i1)
5735 : return -1;
5736 35 : x6 = XVECEXP (x1, 0, 2);
5737 35 : if (GET_CODE (x6) != CLOBBER)
5738 : return -1;
5739 35 : x7 = XEXP (x6, 0);
5740 35 : if (GET_CODE (x7) != REG
5741 35 : || REGNO (x7) != 17
5742 70 : || GET_MODE (x7) != E_CCmode)
5743 : return -1;
5744 35 : x8 = XVECEXP (x3, 0, 0);
5745 35 : operands[1] = x8;
5746 35 : if (!memory_operand (operands[1], i1))
5747 : return -1;
5748 35 : x9 = XVECEXP (x3, 0, 1);
5749 35 : operands[4] = x9;
5750 35 : if (!const_int_operand (operands[4], E_SImode))
5751 : return -1;
5752 35 : x10 = XEXP (x2, 0);
5753 35 : if (!rtx_equal_p (x10, operands[0]))
5754 : return -1;
5755 35 : x11 = XEXP (x5, 0);
5756 35 : if (!rtx_equal_p (x11, operands[1]))
5757 : return -1;
5758 35 : x12 = XEXP (x5, 1);
5759 35 : if (!rtx_equal_p (x12, operands[0]))
5760 : return -1;
5761 35 : x13 = XEXP (x4, 0);
5762 35 : if (!rtx_equal_p (x13, operands[1]))
5763 : return -1;
5764 35 : x14 = PATTERN (peep2_next_insn (2));
5765 35 : x15 = XEXP (x14, 1);
5766 35 : x16 = XEXP (x15, 1);
5767 35 : operands[3] = x16;
5768 35 : if (!const_int_operand (operands[3], i1))
5769 : return -1;
5770 33 : x17 = XEXP (x15, 0);
5771 33 : if (!rtx_equal_p (x17, operands[0]))
5772 : return -1;
5773 : return 0;
5774 : }
5775 :
5776 : int
5777 123 : pattern1812 (machine_mode i1)
5778 : {
5779 123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5780 123 : int res ATTRIBUTE_UNUSED;
5781 123 : if (!vsib_address_operand (operands[2], i1))
5782 : return -1;
5783 111 : switch (GET_MODE (operands[3]))
5784 : {
5785 73 : case E_V8SImode:
5786 73 : if (!register_operand (operands[3], E_V8SImode)
5787 73 : || !register_operand (operands[4], E_V8SImode))
5788 66 : return -1;
5789 : return 0;
5790 :
5791 38 : case E_V4DImode:
5792 38 : if (!register_operand (operands[3], E_V4DImode)
5793 38 : || !register_operand (operands[4], E_V4SImode))
5794 37 : return -1;
5795 : return 1;
5796 :
5797 : default:
5798 : return -1;
5799 : }
5800 : }
5801 :
5802 : int
5803 769 : pattern1820 (rtx x1, machine_mode i1, machine_mode i2)
5804 : {
5805 769 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5806 769 : int res ATTRIBUTE_UNUSED;
5807 769 : if (!register_operand (operands[0], i1)
5808 765 : || GET_MODE (x1) != i1
5809 765 : || !vsib_mem_operator (operands[7], i2)
5810 1534 : || !scratch_operand (operands[1], i1))
5811 4 : return -1;
5812 : return 0;
5813 : }
5814 :
5815 : int
5816 1 : pattern1825 (rtx x1, machine_mode i1)
5817 : {
5818 1 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5819 1 : rtx x2, x3, x4, x5, x6, x7;
5820 1 : int res ATTRIBUTE_UNUSED;
5821 1 : x2 = XVECEXP (x1, 0, 0);
5822 1 : x3 = XEXP (x2, 1);
5823 1 : x4 = XEXP (x3, 0);
5824 1 : x5 = XEXP (x4, 0);
5825 1 : if (GET_MODE (x5) != i1
5826 1 : || !nonimmediate_operand (operands[1], i1)
5827 2 : || !ix86_carry_flag_operator (operands[4], i1))
5828 0 : return -1;
5829 1 : x6 = XVECEXP (x1, 0, 1);
5830 1 : x7 = XEXP (x6, 1);
5831 1 : return pattern1821 (x7,
5832 1 : i1); /* [-1, 0] */
5833 : }
5834 :
5835 : int
5836 5703 : pattern1833 (rtx x1, machine_mode i1)
5837 : {
5838 5703 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5839 5703 : rtx x2, x3, x4, x5, x6, x7, x8;
5840 5703 : int res ATTRIBUTE_UNUSED;
5841 5703 : x2 = XEXP (x1, 1);
5842 5703 : if (!rtx_equal_p (x2, operands[4]))
5843 : return -1;
5844 473 : x3 = XEXP (x1, 0);
5845 473 : if (!rtx_equal_p (x3, operands[1]))
5846 : return -1;
5847 34 : x4 = PATTERN (peep2_next_insn (3));
5848 34 : if (GET_CODE (x4) != SET)
5849 : return -1;
5850 27 : x5 = XEXP (x4, 1);
5851 27 : if (GET_CODE (x5) != COMPARE
5852 11 : || GET_MODE (x5) != E_CCZmode)
5853 : return -1;
5854 5 : x6 = XEXP (x4, 0);
5855 5 : if (GET_CODE (x6) != REG
5856 5 : || REGNO (x6) != 17
5857 10 : || GET_MODE (x6) != E_CCZmode)
5858 : return -1;
5859 5 : x7 = XEXP (x5, 0);
5860 5 : operands[5] = x7;
5861 5 : if (!register_operand (operands[5], i1))
5862 : return -1;
5863 5 : x8 = XEXP (x5, 1);
5864 5 : operands[6] = x8;
5865 5 : if (!x86_64_nonmemory_operand (operands[6], i1))
5866 : return -1;
5867 : return 0;
5868 : }
5869 :
5870 : int
5871 434 : pattern1848 (machine_mode i1)
5872 : {
5873 434 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5874 434 : int res ATTRIBUTE_UNUSED;
5875 434 : if (!vsib_address_operand (operands[0], i1))
5876 : return -1;
5877 421 : switch (GET_MODE (operands[2]))
5878 : {
5879 227 : case E_V8SImode:
5880 227 : if (!register_operand (operands[2], E_V8SImode)
5881 227 : || !register_operand (operands[3], E_V8SImode))
5882 38 : return -1;
5883 : return 0;
5884 :
5885 194 : case E_V4DImode:
5886 194 : if (!register_operand (operands[2], E_V4DImode)
5887 194 : || !register_operand (operands[3], E_V4SImode))
5888 21 : return -1;
5889 : return 1;
5890 :
5891 : default:
5892 : return -1;
5893 : }
5894 : }
5895 :
5896 : int
5897 428843 : pattern1856 (rtx x1, machine_mode i1)
5898 : {
5899 428843 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5900 428843 : rtx x2, x3, x4, x5;
5901 428843 : int res ATTRIBUTE_UNUSED;
5902 428843 : if (!register_operand (operands[0], i1))
5903 : return -1;
5904 428843 : x2 = XVECEXP (x1, 0, 0);
5905 428843 : x3 = XEXP (x2, 1);
5906 428843 : if (GET_MODE (x3) != i1
5907 428843 : || !memory_operand (operands[1], i1)
5908 427803 : || !register_operand (operands[2], i1)
5909 821081 : || !register_operand (operands[3], i1))
5910 91881 : return -1;
5911 336962 : x4 = XVECEXP (x1, 0, 1);
5912 336962 : x5 = XEXP (x4, 1);
5913 336962 : if (GET_MODE (x5) != i1)
5914 : return -1;
5915 : return 0;
5916 : }
5917 :
5918 : int
5919 119 : pattern1863 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5920 : {
5921 119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5922 119 : rtx x2, x3, x4;
5923 119 : int res ATTRIBUTE_UNUSED;
5924 119 : if (!register_operand (operands[0], i1)
5925 119 : || GET_MODE (x1) != i1)
5926 : return -1;
5927 111 : x2 = XEXP (x1, 0);
5928 111 : if (GET_MODE (x2) != i3
5929 111 : || !vsib_mem_operator (operands[6], i2)
5930 222 : || !register_operand (operands[4], i1))
5931 81 : return -1;
5932 30 : x3 = XVECEXP (x2, 0, 1);
5933 30 : x4 = XEXP (x3, 0);
5934 30 : switch (GET_MODE (x4))
5935 : {
5936 0 : case E_SImode:
5937 0 : if (!vsib_address_operand (operands[2], E_SImode))
5938 : return -1;
5939 : return 0;
5940 :
5941 30 : case E_DImode:
5942 30 : if (!vsib_address_operand (operands[2], E_DImode))
5943 : return -1;
5944 : return 1;
5945 :
5946 : default:
5947 : return -1;
5948 : }
5949 : }
5950 :
5951 : int
5952 715 : pattern1870 (rtx x1, machine_mode i1)
5953 : {
5954 715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5955 715 : int res ATTRIBUTE_UNUSED;
5956 715 : if (!register_operand (operands[5], i1))
5957 : return -1;
5958 644 : switch (GET_MODE (x1))
5959 : {
5960 0 : case E_SImode:
5961 0 : if (!vsib_address_operand (operands[3], E_SImode))
5962 : return -1;
5963 : return 0;
5964 :
5965 644 : case E_DImode:
5966 644 : if (!vsib_address_operand (operands[3], E_DImode))
5967 : return -1;
5968 : return 1;
5969 :
5970 : default:
5971 : return -1;
5972 : }
5973 : }
5974 :
5975 : int
5976 87 : pattern1878 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
5977 : {
5978 87 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5979 87 : rtx x2, x3, x4;
5980 87 : int res ATTRIBUTE_UNUSED;
5981 87 : if (!register_operand (operands[0], i2)
5982 87 : || GET_MODE (x1) != i2)
5983 : return -1;
5984 85 : x2 = XEXP (x1, 0);
5985 85 : if (GET_MODE (x2) != i1
5986 85 : || !vsib_mem_operator (operands[6], i3)
5987 85 : || !register_operand (operands[4], i2)
5988 105 : || !scratch_operand (operands[1], i1))
5989 65 : return -1;
5990 20 : x3 = XVECEXP (x2, 0, 1);
5991 20 : x4 = XEXP (x3, 0);
5992 20 : switch (GET_MODE (x4))
5993 : {
5994 0 : case E_SImode:
5995 0 : if (!vsib_address_operand (operands[2], E_SImode))
5996 : return -1;
5997 : return 0;
5998 :
5999 20 : case E_DImode:
6000 20 : if (!vsib_address_operand (operands[2], E_DImode))
6001 : return -1;
6002 : return 1;
6003 :
6004 : default:
6005 : return -1;
6006 : }
6007 : }
6008 :
6009 : int
6010 176 : pattern1888 (rtx x1)
6011 : {
6012 176 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6013 176 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6014 176 : rtx x10, x11, x12, x13, x14, x15;
6015 176 : int res ATTRIBUTE_UNUSED;
6016 176 : if (GET_CODE (x1) != SET)
6017 : return -1;
6018 176 : x2 = XEXP (x1, 1);
6019 176 : if (GET_CODE (x2) != GTU
6020 116 : || GET_MODE (x2) != E_QImode)
6021 : return -1;
6022 116 : x3 = XEXP (x2, 0);
6023 116 : if (GET_CODE (x3) != REG
6024 116 : || REGNO (x3) != 17
6025 232 : || GET_MODE (x3) != E_CCmode)
6026 : return -1;
6027 116 : x4 = XEXP (x2, 1);
6028 116 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6029 : return -1;
6030 116 : x5 = XEXP (x1, 0);
6031 116 : operands[7] = x5;
6032 116 : if (!register_operand (operands[7], E_QImode))
6033 : return -1;
6034 116 : x6 = PATTERN (peep2_next_insn (2));
6035 116 : if (GET_CODE (x6) != SET)
6036 : return -1;
6037 10 : x7 = XEXP (x6, 1);
6038 10 : if (GET_CODE (x7) != LTU
6039 0 : || GET_MODE (x7) != E_QImode)
6040 : return -1;
6041 0 : x8 = XEXP (x7, 0);
6042 0 : if (GET_CODE (x8) != REG
6043 0 : || REGNO (x8) != 17
6044 0 : || GET_MODE (x8) != E_CCmode)
6045 : return -1;
6046 0 : x9 = XEXP (x7, 1);
6047 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6048 : return -1;
6049 0 : x10 = XEXP (x6, 0);
6050 0 : operands[8] = x10;
6051 0 : if (!register_operand (operands[8], E_QImode))
6052 : return -1;
6053 0 : x11 = PATTERN (peep2_next_insn (3));
6054 0 : if (GET_CODE (x11) != SET)
6055 : return -1;
6056 0 : x12 = XEXP (x11, 1);
6057 0 : if (GET_CODE (x12) != COMPARE)
6058 : return -1;
6059 0 : x13 = XEXP (x11, 0);
6060 0 : if (GET_CODE (x13) != REG
6061 0 : || REGNO (x13) != 17)
6062 : return -1;
6063 0 : x14 = XEXP (x12, 0);
6064 0 : if (!rtx_equal_p (x14, operands[7]))
6065 : return -1;
6066 0 : x15 = XEXP (x12, 1);
6067 0 : if (!rtx_equal_p (x15, operands[8]))
6068 : return -1;
6069 : return 0;
6070 : }
6071 :
6072 : int
6073 448 : pattern1901 ()
6074 : {
6075 448 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6076 448 : int res ATTRIBUTE_UNUSED;
6077 448 : if (!const_0_to_15_operand (operands[4], E_VOIDmode)
6078 432 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6079 432 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6080 432 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6081 432 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6082 432 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6083 432 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6084 432 : || !const_16_to_31_operand (operands[11], E_VOIDmode)
6085 432 : || !const_16_to_31_operand (operands[12], E_VOIDmode)
6086 432 : || !const_16_to_31_operand (operands[13], E_VOIDmode)
6087 432 : || !const_16_to_31_operand (operands[14], E_VOIDmode)
6088 432 : || !const_16_to_31_operand (operands[15], E_VOIDmode)
6089 432 : || !const_16_to_31_operand (operands[16], E_VOIDmode)
6090 432 : || !const_16_to_31_operand (operands[17], E_VOIDmode)
6091 880 : || !const_16_to_31_operand (operands[18], E_VOIDmode))
6092 16 : return -1;
6093 : return 0;
6094 : }
6095 :
6096 : int
6097 24 : pattern1913 (rtx x1)
6098 : {
6099 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6100 24 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6101 24 : int res ATTRIBUTE_UNUSED;
6102 24 : if (GET_CODE (x1) != SET)
6103 : return -1;
6104 24 : x2 = XEXP (x1, 1);
6105 24 : switch (GET_CODE (x2))
6106 : {
6107 12 : case NE:
6108 12 : case EQ:
6109 12 : case GE:
6110 12 : case GT:
6111 12 : case LE:
6112 12 : case LT:
6113 12 : operands[8] = x2;
6114 12 : if (!ix86_comparison_int_operator (operands[8], E_QImode))
6115 : return -1;
6116 12 : x3 = XEXP (x2, 0);
6117 12 : if (GET_CODE (x3) != REG
6118 12 : || REGNO (x3) != 17)
6119 : return -1;
6120 12 : x4 = XEXP (x2, 1);
6121 12 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6122 : return -1;
6123 12 : x5 = XEXP (x1, 0);
6124 12 : operands[7] = x5;
6125 12 : if (!nonimmediate_operand (operands[7], E_QImode))
6126 : return -1;
6127 : return 0;
6128 :
6129 12 : case IF_THEN_ELSE:
6130 12 : x3 = XEXP (x2, 0);
6131 12 : if (!ix86_comparison_int_operator (x3, E_VOIDmode))
6132 : return -1;
6133 12 : operands[7] = x3;
6134 12 : x6 = XEXP (x3, 0);
6135 12 : if (GET_CODE (x6) != REG
6136 12 : || REGNO (x6) != 17)
6137 : return -1;
6138 12 : x7 = XEXP (x3, 1);
6139 12 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6140 : return -1;
6141 12 : x4 = XEXP (x2, 1);
6142 12 : if (GET_CODE (x4) != LABEL_REF)
6143 : return -1;
6144 12 : x8 = XEXP (x2, 2);
6145 12 : if (GET_CODE (x8) != PC)
6146 : return -1;
6147 12 : x5 = XEXP (x1, 0);
6148 12 : if (GET_CODE (x5) != PC)
6149 : return -1;
6150 12 : x9 = XEXP (x4, 0);
6151 12 : operands[8] = x9;
6152 12 : return 1;
6153 :
6154 : default:
6155 : return -1;
6156 : }
6157 : }
6158 :
6159 : int
6160 103586 : recog_9 (rtx x1 ATTRIBUTE_UNUSED,
6161 : rtx_insn *insn ATTRIBUTE_UNUSED,
6162 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6163 : {
6164 103586 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6165 103586 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6166 103586 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6167 103586 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
6168 103586 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
6169 103586 : rtx x34, x35;
6170 103586 : int res ATTRIBUTE_UNUSED;
6171 103586 : x2 = XEXP (x1, 1);
6172 103586 : x3 = XVECEXP (x2, 0, 0);
6173 103586 : switch (GET_CODE (x3))
6174 : {
6175 11595 : case UNSPEC:
6176 11595 : x4 = XVECEXP (x2, 0, 1);
6177 11595 : if (!const48_operand (x4, E_SImode))
6178 : return -1;
6179 11493 : switch (XVECLEN (x3, 0))
6180 : {
6181 2226 : case 3:
6182 2226 : if (XINT (x3, 1) != 60)
6183 : return -1;
6184 1004 : x5 = XEXP (x1, 0);
6185 1004 : operands[0] = x5;
6186 1004 : x6 = XVECEXP (x3, 0, 0);
6187 1004 : operands[1] = x6;
6188 1004 : x7 = XVECEXP (x3, 0, 1);
6189 1004 : operands[2] = x7;
6190 1004 : x8 = XVECEXP (x3, 0, 2);
6191 1004 : operands[3] = x8;
6192 1004 : if (!const_0_to_31_operand (operands[3], E_SImode))
6193 : return -1;
6194 1004 : operands[4] = x4;
6195 1004 : switch (GET_MODE (operands[0]))
6196 : {
6197 489 : case E_HImode:
6198 489 : if (pattern1463 (x2,
6199 : E_V16SFmode,
6200 : E_HImode) != 0
6201 489 : || !(
6202 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6203 : (TARGET_AVX512F) &&
6204 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6205 : (TARGET_AVX512F && (V16SFmode == V16SFmode
6206 : || V16SFmode == V8DFmode
6207 : || V16SFmode == V8DImode
6208 : || V16SFmode == V16SImode
6209 : || V16SFmode == V32HFmode))))
6210 : return -1;
6211 : return 3341; /* avx512f_cmpv16sf3_round */
6212 :
6213 : case E_QImode:
6214 : if (pattern1463 (x2,
6215 : E_V8DFmode,
6216 : E_QImode) != 0
6217 : || !(
6218 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6219 : (TARGET_AVX512F) &&
6220 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6221 : (TARGET_AVX512F && (V8DFmode == V16SFmode
6222 : || V8DFmode == V8DFmode
6223 : || V8DFmode == V8DImode
6224 : || V8DFmode == V16SImode
6225 : || V8DFmode == V32HFmode))))
6226 : return -1;
6227 : return 3349; /* avx512f_cmpv8df3_round */
6228 :
6229 : default:
6230 : return -1;
6231 : }
6232 :
6233 : case 2:
6234 : if (XINT (x3, 1) != 62
6235 : || GET_MODE (x3) != E_CCFPmode
6236 : || pattern858 (x3) != 0
6237 : || pattern46 (x1,
6238 : E_CCFPmode) != 0)
6239 : return -1;
6240 : x6 = XVECEXP (x3, 0, 0);
6241 : x9 = XEXP (x6, 0);
6242 : operands[0] = x9;
6243 : x7 = XVECEXP (x3, 0, 1);
6244 : x10 = XEXP (x7, 0);
6245 : operands[1] = x10;
6246 : operands[2] = x4;
6247 : switch (GET_MODE (x6))
6248 : {
6249 : case E_HFmode:
6250 : if (!register_operand (operands[0], E_V8HFmode)
6251 : || GET_MODE (x7) != E_HFmode
6252 : || !register_operand (operands[1], E_V8HFmode)
6253 : || !(
6254 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6255 : (TARGET_AVX512F) && (
6256 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6257 : (TARGET_AVX10_2) &&
6258 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6259 : (TARGET_AVX512FP16))))
6260 : return -1;
6261 : return 3747; /* avx10_2_comxhf_round */
6262 :
6263 : case E_SFmode:
6264 : if (!register_operand (operands[0], E_V4SFmode)
6265 : || GET_MODE (x7) != E_SFmode
6266 : || !register_operand (operands[1], E_V4SFmode)
6267 : || !(
6268 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6269 : (TARGET_AVX512F) &&
6270 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6271 : (TARGET_AVX10_2)))
6272 : return -1;
6273 : return 3751; /* avx10_2_comxsf_round */
6274 :
6275 : case E_DFmode:
6276 : if (!register_operand (operands[0], E_V2DFmode)
6277 : || GET_MODE (x7) != E_DFmode
6278 : || !register_operand (operands[1], E_V2DFmode)
6279 : || !(
6280 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6281 : (TARGET_AVX512F) &&
6282 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6283 : (TARGET_AVX10_2)))
6284 : return -1;
6285 : return 3755; /* avx10_2_comxdf_round */
6286 :
6287 : default:
6288 : return -1;
6289 : }
6290 :
6291 : case 1:
6292 : if (XINT (x3, 1) != 27
6293 : || GET_MODE (x3) != E_CCFPmode
6294 : || pattern46 (x1,
6295 : E_CCFPmode) != 0)
6296 : return -1;
6297 : x6 = XVECEXP (x3, 0, 0);
6298 : if (GET_MODE (x6) != E_CCFPmode)
6299 : return -1;
6300 : operands[2] = x4;
6301 : switch (GET_CODE (x6))
6302 : {
6303 : case UNSPEC:
6304 : if (XVECLEN (x6, 0) != 2
6305 : || XINT (x6, 1) != 62)
6306 : return -1;
6307 : x11 = XVECEXP (x6, 0, 0);
6308 : if (GET_CODE (x11) != VEC_SELECT)
6309 : return -1;
6310 : x12 = XEXP (x11, 1);
6311 : if (GET_CODE (x12) != PARALLEL
6312 : || XVECLEN (x12, 0) != 1)
6313 : return -1;
6314 : x13 = XVECEXP (x12, 0, 0);
6315 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6316 : return -1;
6317 : x14 = XVECEXP (x6, 0, 1);
6318 : if (GET_CODE (x14) != VEC_SELECT)
6319 : return -1;
6320 : x15 = XEXP (x14, 1);
6321 : if (GET_CODE (x15) != PARALLEL
6322 : || XVECLEN (x15, 0) != 1)
6323 : return -1;
6324 : x16 = XVECEXP (x15, 0, 0);
6325 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6326 : return -1;
6327 : x17 = XEXP (x11, 0);
6328 : operands[0] = x17;
6329 : x18 = XEXP (x14, 0);
6330 : operands[1] = x18;
6331 : switch (GET_MODE (x11))
6332 : {
6333 : case E_HFmode:
6334 : if (!register_operand (operands[0], E_V8HFmode)
6335 : || GET_MODE (x14) != E_HFmode
6336 : || !register_operand (operands[1], E_V8HFmode)
6337 : || !(
6338 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6339 : (TARGET_AVX512F) && (
6340 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6341 : (TARGET_AVX10_2) &&
6342 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6343 : (TARGET_AVX512FP16))))
6344 : return -1;
6345 : return 3749; /* avx10_2_ucomxhf_round */
6346 :
6347 : case E_SFmode:
6348 : if (!register_operand (operands[0], E_V4SFmode)
6349 : || GET_MODE (x14) != E_SFmode
6350 : || !register_operand (operands[1], E_V4SFmode)
6351 : || !(
6352 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6353 : (TARGET_AVX512F) &&
6354 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6355 : (TARGET_AVX10_2)))
6356 : return -1;
6357 : return 3753; /* avx10_2_ucomxsf_round */
6358 :
6359 : case E_DFmode:
6360 : if (!register_operand (operands[0], E_V2DFmode)
6361 : || GET_MODE (x14) != E_DFmode
6362 : || !register_operand (operands[1], E_V2DFmode)
6363 : || !(
6364 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6365 : (TARGET_AVX512F) &&
6366 : #line 5258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6367 : (TARGET_AVX10_2)))
6368 : return -1;
6369 : return 3757; /* avx10_2_ucomxdf_round */
6370 :
6371 : default:
6372 : return -1;
6373 : }
6374 :
6375 : case COMPARE:
6376 : x9 = XEXP (x6, 0);
6377 : if (GET_CODE (x9) != VEC_SELECT)
6378 : return -1;
6379 : x19 = XEXP (x9, 1);
6380 : if (GET_CODE (x19) != PARALLEL
6381 : || XVECLEN (x19, 0) != 1)
6382 : return -1;
6383 : x20 = XVECEXP (x19, 0, 0);
6384 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6385 : return -1;
6386 : x21 = XEXP (x6, 1);
6387 : if (GET_CODE (x21) != VEC_SELECT)
6388 : return -1;
6389 : x22 = XEXP (x21, 1);
6390 : if (GET_CODE (x22) != PARALLEL
6391 : || XVECLEN (x22, 0) != 1)
6392 : return -1;
6393 : x23 = XVECEXP (x22, 0, 0);
6394 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6395 : return -1;
6396 : x24 = XEXP (x9, 0);
6397 : operands[0] = x24;
6398 : x25 = XEXP (x21, 0);
6399 : operands[1] = x25;
6400 : switch (GET_MODE (x9))
6401 : {
6402 : case E_HFmode:
6403 : if (!register_operand (operands[0], E_V8HFmode)
6404 : || GET_MODE (x21) != E_HFmode
6405 : || !register_operand (operands[1], E_V8HFmode)
6406 : || !(
6407 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6408 : (TARGET_AVX512F) && (
6409 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6410 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
6411 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6412 : (TARGET_AVX512FP16))))
6413 : return -1;
6414 : return 3761; /* avx512fp16_ucomi_round */
6415 :
6416 : case E_SFmode:
6417 : if (!register_operand (operands[0], E_V4SFmode)
6418 : || GET_MODE (x21) != E_SFmode
6419 : || !register_operand (operands[1], E_V4SFmode)
6420 : || !(
6421 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6422 : (TARGET_AVX512F) &&
6423 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6424 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode)))
6425 : return -1;
6426 : return 3765; /* sse_ucomi_round */
6427 :
6428 : case E_DFmode:
6429 : if (!register_operand (operands[0], E_V2DFmode)
6430 : || GET_MODE (x21) != E_DFmode
6431 : || !register_operand (operands[1], E_V2DFmode)
6432 : || !(
6433 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6434 : (TARGET_AVX512F) &&
6435 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6436 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode)))
6437 : return -1;
6438 : return 3769; /* sse2_ucomi_round */
6439 :
6440 : default:
6441 : return -1;
6442 : }
6443 :
6444 : default:
6445 : return -1;
6446 : }
6447 :
6448 : default:
6449 : return -1;
6450 : }
6451 :
6452 : case AND:
6453 : x26 = XEXP (x3, 0);
6454 : if (GET_CODE (x26) != UNSPEC
6455 : || XVECLEN (x26, 0) != 3
6456 : || XINT (x26, 1) != 60)
6457 : return -1;
6458 : x5 = XEXP (x1, 0);
6459 : operands[0] = x5;
6460 : x27 = XVECEXP (x26, 0, 0);
6461 : operands[1] = x27;
6462 : x28 = XVECEXP (x26, 0, 1);
6463 : operands[2] = x28;
6464 : x29 = XVECEXP (x26, 0, 2);
6465 : operands[3] = x29;
6466 : if (!const_0_to_31_operand (operands[3], E_SImode))
6467 : return -1;
6468 : x4 = XVECEXP (x2, 0, 1);
6469 : if (!const48_operand (x4, E_SImode))
6470 : return -1;
6471 : x30 = XEXP (x3, 1);
6472 : switch (GET_CODE (x30))
6473 : {
6474 : case REG:
6475 : case SUBREG:
6476 : operands[4] = x30;
6477 : operands[5] = x4;
6478 : switch (GET_MODE (operands[0]))
6479 : {
6480 : case E_HImode:
6481 : if (pattern1594 (x2,
6482 : E_HImode,
6483 : E_V16SFmode) != 0
6484 : || !(
6485 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6486 : (TARGET_AVX512F) && (
6487 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6488 : (TARGET_AVX512F) &&
6489 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6490 : (TARGET_AVX512F && (V16SFmode == V16SFmode
6491 : || V16SFmode == V8DFmode
6492 : || V16SFmode == V8DImode
6493 : || V16SFmode == V16SImode
6494 : || V16SFmode == V32HFmode)))))
6495 : return -1;
6496 : return 3343; /* avx512f_cmpv16sf3_mask_round */
6497 :
6498 : case E_QImode:
6499 : if (pattern1594 (x2,
6500 : E_QImode,
6501 : E_V8DFmode) != 0
6502 : || !(
6503 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6504 : (TARGET_AVX512F) && (
6505 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6506 : (TARGET_AVX512F) &&
6507 : #line 4681 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6508 : (TARGET_AVX512F && (V8DFmode == V16SFmode
6509 : || V8DFmode == V8DFmode
6510 : || V8DFmode == V8DImode
6511 : || V8DFmode == V16SImode
6512 : || V8DFmode == V32HFmode)))))
6513 : return -1;
6514 : return 3351; /* avx512f_cmpv8df3_mask_round */
6515 :
6516 : default:
6517 : return -1;
6518 : }
6519 :
6520 : case CONST_INT:
6521 : if (XWINT (x30, 0) != 1L
6522 : || pattern1486 (x2,
6523 : E_QImode) != 0)
6524 : return -1;
6525 : operands[4] = x4;
6526 : switch (pattern1716 ())
6527 : {
6528 : case 0:
6529 : if (!(
6530 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6531 : (TARGET_AVX512F) && (
6532 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6533 : (TARGET_AVX512F) &&
6534 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6535 : (TARGET_AVX512FP16))))
6536 : return -1;
6537 : return 3735; /* avx512f_vmcmpv8hf3_round */
6538 :
6539 : case 1:
6540 : if (!
6541 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6542 : (TARGET_AVX512F))
6543 : return -1;
6544 : return 3737; /* avx512f_vmcmpv4sf3_round */
6545 :
6546 : case 2:
6547 : if (!(
6548 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6549 : (TARGET_AVX512F) && (
6550 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6551 : (TARGET_AVX512F) &&
6552 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6553 : (TARGET_SSE2))))
6554 : return -1;
6555 : return 3739; /* avx512f_vmcmpv2df3_round */
6556 :
6557 : default:
6558 : return -1;
6559 : }
6560 :
6561 : case AND:
6562 : if (GET_MODE (x30) != E_QImode)
6563 : return -1;
6564 : x31 = XEXP (x30, 1);
6565 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
6566 : || pattern1486 (x2,
6567 : E_QImode) != 0)
6568 : return -1;
6569 : x32 = XEXP (x30, 0);
6570 : operands[4] = x32;
6571 : if (!register_operand (operands[4], E_QImode))
6572 : return -1;
6573 : operands[5] = x4;
6574 : switch (pattern1716 ())
6575 : {
6576 : case 0:
6577 : if (!(
6578 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6579 : (TARGET_AVX512F) && (
6580 : #line 5241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6581 : (TARGET_AVX512F) &&
6582 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6583 : (TARGET_AVX512FP16))))
6584 : return -1;
6585 : return 3741; /* avx512f_vmcmpv8hf3_mask_round */
6586 :
6587 : case 1:
6588 : if (!
6589 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6590 : (TARGET_AVX512F))
6591 : return -1;
6592 : return 3743; /* avx512f_vmcmpv4sf3_mask_round */
6593 :
6594 : case 2:
6595 : if (!(
6596 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6597 : (TARGET_AVX512F) && (
6598 : #line 5241 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6599 : (TARGET_AVX512F) &&
6600 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6601 : (TARGET_SSE2))))
6602 : return -1;
6603 : return 3745; /* avx512f_vmcmpv2df3_mask_round */
6604 :
6605 : default:
6606 : return -1;
6607 : }
6608 :
6609 : default:
6610 : return -1;
6611 : }
6612 :
6613 : case COMPARE:
6614 : if (GET_MODE (x3) != E_CCFPmode)
6615 : return -1;
6616 : x26 = XEXP (x3, 0);
6617 : if (GET_CODE (x26) != VEC_SELECT
6618 : || pattern612 (x3) != 0
6619 : || pattern46 (x1,
6620 : E_CCFPmode) != 0)
6621 : return -1;
6622 : x33 = XEXP (x26, 0);
6623 : operands[0] = x33;
6624 : x30 = XEXP (x3, 1);
6625 : x32 = XEXP (x30, 0);
6626 : operands[1] = x32;
6627 : x4 = XVECEXP (x2, 0, 1);
6628 : operands[2] = x4;
6629 : if (!const48_operand (operands[2], E_SImode))
6630 : return -1;
6631 : switch (GET_MODE (x26))
6632 : {
6633 : case E_HFmode:
6634 : if (!register_operand (operands[0], E_V8HFmode)
6635 : || GET_MODE (x30) != E_HFmode
6636 : || !register_operand (operands[1], E_V8HFmode)
6637 : || !(
6638 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6639 : (TARGET_AVX512F) && (
6640 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6641 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
6642 : #line 1386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6643 : (TARGET_AVX512FP16))))
6644 : return -1;
6645 : return 3759; /* avx512fp16_comi_round */
6646 :
6647 : case E_SFmode:
6648 : if (!register_operand (operands[0], E_V4SFmode)
6649 : || GET_MODE (x30) != E_SFmode
6650 : || !register_operand (operands[1], E_V4SFmode)
6651 : || !(
6652 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6653 : (TARGET_AVX512F) &&
6654 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6655 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode)))
6656 : return -1;
6657 : return 3763; /* sse_comi_round */
6658 :
6659 : case E_DFmode:
6660 : if (!register_operand (operands[0], E_V2DFmode)
6661 : || GET_MODE (x30) != E_DFmode
6662 : || !register_operand (operands[1], E_V2DFmode)
6663 : || !(
6664 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6665 : (TARGET_AVX512F) &&
6666 : #line 5273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6667 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode)))
6668 : return -1;
6669 : return 3767; /* sse2_comi_round */
6670 :
6671 : default:
6672 : return -1;
6673 : }
6674 :
6675 : case FMA:
6676 : x26 = XEXP (x3, 0);
6677 : if (GET_CODE (x26) != NEG)
6678 : return -1;
6679 : x34 = XEXP (x3, 2);
6680 : if (GET_CODE (x34) != NEG)
6681 : return -1;
6682 : x5 = XEXP (x1, 0);
6683 : operands[0] = x5;
6684 : x33 = XEXP (x26, 0);
6685 : operands[1] = x33;
6686 : x30 = XEXP (x3, 1);
6687 : operands[2] = x30;
6688 : x35 = XEXP (x34, 0);
6689 : operands[3] = x35;
6690 : x4 = XVECEXP (x2, 0, 1);
6691 : operands[4] = x4;
6692 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
6693 : return -1;
6694 : switch (GET_MODE (operands[0]))
6695 : {
6696 : case E_SFmode:
6697 : if (pattern1367 (x2,
6698 : E_SFmode) != 0
6699 : || !(
6700 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6701 : (TARGET_AVX512F) &&
6702 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6703 : (TARGET_FMA || TARGET_FMA4)))
6704 : return -1;
6705 : return 4060; /* *fma_fnmsub_sf */
6706 :
6707 : case E_DFmode:
6708 : if (pattern1367 (x2,
6709 : E_DFmode) != 0
6710 : || !(
6711 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6712 : (TARGET_AVX512F) &&
6713 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6714 : (TARGET_FMA || TARGET_FMA4)))
6715 : return -1;
6716 : return 4062; /* *fma_fnmsub_df */
6717 :
6718 : default:
6719 : return -1;
6720 : }
6721 :
6722 : default:
6723 : return -1;
6724 : }
6725 : }
6726 :
6727 : int
6728 : recog_26 (rtx x1 ATTRIBUTE_UNUSED,
6729 : rtx_insn *insn ATTRIBUTE_UNUSED,
6730 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6731 : {
6732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6733 : rtx x2, x3, x4, x5, x6, x7, x8;
6734 : int res ATTRIBUTE_UNUSED;
6735 : x2 = XEXP (x1, 1);
6736 : switch (GET_CODE (x2))
6737 : {
6738 : case SIGN_EXTRACT:
6739 : res = recog_22 (x1, insn, pnum_clobbers);
6740 : if (res >= 0)
6741 : return res;
6742 : break;
6743 :
6744 : case ZERO_EXTRACT:
6745 : res = recog_23 (x1, insn, pnum_clobbers);
6746 : if (res >= 0)
6747 : return res;
6748 : break;
6749 :
6750 : case LSHIFTRT:
6751 : res = recog_24 (x1, insn, pnum_clobbers);
6752 : if (res >= 0)
6753 : return res;
6754 : break;
6755 :
6756 : case ASHIFTRT:
6757 : res = recog_25 (x1, insn, pnum_clobbers);
6758 : if (res >= 0)
6759 : return res;
6760 : break;
6761 :
6762 : default:
6763 : break;
6764 : }
6765 : x3 = XEXP (x1, 0);
6766 : if (GET_CODE (x3) != ZERO_EXTRACT)
6767 : return -1;
6768 : x4 = XEXP (x3, 1);
6769 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6770 : return -1;
6771 : x5 = XEXP (x3, 2);
6772 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6773 : return -1;
6774 : x6 = XEXP (x3, 0);
6775 : operands[0] = x6;
6776 : if (!int248_register_operand (operands[0], E_VOIDmode))
6777 : return -1;
6778 : x7 = XEXP (x2, 0);
6779 : switch (GET_CODE (x7))
6780 : {
6781 : case REG:
6782 : case SUBREG:
6783 : operands[1] = x7;
6784 : if (int248_register_operand (operands[1], E_VOIDmode))
6785 : {
6786 : operands[2] = x2;
6787 : switch (GET_MODE (x3))
6788 : {
6789 : case E_HImode:
6790 : if (extract_high_operator (operands[2], E_HImode))
6791 : return 138; /* *insvqi_2 */
6792 : break;
6793 :
6794 : case E_SImode:
6795 : if (extract_high_operator (operands[2], E_SImode))
6796 : return 139; /* *insvqi_2 */
6797 : break;
6798 :
6799 : case E_DImode:
6800 : if (extract_high_operator (operands[2], E_DImode)
6801 : &&
6802 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6803 : (TARGET_64BIT))
6804 : return 140; /* *insvqi_2 */
6805 : break;
6806 :
6807 : default:
6808 : break;
6809 : }
6810 : }
6811 : break;
6812 :
6813 : case AND:
6814 : switch (pattern746 (x1, pnum_clobbers))
6815 : {
6816 : case 0:
6817 : if (
6818 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6819 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6820 : {
6821 : *pnum_clobbers = 1;
6822 : return 828; /* *andqi_exthi_3 */
6823 : }
6824 : break;
6825 :
6826 : case 1:
6827 : if (
6828 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6829 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6830 : {
6831 : *pnum_clobbers = 1;
6832 : return 831; /* *andqi_extsi_3 */
6833 : }
6834 : break;
6835 :
6836 : case 2:
6837 : if ((
6838 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6839 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
6840 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6841 : (TARGET_64BIT)))
6842 : {
6843 : *pnum_clobbers = 1;
6844 : return 834; /* *andqi_extdi_3 */
6845 : }
6846 : break;
6847 :
6848 : default:
6849 : break;
6850 : }
6851 : break;
6852 :
6853 : case IOR:
6854 : switch (pattern746 (x1, pnum_clobbers))
6855 : {
6856 : case 0:
6857 : if (
6858 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6859 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6860 : {
6861 : *pnum_clobbers = 1;
6862 : return 829; /* *iorqi_exthi_3 */
6863 : }
6864 : break;
6865 :
6866 : case 1:
6867 : if (
6868 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6869 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6870 : {
6871 : *pnum_clobbers = 1;
6872 : return 832; /* *iorqi_extsi_3 */
6873 : }
6874 : break;
6875 :
6876 : case 2:
6877 : if ((
6878 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6879 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
6880 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6881 : (TARGET_64BIT)))
6882 : {
6883 : *pnum_clobbers = 1;
6884 : return 835; /* *iorqi_extdi_3 */
6885 : }
6886 : break;
6887 :
6888 : default:
6889 : break;
6890 : }
6891 : break;
6892 :
6893 : case XOR:
6894 : switch (pattern746 (x1, pnum_clobbers))
6895 : {
6896 : case 0:
6897 : if (
6898 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6899 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6900 : {
6901 : *pnum_clobbers = 1;
6902 : return 830; /* *xorqi_exthi_3 */
6903 : }
6904 : break;
6905 :
6906 : case 1:
6907 : if (
6908 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6909 : (GET_MODE (operands[1]) == GET_MODE (operands[2])))
6910 : {
6911 : *pnum_clobbers = 1;
6912 : return 833; /* *xorqi_extsi_3 */
6913 : }
6914 : break;
6915 :
6916 : case 2:
6917 : if ((
6918 : #line 14037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6919 : (GET_MODE (operands[1]) == GET_MODE (operands[2])) &&
6920 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6921 : (TARGET_64BIT)))
6922 : {
6923 : *pnum_clobbers = 1;
6924 : return 836; /* *xorqi_extdi_3 */
6925 : }
6926 : break;
6927 :
6928 : default:
6929 : break;
6930 : }
6931 : break;
6932 :
6933 : default:
6934 : break;
6935 : }
6936 : x8 = XEXP (x2, 1);
6937 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
6938 : return -1;
6939 : operands[1] = x7;
6940 : switch (GET_CODE (x2))
6941 : {
6942 : case LSHIFTRT:
6943 : switch (pattern975 (x1))
6944 : {
6945 : case 0:
6946 : return 141; /* *insvqi_3 */
6947 :
6948 : case 1:
6949 : return 143; /* *insvqi_3 */
6950 :
6951 : case 2:
6952 : if (!
6953 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6954 : (TARGET_64BIT))
6955 : return -1;
6956 : return 145; /* *insvqi_3 */
6957 :
6958 : default:
6959 : return -1;
6960 : }
6961 :
6962 : case ASHIFTRT:
6963 : switch (pattern975 (x1))
6964 : {
6965 : case 0:
6966 : return 142; /* *insvqi_3 */
6967 :
6968 : case 1:
6969 : return 144; /* *insvqi_3 */
6970 :
6971 : case 2:
6972 : if (!
6973 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6974 : (TARGET_64BIT))
6975 : return -1;
6976 : return 146; /* *insvqi_3 */
6977 :
6978 : default:
6979 : return -1;
6980 : }
6981 :
6982 : default:
6983 : return -1;
6984 : }
6985 : }
6986 :
6987 : int
6988 : recog_29 (rtx x1 ATTRIBUTE_UNUSED,
6989 : rtx_insn *insn ATTRIBUTE_UNUSED,
6990 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6991 : {
6992 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6993 : rtx x2, x3, x4, x5, x6;
6994 : int res ATTRIBUTE_UNUSED;
6995 : if (!register_operand (operands[0], E_HImode))
6996 : return -1;
6997 : x2 = XEXP (x1, 1);
6998 : if (GET_MODE (x2) != E_HImode)
6999 : return -1;
7000 : x3 = XEXP (x2, 0);
7001 : switch (XVECLEN (x3, 0))
7002 : {
7003 : case 3:
7004 : x4 = XVECEXP (x3, 0, 0);
7005 : operands[1] = x4;
7006 : x5 = XVECEXP (x3, 0, 1);
7007 : operands[2] = x5;
7008 : x6 = XVECEXP (x3, 0, 2);
7009 : operands[3] = x6;
7010 : switch (XINT (x3, 1))
7011 : {
7012 : case 60:
7013 : switch (pattern989 (x3))
7014 : {
7015 : case 0:
7016 : if (!
7017 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7018 : (TARGET_AVX512F
7019 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7020 : && (GET_MODE_NUNITS (V16SImode)
7021 : < GET_MODE_PRECISION (HImode))))
7022 : return -1;
7023 : return 3356; /* *avx512f_cmpv16si3_zero_extendhi */
7024 :
7025 : case 1:
7026 : if (!(
7027 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7028 : (TARGET_AVX512F
7029 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7030 : && (GET_MODE_NUNITS (V16HFmode)
7031 : < GET_MODE_PRECISION (HImode))) &&
7032 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7033 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7034 : return -1;
7035 : return 3377; /* *avx512vl_cmpv16hf3_zero_extendhi */
7036 :
7037 : case 2:
7038 : if (!
7039 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7040 : (TARGET_AVX512F
7041 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7042 : && (GET_MODE_NUNITS (V16SFmode)
7043 : < GET_MODE_PRECISION (HImode))))
7044 : return -1;
7045 : return 3383; /* *avx512f_cmpv16sf3_zero_extendhi */
7046 :
7047 : case 3:
7048 : if (!(
7049 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7050 : (TARGET_AVX512BW
7051 : && (GET_MODE_NUNITS (V16QImode)
7052 : < GET_MODE_PRECISION (HImode))) &&
7053 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7054 : (TARGET_AVX512VL)))
7055 : return -1;
7056 : return 3503; /* *avx512vl_cmpv16qi3_zero_extendhi */
7057 :
7058 : case 4:
7059 : if (!(
7060 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7061 : (TARGET_AVX512BW
7062 : && (GET_MODE_NUNITS (V16HImode)
7063 : < GET_MODE_PRECISION (HImode))) &&
7064 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7065 : (TARGET_AVX512VL)))
7066 : return -1;
7067 : return 3512; /* *avx512vl_cmpv16hi3_zero_extendhi */
7068 :
7069 : case 5:
7070 : if (!(
7071 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7072 : (TARGET_AVX512F
7073 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7074 : && (GET_MODE_NUNITS (V8SImode)
7075 : < GET_MODE_PRECISION (HImode))) &&
7076 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7077 : (TARGET_AVX512VL)))
7078 : return -1;
7079 : return 3359; /* *avx512vl_cmpv8si3_zero_extendhi */
7080 :
7081 : case 6:
7082 : if (!(
7083 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7084 : (TARGET_AVX512F
7085 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7086 : && (GET_MODE_NUNITS (V4SImode)
7087 : < GET_MODE_PRECISION (HImode))) &&
7088 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7089 : (TARGET_AVX512VL)))
7090 : return -1;
7091 : return 3362; /* *avx512vl_cmpv4si3_zero_extendhi */
7092 :
7093 : case 7:
7094 : if (!
7095 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7096 : (TARGET_AVX512F
7097 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7098 : && (GET_MODE_NUNITS (V8DImode)
7099 : < GET_MODE_PRECISION (HImode))))
7100 : return -1;
7101 : return 3365; /* *avx512f_cmpv8di3_zero_extendhi */
7102 :
7103 : case 8:
7104 : if (!(
7105 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7106 : (TARGET_AVX512F
7107 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7108 : && (GET_MODE_NUNITS (V4DImode)
7109 : < GET_MODE_PRECISION (HImode))) &&
7110 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7111 : (TARGET_AVX512VL)))
7112 : return -1;
7113 : return 3368; /* *avx512vl_cmpv4di3_zero_extendhi */
7114 :
7115 : case 9:
7116 : if (!(
7117 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7118 : (TARGET_AVX512F
7119 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7120 : && (GET_MODE_NUNITS (V2DImode)
7121 : < GET_MODE_PRECISION (HImode))) &&
7122 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7123 : (TARGET_AVX512VL)))
7124 : return -1;
7125 : return 3371; /* *avx512vl_cmpv2di3_zero_extendhi */
7126 :
7127 : case 10:
7128 : if (!(
7129 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7130 : (TARGET_AVX512F
7131 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7132 : && (GET_MODE_NUNITS (V8HFmode)
7133 : < GET_MODE_PRECISION (HImode))) &&
7134 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7135 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
7136 : return -1;
7137 : return 3380; /* *avx512fp16_cmpv8hf3_zero_extendhi */
7138 :
7139 : case 11:
7140 : if (!(
7141 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7142 : (TARGET_AVX512F
7143 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7144 : && (GET_MODE_NUNITS (V8SFmode)
7145 : < GET_MODE_PRECISION (HImode))) &&
7146 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7147 : (TARGET_AVX512VL)))
7148 : return -1;
7149 : return 3386; /* *avx512vl_cmpv8sf3_zero_extendhi */
7150 :
7151 : case 12:
7152 : if (!(
7153 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7154 : (TARGET_AVX512F
7155 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7156 : && (GET_MODE_NUNITS (V4SFmode)
7157 : < GET_MODE_PRECISION (HImode))) &&
7158 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7159 : (TARGET_AVX512VL)))
7160 : return -1;
7161 : return 3389; /* *avx512vl_cmpv4sf3_zero_extendhi */
7162 :
7163 : case 13:
7164 : if (!
7165 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7166 : (TARGET_AVX512F
7167 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7168 : && (GET_MODE_NUNITS (V8DFmode)
7169 : < GET_MODE_PRECISION (HImode))))
7170 : return -1;
7171 : return 3392; /* *avx512f_cmpv8df3_zero_extendhi */
7172 :
7173 : case 14:
7174 : if (!(
7175 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7176 : (TARGET_AVX512F
7177 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7178 : && (GET_MODE_NUNITS (V4DFmode)
7179 : < GET_MODE_PRECISION (HImode))) &&
7180 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7181 : (TARGET_AVX512VL)))
7182 : return -1;
7183 : return 3395; /* *avx512vl_cmpv4df3_zero_extendhi */
7184 :
7185 : case 15:
7186 : if (!(
7187 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7188 : (TARGET_AVX512F
7189 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7190 : && (GET_MODE_NUNITS (V2DFmode)
7191 : < GET_MODE_PRECISION (HImode))) &&
7192 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7193 : (TARGET_AVX512VL)))
7194 : return -1;
7195 : return 3398; /* *avx512vl_cmpv2df3_zero_extendhi */
7196 :
7197 : case 16:
7198 : if (!(
7199 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7200 : (TARGET_AVX512BW
7201 : && (GET_MODE_NUNITS (V8HImode)
7202 : < GET_MODE_PRECISION (HImode))) &&
7203 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7204 : (TARGET_AVX512VL)))
7205 : return -1;
7206 : return 3515; /* *avx512vl_cmpv8hi3_zero_extendhi */
7207 :
7208 : case 17:
7209 : if (!(
7210 : #line 4698 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7211 : (TARGET_AVX512F
7212 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7213 : && (GET_MODE_NUNITS (V32HFmode)
7214 : < GET_MODE_PRECISION (HImode))) &&
7215 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7216 : (TARGET_AVX512FP16)))
7217 : return -1;
7218 : return 3374; /* *avx512bw_cmpv32hf3_zero_extendhi */
7219 :
7220 : case 18:
7221 : if (!(
7222 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7223 : (TARGET_AVX512BW
7224 : && (GET_MODE_NUNITS (V32QImode)
7225 : < GET_MODE_PRECISION (HImode))) &&
7226 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7227 : (TARGET_AVX512VL)))
7228 : return -1;
7229 : return 3506; /* *avx512vl_cmpv32qi3_zero_extendhi */
7230 :
7231 : case 19:
7232 : if (!
7233 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7234 : (TARGET_AVX512BW
7235 : && (GET_MODE_NUNITS (V32HImode)
7236 : < GET_MODE_PRECISION (HImode))))
7237 : return -1;
7238 : return 3509; /* *avx512bw_cmpv32hi3_zero_extendhi */
7239 :
7240 : case 20:
7241 : if (!
7242 : #line 4891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7243 : (TARGET_AVX512BW
7244 : && (GET_MODE_NUNITS (V64QImode)
7245 : < GET_MODE_PRECISION (HImode))))
7246 : return -1;
7247 : return 3500; /* *avx512bw_cmpv64qi3_zero_extendhi */
7248 :
7249 : default:
7250 : return -1;
7251 : }
7252 :
7253 : case 158:
7254 : if (!const_0_to_7_operand (operands[3], E_SImode))
7255 : return -1;
7256 : switch (pattern1102 (x3))
7257 : {
7258 : case 0:
7259 : if (!
7260 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7261 : (TARGET_AVX512BW
7262 : && (GET_MODE_NUNITS (V64QImode)
7263 : < GET_MODE_PRECISION (HImode))))
7264 : return -1;
7265 : return 3596; /* *avx512bw_ucmpv64qi3_zero_extendhi */
7266 :
7267 : case 1:
7268 : if (!(
7269 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7270 : (TARGET_AVX512BW
7271 : && (GET_MODE_NUNITS (V16QImode)
7272 : < GET_MODE_PRECISION (HImode))) &&
7273 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7274 : (TARGET_AVX512VL)))
7275 : return -1;
7276 : return 3599; /* *avx512vl_ucmpv16qi3_zero_extendhi */
7277 :
7278 : case 2:
7279 : if (!(
7280 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7281 : (TARGET_AVX512BW
7282 : && (GET_MODE_NUNITS (V16HImode)
7283 : < GET_MODE_PRECISION (HImode))) &&
7284 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7285 : (TARGET_AVX512VL)))
7286 : return -1;
7287 : return 3608; /* *avx512vl_ucmpv16hi3_zero_extendhi */
7288 :
7289 : case 3:
7290 : if (!
7291 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7292 : (TARGET_AVX512F
7293 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7294 : && (GET_MODE_NUNITS (V16SImode)
7295 : < GET_MODE_PRECISION (HImode))))
7296 : return -1;
7297 : return 3680; /* *avx512f_ucmpv16si3_zero_extendhi */
7298 :
7299 : case 4:
7300 : if (!(
7301 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7302 : (TARGET_AVX512BW
7303 : && (GET_MODE_NUNITS (V32QImode)
7304 : < GET_MODE_PRECISION (HImode))) &&
7305 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7306 : (TARGET_AVX512VL)))
7307 : return -1;
7308 : return 3602; /* *avx512vl_ucmpv32qi3_zero_extendhi */
7309 :
7310 : case 5:
7311 : if (!
7312 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7313 : (TARGET_AVX512BW
7314 : && (GET_MODE_NUNITS (V32HImode)
7315 : < GET_MODE_PRECISION (HImode))))
7316 : return -1;
7317 : return 3605; /* *avx512bw_ucmpv32hi3_zero_extendhi */
7318 :
7319 : case 6:
7320 : if (!(
7321 : #line 5013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7322 : (TARGET_AVX512BW
7323 : && (GET_MODE_NUNITS (V8HImode)
7324 : < GET_MODE_PRECISION (HImode))) &&
7325 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7326 : (TARGET_AVX512VL)))
7327 : return -1;
7328 : return 3611; /* *avx512vl_ucmpv8hi3_zero_extendhi */
7329 :
7330 : case 7:
7331 : if (!(
7332 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7333 : (TARGET_AVX512F
7334 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7335 : && (GET_MODE_NUNITS (V8SImode)
7336 : < GET_MODE_PRECISION (HImode))) &&
7337 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7338 : (TARGET_AVX512VL)))
7339 : return -1;
7340 : return 3681; /* *avx512vl_ucmpv8si3_zero_extendhi */
7341 :
7342 : case 8:
7343 : if (!(
7344 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7345 : (TARGET_AVX512F
7346 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7347 : && (GET_MODE_NUNITS (V4SImode)
7348 : < GET_MODE_PRECISION (HImode))) &&
7349 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7350 : (TARGET_AVX512VL)))
7351 : return -1;
7352 : return 3682; /* *avx512vl_ucmpv4si3_zero_extendhi */
7353 :
7354 : case 9:
7355 : if (!
7356 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7357 : (TARGET_AVX512F
7358 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7359 : && (GET_MODE_NUNITS (V8DImode)
7360 : < GET_MODE_PRECISION (HImode))))
7361 : return -1;
7362 : return 3683; /* *avx512f_ucmpv8di3_zero_extendhi */
7363 :
7364 : case 10:
7365 : if (!(
7366 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7367 : (TARGET_AVX512F
7368 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7369 : && (GET_MODE_NUNITS (V4DImode)
7370 : < GET_MODE_PRECISION (HImode))) &&
7371 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7372 : (TARGET_AVX512VL)))
7373 : return -1;
7374 : return 3684; /* *avx512vl_ucmpv4di3_zero_extendhi */
7375 :
7376 : case 11:
7377 : if (!(
7378 : #line 5104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7379 : (TARGET_AVX512F
7380 : && (!VALID_MASK_AVX512BW_MODE (HImode) || TARGET_AVX512BW)
7381 : && (GET_MODE_NUNITS (V2DImode)
7382 : < GET_MODE_PRECISION (HImode))) &&
7383 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7384 : (TARGET_AVX512VL)))
7385 : return -1;
7386 : return 3685; /* *avx512vl_ucmpv2di3_zero_extendhi */
7387 :
7388 : default:
7389 : return -1;
7390 : }
7391 :
7392 : default:
7393 : return -1;
7394 : }
7395 :
7396 : case 2:
7397 : x4 = XVECEXP (x3, 0, 0);
7398 : operands[1] = x4;
7399 : x5 = XVECEXP (x3, 0, 1);
7400 : operands[2] = x5;
7401 : switch (XINT (x3, 1))
7402 : {
7403 : case 159:
7404 : switch (GET_MODE (x3))
7405 : {
7406 : case E_DImode:
7407 : if (!register_operand (operands[1], E_V64QImode)
7408 : || !nonimmediate_operand (operands[2], E_V64QImode)
7409 : || !(
7410 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7411 : (TARGET_AVX512BW
7412 : && (2
7413 : > GET_MODE_SIZE (DImode))) &&
7414 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7415 : (TARGET_AVX512BW)))
7416 : return -1;
7417 : return 8234; /* *avx512bw_testmv64qi3_zext */
7418 :
7419 : case E_SImode:
7420 : switch (pattern882 ())
7421 : {
7422 : case 0:
7423 : if (!(
7424 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7425 : (TARGET_AVX512BW
7426 : && (2
7427 : > GET_MODE_SIZE (SImode))) &&
7428 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7429 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7430 : return -1;
7431 : return 8237; /* *avx512vl_testmv32qi3_zext */
7432 :
7433 : case 1:
7434 : if (!(
7435 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7436 : (TARGET_AVX512BW
7437 : && (2
7438 : > GET_MODE_SIZE (SImode))) &&
7439 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7440 : (TARGET_AVX512BW)))
7441 : return -1;
7442 : return 8243; /* *avx512bw_testmv32hi3_zext */
7443 :
7444 : default:
7445 : return -1;
7446 : }
7447 :
7448 : case E_HImode:
7449 : switch (pattern748 ())
7450 : {
7451 : case 0:
7452 : if (!(
7453 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7454 : (TARGET_AVX512BW
7455 : && (2
7456 : > GET_MODE_SIZE (HImode))) &&
7457 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7458 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7459 : return -1;
7460 : return 8240; /* *avx512vl_testmv16qi3_zext */
7461 :
7462 : case 1:
7463 : if (!(
7464 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7465 : (TARGET_AVX512BW
7466 : && (2
7467 : > GET_MODE_SIZE (HImode))) &&
7468 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7469 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7470 : return -1;
7471 : return 8246; /* *avx512vl_testmv16hi3_zext */
7472 :
7473 : case 2:
7474 : if (!
7475 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7476 : (TARGET_AVX512BW
7477 : && (2
7478 : > GET_MODE_SIZE (HImode))))
7479 : return -1;
7480 : return 8252; /* *avx512f_testmv16si3_zext */
7481 :
7482 : default:
7483 : return -1;
7484 : }
7485 :
7486 : case E_QImode:
7487 : switch (pattern749 ())
7488 : {
7489 : case 0:
7490 : if (!(
7491 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7492 : (TARGET_AVX512BW
7493 : && (2
7494 : > GET_MODE_SIZE (QImode))) &&
7495 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7496 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7497 : return -1;
7498 : return 8249; /* *avx512vl_testmv8hi3_zext */
7499 :
7500 : case 1:
7501 : if (!(
7502 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7503 : (TARGET_AVX512BW
7504 : && (2
7505 : > GET_MODE_SIZE (QImode))) &&
7506 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7507 : (TARGET_AVX512VL)))
7508 : return -1;
7509 : return 8255; /* *avx512vl_testmv8si3_zext */
7510 :
7511 : case 2:
7512 : if (!(
7513 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7514 : (TARGET_AVX512BW
7515 : && (2
7516 : > GET_MODE_SIZE (QImode))) &&
7517 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7518 : (TARGET_AVX512VL)))
7519 : return -1;
7520 : return 8258; /* *avx512vl_testmv4si3_zext */
7521 :
7522 : case 3:
7523 : if (!
7524 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7525 : (TARGET_AVX512BW
7526 : && (2
7527 : > GET_MODE_SIZE (QImode))))
7528 : return -1;
7529 : return 8261; /* *avx512f_testmv8di3_zext */
7530 :
7531 : case 4:
7532 : if (!(
7533 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7534 : (TARGET_AVX512BW
7535 : && (2
7536 : > GET_MODE_SIZE (QImode))) &&
7537 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7538 : (TARGET_AVX512VL)))
7539 : return -1;
7540 : return 8264; /* *avx512vl_testmv4di3_zext */
7541 :
7542 : case 5:
7543 : if (!(
7544 : #line 19542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7545 : (TARGET_AVX512BW
7546 : && (2
7547 : > GET_MODE_SIZE (QImode))) &&
7548 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7549 : (TARGET_AVX512VL)))
7550 : return -1;
7551 : return 8267; /* *avx512vl_testmv2di3_zext */
7552 :
7553 : default:
7554 : return -1;
7555 : }
7556 :
7557 : default:
7558 : return -1;
7559 : }
7560 :
7561 : case 160:
7562 : switch (GET_MODE (x3))
7563 : {
7564 : case E_DImode:
7565 : if (!register_operand (operands[1], E_V64QImode)
7566 : || !nonimmediate_operand (operands[2], E_V64QImode)
7567 : || !(
7568 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7569 : (TARGET_AVX512BW
7570 : && (2
7571 : > GET_MODE_SIZE (DImode))) &&
7572 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7573 : (TARGET_AVX512BW)))
7574 : return -1;
7575 : return 8306; /* *avx512bw_testnmv64qi3_zext */
7576 :
7577 : case E_SImode:
7578 : switch (pattern882 ())
7579 : {
7580 : case 0:
7581 : if (!(
7582 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7583 : (TARGET_AVX512BW
7584 : && (2
7585 : > GET_MODE_SIZE (SImode))) &&
7586 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7587 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7588 : return -1;
7589 : return 8309; /* *avx512vl_testnmv32qi3_zext */
7590 :
7591 : case 1:
7592 : if (!(
7593 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7594 : (TARGET_AVX512BW
7595 : && (2
7596 : > GET_MODE_SIZE (SImode))) &&
7597 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7598 : (TARGET_AVX512BW)))
7599 : return -1;
7600 : return 8315; /* *avx512bw_testnmv32hi3_zext */
7601 :
7602 : default:
7603 : return -1;
7604 : }
7605 :
7606 : case E_HImode:
7607 : switch (pattern748 ())
7608 : {
7609 : case 0:
7610 : if (!(
7611 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7612 : (TARGET_AVX512BW
7613 : && (2
7614 : > GET_MODE_SIZE (HImode))) &&
7615 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7616 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7617 : return -1;
7618 : return 8312; /* *avx512vl_testnmv16qi3_zext */
7619 :
7620 : case 1:
7621 : if (!(
7622 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7623 : (TARGET_AVX512BW
7624 : && (2
7625 : > GET_MODE_SIZE (HImode))) &&
7626 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7627 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7628 : return -1;
7629 : return 8318; /* *avx512vl_testnmv16hi3_zext */
7630 :
7631 : case 2:
7632 : if (!
7633 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7634 : (TARGET_AVX512BW
7635 : && (2
7636 : > GET_MODE_SIZE (HImode))))
7637 : return -1;
7638 : return 8324; /* *avx512f_testnmv16si3_zext */
7639 :
7640 : default:
7641 : return -1;
7642 : }
7643 :
7644 : case E_QImode:
7645 : switch (pattern749 ())
7646 : {
7647 : case 0:
7648 : if (!(
7649 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7650 : (TARGET_AVX512BW
7651 : && (2
7652 : > GET_MODE_SIZE (QImode))) &&
7653 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7654 : (TARGET_AVX512VL && TARGET_AVX512BW)))
7655 : return -1;
7656 : return 8321; /* *avx512vl_testnmv8hi3_zext */
7657 :
7658 : case 1:
7659 : if (!(
7660 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7661 : (TARGET_AVX512BW
7662 : && (2
7663 : > GET_MODE_SIZE (QImode))) &&
7664 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7665 : (TARGET_AVX512VL)))
7666 : return -1;
7667 : return 8327; /* *avx512vl_testnmv8si3_zext */
7668 :
7669 : case 2:
7670 : if (!(
7671 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7672 : (TARGET_AVX512BW
7673 : && (2
7674 : > GET_MODE_SIZE (QImode))) &&
7675 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7676 : (TARGET_AVX512VL)))
7677 : return -1;
7678 : return 8330; /* *avx512vl_testnmv4si3_zext */
7679 :
7680 : case 3:
7681 : if (!
7682 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7683 : (TARGET_AVX512BW
7684 : && (2
7685 : > GET_MODE_SIZE (QImode))))
7686 : return -1;
7687 : return 8333; /* *avx512f_testnmv8di3_zext */
7688 :
7689 : case 4:
7690 : if (!(
7691 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7692 : (TARGET_AVX512BW
7693 : && (2
7694 : > GET_MODE_SIZE (QImode))) &&
7695 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7696 : (TARGET_AVX512VL)))
7697 : return -1;
7698 : return 8336; /* *avx512vl_testnmv4di3_zext */
7699 :
7700 : case 5:
7701 : if (!(
7702 : #line 19572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7703 : (TARGET_AVX512BW
7704 : && (2
7705 : > GET_MODE_SIZE (QImode))) &&
7706 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7707 : (TARGET_AVX512VL)))
7708 : return -1;
7709 : return 8339; /* *avx512vl_testnmv2di3_zext */
7710 :
7711 : default:
7712 : return -1;
7713 : }
7714 :
7715 : default:
7716 : return -1;
7717 : }
7718 :
7719 : default:
7720 : return -1;
7721 : }
7722 :
7723 : default:
7724 : return -1;
7725 : }
7726 : }
7727 :
7728 : int
7729 : recog_56 (rtx x1 ATTRIBUTE_UNUSED,
7730 : rtx_insn *insn ATTRIBUTE_UNUSED,
7731 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7732 : {
7733 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7734 : rtx x2;
7735 : int res ATTRIBUTE_UNUSED;
7736 : switch (pattern88 (x1, pnum_clobbers))
7737 : {
7738 : case 0:
7739 : switch (GET_MODE (operands[0]))
7740 : {
7741 : case E_TImode:
7742 : x2 = XEXP (x1, 1);
7743 : if (pattern79 (x2, pnum_clobbers) != 0
7744 : || !(
7745 : #line 6622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7746 : (ix86_binary_operator_ok (PLUS, TImode, operands, TARGET_APX_NDD)) &&
7747 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7748 : (TARGET_64BIT)))
7749 : return -1;
7750 : *pnum_clobbers = 1;
7751 : return 271; /* *addti3_doubleword */
7752 :
7753 : case E_HImode:
7754 : x2 = XEXP (x1, 1);
7755 : if (pattern80 (x2,
7756 : E_HImode) != 0)
7757 : return -1;
7758 : if (
7759 : #line 6994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7760 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
7761 : && TARGET_APX_NF))
7762 : return 301; /* *addhi_1_nf */
7763 : if (pnum_clobbers == NULL
7764 : || !
7765 : #line 6994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7766 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
7767 : && true))
7768 : return -1;
7769 : *pnum_clobbers = 1;
7770 : return 302; /* *addhi_1 */
7771 :
7772 : case E_QImode:
7773 : x2 = XEXP (x1, 1);
7774 : if (pattern80 (x2,
7775 : E_QImode) != 0)
7776 : return -1;
7777 : if (
7778 : #line 7055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7779 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
7780 : && TARGET_APX_NF))
7781 : return 303; /* *addqi_1_nf */
7782 : if (pnum_clobbers == NULL
7783 : || !
7784 : #line 7055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7785 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
7786 : && true))
7787 : return -1;
7788 : *pnum_clobbers = 1;
7789 : return 304; /* *addqi_1 */
7790 :
7791 : case E_HFmode:
7792 : x2 = XEXP (x1, 1);
7793 : if (pattern3 (x2,
7794 : E_HFmode) != 0
7795 : || !
7796 : #line 24497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7797 : (TARGET_AVX512FP16
7798 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7799 : return -1;
7800 : return 1708; /* *addhf */
7801 :
7802 : case E_V8QImode:
7803 : x2 = XEXP (x1, 1);
7804 : if (pattern6 (x2,
7805 : E_V8QImode) != 0
7806 : || !
7807 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7808 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7809 : && ix86_binary_operator_ok (PLUS, V8QImode, operands)))
7810 : return -1;
7811 : return 2178; /* *mmx_addv8qi3 */
7812 :
7813 : case E_V4HImode:
7814 : x2 = XEXP (x1, 1);
7815 : if (pattern6 (x2,
7816 : E_V4HImode) != 0
7817 : || !
7818 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7819 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7820 : && ix86_binary_operator_ok (PLUS, V4HImode, operands)))
7821 : return -1;
7822 : return 2180; /* *mmx_addv4hi3 */
7823 :
7824 : case E_V2SImode:
7825 : x2 = XEXP (x1, 1);
7826 : if (pattern6 (x2,
7827 : E_V2SImode) != 0
7828 : || !
7829 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7830 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7831 : && ix86_binary_operator_ok (PLUS, V2SImode, operands)))
7832 : return -1;
7833 : return 2182; /* *mmx_addv2si3 */
7834 :
7835 : case E_V1DImode:
7836 : x2 = XEXP (x1, 1);
7837 : if (pattern6 (x2,
7838 : E_V1DImode) != 0
7839 : || !(
7840 : #line 3242 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7841 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7842 : && ix86_binary_operator_ok (PLUS, V1DImode, operands)) &&
7843 : #line 50 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7844 : (TARGET_SSE2)))
7845 : return -1;
7846 : return 2184; /* *mmx_addv1di3 */
7847 :
7848 : case E_V4QImode:
7849 : x2 = XEXP (x1, 1);
7850 : if (pattern5 (x2,
7851 : E_V4QImode) != 0
7852 : || !
7853 : #line 3258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7854 : (TARGET_SSE2))
7855 : return -1;
7856 : return 2186; /* addv4qi3 */
7857 :
7858 : case E_V2HImode:
7859 : x2 = XEXP (x1, 1);
7860 : if (pattern5 (x2,
7861 : E_V2HImode) != 0
7862 : || !
7863 : #line 3258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7864 : (TARGET_SSE2))
7865 : return -1;
7866 : return 2188; /* addv2hi3 */
7867 :
7868 : case E_V2QImode:
7869 : if (pnum_clobbers == NULL)
7870 : return -1;
7871 : x2 = XEXP (x1, 1);
7872 : if (pattern5 (x2,
7873 : E_V2QImode) != 0
7874 : || !
7875 : #line 3272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7876 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
7877 : return -1;
7878 : *pnum_clobbers = 1;
7879 : return 2190; /* addv2qi3 */
7880 :
7881 : default:
7882 : return -1;
7883 : }
7884 :
7885 : case 1:
7886 : if (!
7887 : #line 7135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7888 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7889 : return -1;
7890 : *pnum_clobbers = 1;
7891 : return 305; /* *addqi_1_slp */
7892 :
7893 : case 2:
7894 : if (!
7895 : #line 7135 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7896 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7897 : return -1;
7898 : *pnum_clobbers = 1;
7899 : return 306; /* *addhi_1_slp */
7900 :
7901 : default:
7902 : return -1;
7903 : }
7904 : }
7905 :
7906 : int
7907 : recog_64 (rtx x1 ATTRIBUTE_UNUSED,
7908 : rtx_insn *insn ATTRIBUTE_UNUSED,
7909 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7910 : {
7911 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7912 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7913 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
7914 : int res ATTRIBUTE_UNUSED;
7915 : x2 = XEXP (x1, 0);
7916 : operands[0] = x2;
7917 : x3 = XEXP (x1, 1);
7918 : x4 = XEXP (x3, 0);
7919 : switch (GET_CODE (x4))
7920 : {
7921 : case PLUS:
7922 : if (pattern102 (x3,
7923 : E_V2SFmode,
7924 : E_SFmode) != 0)
7925 : return -1;
7926 : x5 = XEXP (x3, 1);
7927 : x6 = XEXP (x5, 0);
7928 : x7 = XEXP (x6, 0);
7929 : operands[2] = x7;
7930 : if (!nonimmediate_operand (operands[2], E_V2SFmode)
7931 : || pattern1880 (x3) != 0
7932 : || !
7933 : #line 1019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7934 : (TARGET_3DNOW
7935 : && INTVAL (operands[3]) != INTVAL (operands[4])
7936 : && INTVAL (operands[5]) != INTVAL (operands[6])))
7937 : return -1;
7938 : return 2118; /* *mmx_haddv2sf3 */
7939 :
7940 : case MINUS:
7941 : if (pattern103 (x4,
7942 : E_SFmode) != 0
7943 : || !register_operand (operands[0], E_V2SFmode)
7944 : || GET_MODE (x3) != E_V2SFmode)
7945 : return -1;
7946 : x8 = XEXP (x4, 0);
7947 : x9 = XEXP (x8, 0);
7948 : operands[1] = x9;
7949 : if (!register_operand (operands[1], E_V2SFmode))
7950 : return -1;
7951 : x5 = XEXP (x3, 1);
7952 : if (GET_MODE (x5) != E_SFmode)
7953 : return -1;
7954 : x10 = XEXP (x4, 1);
7955 : x11 = XEXP (x10, 0);
7956 : if (!rtx_equal_p (x11, operands[1]))
7957 : return -1;
7958 : switch (GET_CODE (x5))
7959 : {
7960 : case MINUS:
7961 : if (pattern1567 (x5,
7962 : E_SFmode) != 0)
7963 : return -1;
7964 : x6 = XEXP (x5, 0);
7965 : x7 = XEXP (x6, 0);
7966 : operands[2] = x7;
7967 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
7968 : return -1;
7969 : x12 = XEXP (x5, 1);
7970 : x13 = XEXP (x12, 0);
7971 : if (!rtx_equal_p (x13, operands[2])
7972 : || !
7973 : #line 1067 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7974 : (TARGET_3DNOW_A))
7975 : return -1;
7976 : return 2120; /* mmx_hsubv2sf3 */
7977 :
7978 : case PLUS:
7979 : x6 = XEXP (x5, 0);
7980 : if (GET_CODE (x6) != VEC_SELECT
7981 : || GET_MODE (x6) != E_SFmode)
7982 : return -1;
7983 : x14 = XEXP (x6, 1);
7984 : if (GET_CODE (x14) != PARALLEL
7985 : || XVECLEN (x14, 0) != 1)
7986 : return -1;
7987 : x12 = XEXP (x5, 1);
7988 : if (GET_CODE (x12) != VEC_SELECT
7989 : || GET_MODE (x12) != E_SFmode)
7990 : return -1;
7991 : x15 = XEXP (x12, 1);
7992 : if (GET_CODE (x15) != PARALLEL
7993 : || XVECLEN (x15, 0) != 1)
7994 : return -1;
7995 : x7 = XEXP (x6, 0);
7996 : operands[2] = x7;
7997 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
7998 : return -1;
7999 : x16 = XVECEXP (x14, 0, 0);
8000 : operands[3] = x16;
8001 : if (!const_0_to_1_operand (operands[3], E_SImode))
8002 : return -1;
8003 : x17 = XVECEXP (x15, 0, 0);
8004 : operands[4] = x17;
8005 : if (!const_0_to_1_operand (operands[4], E_SImode))
8006 : return -1;
8007 : x13 = XEXP (x12, 0);
8008 : if (!rtx_equal_p (x13, operands[2])
8009 : || !
8010 : #line 1129 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8011 : (TARGET_3DNOW_A
8012 : && INTVAL (operands[3]) != INTVAL (operands[4])))
8013 : return -1;
8014 : return 2122; /* *mmx_haddsubv2sf3 */
8015 :
8016 : default:
8017 : return -1;
8018 : }
8019 :
8020 : case REG:
8021 : case SUBREG:
8022 : case MEM:
8023 : operands[1] = x4;
8024 : x5 = XEXP (x3, 1);
8025 : operands[2] = x5;
8026 : switch (GET_MODE (operands[0]))
8027 : {
8028 : case E_V2SFmode:
8029 : if (!register_operand (operands[0], E_V2SFmode)
8030 : || GET_MODE (x3) != E_V2SFmode
8031 : || !nonimmediate_operand (operands[1], E_SFmode))
8032 : return -1;
8033 : if (nonimm_or_0_operand (operands[2], E_SFmode))
8034 : {
8035 : if (
8036 : #line 1781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8037 : (TARGET_MMX && !TARGET_SSE))
8038 : return 2146; /* *mmx_concatv2sf */
8039 : if (
8040 : #line 12141 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8041 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8042 : return 5306; /* *vec_concatv2sf_sse4_1 */
8043 : }
8044 : if (!reg_or_0_operand (operands[2], E_SFmode)
8045 : || !
8046 : #line 12205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8047 : (TARGET_SSE))
8048 : return -1;
8049 : return 5307; /* *vec_concatv2sf_sse */
8050 :
8051 : case E_V2SImode:
8052 : if (!register_operand (operands[0], E_V2SImode)
8053 : || GET_MODE (x3) != E_V2SImode
8054 : || !nonimmediate_operand (operands[1], E_SImode))
8055 : return -1;
8056 : if (nonimm_or_0_operand (operands[2], E_SImode))
8057 : {
8058 : if (
8059 : #line 5749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8060 : (TARGET_MMX && !TARGET_SSE))
8061 : return 2402; /* *mmx_concatv2si */
8062 : if (
8063 : #line 21996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8064 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8065 : return 8554; /* *vec_concatv2si_sse4_1 */
8066 : }
8067 : if (!reg_or_0_operand (operands[2], E_SImode)
8068 : || !
8069 : #line 22049 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8070 : (TARGET_SSE && !TARGET_SSE4_1))
8071 : return -1;
8072 : return 8555; /* *vec_concatv2si */
8073 :
8074 : default:
8075 : return -1;
8076 : }
8077 :
8078 : case SS_TRUNCATE:
8079 : x5 = XEXP (x3, 1);
8080 : if (GET_CODE (x5) != SS_TRUNCATE)
8081 : return -1;
8082 : switch (pattern273 (x3))
8083 : {
8084 : case 0:
8085 : if (!
8086 : #line 4805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8087 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8088 : return -1;
8089 : return 2346; /* mmx_packsswb */
8090 :
8091 : case 1:
8092 : if (!
8093 : #line 4846 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8094 : (TARGET_MMX || TARGET_MMX_WITH_SSE))
8095 : return -1;
8096 : return 2348; /* mmx_packssdw */
8097 :
8098 : default:
8099 : return -1;
8100 : }
8101 :
8102 : default:
8103 : return -1;
8104 : }
8105 : }
8106 :
8107 : int
8108 : recog_70 (rtx x1 ATTRIBUTE_UNUSED,
8109 : rtx_insn *insn ATTRIBUTE_UNUSED,
8110 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8111 : {
8112 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8113 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8114 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8115 : rtx x18, x19;
8116 : int res ATTRIBUTE_UNUSED;
8117 : x2 = XEXP (x1, 0);
8118 : operands[0] = x2;
8119 : x3 = XEXP (x1, 1);
8120 : x4 = XEXP (x3, 0);
8121 : switch (GET_CODE (x4))
8122 : {
8123 : case LSHIFTRT:
8124 : x5 = XEXP (x4, 1);
8125 : if (GET_CODE (x5) != CONST_INT)
8126 : return -1;
8127 : x6 = XEXP (x4, 0);
8128 : switch (GET_CODE (x6))
8129 : {
8130 : case MULT:
8131 : if (XWINT (x5, 0) != 16L)
8132 : return -1;
8133 : x7 = XEXP (x6, 0);
8134 : switch (GET_CODE (x7))
8135 : {
8136 : case SIGN_EXTEND:
8137 : switch (pattern757 (x3,
8138 : SIGN_EXTEND))
8139 : {
8140 : case 0:
8141 : if (!
8142 : #line 3478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8143 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8144 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8145 : return -1;
8146 : return 2215; /* *mmx_smulv4hi3_highpart */
8147 :
8148 : case 1:
8149 : if (!
8150 : #line 3547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8151 : (TARGET_SSE2))
8152 : return -1;
8153 : return 2217; /* smulv2hi3_highpart */
8154 :
8155 : default:
8156 : return -1;
8157 : }
8158 :
8159 : case ZERO_EXTEND:
8160 : switch (pattern757 (x3,
8161 : ZERO_EXTEND))
8162 : {
8163 : case 0:
8164 : if (!
8165 : #line 3513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8166 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8167 : && (TARGET_SSE || TARGET_3DNOW_A)
8168 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8169 : return -1;
8170 : return 2216; /* *mmx_umulv4hi3_highpart */
8171 :
8172 : case 1:
8173 : if (!
8174 : #line 3547 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8175 : (TARGET_SSE2))
8176 : return -1;
8177 : return 2218; /* umulv2hi3_highpart */
8178 :
8179 : default:
8180 : return -1;
8181 : }
8182 :
8183 : default:
8184 : return -1;
8185 : }
8186 :
8187 : case PLUS:
8188 : x7 = XEXP (x6, 0);
8189 : switch (GET_CODE (x7))
8190 : {
8191 : case MULT:
8192 : if (GET_MODE (x7) != E_V4SImode)
8193 : return -1;
8194 : x8 = XEXP (x7, 0);
8195 : if (GET_CODE (x8) != SIGN_EXTEND
8196 : || GET_MODE (x8) != E_V4SImode)
8197 : return -1;
8198 : x9 = XEXP (x7, 1);
8199 : if (GET_CODE (x9) != SIGN_EXTEND
8200 : || GET_MODE (x9) != E_V4SImode)
8201 : return -1;
8202 : x10 = XEXP (x6, 1);
8203 : if (GET_CODE (x10) != CONST_VECTOR
8204 : || XVECLEN (x10, 0) != 4
8205 : || GET_MODE (x10) != E_V4SImode)
8206 : return -1;
8207 : x11 = XVECEXP (x10, 0, 0);
8208 : if (GET_CODE (x11) != CONST_INT
8209 : || XWINT (x11, 0) != 32768L)
8210 : return -1;
8211 : x12 = XVECEXP (x10, 0, 1);
8212 : if (GET_CODE (x12) != CONST_INT
8213 : || XWINT (x12, 0) != 32768L)
8214 : return -1;
8215 : x13 = XVECEXP (x10, 0, 2);
8216 : if (GET_CODE (x13) != CONST_INT
8217 : || XWINT (x13, 0) != 32768L)
8218 : return -1;
8219 : x14 = XVECEXP (x10, 0, 3);
8220 : if (GET_CODE (x14) != CONST_INT
8221 : || XWINT (x14, 0) != 32768L
8222 : || XWINT (x5, 0) != 16L
8223 : || !register_operand (operands[0], E_V4HImode)
8224 : || GET_MODE (x3) != E_V4HImode
8225 : || GET_MODE (x4) != E_V4SImode
8226 : || GET_MODE (x6) != E_V4SImode)
8227 : return -1;
8228 : x15 = XEXP (x8, 0);
8229 : operands[1] = x15;
8230 : if (!nonimmediate_operand (operands[1], E_V4HImode))
8231 : return -1;
8232 : x16 = XEXP (x9, 0);
8233 : operands[2] = x16;
8234 : if (!nonimmediate_operand (operands[2], E_V4HImode)
8235 : || !
8236 : #line 3637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8237 : (TARGET_3DNOW && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8238 : return -1;
8239 : return 2220; /* *mmx_pmulhrwv4hi3 */
8240 :
8241 : case PLUS:
8242 : x8 = XEXP (x7, 0);
8243 : if (GET_CODE (x8) != ZERO_EXTEND)
8244 : return -1;
8245 : x9 = XEXP (x7, 1);
8246 : if (GET_CODE (x9) != ZERO_EXTEND)
8247 : return -1;
8248 : x10 = XEXP (x6, 1);
8249 : if (GET_CODE (x10) != CONST_VECTOR
8250 : || XWINT (x5, 0) != 1L)
8251 : return -1;
8252 : x15 = XEXP (x8, 0);
8253 : operands[1] = x15;
8254 : x16 = XEXP (x9, 0);
8255 : operands[2] = x16;
8256 : switch (XVECLEN (x10, 0))
8257 : {
8258 : case 8:
8259 : if (pattern1371 (x10,
8260 : E_V8HImode) != 0
8261 : || pattern1657 (x3,
8262 : E_V8QImode,
8263 : E_V8HImode) != 0
8264 : || !
8265 : #line 6389 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8266 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8267 : && (TARGET_SSE || TARGET_3DNOW)
8268 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8269 : return -1;
8270 : return 2432; /* *mmx_uavgv8qi3 */
8271 :
8272 : case 4:
8273 : x11 = XVECEXP (x10, 0, 0);
8274 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8275 : return -1;
8276 : x12 = XVECEXP (x10, 0, 1);
8277 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8278 : return -1;
8279 : x13 = XVECEXP (x10, 0, 2);
8280 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8281 : return -1;
8282 : x14 = XVECEXP (x10, 0, 3);
8283 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8284 : return -1;
8285 : switch (GET_MODE (operands[0]))
8286 : {
8287 : case E_V4HImode:
8288 : if (pattern1657 (x3,
8289 : E_V4HImode,
8290 : E_V4SImode) != 0
8291 : || GET_MODE (x10) != E_V4SImode
8292 : || !
8293 : #line 6433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8294 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8295 : && (TARGET_SSE || TARGET_3DNOW_A)
8296 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8297 : return -1;
8298 : return 2433; /* *mmx_uavgv4hi3 */
8299 :
8300 : case E_V4QImode:
8301 : if (pattern1549 (x3,
8302 : E_V4HImode,
8303 : E_V4QImode) != 0
8304 : || !
8305 : #line 6473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8306 : (TARGET_SSE2))
8307 : return -1;
8308 : return 2434; /* uavgv4qi3_ceil */
8309 :
8310 : default:
8311 : return -1;
8312 : }
8313 :
8314 : case 2:
8315 : x11 = XVECEXP (x10, 0, 0);
8316 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8317 : return -1;
8318 : x12 = XVECEXP (x10, 0, 1);
8319 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
8320 : return -1;
8321 : switch (GET_MODE (operands[0]))
8322 : {
8323 : case E_V2QImode:
8324 : if (pattern1549 (x3,
8325 : E_V2HImode,
8326 : E_V2QImode) != 0
8327 : || !
8328 : #line 6493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8329 : (TARGET_SSE2))
8330 : return -1;
8331 : return 2435; /* uavgv2qi3_ceil */
8332 :
8333 : case E_V2HImode:
8334 : if (pattern1549 (x3,
8335 : E_V2SImode,
8336 : E_V2HImode) != 0
8337 : || !
8338 : #line 6513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8339 : (TARGET_SSE2))
8340 : return -1;
8341 : return 2436; /* uavgv2hi3_ceil */
8342 :
8343 : default:
8344 : return -1;
8345 : }
8346 :
8347 : default:
8348 : return -1;
8349 : }
8350 :
8351 : case LSHIFTRT:
8352 : if (pattern629 (x7) != 0
8353 : || XWINT (x5, 0) != 1L)
8354 : return -1;
8355 : x8 = XEXP (x7, 0);
8356 : x15 = XEXP (x8, 0);
8357 : x17 = XEXP (x15, 0);
8358 : operands[1] = x17;
8359 : x18 = XEXP (x8, 1);
8360 : x19 = XEXP (x18, 0);
8361 : operands[2] = x19;
8362 : x10 = XEXP (x6, 1);
8363 : operands[3] = x10;
8364 : switch (GET_MODE (operands[0]))
8365 : {
8366 : case E_V4HImode:
8367 : if (pattern1523 (x3,
8368 : E_V4SImode,
8369 : E_V4HImode) != 0
8370 : || !register_mmxmem_operand (operands[1], E_V4HImode)
8371 : || GET_MODE (x18) != E_V4SImode
8372 : || !register_mmxmem_operand (operands[2], E_V4HImode)
8373 : || !const1_operand (operands[3], E_V4HImode)
8374 : || !
8375 : #line 23588 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8376 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8377 : && TARGET_SSSE3
8378 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8379 : return -1;
8380 : return 8697; /* *ssse3_pmulhrswv4hi3 */
8381 :
8382 : case E_V2HImode:
8383 : if (pattern1523 (x3,
8384 : E_V2SImode,
8385 : E_V2HImode) != 0
8386 : || !register_operand (operands[1], E_V2HImode)
8387 : || GET_MODE (x18) != E_V2SImode
8388 : || !register_operand (operands[2], E_V2HImode)
8389 : || !const1_operand (operands[3], E_V2HImode)
8390 : || !
8391 : #line 23633 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8392 : (TARGET_SSSE3
8393 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8394 : return -1;
8395 : return 8698; /* *smulhrsv2hi3 */
8396 :
8397 : default:
8398 : return -1;
8399 : }
8400 :
8401 : default:
8402 : return -1;
8403 : }
8404 :
8405 : default:
8406 : return -1;
8407 : }
8408 :
8409 : case REG:
8410 : case SUBREG:
8411 : operands[1] = x4;
8412 : switch (GET_MODE (operands[0]))
8413 : {
8414 : case E_V4QImode:
8415 : if (GET_MODE (x3) != E_V4QImode)
8416 : return -1;
8417 : if (register_operand (operands[0], E_V4QImode)
8418 : && register_operand (operands[1], E_V4HImode)
8419 : && (
8420 : #line 5182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8421 : (TARGET_AVX512VL && TARGET_AVX512BW) &&
8422 : #line 73 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8423 : (TARGET_MMX_WITH_SSE)))
8424 : return 2366; /* avx512vl_truncv4hiv4qi2 */
8425 : if (!memory_operand (operands[0], E_V4QImode))
8426 : return -1;
8427 : switch (GET_MODE (operands[1]))
8428 : {
8429 : case E_V4SImode:
8430 : if (!register_operand (operands[1], E_V4SImode)
8431 : || !
8432 : #line 15897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8433 : (TARGET_AVX512VL))
8434 : return -1;
8435 : return 7354; /* *avx512vl_truncatev4siv4qi2_store_1 */
8436 :
8437 : case E_V4DImode:
8438 : if (!register_operand (operands[1], E_V4DImode)
8439 : || !
8440 : #line 15897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8441 : (TARGET_AVX512VL))
8442 : return -1;
8443 : return 7357; /* *avx512vl_truncatev4div4qi2_store_1 */
8444 :
8445 : default:
8446 : return -1;
8447 : }
8448 :
8449 : case E_V2QImode:
8450 : if (GET_MODE (x3) != E_V2QImode)
8451 : return -1;
8452 : if (register_operand (operands[0], E_V2QImode))
8453 : {
8454 : switch (GET_MODE (operands[1]))
8455 : {
8456 : case E_V2HImode:
8457 : if (register_operand (operands[1], E_V2HImode)
8458 : &&
8459 : #line 5182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8460 : (TARGET_AVX512VL && TARGET_AVX512BW))
8461 : return 2367; /* avx512vl_truncv2hiv2qi2 */
8462 : break;
8463 :
8464 : case E_V2SImode:
8465 : if (register_operand (operands[1], E_V2SImode)
8466 : &&
8467 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8468 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
8469 : return 2368; /* avx512vl_truncv2siv2qi2 */
8470 : break;
8471 :
8472 : default:
8473 : break;
8474 : }
8475 : }
8476 : if (!memory_operand (operands[0], E_V2QImode)
8477 : || !register_operand (operands[1], E_V2DImode)
8478 : || !
8479 : #line 15802 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8480 : (TARGET_AVX512VL))
8481 : return -1;
8482 : return 7339; /* *avx512vl_truncatev2div2qi2_store_1 */
8483 :
8484 : case E_V2HImode:
8485 : if (GET_MODE (x3) != E_V2HImode)
8486 : return -1;
8487 : if (register_operand (operands[0], E_V2HImode)
8488 : && register_operand (operands[1], E_V2SImode)
8489 : &&
8490 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8491 : (TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
8492 : return 2369; /* avx512vl_truncv2siv2hi2 */
8493 : if (!memory_operand (operands[0], E_V2HImode)
8494 : || !register_operand (operands[1], E_V2DImode)
8495 : || !
8496 : #line 16244 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8497 : (TARGET_AVX512VL))
8498 : return -1;
8499 : return 7454; /* *avx512vl_truncatev2div2hi2_store_1 */
8500 :
8501 : case E_V8QImode:
8502 : switch (pattern10 (x3))
8503 : {
8504 : case 0:
8505 : if (!(
8506 : #line 15995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8507 : (TARGET_AVX512VL) &&
8508 : #line 15989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8509 : (TARGET_AVX512BW)))
8510 : return -1;
8511 : return 7384; /* *avx512vl_truncatev8hiv8qi2_store_1 */
8512 :
8513 : case 1:
8514 : if (!
8515 : #line 15995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8516 : (TARGET_AVX512VL))
8517 : return -1;
8518 : return 7387; /* *avx512vl_truncatev8siv8qi2_store_1 */
8519 :
8520 : case 2:
8521 : if (!
8522 : #line 16507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8523 : (TARGET_AVX512F))
8524 : return -1;
8525 : return 7491; /* *avx512f_truncatev8div16qi2_store_1 */
8526 :
8527 : default:
8528 : return -1;
8529 : }
8530 :
8531 : case E_V4HImode:
8532 : switch (pattern9 (x3,
8533 : E_V4HImode))
8534 : {
8535 : case 0:
8536 : if (!
8537 : #line 16157 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8538 : (TARGET_AVX512VL))
8539 : return -1;
8540 : return 7424; /* *avx512vl_truncatev4siv4hi2_store_1 */
8541 :
8542 : case 1:
8543 : if (!
8544 : #line 16157 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8545 : (TARGET_AVX512VL))
8546 : return -1;
8547 : return 7427; /* *avx512vl_truncatev4div4hi2_store_1 */
8548 :
8549 : default:
8550 : return -1;
8551 : }
8552 :
8553 : case E_V2SImode:
8554 : if (!memory_operand (operands[0], E_V2SImode)
8555 : || GET_MODE (x3) != E_V2SImode
8556 : || !register_operand (operands[1], E_V2DImode)
8557 : || !
8558 : #line 16394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8559 : (TARGET_AVX512VL))
8560 : return -1;
8561 : return 7473; /* *avx512vl_truncatev2div2si2_store_1 */
8562 :
8563 : default:
8564 : return -1;
8565 : }
8566 :
8567 : default:
8568 : return -1;
8569 : }
8570 : }
8571 :
8572 : int
8573 : recog_79 (rtx x1 ATTRIBUTE_UNUSED,
8574 : rtx_insn *insn ATTRIBUTE_UNUSED,
8575 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8576 : {
8577 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8578 : rtx x2, x3, x4, x5, x6;
8579 : int res ATTRIBUTE_UNUSED;
8580 : x2 = XEXP (x1, 1);
8581 : x3 = XEXP (x2, 0);
8582 : x4 = XEXP (x3, 0);
8583 : switch (GET_CODE (x4))
8584 : {
8585 : case REG:
8586 : case SUBREG:
8587 : case MEM:
8588 : switch (pattern115 (x2, pnum_clobbers))
8589 : {
8590 : case 0:
8591 : if (
8592 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8593 : (TARGET_APX_NDD && TARGET_APX_NF
8594 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8595 : return 877; /* *xorqi_1_zextsi_nf */
8596 : if (pnum_clobbers == NULL
8597 : || !
8598 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8599 : (TARGET_APX_NDD && true
8600 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8601 : return -1;
8602 : *pnum_clobbers = 1;
8603 : return 878; /* *xorqi_1_zextsi */
8604 :
8605 : case 1:
8606 : if (
8607 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8608 : (TARGET_APX_NDD && TARGET_APX_NF
8609 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8610 : return 885; /* *xorhi_1_zextsi_nf */
8611 : if (pnum_clobbers == NULL
8612 : || !
8613 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8614 : (TARGET_APX_NDD && true
8615 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8616 : return -1;
8617 : *pnum_clobbers = 1;
8618 : return 886; /* *xorhi_1_zextsi */
8619 :
8620 : case 2:
8621 : if (
8622 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8623 : (TARGET_APX_NDD && TARGET_APX_NF
8624 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8625 : return 881; /* *xorqi_1_zextdi_nf */
8626 : if (pnum_clobbers == NULL
8627 : || !
8628 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8629 : (TARGET_APX_NDD && true
8630 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8631 : return -1;
8632 : *pnum_clobbers = 1;
8633 : return 882; /* *xorqi_1_zextdi */
8634 :
8635 : case 3:
8636 : if (
8637 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8638 : (TARGET_APX_NDD && TARGET_APX_NF
8639 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8640 : return 889; /* *xorhi_1_zextdi_nf */
8641 : if (pnum_clobbers == NULL
8642 : || !
8643 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8644 : (TARGET_APX_NDD && true
8645 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8646 : return -1;
8647 : *pnum_clobbers = 1;
8648 : return 890; /* *xorhi_1_zextdi */
8649 :
8650 : case 4:
8651 : if (!
8652 : #line 14579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8653 : (TARGET_64BIT
8654 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
8655 : return -1;
8656 : *pnum_clobbers = 1;
8657 : return 892; /* *xorsi_1_zext */
8658 :
8659 : default:
8660 : return -1;
8661 : }
8662 :
8663 : case MINUS:
8664 : if (pnum_clobbers == NULL
8665 : || pattern444 (x3) != 0
8666 : || !register_operand (operands[0], E_DImode)
8667 : || GET_MODE (x2) != E_DImode
8668 : || GET_MODE (x3) != E_SImode)
8669 : return -1;
8670 : x5 = XEXP (x4, 1);
8671 : x6 = XEXP (x5, 0);
8672 : operands[1] = x6;
8673 : if (!nonimmediate_operand (operands[1], E_SImode)
8674 : || !
8675 : #line 22357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8676 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
8677 : return -1;
8678 : *pnum_clobbers = 1;
8679 : return 1563; /* *bsru_2 */
8680 :
8681 : default:
8682 : return -1;
8683 : }
8684 : }
8685 :
8686 : int
8687 : recog_82 (rtx x1 ATTRIBUTE_UNUSED,
8688 : rtx_insn *insn ATTRIBUTE_UNUSED,
8689 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8690 : {
8691 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8692 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8693 : rtx x10, x11;
8694 : int res ATTRIBUTE_UNUSED;
8695 : x2 = XEXP (x1, 1);
8696 : x3 = XEXP (x2, 0);
8697 : x4 = XEXP (x3, 1);
8698 : x5 = XEXP (x4, 0);
8699 : operands[2] = x5;
8700 : x6 = XEXP (x3, 0);
8701 : if (!rtx_equal_p (x6, operands[0]))
8702 : return -1;
8703 : x7 = XEXP (x2, 1);
8704 : x8 = XEXP (x7, 0);
8705 : x9 = XEXP (x8, 1);
8706 : x10 = XEXP (x9, 1);
8707 : x11 = XEXP (x10, 0);
8708 : if (!rtx_equal_p (x11, operands[2]))
8709 : return -1;
8710 : if (
8711 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8712 : (TARGET_64BIT && TARGET_APX_NF))
8713 : return 1094; /* x86_64_shld_nf */
8714 : if (pnum_clobbers == NULL
8715 : || !
8716 : #line 16369 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8717 : (TARGET_64BIT && true))
8718 : return -1;
8719 : *pnum_clobbers = 1;
8720 : return 1095; /* x86_64_shld */
8721 : }
8722 :
8723 : int
8724 : recog_85 (rtx x1 ATTRIBUTE_UNUSED,
8725 : rtx_insn *insn ATTRIBUTE_UNUSED,
8726 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8727 : {
8728 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8729 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8730 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8731 : rtx x18;
8732 : int res ATTRIBUTE_UNUSED;
8733 : x2 = XEXP (x1, 0);
8734 : operands[0] = x2;
8735 : x3 = XEXP (x1, 1);
8736 : x4 = XEXP (x3, 0);
8737 : switch (GET_CODE (x4))
8738 : {
8739 : case ASHIFT:
8740 : return recog_84 (x1, insn, pnum_clobbers);
8741 :
8742 : case REG:
8743 : case SUBREG:
8744 : case MEM:
8745 : operands[1] = x4;
8746 : x5 = XEXP (x3, 1);
8747 : operands[2] = x5;
8748 : switch (pattern441 (x3))
8749 : {
8750 : case 0:
8751 : if (pnum_clobbers != NULL
8752 : && x86_64_hilo_general_operand (operands[2], E_DImode)
8753 : && (
8754 : #line 14336 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8755 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)) &&
8756 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8757 : (!TARGET_64BIT)))
8758 : {
8759 : *pnum_clobbers = 1;
8760 : return 847; /* *iordi3_doubleword */
8761 : }
8762 : if (x86_64_general_operand (operands[2], E_DImode))
8763 : {
8764 : if ((
8765 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8766 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
8767 : && TARGET_APX_NF) &&
8768 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8769 : (TARGET_64BIT)))
8770 : return 859; /* *iordi_1_nf */
8771 : if (pnum_clobbers != NULL
8772 : && (
8773 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8774 : (ix86_binary_operator_ok (IOR, DImode, operands, TARGET_APX_NDD)
8775 : && true) &&
8776 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8777 : (TARGET_64BIT)))
8778 : {
8779 : *pnum_clobbers = 1;
8780 : return 860; /* *iordi_1 */
8781 : }
8782 : }
8783 : if (pnum_clobbers == NULL
8784 : || !const_int_operand (operands[2], E_DImode)
8785 : || !
8786 : #line 14455 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8787 : (TARGET_64BIT && TARGET_USE_BT
8788 : && ix86_binary_operator_ok (IOR, DImode, operands)
8789 : && IN_RANGE (exact_log2 (INTVAL (operands[2])), 31, 63)))
8790 : return -1;
8791 : *pnum_clobbers = 1;
8792 : return 866; /* *iordi_1_bts */
8793 :
8794 : case 1:
8795 : if (
8796 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8797 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
8798 : && TARGET_APX_NF))
8799 : return 855; /* *iorsi_1_nf */
8800 : if (pnum_clobbers == NULL
8801 : || !
8802 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8803 : (ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)
8804 : && true))
8805 : return -1;
8806 : *pnum_clobbers = 1;
8807 : return 856; /* *iorsi_1 */
8808 :
8809 : default:
8810 : return -1;
8811 : }
8812 :
8813 : case ZERO_EXTEND:
8814 : if (GET_MODE (x4) != E_DImode
8815 : || GET_MODE (x3) != E_DImode)
8816 : return -1;
8817 : switch (pattern445 (x3))
8818 : {
8819 : case 0:
8820 : if (pnum_clobbers != NULL)
8821 : {
8822 : x5 = XEXP (x3, 1);
8823 : operands[2] = x5;
8824 : if (x86_64_zext_immediate_operand (operands[2], E_DImode)
8825 : && register_operand (operands[0], E_DImode)
8826 : &&
8827 : #line 14601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8828 : (TARGET_64BIT
8829 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
8830 : {
8831 : *pnum_clobbers = 1;
8832 : return 893; /* *iorsi_1_zext_imm */
8833 : }
8834 : }
8835 : x5 = XEXP (x3, 1);
8836 : operands[2] = x5;
8837 : if (!const_scalar_int_operand (operands[2], E_DImode)
8838 : || !nonimmediate_operand (operands[0], E_DImode)
8839 : || !(
8840 : #line 15082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8841 : (DImode == DImode
8842 : ? CONST_INT_P (operands[2])
8843 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
8844 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
8845 : : CONST_WIDE_INT_P (operands[2])
8846 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
8847 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
8848 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
8849 : 1)),
8850 : VOIDmode)) &&
8851 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8852 : (!TARGET_64BIT)))
8853 : return -1;
8854 : return 979; /* *concatsidi3_7 */
8855 :
8856 : case 1:
8857 : if (!(
8858 : #line 14961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8859 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8860 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8861 : (!TARGET_64BIT)))
8862 : return -1;
8863 : return 931; /* *concatsidi3_2 */
8864 :
8865 : case 2:
8866 : if (!(
8867 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8868 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8869 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8870 : (!TARGET_64BIT)))
8871 : return -1;
8872 : return 949; /* *concatsidi3_4 */
8873 :
8874 : case 3:
8875 : if (!(
8876 : #line 15005 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8877 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
8878 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8879 : (!TARGET_64BIT)))
8880 : return -1;
8881 : return 952; /* *concatsidi3_4 */
8882 :
8883 : default:
8884 : return -1;
8885 : }
8886 :
8887 : case LSHIFTRT:
8888 : x6 = XEXP (x4, 1);
8889 : switch (GET_CODE (x6))
8890 : {
8891 : case AND:
8892 : switch (pattern291 (x3,
8893 : ASHIFT))
8894 : {
8895 : case 0:
8896 : x5 = XEXP (x3, 1);
8897 : x7 = XEXP (x5, 0);
8898 : x8 = XEXP (x7, 0);
8899 : x9 = XEXP (x8, 0);
8900 : operands[1] = x9;
8901 : if (nonimmediate_operand (operands[0], E_DImode))
8902 : {
8903 : res = recog_83 (x1, insn, pnum_clobbers);
8904 : if (res >= 0)
8905 : return res;
8906 : }
8907 : operands[2] = x9;
8908 : if (!register_operand (operands[0], E_DImode))
8909 : return -1;
8910 : x10 = XEXP (x4, 0);
8911 : operands[1] = x10;
8912 : if (!nonimmediate_operand (operands[1], E_DImode))
8913 : return -1;
8914 : x11 = XEXP (x6, 0);
8915 : operands[3] = x11;
8916 : x12 = XEXP (x7, 1);
8917 : x13 = XEXP (x12, 1);
8918 : x14 = XEXP (x13, 0);
8919 : if (!rtx_equal_p (x14, operands[3]))
8920 : return -1;
8921 : if (
8922 : #line 17748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8923 : (TARGET_APX_NDD && TARGET_APX_NF))
8924 : return 1176; /* x86_64_shrd_ndd_nf */
8925 : if (pnum_clobbers == NULL
8926 : || !
8927 : #line 17748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8928 : (TARGET_APX_NDD && true))
8929 : return -1;
8930 : *pnum_clobbers = 1;
8931 : return 1177; /* x86_64_shrd_ndd */
8932 :
8933 : case 1:
8934 : if (pattern290 (x3,
8935 : E_SImode,
8936 : E_DImode) != 0)
8937 : return -1;
8938 : x5 = XEXP (x3, 1);
8939 : x7 = XEXP (x5, 0);
8940 : x8 = XEXP (x7, 0);
8941 : x9 = XEXP (x8, 0);
8942 : operands[1] = x9;
8943 : if (nonimmediate_operand (operands[0], E_SImode))
8944 : {
8945 : x11 = XEXP (x6, 0);
8946 : operands[2] = x11;
8947 : x10 = XEXP (x4, 0);
8948 : if (rtx_equal_p (x10, operands[0]))
8949 : {
8950 : x12 = XEXP (x7, 1);
8951 : x13 = XEXP (x12, 1);
8952 : x14 = XEXP (x13, 0);
8953 : if (rtx_equal_p (x14, operands[2]))
8954 : {
8955 : if (
8956 : #line 17965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8957 : (TARGET_APX_NF))
8958 : return 1186; /* x86_shrd_nf */
8959 : if (pnum_clobbers != NULL)
8960 : {
8961 : *pnum_clobbers = 1;
8962 : return 1187; /* x86_shrd */
8963 : }
8964 : }
8965 : }
8966 : }
8967 : operands[2] = x9;
8968 : if (!register_operand (operands[0], E_SImode))
8969 : return -1;
8970 : x10 = XEXP (x4, 0);
8971 : operands[1] = x10;
8972 : if (!nonimmediate_operand (operands[1], E_SImode))
8973 : return -1;
8974 : x11 = XEXP (x6, 0);
8975 : operands[3] = x11;
8976 : x12 = XEXP (x7, 1);
8977 : x13 = XEXP (x12, 1);
8978 : x14 = XEXP (x13, 0);
8979 : if (!rtx_equal_p (x14, operands[3]))
8980 : return -1;
8981 : if (
8982 : #line 17987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8983 : (TARGET_APX_NDD && TARGET_APX_NF))
8984 : return 1188; /* x86_shrd_ndd_nf */
8985 : if (pnum_clobbers == NULL
8986 : || !
8987 : #line 17987 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8988 : (TARGET_APX_NDD && true))
8989 : return -1;
8990 : *pnum_clobbers = 1;
8991 : return 1189; /* x86_shrd_ndd */
8992 :
8993 : default:
8994 : return -1;
8995 : }
8996 :
8997 : case CONST_INT:
8998 : case CONST_WIDE_INT:
8999 : case CONST_POLY_INT:
9000 : case CONST_FIXED:
9001 : case CONST_DOUBLE:
9002 : case CONST_VECTOR:
9003 : case CONST:
9004 : case REG:
9005 : case SUBREG:
9006 : case LABEL_REF:
9007 : case SYMBOL_REF:
9008 : case HIGH:
9009 : x5 = XEXP (x3, 1);
9010 : switch (GET_CODE (x5))
9011 : {
9012 : case SUBREG:
9013 : switch (pattern446 (x3,
9014 : ASHIFT))
9015 : {
9016 : case 0:
9017 : operands[2] = x6;
9018 : if (pattern1372 (x3) == 0)
9019 : {
9020 : if (
9021 : #line 17767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9022 : (TARGET_64BIT
9023 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9024 : && TARGET_APX_NF))
9025 : return 1178; /* x86_64_shrd_1_nf */
9026 : if (pnum_clobbers != NULL
9027 : &&
9028 : #line 17767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9029 : (TARGET_64BIT
9030 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9031 : && true))
9032 : {
9033 : *pnum_clobbers = 1;
9034 : return 1179; /* x86_64_shrd_1 */
9035 : }
9036 : }
9037 : operands[3] = x6;
9038 : if (pattern1373 (x3) != 0)
9039 : return -1;
9040 : if (
9041 : #line 17789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9042 : (TARGET_APX_NDD
9043 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9044 : && TARGET_APX_NF))
9045 : return 1180; /* x86_64_shrd_ndd_1_nf */
9046 : if (pnum_clobbers == NULL
9047 : || !
9048 : #line 17789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9049 : (TARGET_APX_NDD
9050 : && INTVAL (operands[4]) == 64 - INTVAL (operands[3])
9051 : && true))
9052 : return -1;
9053 : *pnum_clobbers = 1;
9054 : return 1181; /* x86_64_shrd_ndd_1 */
9055 :
9056 : case 1:
9057 : operands[2] = x6;
9058 : if (pattern1374 (x3) == 0)
9059 : {
9060 : if (
9061 : #line 18006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9062 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9063 : && TARGET_APX_NF))
9064 : return 1190; /* x86_shrd_1_nf */
9065 : if (pnum_clobbers != NULL
9066 : &&
9067 : #line 18006 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9068 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9069 : && true))
9070 : {
9071 : *pnum_clobbers = 1;
9072 : return 1191; /* x86_shrd_1 */
9073 : }
9074 : }
9075 : operands[3] = x6;
9076 : if (pattern1375 (x3) != 0)
9077 : return -1;
9078 : if (
9079 : #line 18028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9080 : (TARGET_APX_NDD
9081 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
9082 : && TARGET_APX_NF))
9083 : return 1192; /* x86_shrd_ndd_1_nf */
9084 : if (pnum_clobbers == NULL
9085 : || !
9086 : #line 18028 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9087 : (TARGET_APX_NDD
9088 : && (INTVAL (operands[4]) == 32 - INTVAL (operands[3]))
9089 : && true))
9090 : return -1;
9091 : *pnum_clobbers = 1;
9092 : return 1193; /* x86_shrd_ndd_1 */
9093 :
9094 : default:
9095 : return -1;
9096 : }
9097 :
9098 : case ASHIFT:
9099 : switch (pattern449 (x3, pnum_clobbers))
9100 : {
9101 : case 0:
9102 : if (
9103 : #line 17809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9104 : (TARGET_64BIT && TARGET_APX_NF
9105 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9106 : && ix86_pre_reload_split ()))
9107 : return 1182; /* *x86_64_shrd_shld_1_nozext_nf */
9108 : if (pnum_clobbers == NULL
9109 : || !
9110 : #line 17865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9111 : (TARGET_64BIT
9112 : && INTVAL (operands[3]) == 64 - INTVAL (operands[2])
9113 : && ix86_pre_reload_split ()))
9114 : return -1;
9115 : *pnum_clobbers = 1;
9116 : return 1183; /* *x86_64_shrd_shld_1_nozext */
9117 :
9118 : case 1:
9119 : if (
9120 : #line 18048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9121 : (TARGET_APX_NF
9122 : && INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9123 : && ix86_pre_reload_split ()))
9124 : return 1194; /* *x86_shrd_shld_1_nozext_nf */
9125 : if (pnum_clobbers == NULL
9126 : || !
9127 : #line 18104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9128 : (INTVAL (operands[3]) == 32 - INTVAL (operands[2])
9129 : && ix86_pre_reload_split ()))
9130 : return -1;
9131 : *pnum_clobbers = 1;
9132 : return 1195; /* *x86_shrd_shld_1_nozext */
9133 :
9134 : case 2:
9135 : x7 = XEXP (x5, 0);
9136 : operands[1] = x7;
9137 : if (nonimmediate_operand (operands[0], E_DImode))
9138 : {
9139 : operands[2] = x6;
9140 : x10 = XEXP (x4, 0);
9141 : if (rtx_equal_p (x10, operands[0]))
9142 : {
9143 : x15 = XEXP (x5, 1);
9144 : x16 = XEXP (x15, 1);
9145 : if (rtx_equal_p (x16, operands[2])
9146 : &&
9147 : #line 17918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9148 : (TARGET_64BIT && ix86_pre_reload_split ()))
9149 : {
9150 : *pnum_clobbers = 1;
9151 : return 1184; /* *x86_64_shrd_2 */
9152 : }
9153 : }
9154 : }
9155 : operands[2] = x7;
9156 : if (!register_operand (operands[0], E_DImode))
9157 : return -1;
9158 : x10 = XEXP (x4, 0);
9159 : operands[1] = x10;
9160 : if (!nonimmediate_operand (operands[1], E_DImode))
9161 : return -1;
9162 : operands[3] = x6;
9163 : x15 = XEXP (x5, 1);
9164 : x16 = XEXP (x15, 1);
9165 : if (!rtx_equal_p (x16, operands[2])
9166 : || !
9167 : #line 17939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9168 : (TARGET_APX_NDD
9169 : && ix86_pre_reload_split ()))
9170 : return -1;
9171 : *pnum_clobbers = 1;
9172 : return 1185; /* *x86_64_shrd_ndd_2 */
9173 :
9174 : case 3:
9175 : x7 = XEXP (x5, 0);
9176 : operands[1] = x7;
9177 : if (nonimmediate_operand (operands[0], E_SImode))
9178 : {
9179 : operands[2] = x6;
9180 : x10 = XEXP (x4, 0);
9181 : if (rtx_equal_p (x10, operands[0]))
9182 : {
9183 : x15 = XEXP (x5, 1);
9184 : x16 = XEXP (x15, 1);
9185 : if (rtx_equal_p (x16, operands[2])
9186 : &&
9187 : #line 18156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9188 : (TARGET_64BIT && ix86_pre_reload_split ()))
9189 : {
9190 : *pnum_clobbers = 1;
9191 : return 1196; /* *x86_shrd_2 */
9192 : }
9193 : }
9194 : }
9195 : operands[2] = x7;
9196 : if (!register_operand (operands[0], E_SImode))
9197 : return -1;
9198 : x10 = XEXP (x4, 0);
9199 : operands[1] = x10;
9200 : if (!nonimmediate_operand (operands[1], E_SImode))
9201 : return -1;
9202 : operands[3] = x6;
9203 : x15 = XEXP (x5, 1);
9204 : x16 = XEXP (x15, 1);
9205 : if (!rtx_equal_p (x16, operands[3])
9206 : || !
9207 : #line 18177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9208 : (TARGET_APX_NDD
9209 : && ix86_pre_reload_split ()))
9210 : return -1;
9211 : *pnum_clobbers = 1;
9212 : return 1197; /* *x86_shrd_ndd_2 */
9213 :
9214 : default:
9215 : return -1;
9216 : }
9217 :
9218 : default:
9219 : return -1;
9220 : }
9221 :
9222 : default:
9223 : return -1;
9224 : }
9225 :
9226 : case NOT:
9227 : if (pnum_clobbers == NULL)
9228 : return -1;
9229 : x10 = XEXP (x4, 0);
9230 : if (GET_CODE (x10) != PLUS)
9231 : return -1;
9232 : x17 = XEXP (x10, 1);
9233 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
9234 : return -1;
9235 : x18 = XEXP (x10, 0);
9236 : operands[1] = x18;
9237 : x5 = XEXP (x3, 1);
9238 : if (!rtx_equal_p (x5, operands[1]))
9239 : return -1;
9240 : switch (GET_MODE (operands[0]))
9241 : {
9242 : case E_SImode:
9243 : if (pattern993 (x3,
9244 : E_SImode) != 0
9245 : || !
9246 : #line 23208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9247 : (TARGET_TBM))
9248 : return -1;
9249 : *pnum_clobbers = 1;
9250 : return 1640; /* *tbm_blci_si */
9251 :
9252 : case E_DImode:
9253 : if (pattern993 (x3,
9254 : E_DImode) != 0
9255 : || !(
9256 : #line 23208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9257 : (TARGET_TBM) &&
9258 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9259 : (TARGET_64BIT)))
9260 : return -1;
9261 : *pnum_clobbers = 1;
9262 : return 1641; /* *tbm_blci_di */
9263 :
9264 : default:
9265 : return -1;
9266 : }
9267 :
9268 : case PLUS:
9269 : if (pnum_clobbers == NULL)
9270 : return -1;
9271 : x6 = XEXP (x4, 1);
9272 : if (GET_CODE (x6) != CONST_INT)
9273 : return -1;
9274 : x10 = XEXP (x4, 0);
9275 : operands[1] = x10;
9276 : switch (XWINT (x6, 0))
9277 : {
9278 : case 1L:
9279 : switch (pattern766 (x3))
9280 : {
9281 : case 0:
9282 : if (!
9283 : #line 23248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9284 : (TARGET_TBM))
9285 : return -1;
9286 : *pnum_clobbers = 1;
9287 : return 1646; /* *tbm_blcs_si */
9288 :
9289 : case 1:
9290 : if (!(
9291 : #line 23248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9292 : (TARGET_TBM) &&
9293 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9294 : (TARGET_64BIT)))
9295 : return -1;
9296 : *pnum_clobbers = 1;
9297 : return 1647; /* *tbm_blcs_di */
9298 :
9299 : case 2:
9300 : if (!
9301 : #line 23289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9302 : (TARGET_TBM))
9303 : return -1;
9304 : *pnum_clobbers = 1;
9305 : return 1652; /* *tbm_t1mskc_si */
9306 :
9307 : case 3:
9308 : if (!(
9309 : #line 23289 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9310 : (TARGET_TBM) &&
9311 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9312 : (TARGET_64BIT)))
9313 : return -1;
9314 : *pnum_clobbers = 1;
9315 : return 1653; /* *tbm_t1mskc_di */
9316 :
9317 : default:
9318 : return -1;
9319 : }
9320 :
9321 : case -1L:
9322 : switch (pattern766 (x3))
9323 : {
9324 : case 0:
9325 : if (!
9326 : #line 23261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9327 : (TARGET_TBM))
9328 : return -1;
9329 : *pnum_clobbers = 1;
9330 : return 1648; /* *tbm_blsfill_si */
9331 :
9332 : case 1:
9333 : if (!(
9334 : #line 23261 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9335 : (TARGET_TBM) &&
9336 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9337 : (TARGET_64BIT)))
9338 : return -1;
9339 : *pnum_clobbers = 1;
9340 : return 1649; /* *tbm_blsfill_di */
9341 :
9342 : case 2:
9343 : if (!
9344 : #line 23275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9345 : (TARGET_TBM))
9346 : return -1;
9347 : *pnum_clobbers = 1;
9348 : return 1650; /* *tbm_blsic_si */
9349 :
9350 : case 3:
9351 : if (!(
9352 : #line 23275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9353 : (TARGET_TBM) &&
9354 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9355 : (TARGET_64BIT)))
9356 : return -1;
9357 : *pnum_clobbers = 1;
9358 : return 1651; /* *tbm_blsic_di */
9359 :
9360 : default:
9361 : return -1;
9362 : }
9363 :
9364 : default:
9365 : return -1;
9366 : }
9367 :
9368 : case AND:
9369 : if (pattern119 (x3) != 0
9370 : || !register_operand (operands[0], E_SImode)
9371 : || GET_MODE (x3) != E_SImode)
9372 : return -1;
9373 : x10 = XEXP (x4, 0);
9374 : operands[1] = x10;
9375 : if (!register_operand (operands[1], E_SImode))
9376 : return -1;
9377 : x5 = XEXP (x3, 1);
9378 : x7 = XEXP (x5, 0);
9379 : x8 = XEXP (x7, 0);
9380 : if (!rtx_equal_p (x8, operands[1]))
9381 : return -1;
9382 : return 1678; /* bswaphisi2_lowpart */
9383 :
9384 : default:
9385 : return -1;
9386 : }
9387 : }
9388 :
9389 : int
9390 : recog_104 (rtx x1 ATTRIBUTE_UNUSED,
9391 : rtx_insn *insn ATTRIBUTE_UNUSED,
9392 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9393 : {
9394 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9395 : rtx x2, x3, x4, x5;
9396 : int res ATTRIBUTE_UNUSED;
9397 : x2 = XEXP (x1, 0);
9398 : operands[0] = x2;
9399 : x3 = XEXP (x1, 1);
9400 : x4 = XEXP (x3, 0);
9401 : switch (GET_CODE (x4))
9402 : {
9403 : case REG:
9404 : case SUBREG:
9405 : case MEM:
9406 : switch (pattern124 (x3, pnum_clobbers))
9407 : {
9408 : case 0:
9409 : x5 = XEXP (x3, 1);
9410 : switch (GET_CODE (x5))
9411 : {
9412 : case REG:
9413 : case SUBREG:
9414 : if (pnum_clobbers != NULL
9415 : && pattern635 (x3) == 0
9416 : && (
9417 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9418 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9419 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9420 : == (2 * 4 * BITS_PER_UNIT - 1)))
9421 : && ix86_pre_reload_split ()) &&
9422 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9423 : (!TARGET_64BIT)))
9424 : {
9425 : *pnum_clobbers = 1;
9426 : return 1155; /* *ashrdi3_doubleword_mask */
9427 : }
9428 : operands[2] = x5;
9429 : if (register_operand (operands[2], E_SImode)
9430 : && register_operand (operands[0], E_SImode)
9431 : && GET_MODE (x3) == E_SImode
9432 : && nonimmediate_operand (operands[1], E_SImode)
9433 : &&
9434 : #line 18280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9435 : (TARGET_BMI2))
9436 : return 1204; /* *bmi2_ashrsi3_1 */
9437 : break;
9438 :
9439 : case CONST_INT:
9440 : operands[2] = x5;
9441 : if (const_int_operand (operands[2], E_QImode)
9442 : && nonimmediate_operand (operands[0], E_SImode)
9443 : && GET_MODE (x3) == E_SImode
9444 : && nonimmediate_operand (operands[1], E_SImode))
9445 : {
9446 : if (
9447 : #line 18201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9448 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
9449 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9450 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9451 : && TARGET_APX_NF))
9452 : return 1198; /* ashrsi3_cvt_nf */
9453 : if (pnum_clobbers != NULL
9454 : &&
9455 : #line 18201 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9456 : (INTVAL (operands[2]) == GET_MODE_BITSIZE (SImode)-1
9457 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
9458 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)
9459 : && true))
9460 : {
9461 : *pnum_clobbers = 1;
9462 : return 1199; /* ashrsi3_cvt */
9463 : }
9464 : }
9465 : break;
9466 :
9467 : default:
9468 : break;
9469 : }
9470 : operands[2] = x5;
9471 : res = recog_103 (x1, insn, pnum_clobbers);
9472 : if (res >= 0)
9473 : return res;
9474 : if (pnum_clobbers == NULL)
9475 : return -1;
9476 : switch (pattern636 (x3))
9477 : {
9478 : case 0:
9479 : if (!
9480 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9481 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9482 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9483 : == 4 * BITS_PER_UNIT - 1
9484 : && ix86_pre_reload_split ()))
9485 : return -1;
9486 : *pnum_clobbers = 1;
9487 : return 1278; /* *ashrsi3_mask */
9488 :
9489 : case 1:
9490 : if (!(
9491 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9492 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9493 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9494 : == 8 * BITS_PER_UNIT - 1
9495 : && ix86_pre_reload_split ()) &&
9496 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9497 : (TARGET_64BIT)))
9498 : return -1;
9499 : *pnum_clobbers = 1;
9500 : return 1281; /* *ashrdi3_mask */
9501 :
9502 : case 2:
9503 : if (!
9504 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9505 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9506 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9507 : && ix86_pre_reload_split ()))
9508 : return -1;
9509 : *pnum_clobbers = 1;
9510 : return 1290; /* *ashrsi3_add */
9511 :
9512 : case 3:
9513 : if (!(
9514 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9515 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9516 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9517 : && ix86_pre_reload_split ()) &&
9518 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9519 : (TARGET_64BIT)))
9520 : return -1;
9521 : *pnum_clobbers = 1;
9522 : return 1293; /* *ashrdi3_add */
9523 :
9524 : case 4:
9525 : if (!
9526 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9527 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9528 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9529 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9530 : == 4 * BITS_PER_UNIT - 1)
9531 : && ix86_pre_reload_split ()))
9532 : return -1;
9533 : *pnum_clobbers = 1;
9534 : return 1302; /* *ashrsi3_sub */
9535 :
9536 : case 5:
9537 : if (!(
9538 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9539 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9540 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9541 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9542 : == 8 * BITS_PER_UNIT - 1)
9543 : && ix86_pre_reload_split ()) &&
9544 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9545 : (TARGET_64BIT)))
9546 : return -1;
9547 : *pnum_clobbers = 1;
9548 : return 1305; /* *ashrdi3_sub */
9549 :
9550 : default:
9551 : return -1;
9552 : }
9553 :
9554 : case 1:
9555 : if (register_operand (operands[0], E_DImode)
9556 : && register_operand (operands[1], E_DImode)
9557 : && (
9558 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9559 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
9560 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
9561 : == (2 * 4 * BITS_PER_UNIT - 1)))
9562 : && ix86_pre_reload_split ()) &&
9563 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9564 : (!TARGET_64BIT)))
9565 : {
9566 : *pnum_clobbers = 1;
9567 : return 1159; /* *ashrdi3_doubleword_mask_1 */
9568 : }
9569 : if (!nonimmediate_operand (operands[0], E_DImode)
9570 : || !nonimmediate_operand (operands[1], E_DImode)
9571 : || !(
9572 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9573 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9574 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9575 : == 8 * BITS_PER_UNIT - 1
9576 : && ix86_pre_reload_split ()) &&
9577 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9578 : (TARGET_64BIT)))
9579 : return -1;
9580 : *pnum_clobbers = 1;
9581 : return 1287; /* *ashrdi3_mask_1 */
9582 :
9583 : case 2:
9584 : if (!
9585 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9586 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9587 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9588 : == 4 * BITS_PER_UNIT - 1
9589 : && ix86_pre_reload_split ()))
9590 : return -1;
9591 : *pnum_clobbers = 1;
9592 : return 1284; /* *ashrsi3_mask_1 */
9593 :
9594 : case 3:
9595 : if (!
9596 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9597 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9598 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9599 : && ix86_pre_reload_split ()))
9600 : return -1;
9601 : *pnum_clobbers = 1;
9602 : return 1296; /* *ashrsi3_add_1 */
9603 :
9604 : case 4:
9605 : if (!(
9606 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9607 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9608 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9609 : && ix86_pre_reload_split ()) &&
9610 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9611 : (TARGET_64BIT)))
9612 : return -1;
9613 : *pnum_clobbers = 1;
9614 : return 1299; /* *ashrdi3_add_1 */
9615 :
9616 : case 5:
9617 : if (!
9618 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9619 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
9620 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
9621 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
9622 : == 4 * BITS_PER_UNIT - 1)
9623 : && ix86_pre_reload_split ()))
9624 : return -1;
9625 : *pnum_clobbers = 1;
9626 : return 1308; /* *ashrsi3_sub_1 */
9627 :
9628 : case 6:
9629 : if (!(
9630 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9631 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
9632 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
9633 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
9634 : == 8 * BITS_PER_UNIT - 1)
9635 : && ix86_pre_reload_split ()) &&
9636 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9637 : (TARGET_64BIT)))
9638 : return -1;
9639 : *pnum_clobbers = 1;
9640 : return 1311; /* *ashrdi3_sub_1 */
9641 :
9642 : default:
9643 : return -1;
9644 : }
9645 :
9646 : case ASHIFT:
9647 : if (pnum_clobbers == NULL
9648 : || pattern295 (x3,
9649 : E_DImode) != 0
9650 : || !(
9651 : #line 18929 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9652 : (INTVAL (operands[2]) == INTVAL (operands[3])
9653 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
9654 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9655 : (!TARGET_64BIT)))
9656 : return -1;
9657 : *pnum_clobbers = 1;
9658 : return 1312; /* *extenddi2_doubleword_highpart */
9659 :
9660 : default:
9661 : return -1;
9662 : }
9663 : }
9664 :
9665 : int
9666 : recog_116 (rtx x1 ATTRIBUTE_UNUSED,
9667 : rtx_insn *insn ATTRIBUTE_UNUSED,
9668 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9669 : {
9670 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9671 : rtx x2, x3, x4;
9672 : int res ATTRIBUTE_UNUSED;
9673 : if (pnum_clobbers == NULL)
9674 : return -1;
9675 : x2 = XEXP (x1, 0);
9676 : operands[0] = x2;
9677 : x3 = XEXP (x1, 1);
9678 : x4 = XEXP (x3, 0);
9679 : operands[1] = x4;
9680 : switch (pattern132 (x3))
9681 : {
9682 : case 0:
9683 : *pnum_clobbers = 1;
9684 : return 1544; /* ctzsi2 */
9685 :
9686 : case 1:
9687 : if (!
9688 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9689 : (TARGET_64BIT))
9690 : return -1;
9691 : *pnum_clobbers = 1;
9692 : return 1545; /* ctzdi2 */
9693 :
9694 : default:
9695 : return -1;
9696 : }
9697 : }
9698 :
9699 : int
9700 : recog_117 (rtx x1 ATTRIBUTE_UNUSED,
9701 : rtx_insn *insn ATTRIBUTE_UNUSED,
9702 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9703 : {
9704 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9705 : rtx x2, x3, x4, x5, x6, x7, x8;
9706 : int res ATTRIBUTE_UNUSED;
9707 : x2 = XEXP (x1, 1);
9708 : if (GET_MODE (x2) != E_DImode)
9709 : return -1;
9710 : x3 = XEXP (x1, 0);
9711 : operands[0] = x3;
9712 : if (!register_operand (operands[0], E_DImode))
9713 : return -1;
9714 : x4 = XEXP (x2, 0);
9715 : if (GET_MODE (x4) != E_SImode)
9716 : return -1;
9717 : switch (GET_CODE (x4))
9718 : {
9719 : case CTZ:
9720 : if (pnum_clobbers == NULL)
9721 : return -1;
9722 : x5 = XEXP (x4, 0);
9723 : operands[1] = x5;
9724 : if (!nonimmediate_operand (operands[1], E_SImode)
9725 : || !
9726 : #line 22178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9727 : (TARGET_64BIT))
9728 : return -1;
9729 : *pnum_clobbers = 1;
9730 : return 1550; /* *ctzsidi2_sext */
9731 :
9732 : case XOR:
9733 : if (pnum_clobbers == NULL)
9734 : return -1;
9735 : x5 = XEXP (x4, 0);
9736 : if (GET_CODE (x5) != MINUS
9737 : || pattern444 (x4) != 0)
9738 : return -1;
9739 : x6 = XEXP (x5, 1);
9740 : x7 = XEXP (x6, 0);
9741 : operands[1] = x7;
9742 : if (!nonimmediate_operand (operands[1], E_SImode)
9743 : || !
9744 : #line 22357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
9745 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
9746 : return -1;
9747 : *pnum_clobbers = 1;
9748 : return 1562; /* *bsr_2 */
9749 :
9750 : case UNSPEC:
9751 : if (XVECLEN (x4, 0) != 1
9752 : || XINT (x4, 1) != 50)
9753 : return -1;
9754 : x8 = XVECEXP (x4, 0, 0);
9755 : switch (GET_CODE (x8))
9756 : {
9757 : case REG:
9758 : case SUBREG:
9759 : operands[1] = x8;
9760 : switch (GET_MODE (operands[1]))
9761 : {
9762 : case E_V8SFmode:
9763 : if (register_operand (operands[1], E_V8SFmode)
9764 : && (
9765 : #line 22461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9766 : (TARGET_64BIT && TARGET_SSE) &&
9767 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9768 : (TARGET_AVX)))
9769 : return 8587; /* *avx_movmskps256_ext */
9770 : break;
9771 :
9772 : case E_V4SFmode:
9773 : if (register_operand (operands[1], E_V4SFmode)
9774 : &&
9775 : #line 22461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9776 : (TARGET_64BIT && TARGET_SSE))
9777 : return 8589; /* *sse_movmskps_ext */
9778 : break;
9779 :
9780 : case E_V4DFmode:
9781 : if (register_operand (operands[1], E_V4DFmode)
9782 : && (
9783 : #line 22461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9784 : (TARGET_64BIT && TARGET_SSE) &&
9785 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9786 : (TARGET_AVX)))
9787 : return 8591; /* *avx_movmskpd256_ext */
9788 : break;
9789 :
9790 : case E_V2DFmode:
9791 : if (register_operand (operands[1], E_V2DFmode)
9792 : && (
9793 : #line 22461 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9794 : (TARGET_64BIT && TARGET_SSE) &&
9795 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9796 : (TARGET_SSE2)))
9797 : return 8593; /* *sse2_movmskpd_ext */
9798 : break;
9799 :
9800 : case E_V16QImode:
9801 : if (register_operand (operands[1], E_V16QImode)
9802 : &&
9803 : #line 22637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9804 : (TARGET_64BIT && TARGET_SSE2))
9805 : return 8635; /* *sse2_pmovmskb_ext */
9806 : break;
9807 :
9808 : default:
9809 : break;
9810 : }
9811 : if (GET_CODE (x8) != SUBREG)
9812 : return -1;
9813 : switch (pattern1101 (x8))
9814 : {
9815 : case 0:
9816 : if (!(
9817 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9818 : (TARGET_64BIT && TARGET_SSE) &&
9819 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9820 : (TARGET_AVX)))
9821 : return -1;
9822 : return 8611; /* *avx_movmskps256_ext_lt_avx512 */
9823 :
9824 : case 1:
9825 : if (!
9826 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9827 : (TARGET_64BIT && TARGET_SSE))
9828 : return -1;
9829 : return 8613; /* *sse_movmskps_ext_lt_avx512 */
9830 :
9831 : case 2:
9832 : if (!(
9833 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9834 : (TARGET_64BIT && TARGET_SSE) &&
9835 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9836 : (TARGET_AVX)))
9837 : return -1;
9838 : return 8615; /* *avx_movmskpd256_ext_lt_avx512 */
9839 :
9840 : case 3:
9841 : if (!(
9842 : #line 22544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9843 : (TARGET_64BIT && TARGET_SSE) &&
9844 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9845 : (TARGET_SSE2)))
9846 : return -1;
9847 : return 8617; /* *sse2_movmskpd_ext_lt_avx512 */
9848 :
9849 : case 4:
9850 : if (!(
9851 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9852 : (TARGET_64BIT && TARGET_SSE) &&
9853 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9854 : (TARGET_AVX)))
9855 : return -1;
9856 : return 8623; /* *avx_movmskps256_ext_shift */
9857 :
9858 : case 5:
9859 : if (!
9860 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9861 : (TARGET_64BIT && TARGET_SSE))
9862 : return -1;
9863 : return 8625; /* *sse_movmskps_ext_shift */
9864 :
9865 : case 6:
9866 : if (!(
9867 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9868 : (TARGET_64BIT && TARGET_SSE) &&
9869 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9870 : (TARGET_AVX)))
9871 : return -1;
9872 : return 8627; /* *avx_movmskpd256_ext_shift */
9873 :
9874 : case 7:
9875 : if (!(
9876 : #line 22583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9877 : (TARGET_64BIT && TARGET_SSE) &&
9878 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9879 : (TARGET_SSE2)))
9880 : return -1;
9881 : return 8629; /* *sse2_movmskpd_ext_shift */
9882 :
9883 : default:
9884 : return -1;
9885 : }
9886 :
9887 : case LT:
9888 : switch (pattern998 (x8))
9889 : {
9890 : case 0:
9891 : if (!(
9892 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9893 : (TARGET_64BIT && TARGET_SSE) &&
9894 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9895 : (TARGET_AVX)))
9896 : return -1;
9897 : return 8603; /* *avx_movmskps256_ext_lt */
9898 :
9899 : case 1:
9900 : if (!
9901 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9902 : (TARGET_64BIT && TARGET_SSE))
9903 : return -1;
9904 : return 8605; /* *sse_movmskps_ext_lt */
9905 :
9906 : case 2:
9907 : if (!(
9908 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9909 : (TARGET_64BIT && TARGET_SSE) &&
9910 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9911 : (TARGET_AVX)))
9912 : return -1;
9913 : return 8607; /* *avx_movmskpd256_ext_lt */
9914 :
9915 : case 3:
9916 : if (!(
9917 : #line 22519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9918 : (TARGET_64BIT && TARGET_SSE) &&
9919 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9920 : (TARGET_SSE2)))
9921 : return -1;
9922 : return 8609; /* *sse2_movmskpd_ext_lt */
9923 :
9924 : case 4:
9925 : if (!
9926 : #line 22834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9927 : (TARGET_64BIT && TARGET_SSE2))
9928 : return -1;
9929 : return 8645; /* *sse2_pmovmskb_ext_lt */
9930 :
9931 : default:
9932 : return -1;
9933 : }
9934 :
9935 : case VEC_MERGE:
9936 : switch (pattern988 (x8))
9937 : {
9938 : case 0:
9939 : if (!(
9940 : #line 22863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9941 : (TARGET_64BIT && TARGET_SSE2) &&
9942 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9943 : (TARGET_AVX2)))
9944 : return -1;
9945 : return 8646; /* *sse2_pmovmskb_ext_lt_avx512 */
9946 :
9947 : case 1:
9948 : if (!
9949 : #line 22863 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9950 : (TARGET_64BIT && TARGET_SSE2))
9951 : return -1;
9952 : return 8647; /* *sse2_pmovmskb_ext_lt_avx512 */
9953 :
9954 : default:
9955 : return -1;
9956 : }
9957 :
9958 : default:
9959 : return -1;
9960 : }
9961 :
9962 : default:
9963 : return -1;
9964 : }
9965 : }
9966 :
9967 : int
9968 : recog_128 (rtx x1 ATTRIBUTE_UNUSED,
9969 : rtx_insn *insn ATTRIBUTE_UNUSED,
9970 : int *pnum_clobbers ATTRIBUTE_UNUSED)
9971 : {
9972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
9973 : rtx x2, x3, x4, x5;
9974 : int res ATTRIBUTE_UNUSED;
9975 : x2 = XEXP (x1, 1);
9976 : x3 = XEXP (x2, 0);
9977 : x4 = XVECEXP (x3, 0, 0);
9978 : operands[1] = x4;
9979 : x5 = XEXP (x2, 2);
9980 : operands[3] = x5;
9981 : switch (GET_MODE (operands[0]))
9982 : {
9983 : case E_V8HImode:
9984 : if (pattern646 (x2,
9985 : E_V8HImode,
9986 : E_QImode,
9987 : E_V8HFmode) != 0
9988 : || !(
9989 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
9990 : (TARGET_AVX512F) && (
9991 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9992 : (TARGET_AVX512FP16) &&
9993 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9994 : (TARGET_AVX512VL))))
9995 : return -1;
9996 : return 4612; /* unspec_avx512fp16_fix_truncv8hi2_mask */
9997 :
9998 : case E_V16HImode:
9999 : if (pattern646 (x2,
10000 : E_V16HImode,
10001 : E_HImode,
10002 : E_V16HFmode) != 0
10003 : || !(
10004 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10005 : (TARGET_AVX512F) && (
10006 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10007 : (TARGET_AVX512FP16) &&
10008 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10009 : (TARGET_AVX512VL))))
10010 : return -1;
10011 : return 4620; /* unspec_avx512fp16_fix_truncv16hi2_mask */
10012 :
10013 : case E_V32HImode:
10014 : if (pattern646 (x2,
10015 : E_V32HImode,
10016 : E_SImode,
10017 : E_V32HFmode) != 0
10018 : || !(
10019 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10020 : (TARGET_AVX512F) &&
10021 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10022 : (TARGET_AVX512FP16)))
10023 : return -1;
10024 : return 4628; /* unspec_avx512fp16_fix_truncv32hi2_mask */
10025 :
10026 : case E_V8SImode:
10027 : switch (pattern999 (x2,
10028 : E_V8SImode))
10029 : {
10030 : case 0:
10031 : if (!(
10032 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10033 : (TARGET_AVX512F) && (
10034 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10035 : (TARGET_AVX512FP16) &&
10036 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10037 : (TARGET_AVX512VL))))
10038 : return -1;
10039 : return 4636; /* unspec_avx512fp16_fix_truncv8si2_mask */
10040 :
10041 : case 1:
10042 : if (!(
10043 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10044 : (TARGET_AVX512F) &&
10045 : #line 9175 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10046 : (TARGET_AVX && TARGET_AVX512VL)))
10047 : return -1;
10048 : return 4933; /* unspec_fix_truncv8sfv8si2_mask */
10049 :
10050 : case 2:
10051 : if (!
10052 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10053 : (TARGET_AVX512F))
10054 : return -1;
10055 : return 5067; /* unspec_fix_truncv8dfv8si2_mask */
10056 :
10057 : default:
10058 : return -1;
10059 : }
10060 :
10061 : case E_V16SImode:
10062 : switch (pattern1000 (x2))
10063 : {
10064 : case 0:
10065 : if (!(
10066 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10067 : (TARGET_AVX512F) &&
10068 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10069 : (TARGET_AVX512FP16)))
10070 : return -1;
10071 : return 4644; /* unspec_avx512fp16_fix_truncv16si2_mask */
10072 :
10073 : case 1:
10074 : if (!
10075 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10076 : (TARGET_AVX512F))
10077 : return -1;
10078 : return 4918; /* unspec_fix_truncv16sfv16si2_mask */
10079 :
10080 : default:
10081 : return -1;
10082 : }
10083 :
10084 : case E_V8DImode:
10085 : switch (pattern1001 (x2))
10086 : {
10087 : case 0:
10088 : if (!(
10089 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10090 : (TARGET_AVX512F) &&
10091 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10092 : (TARGET_AVX512FP16)))
10093 : return -1;
10094 : return 4652; /* unspec_avx512fp16_fix_truncv8di2_mask */
10095 :
10096 : case 1:
10097 : if (!(
10098 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10099 : (TARGET_AVX512F) &&
10100 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10101 : (TARGET_AVX512DQ && 1)))
10102 : return -1;
10103 : return 5096; /* unspec_fix_truncv8dfv8di2_mask */
10104 :
10105 : case 2:
10106 : if (!(
10107 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10108 : (TARGET_AVX512F) &&
10109 : #line 10121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10110 : (TARGET_AVX512DQ && 1)))
10111 : return -1;
10112 : return 5144; /* unspec_fix_truncv8sfv8di2_mask */
10113 :
10114 : default:
10115 : return -1;
10116 : }
10117 :
10118 : case E_V4SImode:
10119 : if (pattern142 (x2,
10120 : E_V4SImode,
10121 : E_QImode) != 0)
10122 : return -1;
10123 : switch (GET_MODE (operands[1]))
10124 : {
10125 : case E_V8HFmode:
10126 : if (!register_operand (operands[1], E_V8HFmode)
10127 : || !(
10128 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10129 : (TARGET_AVX512F) &&
10130 : #line 8297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10131 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10132 : return -1;
10133 : return 4707; /* unspec_avx512fp16_fix_truncv4si2_mask */
10134 :
10135 : case E_V4SFmode:
10136 : if (!vector_operand (operands[1], E_V4SFmode)
10137 : || !(
10138 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10139 : (TARGET_AVX512F) &&
10140 : #line 9194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10141 : (TARGET_SSE2 && TARGET_AVX512VL)))
10142 : return -1;
10143 : return 4937; /* unspec_fix_truncv4sfv4si2_mask */
10144 :
10145 : case E_V4DFmode:
10146 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
10147 : || !(
10148 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10149 : (TARGET_AVX512F) &&
10150 : #line 10039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10151 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F))))
10152 : return -1;
10153 : return 5087; /* unspec_fix_truncv4dfv4si2_mask */
10154 :
10155 : case E_V2DFmode:
10156 : if (!vector_operand (operands[1], E_V2DFmode)
10157 : || !(
10158 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10159 : (TARGET_AVX512F) &&
10160 : #line 10321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10161 : (TARGET_SSE2 && TARGET_AVX512VL)))
10162 : return -1;
10163 : return 5183; /* unspec_sse2_cvttpd2dq_mask */
10164 :
10165 : default:
10166 : return -1;
10167 : }
10168 :
10169 : case E_V4DImode:
10170 : switch (pattern1002 (x2))
10171 : {
10172 : case 0:
10173 : if (!(
10174 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10175 : (TARGET_AVX512F) &&
10176 : #line 8297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10177 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10178 : return -1;
10179 : return 4711; /* unspec_avx512fp16_fix_truncv4di2_mask */
10180 :
10181 : case 1:
10182 : if (!(
10183 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10184 : (TARGET_AVX512F) && (
10185 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10186 : (TARGET_AVX512DQ && 1) &&
10187 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10188 : (TARGET_AVX512VL))))
10189 : return -1;
10190 : return 5103; /* unspec_fix_truncv4dfv4di2_mask */
10191 :
10192 : case 2:
10193 : if (!(
10194 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10195 : (TARGET_AVX512F) && (
10196 : #line 10121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10197 : (TARGET_AVX512DQ && 1) &&
10198 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10199 : (TARGET_AVX512VL))))
10200 : return -1;
10201 : return 5151; /* unspec_fix_truncv4sfv4di2_mask */
10202 :
10203 : default:
10204 : return -1;
10205 : }
10206 :
10207 : case E_V2DImode:
10208 : switch (pattern1003 (x2))
10209 : {
10210 : case 0:
10211 : if (!(
10212 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10213 : (TARGET_AVX512F) &&
10214 : #line 8347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10215 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10216 : return -1;
10217 : return 4731; /* unspec_avx512fp16_fix_truncv2di2_mask */
10218 :
10219 : case 1:
10220 : if (!(
10221 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10222 : (TARGET_AVX512F) && (
10223 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10224 : (TARGET_AVX512DQ && 1) &&
10225 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10226 : (TARGET_AVX512VL))))
10227 : return -1;
10228 : return 5107; /* unspec_fix_truncv2dfv2di2_mask */
10229 :
10230 : case 2:
10231 : if (!(
10232 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10233 : (TARGET_AVX512F) &&
10234 : #line 10142 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10235 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
10236 : return -1;
10237 : return 5167; /* unspec_avx512dq_fix_truncv2sfv2di2_mask */
10238 :
10239 : default:
10240 : return -1;
10241 : }
10242 :
10243 : default:
10244 : return -1;
10245 : }
10246 : }
10247 :
10248 : int
10249 : recog_135 (rtx x1 ATTRIBUTE_UNUSED,
10250 : rtx_insn *insn ATTRIBUTE_UNUSED,
10251 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10252 : {
10253 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10254 : rtx x2, x3, x4, x5, x6, x7;
10255 : int res ATTRIBUTE_UNUSED;
10256 : x2 = XEXP (x1, 1);
10257 : x3 = XEXP (x2, 0);
10258 : x4 = XVECEXP (x3, 0, 0);
10259 : operands[1] = x4;
10260 : x5 = XVECEXP (x3, 0, 1);
10261 : operands[2] = x5;
10262 : if (!const_0_to_15_operand (operands[2], E_SImode))
10263 : return -1;
10264 : x6 = XEXP (x2, 1);
10265 : operands[3] = x6;
10266 : x7 = XEXP (x2, 2);
10267 : operands[4] = x7;
10268 : switch (GET_MODE (operands[0]))
10269 : {
10270 : case E_V32HFmode:
10271 : if (pattern472 (x2,
10272 : E_V32HFmode,
10273 : E_SImode) != 0
10274 : || !(
10275 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10276 : (TARGET_AVX512F) && (
10277 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10278 : (TARGET_AVX512F) &&
10279 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10280 : (TARGET_AVX512FP16))))
10281 : return -1;
10282 : return 10112; /* avx512bw_getmantv32hf_mask */
10283 :
10284 : case E_V16HFmode:
10285 : if (pattern472 (x2,
10286 : E_V16HFmode,
10287 : E_HImode) != 0
10288 : || !(
10289 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10290 : (TARGET_AVX512F) && (
10291 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10292 : (TARGET_AVX512F) &&
10293 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10294 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10295 : return -1;
10296 : return 10116; /* avx512vl_getmantv16hf_mask */
10297 :
10298 : case E_V8HFmode:
10299 : if (pattern472 (x2,
10300 : E_V8HFmode,
10301 : E_QImode) != 0
10302 : || !(
10303 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10304 : (TARGET_AVX512F) && (
10305 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10306 : (TARGET_AVX512F) &&
10307 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10308 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10309 : return -1;
10310 : return 10120; /* avx512fp16_getmantv8hf_mask */
10311 :
10312 : case E_V16SFmode:
10313 : if (pattern472 (x2,
10314 : E_V16SFmode,
10315 : E_HImode) != 0
10316 : || !
10317 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10318 : (TARGET_AVX512F))
10319 : return -1;
10320 : return 10124; /* avx512f_getmantv16sf_mask */
10321 :
10322 : case E_V8SFmode:
10323 : if (pattern472 (x2,
10324 : E_V8SFmode,
10325 : E_QImode) != 0
10326 : || !(
10327 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10328 : (TARGET_AVX512F) && (
10329 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10330 : (TARGET_AVX512F) &&
10331 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10332 : (TARGET_AVX512VL))))
10333 : return -1;
10334 : return 10128; /* avx512vl_getmantv8sf_mask */
10335 :
10336 : case E_V4SFmode:
10337 : if (pattern472 (x2,
10338 : E_V4SFmode,
10339 : E_QImode) != 0
10340 : || !(
10341 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10342 : (TARGET_AVX512F) && (
10343 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10344 : (TARGET_AVX512F) &&
10345 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10346 : (TARGET_AVX512VL))))
10347 : return -1;
10348 : return 10132; /* avx512vl_getmantv4sf_mask */
10349 :
10350 : case E_V8DFmode:
10351 : if (pattern472 (x2,
10352 : E_V8DFmode,
10353 : E_QImode) != 0
10354 : || !
10355 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10356 : (TARGET_AVX512F))
10357 : return -1;
10358 : return 10136; /* avx512f_getmantv8df_mask */
10359 :
10360 : case E_V4DFmode:
10361 : if (pattern472 (x2,
10362 : E_V4DFmode,
10363 : E_QImode) != 0
10364 : || !(
10365 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10366 : (TARGET_AVX512F) && (
10367 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10368 : (TARGET_AVX512F) &&
10369 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10370 : (TARGET_AVX512VL))))
10371 : return -1;
10372 : return 10140; /* avx512vl_getmantv4df_mask */
10373 :
10374 : case E_V2DFmode:
10375 : if (pattern472 (x2,
10376 : E_V2DFmode,
10377 : E_QImode) != 0
10378 : || !(
10379 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10380 : (TARGET_AVX512F) && (
10381 : #line 30935 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10382 : (TARGET_AVX512F) &&
10383 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10384 : (TARGET_AVX512VL))))
10385 : return -1;
10386 : return 10144; /* avx512vl_getmantv2df_mask */
10387 :
10388 : default:
10389 : return -1;
10390 : }
10391 : }
10392 :
10393 : int
10394 : recog_140 (rtx x1 ATTRIBUTE_UNUSED,
10395 : rtx_insn *insn ATTRIBUTE_UNUSED,
10396 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10397 : {
10398 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10399 : rtx x2;
10400 : int res ATTRIBUTE_UNUSED;
10401 : x2 = XEXP (x1, 1);
10402 : switch (pattern487 (x2))
10403 : {
10404 : case 0:
10405 : if (!
10406 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10407 : (TARGET_AVX512VBMI2))
10408 : return -1;
10409 : return 10332; /* vpshrdv_v32hi_mask */
10410 :
10411 : case 1:
10412 : if (!
10413 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10414 : (TARGET_AVX512VBMI2))
10415 : return -1;
10416 : return 10333; /* vpshrdv_v16si_mask */
10417 :
10418 : case 2:
10419 : if (!
10420 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10421 : (TARGET_AVX512VBMI2))
10422 : return -1;
10423 : return 10334; /* vpshrdv_v8di_mask */
10424 :
10425 : case 3:
10426 : if (!(
10427 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10428 : (TARGET_AVX512VBMI2) &&
10429 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10430 : (TARGET_AVX512VL)))
10431 : return -1;
10432 : return 10335; /* vpshrdv_v16hi_mask */
10433 :
10434 : case 4:
10435 : if (!(
10436 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10437 : (TARGET_AVX512VBMI2) &&
10438 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10439 : (TARGET_AVX512VL)))
10440 : return -1;
10441 : return 10336; /* vpshrdv_v8si_mask */
10442 :
10443 : case 5:
10444 : if (!(
10445 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10446 : (TARGET_AVX512VBMI2) &&
10447 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10448 : (TARGET_AVX512VL)))
10449 : return -1;
10450 : return 10337; /* vpshrdv_v4di_mask */
10451 :
10452 : case 6:
10453 : if (!(
10454 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10455 : (TARGET_AVX512VBMI2) &&
10456 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10457 : (TARGET_AVX512VL)))
10458 : return -1;
10459 : return 10338; /* vpshrdv_v8hi_mask */
10460 :
10461 : case 7:
10462 : if (!(
10463 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10464 : (TARGET_AVX512VBMI2) &&
10465 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10466 : (TARGET_AVX512VL)))
10467 : return -1;
10468 : return 10339; /* vpshrdv_v4si_mask */
10469 :
10470 : case 8:
10471 : if (!(
10472 : #line 31493 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10473 : (TARGET_AVX512VBMI2) &&
10474 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10475 : (TARGET_AVX512VL)))
10476 : return -1;
10477 : return 10340; /* vpshrdv_v2di_mask */
10478 :
10479 : case 9:
10480 : if (!
10481 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10482 : (TARGET_AVX512VBMI2))
10483 : return -1;
10484 : return 10341; /* vpshrdv_v32hi_maskz_1 */
10485 :
10486 : case 10:
10487 : if (!
10488 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10489 : (TARGET_AVX512VBMI2))
10490 : return -1;
10491 : return 10342; /* vpshrdv_v16si_maskz_1 */
10492 :
10493 : case 11:
10494 : if (!
10495 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10496 : (TARGET_AVX512VBMI2))
10497 : return -1;
10498 : return 10343; /* vpshrdv_v8di_maskz_1 */
10499 :
10500 : case 12:
10501 : if (!(
10502 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10503 : (TARGET_AVX512VBMI2) &&
10504 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10505 : (TARGET_AVX512VL)))
10506 : return -1;
10507 : return 10344; /* vpshrdv_v16hi_maskz_1 */
10508 :
10509 : case 13:
10510 : if (!(
10511 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10512 : (TARGET_AVX512VBMI2) &&
10513 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10514 : (TARGET_AVX512VL)))
10515 : return -1;
10516 : return 10345; /* vpshrdv_v8si_maskz_1 */
10517 :
10518 : case 14:
10519 : if (!(
10520 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10521 : (TARGET_AVX512VBMI2) &&
10522 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10523 : (TARGET_AVX512VL)))
10524 : return -1;
10525 : return 10346; /* vpshrdv_v4di_maskz_1 */
10526 :
10527 : case 15:
10528 : if (!(
10529 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10530 : (TARGET_AVX512VBMI2) &&
10531 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10532 : (TARGET_AVX512VL)))
10533 : return -1;
10534 : return 10347; /* vpshrdv_v8hi_maskz_1 */
10535 :
10536 : case 16:
10537 : if (!(
10538 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10539 : (TARGET_AVX512VBMI2) &&
10540 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10541 : (TARGET_AVX512VL)))
10542 : return -1;
10543 : return 10348; /* vpshrdv_v4si_maskz_1 */
10544 :
10545 : case 17:
10546 : if (!(
10547 : #line 31523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10548 : (TARGET_AVX512VBMI2) &&
10549 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10550 : (TARGET_AVX512VL)))
10551 : return -1;
10552 : return 10349; /* vpshrdv_v2di_maskz_1 */
10553 :
10554 : default:
10555 : return -1;
10556 : }
10557 : }
10558 :
10559 : int
10560 : recog_145 (rtx x1 ATTRIBUTE_UNUSED,
10561 : rtx_insn *insn ATTRIBUTE_UNUSED,
10562 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10563 : {
10564 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10565 : rtx x2;
10566 : int res ATTRIBUTE_UNUSED;
10567 : x2 = XEXP (x1, 1);
10568 : switch (pattern483 (x2))
10569 : {
10570 : case 0:
10571 : if (!(
10572 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10573 : (TARGET_AVX512F) &&
10574 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10575 : (TARGET_AVX512VBMI2)))
10576 : return -1;
10577 : return 10288; /* vpshrd_v32hi_mask */
10578 :
10579 : case 1:
10580 : if (!(
10581 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10582 : (TARGET_AVX512F) &&
10583 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10584 : (TARGET_AVX512VBMI2)))
10585 : return -1;
10586 : return 10290; /* vpshrd_v16si_mask */
10587 :
10588 : case 2:
10589 : if (!(
10590 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10591 : (TARGET_AVX512F) &&
10592 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10593 : (TARGET_AVX512VBMI2)))
10594 : return -1;
10595 : return 10292; /* vpshrd_v8di_mask */
10596 :
10597 : case 3:
10598 : if (!(
10599 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10600 : (TARGET_AVX512F) && (
10601 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10602 : (TARGET_AVX512VBMI2) &&
10603 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10604 : (TARGET_AVX512VL))))
10605 : return -1;
10606 : return 10294; /* vpshrd_v16hi_mask */
10607 :
10608 : case 4:
10609 : if (!(
10610 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10611 : (TARGET_AVX512F) && (
10612 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10613 : (TARGET_AVX512VBMI2) &&
10614 : #line 747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10615 : (TARGET_AVX512VL))))
10616 : return -1;
10617 : return 10296; /* vpshrd_v8si_mask */
10618 :
10619 : case 5:
10620 : if (!(
10621 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10622 : (TARGET_AVX512F) && (
10623 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10624 : (TARGET_AVX512VBMI2) &&
10625 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10626 : (TARGET_AVX512VL))))
10627 : return -1;
10628 : return 10298; /* vpshrd_v4di_mask */
10629 :
10630 : case 6:
10631 : if (!(
10632 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10633 : (TARGET_AVX512F) && (
10634 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10635 : (TARGET_AVX512VBMI2) &&
10636 : #line 748 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10637 : (TARGET_AVX512VL))))
10638 : return -1;
10639 : return 10300; /* vpshrd_v8hi_mask */
10640 :
10641 : case 7:
10642 : if (!(
10643 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10644 : (TARGET_AVX512F) && (
10645 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10646 : (TARGET_AVX512VBMI2) &&
10647 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10648 : (TARGET_AVX512VL))))
10649 : return -1;
10650 : return 10302; /* vpshrd_v4si_mask */
10651 :
10652 : case 8:
10653 : if (!(
10654 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10655 : (TARGET_AVX512F) && (
10656 : #line 31456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10657 : (TARGET_AVX512VBMI2) &&
10658 : #line 749 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10659 : (TARGET_AVX512VL))))
10660 : return -1;
10661 : return 10304; /* vpshrd_v2di_mask */
10662 :
10663 : default:
10664 : return -1;
10665 : }
10666 : }
10667 :
10668 : int
10669 : recog_152 (rtx x1 ATTRIBUTE_UNUSED,
10670 : rtx_insn *insn ATTRIBUTE_UNUSED,
10671 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10672 : {
10673 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10674 : rtx x2, x3, x4, x5, x6;
10675 : int res ATTRIBUTE_UNUSED;
10676 : x2 = XEXP (x1, 1);
10677 : x3 = XEXP (x2, 2);
10678 : switch (GET_CODE (x3))
10679 : {
10680 : case CONST_INT:
10681 : x4 = XEXP (x2, 0);
10682 : x5 = XEXP (x4, 0);
10683 : operands[2] = x5;
10684 : x6 = XEXP (x2, 1);
10685 : operands[1] = x6;
10686 : switch (XWINT (x3, 0))
10687 : {
10688 : case 3L:
10689 : switch (GET_MODE (operands[0]))
10690 : {
10691 : case E_V8HFmode:
10692 : if (pattern1013 (x2,
10693 : E_V8HFmode,
10694 : E_V2HFmode) == 0
10695 : &&
10696 : #line 12249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10697 : (TARGET_SSE))
10698 : return 5314; /* *vec_concatv8hf_movss */
10699 : break;
10700 :
10701 : case E_V8BFmode:
10702 : if (pattern1013 (x2,
10703 : E_V8BFmode,
10704 : E_V2BFmode) == 0
10705 : &&
10706 : #line 12249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10707 : (TARGET_SSE))
10708 : return 5315; /* *vec_concatv8bf_movss */
10709 : break;
10710 :
10711 : case E_V8HImode:
10712 : if (pattern1013 (x2,
10713 : E_V8HImode,
10714 : E_V2HImode) == 0
10715 : &&
10716 : #line 12249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10717 : (TARGET_SSE))
10718 : return 5316; /* *vec_concatv8hi_movss */
10719 : break;
10720 :
10721 : default:
10722 : break;
10723 : }
10724 : break;
10725 :
10726 : case 1L:
10727 : switch (GET_MODE (operands[0]))
10728 : {
10729 : case E_V4SImode:
10730 : if (pattern1014 (x2,
10731 : E_V4SImode,
10732 : E_SImode) == 0
10733 : &&
10734 : #line 12271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10735 : (TARGET_SSE))
10736 : return 5317; /* vec_setv4si_0 */
10737 : break;
10738 :
10739 : case E_V4SFmode:
10740 : if (pattern1014 (x2,
10741 : E_V4SFmode,
10742 : E_SFmode) == 0
10743 : &&
10744 : #line 12271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10745 : (TARGET_SSE))
10746 : return 5318; /* vec_setv4sf_0 */
10747 : break;
10748 :
10749 : case E_V8HImode:
10750 : if (pattern1013 (x2,
10751 : E_V8HImode,
10752 : E_HImode) == 0
10753 : &&
10754 : #line 12356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10755 : (TARGET_SSE2))
10756 : return 5319; /* vec_setv8hi_0 */
10757 : break;
10758 :
10759 : case E_V8HFmode:
10760 : if (pattern1013 (x2,
10761 : E_V8HFmode,
10762 : E_HFmode) == 0
10763 : &&
10764 : #line 12356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10765 : (TARGET_SSE2))
10766 : return 5320; /* vec_setv8hf_0 */
10767 : break;
10768 :
10769 : case E_V8BFmode:
10770 : if (pattern1013 (x2,
10771 : E_V8BFmode,
10772 : E_BFmode) == 0
10773 : &&
10774 : #line 12356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10775 : (TARGET_SSE2))
10776 : return 5321; /* vec_setv8bf_0 */
10777 : break;
10778 :
10779 : case E_V16HImode:
10780 : if (pattern1015 (x2,
10781 : E_V16HImode,
10782 : E_HImode) == 0
10783 : &&
10784 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10785 : (TARGET_AVX512FP16))
10786 : return 5325; /* vec_setv16hi_0 */
10787 : break;
10788 :
10789 : case E_V32HImode:
10790 : if (pattern1015 (x2,
10791 : E_V32HImode,
10792 : E_HImode) == 0
10793 : &&
10794 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10795 : (TARGET_AVX512FP16))
10796 : return 5326; /* vec_setv32hi_0 */
10797 : break;
10798 :
10799 : case E_V16HFmode:
10800 : if (pattern1015 (x2,
10801 : E_V16HFmode,
10802 : E_HFmode) == 0
10803 : &&
10804 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10805 : (TARGET_AVX512FP16))
10806 : return 5327; /* vec_setv16hf_0 */
10807 : break;
10808 :
10809 : case E_V32HFmode:
10810 : if (pattern1015 (x2,
10811 : E_V32HFmode,
10812 : E_HFmode) == 0
10813 : &&
10814 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10815 : (TARGET_AVX512FP16))
10816 : return 5328; /* vec_setv32hf_0 */
10817 : break;
10818 :
10819 : case E_V16BFmode:
10820 : if (pattern1015 (x2,
10821 : E_V16BFmode,
10822 : E_BFmode) == 0
10823 : &&
10824 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10825 : (TARGET_AVX512FP16))
10826 : return 5329; /* vec_setv16bf_0 */
10827 : break;
10828 :
10829 : case E_V32BFmode:
10830 : if (pattern1015 (x2,
10831 : E_V32BFmode,
10832 : E_BFmode) == 0
10833 : &&
10834 : #line 12458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10835 : (TARGET_AVX512FP16))
10836 : return 5330; /* vec_setv32bf_0 */
10837 : break;
10838 :
10839 : case E_V8SImode:
10840 : if (pattern1015 (x2,
10841 : E_V8SImode,
10842 : E_SImode) == 0
10843 : &&
10844 : #line 12565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10845 : (TARGET_AVX))
10846 : return 5342; /* vec_setv8si_0 */
10847 : break;
10848 :
10849 : case E_V8SFmode:
10850 : if (pattern1015 (x2,
10851 : E_V8SFmode,
10852 : E_SFmode) == 0
10853 : &&
10854 : #line 12565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10855 : (TARGET_AVX))
10856 : return 5343; /* vec_setv8sf_0 */
10857 : break;
10858 :
10859 : case E_V16SImode:
10860 : if (pattern1015 (x2,
10861 : E_V16SImode,
10862 : E_SImode) == 0
10863 : && (
10864 : #line 12565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10865 : (TARGET_AVX) &&
10866 : #line 975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10867 : (TARGET_AVX512F)))
10868 : return 5344; /* vec_setv16si_0 */
10869 : break;
10870 :
10871 : case E_V16SFmode:
10872 : if (pattern1015 (x2,
10873 : E_V16SFmode,
10874 : E_SFmode) == 0
10875 : && (
10876 : #line 12565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10877 : (TARGET_AVX) &&
10878 : #line 975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10879 : (TARGET_AVX512F)))
10880 : return 5345; /* vec_setv16sf_0 */
10881 : break;
10882 :
10883 : case E_V2DFmode:
10884 : if (pattern876 (x2,
10885 : E_V2DFmode,
10886 : E_DFmode) == 0
10887 : &&
10888 : #line 12679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10889 : (TARGET_SSE2))
10890 : return 5352; /* vec_setv2df_0 */
10891 : break;
10892 :
10893 : case E_V8DFmode:
10894 : if (pattern1015 (x2,
10895 : E_V8DFmode,
10896 : E_DFmode) == 0
10897 : && (
10898 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10899 : (TARGET_AVX) &&
10900 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10901 : (TARGET_AVX512F)))
10902 : return 7264; /* vec_setv8df_0 */
10903 : break;
10904 :
10905 : case E_V4DFmode:
10906 : if (pattern1015 (x2,
10907 : E_V4DFmode,
10908 : E_DFmode) == 0
10909 : &&
10910 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10911 : (TARGET_AVX))
10912 : return 7265; /* vec_setv4df_0 */
10913 : break;
10914 :
10915 : case E_V8DImode:
10916 : if (pattern1015 (x2,
10917 : E_V8DImode,
10918 : E_DImode) == 0
10919 : && (
10920 : #line 22258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10921 : (TARGET_AVX) &&
10922 : #line 699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10923 : (TARGET_AVX512F)))
10924 : return 8566; /* vec_setv8di_0 */
10925 : break;
10926 :
10927 : case E_V4DImode:
10928 : if (pattern1015 (x2,
10929 : E_V4DImode,
10930 : E_DImode) == 0
10931 : &&
10932 : #line 22258 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10933 : (TARGET_AVX))
10934 : return 8567; /* vec_setv4di_0 */
10935 : break;
10936 :
10937 : default:
10938 : break;
10939 : }
10940 : break;
10941 :
10942 : default:
10943 : break;
10944 : }
10945 : operands[3] = x3;
10946 : if (const_int_operand (operands[3], E_SImode))
10947 : {
10948 : switch (GET_MODE (operands[0]))
10949 : {
10950 : case E_V4SFmode:
10951 : if (pattern899 (x2,
10952 : E_V4SFmode,
10953 : E_SFmode) == 0
10954 : &&
10955 : #line 12532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10956 : (TARGET_SSE4_1
10957 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
10958 : < GET_MODE_NUNITS (V4SFmode))))
10959 : return 5341; /* *vec_setv4sf_sse4_1 */
10960 : break;
10961 :
10962 : case E_V16QImode:
10963 : if (pattern899 (x2,
10964 : E_V16QImode,
10965 : E_QImode) == 0
10966 : && (
10967 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10968 : (TARGET_SSE2
10969 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
10970 : < GET_MODE_NUNITS (V16QImode))) &&
10971 : #line 20328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10972 : (TARGET_SSE4_1)))
10973 : return 8454; /* sse4_1_pinsrb */
10974 : break;
10975 :
10976 : case E_V8HImode:
10977 : if (pattern899 (x2,
10978 : E_V8HImode,
10979 : E_HImode) == 0
10980 : &&
10981 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10982 : (TARGET_SSE2
10983 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
10984 : < GET_MODE_NUNITS (V8HImode))))
10985 : return 8455; /* sse2_pinsrw */
10986 : break;
10987 :
10988 : case E_V8HFmode:
10989 : if (pattern899 (x2,
10990 : E_V8HFmode,
10991 : E_HFmode) == 0
10992 : &&
10993 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10994 : (TARGET_SSE2
10995 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
10996 : < GET_MODE_NUNITS (V8HFmode))))
10997 : return 8456; /* sse2_pinsrph */
10998 : break;
10999 :
11000 : case E_V8BFmode:
11001 : if (pattern899 (x2,
11002 : E_V8BFmode,
11003 : E_BFmode) == 0
11004 : &&
11005 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11006 : (TARGET_SSE2
11007 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11008 : < GET_MODE_NUNITS (V8BFmode))))
11009 : return 8457; /* sse2_pinsrbf */
11010 : break;
11011 :
11012 : case E_V4SImode:
11013 : if (pattern899 (x2,
11014 : E_V4SImode,
11015 : E_SImode) == 0
11016 : && (
11017 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11018 : (TARGET_SSE2
11019 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11020 : < GET_MODE_NUNITS (V4SImode))) &&
11021 : #line 20329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11022 : (TARGET_SSE4_1)))
11023 : return 8458; /* sse4_1_pinsrd */
11024 : break;
11025 :
11026 : case E_V2DImode:
11027 : if (pattern899 (x2,
11028 : E_V2DImode,
11029 : E_DImode) == 0
11030 : && (
11031 : #line 20348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11032 : (TARGET_SSE2
11033 : && ((unsigned) exact_log2 (INTVAL (operands[3]))
11034 : < GET_MODE_NUNITS (V2DImode))) &&
11035 : #line 20330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11036 : (TARGET_SSE4_1 && TARGET_64BIT)))
11037 : return 8459; /* sse4_1_pinsrq */
11038 : break;
11039 :
11040 : case E_V8DFmode:
11041 : if (pattern900 (x2,
11042 : E_V8DFmode,
11043 : E_V2DFmode) == 0
11044 : && (
11045 : #line 20453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11046 : (TARGET_AVX512F
11047 : && (INTVAL (operands[3])
11048 : == (GET_MODE_UNIT_SIZE (V8DFmode) == 4 ? 0xF : 0x3))) &&
11049 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11050 : (TARGET_AVX512DQ)))
11051 : return 8460; /* *avx512dq_vinsertf64x2_0 */
11052 : break;
11053 :
11054 : case E_V8DImode:
11055 : if (pattern900 (x2,
11056 : E_V8DImode,
11057 : E_V2DImode) == 0
11058 : && (
11059 : #line 20453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11060 : (TARGET_AVX512F
11061 : && (INTVAL (operands[3])
11062 : == (GET_MODE_UNIT_SIZE (V8DImode) == 4 ? 0xF : 0x3))) &&
11063 : #line 12793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11064 : (TARGET_AVX512DQ)))
11065 : return 8461; /* *avx512dq_vinserti64x2_0 */
11066 : break;
11067 :
11068 : case E_V16SFmode:
11069 : if (pattern900 (x2,
11070 : E_V16SFmode,
11071 : E_V4SFmode) == 0
11072 : &&
11073 : #line 20453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11074 : (TARGET_AVX512F
11075 : && (INTVAL (operands[3])
11076 : == (GET_MODE_UNIT_SIZE (V16SFmode) == 4 ? 0xF : 0x3))))
11077 : return 8462; /* *avx512f_vinsertf32x4_0 */
11078 : break;
11079 :
11080 : case E_V16SImode:
11081 : if (pattern900 (x2,
11082 : E_V16SImode,
11083 : E_V4SImode) == 0
11084 : &&
11085 : #line 20453 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11086 : (TARGET_AVX512F
11087 : && (INTVAL (operands[3])
11088 : == (GET_MODE_UNIT_SIZE (V16SImode) == 4 ? 0xF : 0x3))))
11089 : return 8463; /* *avx512f_vinserti32x4_0 */
11090 : break;
11091 :
11092 : default:
11093 : break;
11094 : }
11095 : }
11096 : if (XWINT (x3, 0) != 1L
11097 : || !register_operand (operands[0], E_V4SImode)
11098 : || GET_MODE (x2) != E_V4SImode
11099 : || GET_MODE (x4) != E_V4SImode)
11100 : return -1;
11101 : operands[2] = x5;
11102 : if (!nonimmediate_operand (operands[2], E_SImode))
11103 : return -1;
11104 : operands[1] = x6;
11105 : if (!reg_or_0_operand (operands[1], E_V4SImode)
11106 : || !
11107 : #line 21520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_SSE))
11109 : return -1;
11110 : return 8530; /* sse2_loadld */
11111 :
11112 : case REG:
11113 : case SUBREG:
11114 : operands[3] = x3;
11115 : x4 = XEXP (x2, 0);
11116 : x5 = XEXP (x4, 0);
11117 : operands[1] = x5;
11118 : x6 = XEXP (x2, 1);
11119 : operands[2] = x6;
11120 : switch (GET_MODE (operands[0]))
11121 : {
11122 : case E_V2DFmode:
11123 : if (pattern155 (x2,
11124 : E_V2DFmode,
11125 : E_DFmode,
11126 : E_QImode) != 0)
11127 : return -1;
11128 : if ((
11129 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11130 : (TARGET_AVX512F) &&
11131 : #line 15288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11132 : (TARGET_SSE2)))
11133 : return 7262; /* vec_dupv2df_mask */
11134 : if (!(
11135 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11136 : (TARGET_AVX512F) && (
11137 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11138 : (TARGET_AVX512F) &&
11139 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11140 : (TARGET_AVX512VL))))
11141 : return -1;
11142 : return 9385; /* avx512vl_vec_dup_gprv2df_mask */
11143 :
11144 : case E_V16SFmode:
11145 : if (pattern142 (x2,
11146 : E_V16SFmode,
11147 : E_HImode) != 0)
11148 : return -1;
11149 : switch (GET_MODE (operands[1]))
11150 : {
11151 : case E_V4SFmode:
11152 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
11153 : || !
11154 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11155 : (TARGET_AVX512F))
11156 : return -1;
11157 : return 9331; /* avx512f_broadcastv16sf_mask */
11158 :
11159 : case E_SFmode:
11160 : if (!nonimmediate_operand (operands[1], E_SFmode)
11161 : || !
11162 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11163 : (TARGET_AVX512F))
11164 : return -1;
11165 : return 9375; /* avx512f_vec_dup_gprv16sf_mask */
11166 :
11167 : case E_V8SFmode:
11168 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
11169 : || !(
11170 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11171 : (TARGET_AVX512F) &&
11172 : #line 29023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11173 : (TARGET_AVX512DQ)))
11174 : return -1;
11175 : return 9439; /* avx512dq_broadcastv16sf_mask_1 */
11176 :
11177 : default:
11178 : return -1;
11179 : }
11180 :
11181 : case E_V16SImode:
11182 : if (pattern142 (x2,
11183 : E_V16SImode,
11184 : E_HImode) != 0)
11185 : return -1;
11186 : switch (GET_MODE (operands[1]))
11187 : {
11188 : case E_V4SImode:
11189 : if (!nonimmediate_operand (operands[1], E_V4SImode)
11190 : || !
11191 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11192 : (TARGET_AVX512F))
11193 : return -1;
11194 : return 9333; /* avx512f_broadcastv16si_mask */
11195 :
11196 : case E_SImode:
11197 : if (!nonimmediate_operand (operands[1], E_SImode)
11198 : || !
11199 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11200 : (TARGET_AVX512F))
11201 : return -1;
11202 : return 9363; /* avx512f_vec_dup_gprv16si_mask */
11203 :
11204 : case E_V8SImode:
11205 : if (!nonimmediate_operand (operands[1], E_V8SImode)
11206 : || !(
11207 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11208 : (TARGET_AVX512F) &&
11209 : #line 29023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11210 : (TARGET_AVX512DQ)))
11211 : return -1;
11212 : return 9441; /* avx512dq_broadcastv16si_mask_1 */
11213 :
11214 : default:
11215 : return -1;
11216 : }
11217 :
11218 : case E_V8DFmode:
11219 : if (pattern142 (x2,
11220 : E_V8DFmode,
11221 : E_QImode) != 0)
11222 : return -1;
11223 : switch (GET_MODE (operands[1]))
11224 : {
11225 : case E_V4DFmode:
11226 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
11227 : || !
11228 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11229 : (TARGET_AVX512F))
11230 : return -1;
11231 : return 9335; /* avx512f_broadcastv8df_mask */
11232 :
11233 : case E_DFmode:
11234 : if (!nonimmediate_operand (operands[1], E_DFmode)
11235 : || !
11236 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11237 : (TARGET_AVX512F))
11238 : return -1;
11239 : return 9381; /* avx512f_vec_dup_gprv8df_mask */
11240 :
11241 : case E_V2DFmode:
11242 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
11243 : || !(
11244 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11245 : (TARGET_AVX512F) &&
11246 : #line 29041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11247 : (TARGET_AVX512DQ)))
11248 : return -1;
11249 : return 9445; /* avx512dq_broadcastv8df_mask_1 */
11250 :
11251 : default:
11252 : return -1;
11253 : }
11254 :
11255 : case E_V8DImode:
11256 : if (pattern142 (x2,
11257 : E_V8DImode,
11258 : E_QImode) != 0)
11259 : return -1;
11260 : switch (GET_MODE (operands[1]))
11261 : {
11262 : case E_V4DImode:
11263 : if (!nonimmediate_operand (operands[1], E_V4DImode)
11264 : || !
11265 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11266 : (TARGET_AVX512F))
11267 : return -1;
11268 : return 9337; /* avx512f_broadcastv8di_mask */
11269 :
11270 : case E_DImode:
11271 : if (!nonimmediate_operand (operands[1], E_DImode)
11272 : || !
11273 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11274 : (TARGET_AVX512F))
11275 : return -1;
11276 : return 9369; /* avx512f_vec_dup_gprv8di_mask */
11277 :
11278 : case E_V2DImode:
11279 : if (!nonimmediate_operand (operands[1], E_V2DImode)
11280 : || !(
11281 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11282 : (TARGET_AVX512F) &&
11283 : #line 29041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11284 : (TARGET_AVX512DQ)))
11285 : return -1;
11286 : return 9443; /* avx512dq_broadcastv8di_mask_1 */
11287 :
11288 : default:
11289 : return -1;
11290 : }
11291 :
11292 : case E_V64QImode:
11293 : if (pattern155 (x2,
11294 : E_V64QImode,
11295 : E_QImode,
11296 : E_DImode) != 0
11297 : || !(
11298 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11299 : (TARGET_AVX512F) &&
11300 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11301 : (TARGET_AVX512BW)))
11302 : return -1;
11303 : return 9339; /* avx512bw_vec_dup_gprv64qi_mask */
11304 :
11305 : case E_V16QImode:
11306 : if (pattern155 (x2,
11307 : E_V16QImode,
11308 : E_QImode,
11309 : E_HImode) != 0
11310 : || !(
11311 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11312 : (TARGET_AVX512F) && (
11313 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11314 : (TARGET_AVX512BW) &&
11315 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11316 : (TARGET_AVX512VL))))
11317 : return -1;
11318 : return 9341; /* avx512vl_vec_dup_gprv16qi_mask */
11319 :
11320 : case E_V32QImode:
11321 : if (pattern155 (x2,
11322 : E_V32QImode,
11323 : E_QImode,
11324 : E_SImode) != 0
11325 : || !(
11326 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11327 : (TARGET_AVX512F) && (
11328 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11329 : (TARGET_AVX512BW) &&
11330 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11331 : (TARGET_AVX512VL))))
11332 : return -1;
11333 : return 9343; /* avx512vl_vec_dup_gprv32qi_mask */
11334 :
11335 : case E_V32HImode:
11336 : if (pattern155 (x2,
11337 : E_V32HImode,
11338 : E_HImode,
11339 : E_SImode) != 0
11340 : || !(
11341 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11342 : (TARGET_AVX512F) &&
11343 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11344 : (TARGET_AVX512BW)))
11345 : return -1;
11346 : return 9345; /* avx512bw_vec_dup_gprv32hi_mask */
11347 :
11348 : case E_V16HImode:
11349 : if (pattern153 (x2,
11350 : E_HImode) != 0
11351 : || !(
11352 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11353 : (TARGET_AVX512F) && (
11354 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11355 : (TARGET_AVX512BW) &&
11356 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11357 : (TARGET_AVX512VL))))
11358 : return -1;
11359 : return 9347; /* avx512vl_vec_dup_gprv16hi_mask */
11360 :
11361 : case E_V8HImode:
11362 : if (pattern155 (x2,
11363 : E_V8HImode,
11364 : E_HImode,
11365 : E_QImode) != 0
11366 : || !(
11367 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11368 : (TARGET_AVX512F) && (
11369 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11370 : (TARGET_AVX512BW) &&
11371 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11372 : (TARGET_AVX512VL))))
11373 : return -1;
11374 : return 9349; /* avx512vl_vec_dup_gprv8hi_mask */
11375 :
11376 : case E_V32HFmode:
11377 : if (pattern155 (x2,
11378 : E_V32HFmode,
11379 : E_HFmode,
11380 : E_SImode) != 0
11381 : || !(
11382 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11383 : (TARGET_AVX512F) &&
11384 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11385 : (TARGET_AVX512BW)))
11386 : return -1;
11387 : return 9351; /* avx512bw_vec_dup_gprv32hf_mask */
11388 :
11389 : case E_V16HFmode:
11390 : if (pattern155 (x2,
11391 : E_V16HFmode,
11392 : E_HFmode,
11393 : E_HImode) != 0
11394 : || !(
11395 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11396 : (TARGET_AVX512F) && (
11397 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11398 : (TARGET_AVX512BW) &&
11399 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11400 : (TARGET_AVX512VL))))
11401 : return -1;
11402 : return 9353; /* avx512vl_vec_dup_gprv16hf_mask */
11403 :
11404 : case E_V8HFmode:
11405 : if (pattern155 (x2,
11406 : E_V8HFmode,
11407 : E_HFmode,
11408 : E_QImode) != 0
11409 : || !(
11410 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11411 : (TARGET_AVX512F) && (
11412 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11413 : (TARGET_AVX512BW) &&
11414 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11415 : (TARGET_AVX512VL))))
11416 : return -1;
11417 : return 9355; /* avx512fp16_vec_dup_gprv8hf_mask */
11418 :
11419 : case E_V32BFmode:
11420 : if (pattern155 (x2,
11421 : E_V32BFmode,
11422 : E_BFmode,
11423 : E_SImode) != 0
11424 : || !(
11425 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11426 : (TARGET_AVX512F) &&
11427 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11428 : (TARGET_AVX512BW)))
11429 : return -1;
11430 : return 9357; /* avx512bw_vec_dup_gprv32bf_mask */
11431 :
11432 : case E_V16BFmode:
11433 : if (pattern155 (x2,
11434 : E_V16BFmode,
11435 : E_BFmode,
11436 : E_HImode) != 0
11437 : || !(
11438 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11439 : (TARGET_AVX512F) && (
11440 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11441 : (TARGET_AVX512BW) &&
11442 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11443 : (TARGET_AVX512VL))))
11444 : return -1;
11445 : return 9359; /* avx512vl_vec_dup_gprv16bf_mask */
11446 :
11447 : case E_V8BFmode:
11448 : if (pattern155 (x2,
11449 : E_V8BFmode,
11450 : E_BFmode,
11451 : E_QImode) != 0
11452 : || !(
11453 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11454 : (TARGET_AVX512F) && (
11455 : #line 28710 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11456 : (TARGET_AVX512BW) &&
11457 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11458 : (TARGET_AVX512VL))))
11459 : return -1;
11460 : return 9361; /* avx512vl_vec_dup_gprv8bf_mask */
11461 :
11462 : case E_V8SImode:
11463 : if (pattern142 (x2,
11464 : E_V8SImode,
11465 : E_QImode) != 0)
11466 : return -1;
11467 : switch (GET_MODE (operands[1]))
11468 : {
11469 : case E_SImode:
11470 : if (!nonimmediate_operand (operands[1], E_SImode)
11471 : || !(
11472 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11473 : (TARGET_AVX512F) && (
11474 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11475 : (TARGET_AVX512F) &&
11476 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11477 : (TARGET_AVX512VL))))
11478 : return -1;
11479 : return 9365; /* avx512vl_vec_dup_gprv8si_mask */
11480 :
11481 : case E_V4SImode:
11482 : if (!nonimmediate_operand (operands[1], E_V4SImode)
11483 : || !(
11484 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11485 : (TARGET_AVX512F) &&
11486 : #line 29009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11487 : (TARGET_AVX512VL)))
11488 : return -1;
11489 : return 9435; /* avx512vl_broadcastv8si_mask_1 */
11490 :
11491 : default:
11492 : return -1;
11493 : }
11494 :
11495 : case E_V4SImode:
11496 : if (pattern155 (x2,
11497 : E_V4SImode,
11498 : E_SImode,
11499 : E_QImode) != 0
11500 : || !(
11501 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11502 : (TARGET_AVX512F) && (
11503 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11504 : (TARGET_AVX512F) &&
11505 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11506 : (TARGET_AVX512VL))))
11507 : return -1;
11508 : return 9367; /* avx512vl_vec_dup_gprv4si_mask */
11509 :
11510 : case E_V4DImode:
11511 : if (pattern142 (x2,
11512 : E_V4DImode,
11513 : E_QImode) != 0)
11514 : return -1;
11515 : switch (GET_MODE (operands[1]))
11516 : {
11517 : case E_DImode:
11518 : if (!nonimmediate_operand (operands[1], E_DImode)
11519 : || !(
11520 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11521 : (TARGET_AVX512F) && (
11522 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11523 : (TARGET_AVX512F) &&
11524 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11525 : (TARGET_AVX512VL))))
11526 : return -1;
11527 : return 9371; /* avx512vl_vec_dup_gprv4di_mask */
11528 :
11529 : case E_V2DImode:
11530 : if (!nonimmediate_operand (operands[1], E_V2DImode)
11531 : || !(
11532 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11533 : (TARGET_AVX512F) && (
11534 : #line 29041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11535 : (TARGET_AVX512DQ) &&
11536 : #line 29035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11537 : (TARGET_AVX512VL))))
11538 : return -1;
11539 : return 9447; /* avx512dq_broadcastv4di_mask_1 */
11540 :
11541 : default:
11542 : return -1;
11543 : }
11544 :
11545 : case E_V2DImode:
11546 : if (pattern155 (x2,
11547 : E_V2DImode,
11548 : E_DImode,
11549 : E_QImode) != 0
11550 : || !(
11551 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11552 : (TARGET_AVX512F) && (
11553 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11554 : (TARGET_AVX512F) &&
11555 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11556 : (TARGET_AVX512VL))))
11557 : return -1;
11558 : return 9373; /* avx512vl_vec_dup_gprv2di_mask */
11559 :
11560 : case E_V8SFmode:
11561 : if (pattern142 (x2,
11562 : E_V8SFmode,
11563 : E_QImode) != 0)
11564 : return -1;
11565 : switch (GET_MODE (operands[1]))
11566 : {
11567 : case E_SFmode:
11568 : if (!nonimmediate_operand (operands[1], E_SFmode)
11569 : || !(
11570 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11571 : (TARGET_AVX512F) && (
11572 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11573 : (TARGET_AVX512F) &&
11574 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11575 : (TARGET_AVX512VL))))
11576 : return -1;
11577 : return 9377; /* avx512vl_vec_dup_gprv8sf_mask */
11578 :
11579 : case E_V4SFmode:
11580 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
11581 : || !(
11582 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11583 : (TARGET_AVX512F) &&
11584 : #line 29009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11585 : (TARGET_AVX512VL)))
11586 : return -1;
11587 : return 9437; /* avx512vl_broadcastv8sf_mask_1 */
11588 :
11589 : default:
11590 : return -1;
11591 : }
11592 :
11593 : case E_V4SFmode:
11594 : if (pattern155 (x2,
11595 : E_V4SFmode,
11596 : E_SFmode,
11597 : E_QImode) != 0
11598 : || !(
11599 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11600 : (TARGET_AVX512F) && (
11601 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11602 : (TARGET_AVX512F) &&
11603 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11604 : (TARGET_AVX512VL))))
11605 : return -1;
11606 : return 9379; /* avx512vl_vec_dup_gprv4sf_mask */
11607 :
11608 : case E_V4DFmode:
11609 : if (pattern142 (x2,
11610 : E_V4DFmode,
11611 : E_QImode) != 0)
11612 : return -1;
11613 : switch (GET_MODE (operands[1]))
11614 : {
11615 : case E_DFmode:
11616 : if (!nonimmediate_operand (operands[1], E_DFmode)
11617 : || !(
11618 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11619 : (TARGET_AVX512F) && (
11620 : #line 28722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11621 : (TARGET_AVX512F) &&
11622 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11623 : (TARGET_AVX512VL))))
11624 : return -1;
11625 : return 9383; /* avx512vl_vec_dup_gprv4df_mask */
11626 :
11627 : case E_V2DFmode:
11628 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
11629 : || !(
11630 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11631 : (TARGET_AVX512F) && (
11632 : #line 29041 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11633 : (TARGET_AVX512DQ) &&
11634 : #line 29035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11635 : (TARGET_AVX512VL))))
11636 : return -1;
11637 : return 9449; /* avx512dq_broadcastv4df_mask_1 */
11638 :
11639 : default:
11640 : return -1;
11641 : }
11642 :
11643 : default:
11644 : return -1;
11645 : }
11646 :
11647 : default:
11648 : return -1;
11649 : }
11650 : }
11651 :
11652 : int
11653 : recog_165 (rtx x1 ATTRIBUTE_UNUSED,
11654 : rtx_insn *insn ATTRIBUTE_UNUSED,
11655 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11656 : {
11657 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11658 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
11659 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
11660 : rtx x18, x19, x20, x21, x22, x23, x24;
11661 : int res ATTRIBUTE_UNUSED;
11662 : x2 = XEXP (x1, 1);
11663 : x3 = XEXP (x2, 0);
11664 : x4 = XEXP (x3, 1);
11665 : x5 = XVECEXP (x4, 0, 2);
11666 : if (GET_CODE (x5) != CONST_INT)
11667 : return -1;
11668 : x6 = XVECEXP (x4, 0, 3);
11669 : if (GET_CODE (x6) != CONST_INT
11670 : || pattern1307 (x4) != 0)
11671 : return -1;
11672 : x7 = XVECEXP (x4, 0, 12);
11673 : if (GET_CODE (x7) != CONST_INT)
11674 : return -1;
11675 : x8 = XVECEXP (x4, 0, 13);
11676 : if (GET_CODE (x8) != CONST_INT)
11677 : return -1;
11678 : x9 = XVECEXP (x4, 0, 14);
11679 : if (GET_CODE (x9) != CONST_INT)
11680 : return -1;
11681 : x10 = XVECEXP (x4, 0, 15);
11682 : if (GET_CODE (x10) != CONST_INT)
11683 : return -1;
11684 : x11 = XEXP (x2, 2);
11685 : if (!register_operand (x11, E_HImode))
11686 : return -1;
11687 : x12 = XVECEXP (x4, 0, 0);
11688 : switch (XWINT (x12, 0))
11689 : {
11690 : case 2L:
11691 : x13 = XVECEXP (x4, 0, 1);
11692 : if (XWINT (x13, 0) != 18L
11693 : || XWINT (x5, 0) != 3L
11694 : || XWINT (x6, 0) != 19L
11695 : || pattern1868 (x4) != 0)
11696 : return -1;
11697 : x14 = XVECEXP (x4, 0, 8);
11698 : if (XWINT (x14, 0) != 10L)
11699 : return -1;
11700 : x15 = XVECEXP (x4, 0, 9);
11701 : if (XWINT (x15, 0) != 26L)
11702 : return -1;
11703 : x16 = XVECEXP (x4, 0, 10);
11704 : if (XWINT (x16, 0) != 11L)
11705 : return -1;
11706 : x17 = XVECEXP (x4, 0, 11);
11707 : if (XWINT (x17, 0) != 27L
11708 : || pattern1900 (x2) != 0)
11709 : return -1;
11710 : switch (GET_MODE (operands[0]))
11711 : {
11712 : case E_V16SFmode:
11713 : if (pattern1598 (x2,
11714 : E_V16SFmode,
11715 : E_V32SFmode) != 0
11716 : || !
11717 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11718 : (TARGET_AVX512F))
11719 : return -1;
11720 : return 5267; /* avx512f_unpckhps512_mask */
11721 :
11722 : case E_V16SImode:
11723 : if (pattern1598 (x2,
11724 : E_V16SImode,
11725 : E_V32SImode) != 0
11726 : || !
11727 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11728 : (TARGET_AVX512F))
11729 : return -1;
11730 : return 8445; /* avx512f_interleave_highv16si_mask */
11731 :
11732 : default:
11733 : return -1;
11734 : }
11735 :
11736 : case 0L:
11737 : x13 = XVECEXP (x4, 0, 1);
11738 : switch (XWINT (x13, 0))
11739 : {
11740 : case 16L:
11741 : if (XWINT (x5, 0) != 1L
11742 : || XWINT (x6, 0) != 17L)
11743 : return -1;
11744 : x18 = XEXP (x3, 0);
11745 : x19 = XEXP (x18, 1);
11746 : operands[2] = x19;
11747 : x20 = XEXP (x2, 1);
11748 : operands[3] = x20;
11749 : operands[4] = x11;
11750 : x21 = XVECEXP (x4, 0, 4);
11751 : switch (XWINT (x21, 0))
11752 : {
11753 : case 4L:
11754 : x22 = XVECEXP (x4, 0, 5);
11755 : if (XWINT (x22, 0) != 20L)
11756 : return -1;
11757 : x23 = XVECEXP (x4, 0, 6);
11758 : if (XWINT (x23, 0) != 5L)
11759 : return -1;
11760 : x24 = XVECEXP (x4, 0, 7);
11761 : if (XWINT (x24, 0) != 21L)
11762 : return -1;
11763 : x14 = XVECEXP (x4, 0, 8);
11764 : if (XWINT (x14, 0) != 8L)
11765 : return -1;
11766 : x15 = XVECEXP (x4, 0, 9);
11767 : if (XWINT (x15, 0) != 24L)
11768 : return -1;
11769 : x16 = XVECEXP (x4, 0, 10);
11770 : if (XWINT (x16, 0) != 9L)
11771 : return -1;
11772 : x17 = XVECEXP (x4, 0, 11);
11773 : if (XWINT (x17, 0) != 25L
11774 : || XWINT (x7, 0) != 12L
11775 : || XWINT (x8, 0) != 28L
11776 : || XWINT (x9, 0) != 13L
11777 : || XWINT (x10, 0) != 29L)
11778 : return -1;
11779 : switch (GET_MODE (operands[0]))
11780 : {
11781 : case E_V16SFmode:
11782 : if (pattern1598 (x2,
11783 : E_V16SFmode,
11784 : E_V32SFmode) != 0
11785 : || !
11786 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11787 : (TARGET_AVX512F))
11788 : return -1;
11789 : return 5273; /* avx512f_unpcklps512_mask */
11790 :
11791 : case E_V16SImode:
11792 : if (pattern1598 (x2,
11793 : E_V16SImode,
11794 : E_V32SImode) != 0
11795 : || !
11796 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11797 : (TARGET_AVX512F))
11798 : return -1;
11799 : return 8451; /* avx512f_interleave_lowv16si_mask */
11800 :
11801 : default:
11802 : return -1;
11803 : }
11804 :
11805 : case 2L:
11806 : x22 = XVECEXP (x4, 0, 5);
11807 : if (XWINT (x22, 0) != 18L)
11808 : return -1;
11809 : x23 = XVECEXP (x4, 0, 6);
11810 : if (XWINT (x23, 0) != 3L)
11811 : return -1;
11812 : x24 = XVECEXP (x4, 0, 7);
11813 : if (XWINT (x24, 0) != 19L)
11814 : return -1;
11815 : x14 = XVECEXP (x4, 0, 8);
11816 : switch (XWINT (x14, 0))
11817 : {
11818 : case 4L:
11819 : x15 = XVECEXP (x4, 0, 9);
11820 : if (XWINT (x15, 0) != 20L)
11821 : return -1;
11822 : x16 = XVECEXP (x4, 0, 10);
11823 : if (XWINT (x16, 0) != 5L)
11824 : return -1;
11825 : x17 = XVECEXP (x4, 0, 11);
11826 : if (XWINT (x17, 0) != 21L
11827 : || XWINT (x7, 0) != 6L
11828 : || XWINT (x8, 0) != 22L
11829 : || XWINT (x9, 0) != 7L
11830 : || XWINT (x10, 0) != 23L
11831 : || pattern1599 (x2,
11832 : E_V16QImode,
11833 : E_V32QImode) != 0
11834 : || !(
11835 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11836 : (TARGET_AVX512F) &&
11837 : #line 20035 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11838 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11839 : return -1;
11840 : return 8405; /* vec_interleave_lowv16qi_mask */
11841 :
11842 : case 8L:
11843 : x15 = XVECEXP (x4, 0, 9);
11844 : if (XWINT (x15, 0) != 24L)
11845 : return -1;
11846 : x16 = XVECEXP (x4, 0, 10);
11847 : if (XWINT (x16, 0) != 9L)
11848 : return -1;
11849 : x17 = XVECEXP (x4, 0, 11);
11850 : if (XWINT (x17, 0) != 25L
11851 : || XWINT (x7, 0) != 10L
11852 : || XWINT (x8, 0) != 26L
11853 : || XWINT (x9, 0) != 11L
11854 : || XWINT (x10, 0) != 27L)
11855 : return -1;
11856 : switch (GET_MODE (operands[0]))
11857 : {
11858 : case E_V16HImode:
11859 : if (pattern1598 (x2,
11860 : E_V16HImode,
11861 : E_V32HImode) != 0
11862 : || !(
11863 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11864 : (TARGET_AVX512F) &&
11865 : #line 20155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11866 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11867 : return -1;
11868 : return 8431; /* avx2_interleave_lowv16hi_mask */
11869 :
11870 : case E_V16HFmode:
11871 : if (pattern1598 (x2,
11872 : E_V16HFmode,
11873 : E_V32HFmode) != 0
11874 : || !(
11875 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11876 : (TARGET_AVX512F) &&
11877 : #line 20155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11878 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11879 : return -1;
11880 : return 8433; /* avx2_interleave_lowv16hf_mask */
11881 :
11882 : case E_V16BFmode:
11883 : if (pattern1598 (x2,
11884 : E_V16BFmode,
11885 : E_V32BFmode) != 0
11886 : || !(
11887 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11888 : (TARGET_AVX512F) &&
11889 : #line 20155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11890 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
11891 : return -1;
11892 : return 8435; /* avx2_interleave_lowv16bf_mask */
11893 :
11894 : default:
11895 : return -1;
11896 : }
11897 :
11898 : default:
11899 : return -1;
11900 : }
11901 :
11902 : default:
11903 : return -1;
11904 : }
11905 :
11906 : case 0L:
11907 : if (pattern1693 (x4) != 0)
11908 : return -1;
11909 : x14 = XVECEXP (x4, 0, 8);
11910 : if (XWINT (x14, 0) != 8L)
11911 : return -1;
11912 : x15 = XVECEXP (x4, 0, 9);
11913 : if (XWINT (x15, 0) != 8L)
11914 : return -1;
11915 : x16 = XVECEXP (x4, 0, 10);
11916 : if (XWINT (x16, 0) != 10L)
11917 : return -1;
11918 : x17 = XVECEXP (x4, 0, 11);
11919 : if (XWINT (x17, 0) != 10L
11920 : || XWINT (x7, 0) != 12L
11921 : || XWINT (x8, 0) != 12L
11922 : || XWINT (x9, 0) != 14L
11923 : || XWINT (x10, 0) != 14L
11924 : || pattern1837 (x2,
11925 : E_V16SFmode,
11926 : E_V32SFmode) != 0
11927 : || !
11928 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11929 : (TARGET_AVX512F))
11930 : return -1;
11931 : return 5289; /* avx512f_movsldup512_mask */
11932 :
11933 : default:
11934 : return -1;
11935 : }
11936 :
11937 : case 1L:
11938 : x13 = XVECEXP (x4, 0, 1);
11939 : if (XWINT (x13, 0) != 1L
11940 : || XWINT (x5, 0) != 3L
11941 : || XWINT (x6, 0) != 3L)
11942 : return -1;
11943 : x21 = XVECEXP (x4, 0, 4);
11944 : if (XWINT (x21, 0) != 5L)
11945 : return -1;
11946 : x22 = XVECEXP (x4, 0, 5);
11947 : if (XWINT (x22, 0) != 5L)
11948 : return -1;
11949 : x23 = XVECEXP (x4, 0, 6);
11950 : if (XWINT (x23, 0) != 7L)
11951 : return -1;
11952 : x24 = XVECEXP (x4, 0, 7);
11953 : if (XWINT (x24, 0) != 7L)
11954 : return -1;
11955 : x14 = XVECEXP (x4, 0, 8);
11956 : if (XWINT (x14, 0) != 9L)
11957 : return -1;
11958 : x15 = XVECEXP (x4, 0, 9);
11959 : if (XWINT (x15, 0) != 9L)
11960 : return -1;
11961 : x16 = XVECEXP (x4, 0, 10);
11962 : if (XWINT (x16, 0) != 11L)
11963 : return -1;
11964 : x17 = XVECEXP (x4, 0, 11);
11965 : if (XWINT (x17, 0) != 11L
11966 : || XWINT (x7, 0) != 13L
11967 : || XWINT (x8, 0) != 13L
11968 : || XWINT (x9, 0) != 15L
11969 : || XWINT (x10, 0) != 15L
11970 : || pattern1837 (x2,
11971 : E_V16SFmode,
11972 : E_V32SFmode) != 0
11973 : || !
11974 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11975 : (TARGET_AVX512F))
11976 : return -1;
11977 : return 5283; /* avx512f_movshdup512_mask */
11978 :
11979 : case 8L:
11980 : x13 = XVECEXP (x4, 0, 1);
11981 : if (XWINT (x13, 0) != 24L
11982 : || XWINT (x5, 0) != 9L
11983 : || XWINT (x6, 0) != 25L)
11984 : return -1;
11985 : x21 = XVECEXP (x4, 0, 4);
11986 : if (XWINT (x21, 0) != 10L)
11987 : return -1;
11988 : x22 = XVECEXP (x4, 0, 5);
11989 : if (XWINT (x22, 0) != 26L)
11990 : return -1;
11991 : x23 = XVECEXP (x4, 0, 6);
11992 : if (XWINT (x23, 0) != 11L)
11993 : return -1;
11994 : x24 = XVECEXP (x4, 0, 7);
11995 : if (XWINT (x24, 0) != 27L
11996 : || pattern1883 (x4) != 0
11997 : || XWINT (x7, 0) != 14L
11998 : || XWINT (x8, 0) != 30L
11999 : || XWINT (x9, 0) != 15L
12000 : || XWINT (x10, 0) != 31L
12001 : || pattern780 (x2,
12002 : E_V32QImode,
12003 : E_V16QImode) != 0
12004 : || !register_operand (operands[1], E_V16QImode))
12005 : return -1;
12006 : x18 = XEXP (x3, 0);
12007 : x19 = XEXP (x18, 1);
12008 : operands[2] = x19;
12009 : if (!vector_operand (operands[2], E_V16QImode))
12010 : return -1;
12011 : x20 = XEXP (x2, 1);
12012 : operands[3] = x20;
12013 : if (!nonimm_or_0_operand (operands[3], E_V16QImode))
12014 : return -1;
12015 : operands[4] = x11;
12016 : if (!(
12017 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12018 : (TARGET_AVX512F) &&
12019 : #line 19939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12020 : (TARGET_SSE2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12021 : return -1;
12022 : return 8399; /* vec_interleave_highv16qi_mask */
12023 :
12024 : case 4L:
12025 : x13 = XVECEXP (x4, 0, 1);
12026 : if (XWINT (x13, 0) != 20L
12027 : || XWINT (x5, 0) != 5L
12028 : || XWINT (x6, 0) != 21L
12029 : || pattern1868 (x4) != 0
12030 : || pattern1883 (x4) != 0
12031 : || pattern1900 (x2) != 0)
12032 : return -1;
12033 : switch (GET_MODE (operands[0]))
12034 : {
12035 : case E_V16HImode:
12036 : if (pattern1598 (x2,
12037 : E_V16HImode,
12038 : E_V32HImode) != 0
12039 : || !(
12040 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12041 : (TARGET_AVX512F) &&
12042 : #line 20087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12043 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12044 : return -1;
12045 : return 8413; /* avx2_interleave_highv16hi_mask */
12046 :
12047 : case E_V16HFmode:
12048 : if (pattern1598 (x2,
12049 : E_V16HFmode,
12050 : E_V32HFmode) != 0
12051 : || !(
12052 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12053 : (TARGET_AVX512F) &&
12054 : #line 20087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12055 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12056 : return -1;
12057 : return 8415; /* avx2_interleave_highv16hf_mask */
12058 :
12059 : case E_V16BFmode:
12060 : if (pattern1598 (x2,
12061 : E_V16BFmode,
12062 : E_V32BFmode) != 0
12063 : || !(
12064 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12065 : (TARGET_AVX512F) &&
12066 : #line 20087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12067 : (TARGET_AVX2 && TARGET_AVX512VL && TARGET_AVX512BW)))
12068 : return -1;
12069 : return 8417; /* avx2_interleave_highv16bf_mask */
12070 :
12071 : default:
12072 : return -1;
12073 : }
12074 :
12075 : default:
12076 : return -1;
12077 : }
12078 : }
12079 :
12080 : int
12081 : recog_177 (rtx x1 ATTRIBUTE_UNUSED,
12082 : rtx_insn *insn ATTRIBUTE_UNUSED,
12083 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12084 : {
12085 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12086 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12087 : rtx x10;
12088 : int res ATTRIBUTE_UNUSED;
12089 : x2 = XEXP (x1, 1);
12090 : x3 = XEXP (x2, 0);
12091 : x4 = XEXP (x3, 1);
12092 : x5 = XVECEXP (x4, 0, 0);
12093 : if (GET_CODE (x5) != CONST_INT)
12094 : return -1;
12095 : x6 = XVECEXP (x4, 0, 1);
12096 : if (GET_CODE (x6) == CONST_INT)
12097 : {
12098 : res = recog_174 (x1, insn, pnum_clobbers);
12099 : if (res >= 0)
12100 : return res;
12101 : }
12102 : operands[2] = x5;
12103 : res = recog_176 (x1, insn, pnum_clobbers);
12104 : if (res >= 0)
12105 : return res;
12106 : if (XWINT (x5, 0) != 0L
12107 : || x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12108 : return -1;
12109 : x7 = XVECEXP (x4, 0, 2);
12110 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
12111 : return -1;
12112 : x8 = XVECEXP (x4, 0, 3);
12113 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
12114 : || pattern1308 (x2,
12115 : E_V8HImode) != 0
12116 : || pattern1560 (x4) != 0)
12117 : return -1;
12118 : x9 = XEXP (x2, 1);
12119 : operands[6] = x9;
12120 : if (!nonimm_or_0_operand (operands[6], E_V8HImode))
12121 : return -1;
12122 : x10 = XEXP (x2, 2);
12123 : operands[7] = x10;
12124 : if (!register_operand (operands[7], E_QImode)
12125 : || !(
12126 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12127 : (TARGET_AVX512F) &&
12128 : #line 21485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12129 : (TARGET_SSE2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12130 : return -1;
12131 : return 8529; /* sse2_pshufhw_1_mask */
12132 : }
12133 :
12134 : int
12135 : recog_181 (rtx x1 ATTRIBUTE_UNUSED,
12136 : rtx_insn *insn ATTRIBUTE_UNUSED,
12137 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12138 : {
12139 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12140 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12141 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12142 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
12143 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
12144 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
12145 : rtx x42, x43, x44, x45;
12146 : int res ATTRIBUTE_UNUSED;
12147 : x2 = XEXP (x1, 1);
12148 : x3 = XEXP (x2, 0);
12149 : x4 = XEXP (x3, 0);
12150 : x5 = XEXP (x4, 0);
12151 : x6 = XEXP (x5, 1);
12152 : if (GET_CODE (x6) != CONST_VECTOR
12153 : || XVECLEN (x6, 0) != 32
12154 : || GET_MODE (x6) != E_V32HImode)
12155 : return -1;
12156 : x7 = XVECEXP (x6, 0, 0);
12157 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12158 : return -1;
12159 : x8 = XVECEXP (x6, 0, 1);
12160 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12161 : return -1;
12162 : x9 = XVECEXP (x6, 0, 2);
12163 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12164 : return -1;
12165 : x10 = XVECEXP (x6, 0, 3);
12166 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12167 : return -1;
12168 : x11 = XVECEXP (x6, 0, 4);
12169 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12170 : return -1;
12171 : x12 = XVECEXP (x6, 0, 5);
12172 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12173 : return -1;
12174 : x13 = XVECEXP (x6, 0, 6);
12175 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12176 : return -1;
12177 : x14 = XVECEXP (x6, 0, 7);
12178 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12179 : return -1;
12180 : x15 = XVECEXP (x6, 0, 8);
12181 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12182 : return -1;
12183 : x16 = XVECEXP (x6, 0, 9);
12184 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12185 : return -1;
12186 : x17 = XVECEXP (x6, 0, 10);
12187 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12188 : return -1;
12189 : x18 = XVECEXP (x6, 0, 11);
12190 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12191 : return -1;
12192 : x19 = XVECEXP (x6, 0, 12);
12193 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12194 : return -1;
12195 : x20 = XVECEXP (x6, 0, 13);
12196 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12197 : return -1;
12198 : x21 = XVECEXP (x6, 0, 14);
12199 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12200 : return -1;
12201 : x22 = XVECEXP (x6, 0, 15);
12202 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12203 : return -1;
12204 : x23 = XVECEXP (x6, 0, 16);
12205 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12206 : return -1;
12207 : x24 = XVECEXP (x6, 0, 17);
12208 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12209 : return -1;
12210 : x25 = XVECEXP (x6, 0, 18);
12211 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12212 : return -1;
12213 : x26 = XVECEXP (x6, 0, 19);
12214 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12215 : return -1;
12216 : x27 = XVECEXP (x6, 0, 20);
12217 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12218 : return -1;
12219 : x28 = XVECEXP (x6, 0, 21);
12220 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12221 : return -1;
12222 : x29 = XVECEXP (x6, 0, 22);
12223 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12224 : return -1;
12225 : x30 = XVECEXP (x6, 0, 23);
12226 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12227 : return -1;
12228 : x31 = XVECEXP (x6, 0, 24);
12229 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12230 : return -1;
12231 : x32 = XVECEXP (x6, 0, 25);
12232 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12233 : return -1;
12234 : x33 = XVECEXP (x6, 0, 26);
12235 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12236 : return -1;
12237 : x34 = XVECEXP (x6, 0, 27);
12238 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12239 : return -1;
12240 : x35 = XVECEXP (x6, 0, 28);
12241 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12242 : return -1;
12243 : x36 = XVECEXP (x6, 0, 29);
12244 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12245 : return -1;
12246 : x37 = XVECEXP (x6, 0, 30);
12247 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
12248 : return -1;
12249 : x38 = XVECEXP (x6, 0, 31);
12250 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
12251 : || !register_operand (operands[0], E_V32HImode)
12252 : || GET_MODE (x2) != E_V32HImode
12253 : || GET_MODE (x3) != E_V32HImode
12254 : || GET_MODE (x4) != E_V32SImode
12255 : || GET_MODE (x5) != E_V32SImode)
12256 : return -1;
12257 : x39 = XEXP (x5, 0);
12258 : if (GET_MODE (x39) != E_V32SImode)
12259 : return -1;
12260 : x40 = XEXP (x39, 0);
12261 : if (GET_MODE (x40) != E_V32SImode)
12262 : return -1;
12263 : x41 = XEXP (x40, 0);
12264 : if (GET_MODE (x41) != E_V32SImode)
12265 : return -1;
12266 : x42 = XEXP (x40, 1);
12267 : if (GET_MODE (x42) != E_V32SImode)
12268 : return -1;
12269 : x43 = XEXP (x42, 0);
12270 : operands[2] = x43;
12271 : if (!nonimmediate_operand (operands[2], E_V32HImode))
12272 : return -1;
12273 : x44 = XEXP (x2, 1);
12274 : operands[3] = x44;
12275 : if (!nonimm_or_0_operand (operands[3], E_V32HImode))
12276 : return -1;
12277 : x45 = XEXP (x2, 2);
12278 : operands[4] = x45;
12279 : if (!register_operand (operands[4], E_SImode)
12280 : || !(
12281 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12282 : (TARGET_AVX512F) &&
12283 : #line 23358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12284 : (TARGET_AVX512BW)))
12285 : return -1;
12286 : return 8688; /* avx512bw_umulhrswv32hi3_mask */
12287 : }
12288 :
12289 : int
12290 : recog_190 (rtx x1 ATTRIBUTE_UNUSED,
12291 : rtx_insn *insn ATTRIBUTE_UNUSED,
12292 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12293 : {
12294 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12295 : rtx x2, x3, x4, x5, x6, x7;
12296 : int res ATTRIBUTE_UNUSED;
12297 : x2 = XEXP (x1, 1);
12298 : x3 = XEXP (x2, 0);
12299 : x4 = XEXP (x3, 0);
12300 : switch (GET_CODE (x4))
12301 : {
12302 : case REG:
12303 : case SUBREG:
12304 : case MEM:
12305 : case VEC_DUPLICATE:
12306 : operands[1] = x4;
12307 : x5 = XEXP (x3, 1);
12308 : operands[2] = x5;
12309 : x6 = XEXP (x2, 2);
12310 : switch (GET_CODE (x6))
12311 : {
12312 : case REG:
12313 : case SUBREG:
12314 : operands[4] = x6;
12315 : x7 = XEXP (x2, 1);
12316 : operands[3] = x7;
12317 : switch (GET_MODE (operands[0]))
12318 : {
12319 : case E_V32HFmode:
12320 : if (pattern491 (x2,
12321 : E_V32HFmode,
12322 : E_SImode) != 0
12323 : || !(
12324 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12325 : (TARGET_AVX512F) && (
12326 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12327 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V32HFmode, operands)
12328 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12329 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12330 : (TARGET_AVX512FP16))))
12331 : return -1;
12332 : return 2856; /* *mulv32hf3_mask */
12333 :
12334 : case E_V16HFmode:
12335 : if (pattern491 (x2,
12336 : E_V16HFmode,
12337 : E_HImode) != 0
12338 : || !(
12339 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12340 : (TARGET_AVX512F) && (
12341 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12342 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16HFmode, operands)
12343 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12344 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12345 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12346 : return -1;
12347 : return 2860; /* *mulv16hf3_mask */
12348 :
12349 : case E_V8HFmode:
12350 : if (pattern491 (x2,
12351 : E_V8HFmode,
12352 : E_QImode) != 0
12353 : || !(
12354 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12355 : (TARGET_AVX512F) && (
12356 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12357 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8HFmode, operands)
12358 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
12359 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12360 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
12361 : return -1;
12362 : return 2864; /* *mulv8hf3_mask */
12363 :
12364 : case E_V16SFmode:
12365 : if (pattern491 (x2,
12366 : E_V16SFmode,
12367 : E_HImode) != 0
12368 : || !(
12369 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12370 : (TARGET_AVX512F) && (
12371 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12372 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands)
12373 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12374 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12375 : (TARGET_AVX512F))))
12376 : return -1;
12377 : return 2868; /* *mulv16sf3_mask */
12378 :
12379 : case E_V8SFmode:
12380 : if (pattern491 (x2,
12381 : E_V8SFmode,
12382 : E_QImode) != 0
12383 : || !(
12384 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12385 : (TARGET_AVX512F) && (
12386 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12387 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands)
12388 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12389 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12390 : (TARGET_AVX))))
12391 : return -1;
12392 : return 2872; /* *mulv8sf3_mask */
12393 :
12394 : case E_V4SFmode:
12395 : if (pattern491 (x2,
12396 : E_V4SFmode,
12397 : E_QImode) != 0
12398 : || !(
12399 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12400 : (TARGET_AVX512F) &&
12401 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12402 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands)
12403 : && (16 == 64 || TARGET_AVX512VL) && 1)))
12404 : return -1;
12405 : return 2876; /* *mulv4sf3_mask */
12406 :
12407 : case E_V8DFmode:
12408 : if (pattern491 (x2,
12409 : E_V8DFmode,
12410 : E_QImode) != 0
12411 : || !(
12412 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12413 : (TARGET_AVX512F) && (
12414 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12415 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands)
12416 : && (64 == 64 || TARGET_AVX512VL) && 1) &&
12417 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12418 : (TARGET_AVX512F))))
12419 : return -1;
12420 : return 2880; /* *mulv8df3_mask */
12421 :
12422 : case E_V4DFmode:
12423 : if (pattern491 (x2,
12424 : E_V4DFmode,
12425 : E_QImode) != 0
12426 : || !(
12427 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12428 : (TARGET_AVX512F) && (
12429 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12430 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands)
12431 : && (32 == 64 || TARGET_AVX512VL) && 1) &&
12432 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12433 : (TARGET_AVX))))
12434 : return -1;
12435 : return 2884; /* *mulv4df3_mask */
12436 :
12437 : case E_V2DFmode:
12438 : if (pattern491 (x2,
12439 : E_V2DFmode,
12440 : E_QImode) != 0
12441 : || !(
12442 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12443 : (TARGET_AVX512F) && (
12444 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12445 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands)
12446 : && (16 == 64 || TARGET_AVX512VL) && 1) &&
12447 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12448 : (TARGET_SSE2))))
12449 : return -1;
12450 : return 2888; /* *mulv2df3_mask */
12451 :
12452 : case E_V32HImode:
12453 : if (pattern133 (x2,
12454 : E_V32HImode,
12455 : E_SImode) != 0
12456 : || !(
12457 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12458 : (TARGET_AVX512F) && (
12459 : #line 16824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12460 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12461 : && (64 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12462 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12463 : (TARGET_AVX512BW))))
12464 : return -1;
12465 : return 7626; /* *mulv32hi3_mask */
12466 :
12467 : case E_V16HImode:
12468 : if (pattern133 (x2,
12469 : E_V16HImode,
12470 : E_HImode) != 0
12471 : || !(
12472 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12473 : (TARGET_AVX512F) && (
12474 : #line 16824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12475 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12476 : && (32 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW) &&
12477 : #line 642 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12478 : (TARGET_AVX2))))
12479 : return -1;
12480 : return 7628; /* *mulv16hi3_mask */
12481 :
12482 : case E_V8HImode:
12483 : if (pattern133 (x2,
12484 : E_V8HImode,
12485 : E_QImode) != 0
12486 : || !(
12487 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12488 : (TARGET_AVX512F) &&
12489 : #line 16824 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12490 : (TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12491 : && (16 == 64 || TARGET_AVX512VL) && TARGET_AVX512BW)))
12492 : return -1;
12493 : return 7630; /* *mulv8hi3_mask */
12494 :
12495 : case E_V8DImode:
12496 : if (pattern491 (x2,
12497 : E_V8DImode,
12498 : E_QImode) != 0
12499 : || !(
12500 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12501 : (TARGET_AVX512F) &&
12502 : #line 17281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12503 : (TARGET_AVX512DQ && (64 == 64 || TARGET_AVX512VL)
12504 : && ix86_binary_operator_ok (MULT, V8DImode, operands))))
12505 : return -1;
12506 : return 7664; /* *avx512dq_mulv8di3_mask */
12507 :
12508 : case E_V4DImode:
12509 : if (pattern491 (x2,
12510 : E_V4DImode,
12511 : E_QImode) != 0
12512 : || !(
12513 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12514 : (TARGET_AVX512F) && (
12515 : #line 17281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12516 : (TARGET_AVX512DQ && (32 == 64 || TARGET_AVX512VL)
12517 : && ix86_binary_operator_ok (MULT, V4DImode, operands)) &&
12518 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12519 : (TARGET_AVX512VL))))
12520 : return -1;
12521 : return 7666; /* *avx512dq_mulv4di3_mask */
12522 :
12523 : case E_V2DImode:
12524 : if (pattern491 (x2,
12525 : E_V2DImode,
12526 : E_QImode) != 0
12527 : || !(
12528 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12529 : (TARGET_AVX512F) && (
12530 : #line 17281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12531 : (TARGET_AVX512DQ && (16 == 64 || TARGET_AVX512VL)
12532 : && ix86_binary_operator_ok (MULT, V2DImode, operands)) &&
12533 : #line 617 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12534 : (TARGET_AVX512VL))))
12535 : return -1;
12536 : return 7668; /* *avx512dq_mulv2di3_mask */
12537 :
12538 : case E_V16SImode:
12539 : if (pattern491 (x2,
12540 : E_V16SImode,
12541 : E_HImode) != 0
12542 : || !(
12543 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12544 : (TARGET_AVX512F) && (
12545 : #line 17340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12546 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V16SImode, operands)
12547 : && (64 == 64 || TARGET_AVX512VL)) &&
12548 : #line 661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12549 : (TARGET_AVX512F))))
12550 : return -1;
12551 : return 7670; /* *avx512f_mulv16si3_mask */
12552 :
12553 : case E_V8SImode:
12554 : if (pattern491 (x2,
12555 : E_V8SImode,
12556 : E_QImode) != 0
12557 : || !(
12558 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12559 : (TARGET_AVX512F) && (
12560 : #line 17340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12561 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V8SImode, operands)
12562 : && (32 == 64 || TARGET_AVX512VL)) &&
12563 : #line 661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12564 : (TARGET_AVX2))))
12565 : return -1;
12566 : return 7672; /* *avx2_mulv8si3_mask */
12567 :
12568 : case E_V4SImode:
12569 : if (pattern491 (x2,
12570 : E_V4SImode,
12571 : E_QImode) != 0
12572 : || !(
12573 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12574 : (TARGET_AVX512F) &&
12575 : #line 17340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12576 : (TARGET_SSE4_1 && ix86_binary_operator_ok (MULT, V4SImode, operands)
12577 : && (16 == 64 || TARGET_AVX512VL))))
12578 : return -1;
12579 : return 7674; /* *sse4_1_mulv4si3_mask */
12580 :
12581 : case E_V32BFmode:
12582 : if (pattern136 (x2,
12583 : E_V32BFmode,
12584 : E_SImode) != 0
12585 : || !(
12586 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12587 : (TARGET_AVX512F) &&
12588 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12589 : (TARGET_AVX10_2)))
12590 : return -1;
12591 : return 10713; /* avx10_2_mulbf16_v32bf_mask */
12592 :
12593 : case E_V16BFmode:
12594 : if (pattern136 (x2,
12595 : E_V16BFmode,
12596 : E_HImode) != 0
12597 : || !(
12598 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12599 : (TARGET_AVX512F) &&
12600 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12601 : (TARGET_AVX10_2)))
12602 : return -1;
12603 : return 10721; /* avx10_2_mulbf16_v16bf_mask */
12604 :
12605 : case E_V8BFmode:
12606 : if (pattern136 (x2,
12607 : E_V8BFmode,
12608 : E_QImode) != 0
12609 : || !(
12610 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12611 : (TARGET_AVX512F) &&
12612 : #line 33196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12613 : (TARGET_AVX10_2)))
12614 : return -1;
12615 : return 10729; /* avx10_2_mulbf16_v8bf_mask */
12616 :
12617 : default:
12618 : return -1;
12619 : }
12620 :
12621 : case CONST_INT:
12622 : switch (pattern138 (x2))
12623 : {
12624 : case 0:
12625 : if (!(
12626 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12627 : (TARGET_SSE) &&
12628 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12629 : (TARGET_AVX512FP16)))
12630 : return -1;
12631 : return 2896; /* avx512fp16_vmmulv8hf3 */
12632 :
12633 : case 1:
12634 : if (!
12635 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12636 : (TARGET_SSE))
12637 : return -1;
12638 : return 2904; /* sse_vmmulv4sf3 */
12639 :
12640 : case 2:
12641 : if (!(
12642 : #line 2841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12643 : (TARGET_SSE) &&
12644 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12645 : (TARGET_SSE2)))
12646 : return -1;
12647 : return 2912; /* sse2_vmmulv2df3 */
12648 :
12649 : default:
12650 : return -1;
12651 : }
12652 :
12653 : default:
12654 : return -1;
12655 : }
12656 :
12657 : case ZERO_EXTEND:
12658 : switch (pattern319 (x2,
12659 : ZERO_EXTEND))
12660 : {
12661 : case 0:
12662 : if (!(
12663 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12664 : (TARGET_AVX512F) &&
12665 : #line 16907 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12666 : (TARGET_AVX512F
12667 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12668 : return -1;
12669 : return 7644; /* *vec_widen_umult_even_v16si_mask */
12670 :
12671 : case 1:
12672 : if (!(
12673 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12674 : (TARGET_AVX512F) &&
12675 : #line 16943 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12676 : (TARGET_AVX2 && TARGET_AVX512VL
12677 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12678 : return -1;
12679 : return 7646; /* *vec_widen_umult_even_v8si_mask */
12680 :
12681 : case 2:
12682 : if (!(
12683 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12684 : (TARGET_AVX512F) &&
12685 : #line 16975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12686 : (TARGET_SSE2 && TARGET_AVX512VL
12687 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12688 : return -1;
12689 : return 7648; /* *vec_widen_umult_even_v4si_mask */
12690 :
12691 : default:
12692 : return -1;
12693 : }
12694 :
12695 : case SIGN_EXTEND:
12696 : switch (pattern319 (x2,
12697 : SIGN_EXTEND))
12698 : {
12699 : case 0:
12700 : if (!(
12701 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12702 : (TARGET_AVX512F) &&
12703 : #line 17023 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12704 : (TARGET_AVX512F
12705 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12706 : return -1;
12707 : return 7650; /* *vec_widen_smult_even_v16si_mask */
12708 :
12709 : case 1:
12710 : if (!(
12711 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12712 : (TARGET_AVX512F) &&
12713 : #line 17059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12714 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12715 : return -1;
12716 : return 7652; /* *vec_widen_smult_even_v8si_mask */
12717 :
12718 : case 2:
12719 : if (!(
12720 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12721 : (TARGET_AVX512F) &&
12722 : #line 17091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12723 : (TARGET_SSE4_1 && TARGET_AVX512VL
12724 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12725 : return -1;
12726 : return 7654; /* *sse4_1_mulv2siv2di3_mask */
12727 :
12728 : default:
12729 : return -1;
12730 : }
12731 :
12732 : default:
12733 : return -1;
12734 : }
12735 : }
12736 :
12737 : int
12738 : recog_195 (rtx x1 ATTRIBUTE_UNUSED,
12739 : rtx_insn *insn ATTRIBUTE_UNUSED,
12740 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12741 : {
12742 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12743 : rtx x2, x3, x4, x5, x6, x7, x8;
12744 : int res ATTRIBUTE_UNUSED;
12745 : x2 = XEXP (x1, 1);
12746 : x3 = XEXP (x2, 0);
12747 : x4 = XEXP (x3, 1);
12748 : operands[2] = x4;
12749 : x5 = XEXP (x2, 1);
12750 : operands[3] = x5;
12751 : x6 = XEXP (x2, 2);
12752 : operands[4] = x6;
12753 : x7 = XEXP (x3, 0);
12754 : switch (GET_CODE (x7))
12755 : {
12756 : case NOT:
12757 : x8 = XEXP (x7, 0);
12758 : operands[1] = x8;
12759 : switch (GET_MODE (operands[0]))
12760 : {
12761 : case E_V8SFmode:
12762 : if (pattern1022 (x2,
12763 : E_V8SFmode) != 0
12764 : || !(
12765 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12766 : (TARGET_AVX512F) && (
12767 : #line 5640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12768 : (TARGET_SSE && TARGET_AVX512VL
12769 : && (!true || 32 != 16)) &&
12770 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12771 : (TARGET_AVX))))
12772 : return -1;
12773 : return 3776; /* avx_andnotv8sf3_mask */
12774 :
12775 : case E_V4SFmode:
12776 : if (pattern1022 (x2,
12777 : E_V4SFmode) != 0
12778 : || !(
12779 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12780 : (TARGET_AVX512F) &&
12781 : #line 5640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12782 : (TARGET_SSE && TARGET_AVX512VL
12783 : && (!true || 32 != 16))))
12784 : return -1;
12785 : return 3778; /* sse_andnotv4sf3_mask */
12786 :
12787 : case E_V4DFmode:
12788 : if (pattern1022 (x2,
12789 : E_V4DFmode) != 0
12790 : || !(
12791 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12792 : (TARGET_AVX512F) && (
12793 : #line 5640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12794 : (TARGET_SSE && TARGET_AVX512VL
12795 : && (!true || 64 != 16)) &&
12796 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12797 : (TARGET_AVX))))
12798 : return -1;
12799 : return 3780; /* avx_andnotv4df3_mask */
12800 :
12801 : case E_V2DFmode:
12802 : if (pattern1022 (x2,
12803 : E_V2DFmode) != 0
12804 : || !(
12805 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12806 : (TARGET_AVX512F) && (
12807 : #line 5640 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12808 : (TARGET_SSE && TARGET_AVX512VL
12809 : && (!true || 64 != 16)) &&
12810 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12811 : (TARGET_SSE2))))
12812 : return -1;
12813 : return 3782; /* sse2_andnotv2df3_mask */
12814 :
12815 : case E_V16SFmode:
12816 : if (pattern1023 (x2,
12817 : E_V16SFmode,
12818 : E_HImode) != 0
12819 : || !(
12820 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12821 : (TARGET_AVX512F) &&
12822 : #line 5716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12823 : (TARGET_AVX512F && (!true || 32 != 16))))
12824 : return -1;
12825 : return 3786; /* avx512f_andnotv16sf3_mask */
12826 :
12827 : case E_V8DFmode:
12828 : if (pattern1023 (x2,
12829 : E_V8DFmode,
12830 : E_QImode) != 0
12831 : || !(
12832 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12833 : (TARGET_AVX512F) &&
12834 : #line 5716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12835 : (TARGET_AVX512F && (!true || 64 != 16))))
12836 : return -1;
12837 : return 3788; /* avx512f_andnotv8df3_mask */
12838 :
12839 : case E_V16SImode:
12840 : if (pattern1023 (x2,
12841 : E_V16SImode,
12842 : E_HImode) != 0
12843 : || !
12844 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12845 : (TARGET_AVX512F))
12846 : return -1;
12847 : return 8073; /* *andnotv16si3_mask */
12848 :
12849 : case E_V8SImode:
12850 : if (pattern1023 (x2,
12851 : E_V8SImode,
12852 : E_QImode) != 0
12853 : || !(
12854 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12855 : (TARGET_AVX512F) &&
12856 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12857 : (TARGET_AVX512VL)))
12858 : return -1;
12859 : return 8074; /* *andnotv8si3_mask */
12860 :
12861 : case E_V4SImode:
12862 : if (pattern1023 (x2,
12863 : E_V4SImode,
12864 : E_QImode) != 0
12865 : || !(
12866 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12867 : (TARGET_AVX512F) &&
12868 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12869 : (TARGET_AVX512VL)))
12870 : return -1;
12871 : return 8075; /* *andnotv4si3_mask */
12872 :
12873 : case E_V8DImode:
12874 : if (pattern1023 (x2,
12875 : E_V8DImode,
12876 : E_QImode) != 0
12877 : || !
12878 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12879 : (TARGET_AVX512F))
12880 : return -1;
12881 : return 8076; /* *andnotv8di3_mask */
12882 :
12883 : case E_V4DImode:
12884 : if (pattern1023 (x2,
12885 : E_V4DImode,
12886 : E_QImode) != 0
12887 : || !(
12888 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12889 : (TARGET_AVX512F) &&
12890 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12891 : (TARGET_AVX512VL)))
12892 : return -1;
12893 : return 8077; /* *andnotv4di3_mask */
12894 :
12895 : case E_V2DImode:
12896 : if (pattern1023 (x2,
12897 : E_V2DImode,
12898 : E_QImode) != 0
12899 : || !(
12900 : #line 19143 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12901 : (TARGET_AVX512F) &&
12902 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12903 : (TARGET_AVX512VL)))
12904 : return -1;
12905 : return 8078; /* *andnotv2di3_mask */
12906 :
12907 : default:
12908 : return -1;
12909 : }
12910 :
12911 : case REG:
12912 : case SUBREG:
12913 : case MEM:
12914 : case VEC_DUPLICATE:
12915 : operands[1] = x7;
12916 : switch (GET_MODE (operands[0]))
12917 : {
12918 : case E_V8SFmode:
12919 : if (pattern133 (x2,
12920 : E_V8SFmode,
12921 : E_QImode) != 0
12922 : || !(
12923 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12924 : (TARGET_AVX512F) && (
12925 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12926 : (TARGET_SSE && TARGET_AVX512VL
12927 : && (!true || 32 != 16)
12928 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12929 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12930 : (TARGET_AVX))))
12931 : return -1;
12932 : return 3802; /* *andv8sf3_mask */
12933 :
12934 : case E_V4SFmode:
12935 : if (pattern133 (x2,
12936 : E_V4SFmode,
12937 : E_QImode) != 0
12938 : || !(
12939 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12940 : (TARGET_AVX512F) &&
12941 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12942 : (TARGET_SSE && TARGET_AVX512VL
12943 : && (!true || 32 != 16)
12944 : && !(MEM_P (operands[1]) && MEM_P (operands[2])))))
12945 : return -1;
12946 : return 3808; /* *andv4sf3_mask */
12947 :
12948 : case E_V4DFmode:
12949 : if (pattern133 (x2,
12950 : E_V4DFmode,
12951 : E_QImode) != 0
12952 : || !(
12953 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12954 : (TARGET_AVX512F) && (
12955 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12956 : (TARGET_SSE && TARGET_AVX512VL
12957 : && (!true || 64 != 16)
12958 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12959 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12960 : (TARGET_AVX))))
12961 : return -1;
12962 : return 3814; /* *andv4df3_mask */
12963 :
12964 : case E_V2DFmode:
12965 : if (pattern133 (x2,
12966 : E_V2DFmode,
12967 : E_QImode) != 0
12968 : || !(
12969 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12970 : (TARGET_AVX512F) && (
12971 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12972 : (TARGET_SSE && TARGET_AVX512VL
12973 : && (!true || 64 != 16)
12974 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
12975 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12976 : (TARGET_SSE2))))
12977 : return -1;
12978 : return 3820; /* *andv2df3_mask */
12979 :
12980 : case E_V16SFmode:
12981 : if (pattern134 (x2,
12982 : E_V16SFmode,
12983 : E_HImode) != 0
12984 : || !(
12985 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12986 : (TARGET_AVX512F) &&
12987 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12988 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
12989 : && (!true || 32 != 16))))
12990 : return -1;
12991 : return 3832; /* *andv16sf3_mask */
12992 :
12993 : case E_V8DFmode:
12994 : if (pattern134 (x2,
12995 : E_V8DFmode,
12996 : E_QImode) != 0
12997 : || !(
12998 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12999 : (TARGET_AVX512F) &&
13000 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13001 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
13002 : && (!true || 64 != 16))))
13003 : return -1;
13004 : return 3838; /* *andv8df3_mask */
13005 :
13006 : case E_V16SImode:
13007 : if (pattern491 (x2,
13008 : E_V16SImode,
13009 : E_HImode) != 0
13010 : || !(
13011 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13012 : (TARGET_AVX512F) && (
13013 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13014 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13015 : && ix86_binary_operator_ok (AND, V16SImode, operands)) &&
13016 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13017 : (TARGET_AVX512F))))
13018 : return -1;
13019 : return 8080; /* *andv16si3_mask */
13020 :
13021 : case E_V8SImode:
13022 : if (pattern491 (x2,
13023 : E_V8SImode,
13024 : E_QImode) != 0
13025 : || !(
13026 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13027 : (TARGET_AVX512F) && (
13028 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13029 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13030 : && ix86_binary_operator_ok (AND, V8SImode, operands)) &&
13031 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13032 : (TARGET_AVX))))
13033 : return -1;
13034 : return 8086; /* *andv8si3_mask */
13035 :
13036 : case E_V4SImode:
13037 : if (pattern491 (x2,
13038 : E_V4SImode,
13039 : E_QImode) != 0
13040 : || !(
13041 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13042 : (TARGET_AVX512F) &&
13043 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13044 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13045 : && ix86_binary_operator_ok (AND, V4SImode, operands))))
13046 : return -1;
13047 : return 8092; /* *andv4si3_mask */
13048 :
13049 : case E_V8DImode:
13050 : if (pattern491 (x2,
13051 : E_V8DImode,
13052 : E_QImode) != 0
13053 : || !(
13054 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13055 : (TARGET_AVX512F) && (
13056 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13057 : (TARGET_SSE && (64 == 64 || TARGET_AVX512VL)
13058 : && ix86_binary_operator_ok (AND, V8DImode, operands)) &&
13059 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13060 : (TARGET_AVX512F))))
13061 : return -1;
13062 : return 8098; /* *andv8di3_mask */
13063 :
13064 : case E_V4DImode:
13065 : if (pattern491 (x2,
13066 : E_V4DImode,
13067 : E_QImode) != 0
13068 : || !(
13069 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13070 : (TARGET_AVX512F) && (
13071 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13072 : (TARGET_SSE && (32 == 64 || TARGET_AVX512VL)
13073 : && ix86_binary_operator_ok (AND, V4DImode, operands)) &&
13074 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13075 : (TARGET_AVX))))
13076 : return -1;
13077 : return 8104; /* *andv4di3_mask */
13078 :
13079 : case E_V2DImode:
13080 : if (pattern491 (x2,
13081 : E_V2DImode,
13082 : E_QImode) != 0
13083 : || !(
13084 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13085 : (TARGET_AVX512F) &&
13086 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13087 : (TARGET_SSE && (16 == 64 || TARGET_AVX512VL)
13088 : && ix86_binary_operator_ok (AND, V2DImode, operands))))
13089 : return -1;
13090 : return 8110; /* *andv2di3_mask */
13091 :
13092 : default:
13093 : return -1;
13094 : }
13095 :
13096 : default:
13097 : return -1;
13098 : }
13099 : }
13100 :
13101 : int
13102 : recog_204 (rtx x1 ATTRIBUTE_UNUSED,
13103 : rtx_insn *insn ATTRIBUTE_UNUSED,
13104 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13105 : {
13106 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13107 : rtx x2;
13108 : int res ATTRIBUTE_UNUSED;
13109 : x2 = XEXP (x1, 1);
13110 : switch (pattern140 (x2))
13111 : {
13112 : case 0:
13113 : switch (pattern904 (x2))
13114 : {
13115 : case 0:
13116 : if (!(
13117 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13118 : (TARGET_AVX512F) && (
13119 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13120 : (TARGET_AVX512FP16) &&
13121 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13122 : (TARGET_AVX512VL))))
13123 : return -1;
13124 : return 4526; /* avx512fp16_vcvtw2ph_v8hi_mask */
13125 :
13126 : case 1:
13127 : if (!(
13128 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13129 : (TARGET_AVX512F) && (
13130 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13131 : (TARGET_AVX512FP16) &&
13132 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13133 : (TARGET_AVX512VL))))
13134 : return -1;
13135 : return 4550; /* avx512fp16_vcvtdq2ph_v8si_mask */
13136 :
13137 : case 2:
13138 : if (!(
13139 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13140 : (TARGET_AVX512F) &&
13141 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13142 : (TARGET_AVX512FP16)))
13143 : return -1;
13144 : return 4566; /* avx512fp16_vcvtqq2ph_v8di_mask */
13145 :
13146 : default:
13147 : return -1;
13148 : }
13149 :
13150 : case 1:
13151 : switch (pattern905 (x2))
13152 : {
13153 : case 0:
13154 : if (!(
13155 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13156 : (TARGET_AVX512F) && (
13157 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13158 : (TARGET_AVX512FP16) &&
13159 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13160 : (TARGET_AVX512VL))))
13161 : return -1;
13162 : return 4534; /* avx512fp16_vcvtw2ph_v16hi_mask */
13163 :
13164 : case 1:
13165 : if (!(
13166 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13167 : (TARGET_AVX512F) &&
13168 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13169 : (TARGET_AVX512FP16)))
13170 : return -1;
13171 : return 4558; /* avx512fp16_vcvtdq2ph_v16si_mask */
13172 :
13173 : default:
13174 : return -1;
13175 : }
13176 :
13177 : case 2:
13178 : if (pattern141 (x2,
13179 : E_V32HFmode,
13180 : E_SImode,
13181 : E_V32HImode) != 0
13182 : || !(
13183 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13184 : (TARGET_AVX512F) &&
13185 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13186 : (TARGET_AVX512FP16)))
13187 : return -1;
13188 : return 4542; /* avx512fp16_vcvtw2ph_v32hi_mask */
13189 :
13190 : case 3:
13191 : if (pattern141 (x2,
13192 : E_V16SFmode,
13193 : E_HImode,
13194 : E_V16SImode) != 0
13195 : || !(
13196 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13197 : (TARGET_AVX512F) && (
13198 : #line 9029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13199 : (TARGET_SSE2 && (64 == 64 || TARGET_AVX512VL) && 1) &&
13200 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13201 : (TARGET_AVX512F))))
13202 : return -1;
13203 : return 4862; /* floatv16siv16sf2_mask */
13204 :
13205 : case 4:
13206 : if (pattern142 (x2,
13207 : E_V8SFmode,
13208 : E_QImode) != 0)
13209 : return -1;
13210 : switch (GET_MODE (operands[1]))
13211 : {
13212 : case E_V8SImode:
13213 : if (!vector_operand (operands[1], E_V8SImode)
13214 : || !(
13215 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13216 : (TARGET_AVX512F) && (
13217 : #line 9029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13218 : (TARGET_SSE2 && (32 == 64 || TARGET_AVX512VL) && 1) &&
13219 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13220 : (TARGET_AVX))))
13221 : return -1;
13222 : return 4865; /* floatv8siv8sf2_mask */
13223 :
13224 : case E_V8DImode:
13225 : if (!nonimmediate_operand (operands[1], E_V8DImode)
13226 : || !(
13227 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13228 : (TARGET_AVX512F) &&
13229 : #line 9577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13230 : (TARGET_AVX512DQ && 1)))
13231 : return -1;
13232 : return 5018; /* floatv8div8sf2_mask */
13233 :
13234 : default:
13235 : return -1;
13236 : }
13237 :
13238 : case 5:
13239 : if (pattern142 (x2,
13240 : E_V4SFmode,
13241 : E_QImode) != 0)
13242 : return -1;
13243 : switch (GET_MODE (operands[1]))
13244 : {
13245 : case E_V4SImode:
13246 : if (!vector_operand (operands[1], E_V4SImode)
13247 : || !(
13248 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13249 : (TARGET_AVX512F) &&
13250 : #line 9029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13251 : (TARGET_SSE2 && (16 == 64 || TARGET_AVX512VL) && 1)))
13252 : return -1;
13253 : return 4867; /* floatv4siv4sf2_mask */
13254 :
13255 : case E_V4DImode:
13256 : if (!nonimmediate_operand (operands[1], E_V4DImode)
13257 : || !(
13258 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13259 : (TARGET_AVX512F) && (
13260 : #line 9577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13261 : (TARGET_AVX512DQ && 1) &&
13262 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13263 : (TARGET_AVX512VL))))
13264 : return -1;
13265 : return 5025; /* floatv4div4sf2_mask */
13266 :
13267 : default:
13268 : return -1;
13269 : }
13270 :
13271 : case 6:
13272 : switch (pattern906 (x2,
13273 : E_V8DFmode))
13274 : {
13275 : case 0:
13276 : if (!(
13277 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13278 : (TARGET_AVX512F) && (
13279 : #line 9553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13280 : (TARGET_AVX && (64 == 64 || TARGET_AVX512VL)) &&
13281 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13282 : (TARGET_AVX512F))))
13283 : return -1;
13284 : return 4989; /* floatv8siv8df2_mask */
13285 :
13286 : case 1:
13287 : if (!(
13288 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13289 : (TARGET_AVX512F) &&
13290 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13291 : (TARGET_AVX512DQ)))
13292 : return -1;
13293 : return 4994; /* floatv8div8df2_mask */
13294 :
13295 : default:
13296 : return -1;
13297 : }
13298 :
13299 : case 7:
13300 : switch (pattern907 (x2,
13301 : E_V4DFmode))
13302 : {
13303 : case 0:
13304 : if (!(
13305 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13306 : (TARGET_AVX512F) &&
13307 : #line 9553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13308 : (TARGET_AVX && (32 == 64 || TARGET_AVX512VL))))
13309 : return -1;
13310 : return 4991; /* floatv4siv4df2_mask */
13311 :
13312 : case 1:
13313 : if (!(
13314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13315 : (TARGET_AVX512F) && (
13316 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13317 : (TARGET_AVX512DQ) &&
13318 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13319 : (TARGET_AVX512VL))))
13320 : return -1;
13321 : return 5002; /* floatv4div4df2_mask */
13322 :
13323 : default:
13324 : return -1;
13325 : }
13326 :
13327 : case 8:
13328 : if (pattern155 (x2,
13329 : E_V2DFmode,
13330 : E_V2DImode,
13331 : E_QImode) != 0
13332 : || !(
13333 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13334 : (TARGET_AVX512F) && (
13335 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13336 : (TARGET_AVX512DQ) &&
13337 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13338 : (TARGET_AVX512VL))))
13339 : return -1;
13340 : return 5010; /* floatv2div2df2_mask */
13341 :
13342 : case 9:
13343 : if (!(
13344 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13345 : (TARGET_AVX512F) &&
13346 : #line 9779 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13347 : (TARGET_SSE2 && TARGET_AVX512VL)))
13348 : return -1;
13349 : return 5043; /* sse2_cvtdq2pd_mask */
13350 :
13351 : default:
13352 : return -1;
13353 : }
13354 : }
13355 :
13356 : int
13357 : recog_214 (rtx x1 ATTRIBUTE_UNUSED,
13358 : rtx_insn *insn ATTRIBUTE_UNUSED,
13359 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13360 : {
13361 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13362 : rtx x2, x3;
13363 : int res ATTRIBUTE_UNUSED;
13364 : x2 = XEXP (x1, 1);
13365 : x3 = XVECEXP (x2, 0, 0);
13366 : operands[1] = x3;
13367 : switch (GET_MODE (operands[0]))
13368 : {
13369 : case E_V8HImode:
13370 : if (!register_operand (operands[0], E_V8HImode)
13371 : || GET_MODE (x2) != E_V8HImode
13372 : || !vector_operand (operands[1], E_V8HFmode)
13373 : || !(
13374 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13375 : (TARGET_AVX512FP16) &&
13376 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13377 : (TARGET_AVX512VL)))
13378 : return -1;
13379 : return 4614; /* unspec_avx512fp16_fixuns_truncv8hi2 */
13380 :
13381 : case E_V16HImode:
13382 : if (!register_operand (operands[0], E_V16HImode)
13383 : || GET_MODE (x2) != E_V16HImode
13384 : || !vector_operand (operands[1], E_V16HFmode)
13385 : || !(
13386 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13387 : (TARGET_AVX512FP16) &&
13388 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13389 : (TARGET_AVX512VL)))
13390 : return -1;
13391 : return 4622; /* unspec_avx512fp16_fixuns_truncv16hi2 */
13392 :
13393 : case E_V32HImode:
13394 : if (!register_operand (operands[0], E_V32HImode)
13395 : || GET_MODE (x2) != E_V32HImode
13396 : || !vector_operand (operands[1], E_V32HFmode)
13397 : || !
13398 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13399 : (TARGET_AVX512FP16))
13400 : return -1;
13401 : return 4630; /* unspec_avx512fp16_fixuns_truncv32hi2 */
13402 :
13403 : case E_V8SImode:
13404 : if (!register_operand (operands[0], E_V8SImode)
13405 : || GET_MODE (x2) != E_V8SImode)
13406 : return -1;
13407 : switch (GET_MODE (operands[1]))
13408 : {
13409 : case E_V8HFmode:
13410 : if (!vector_operand (operands[1], E_V8HFmode)
13411 : || !(
13412 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13413 : (TARGET_AVX512FP16) &&
13414 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13415 : (TARGET_AVX512VL)))
13416 : return -1;
13417 : return 4638; /* unspec_avx512fp16_fixuns_truncv8si2 */
13418 :
13419 : case E_V8DFmode:
13420 : if (!vector_operand (operands[1], E_V8DFmode)
13421 : || !
13422 : #line 9949 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13423 : (TARGET_AVX512F))
13424 : return -1;
13425 : return 5069; /* unspec_fixuns_truncv8dfv8si2 */
13426 :
13427 : case E_V8SFmode:
13428 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13429 : || !(
13430 : #line 10292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13431 : (TARGET_AVX512VL) &&
13432 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13433 : (TARGET_AVX)))
13434 : return -1;
13435 : return 5174; /* *unspec_fixuns_truncv8sfv8si2 */
13436 :
13437 : default:
13438 : return -1;
13439 : }
13440 :
13441 : case E_V16SImode:
13442 : switch (pattern655 (x2,
13443 : E_V16SImode))
13444 : {
13445 : case 0:
13446 : if (!
13447 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13448 : (TARGET_AVX512FP16))
13449 : return -1;
13450 : return 4646; /* unspec_avx512fp16_fixuns_truncv16si2 */
13451 :
13452 : case 1:
13453 : if (!
13454 : #line 9155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13455 : (TARGET_AVX512F))
13456 : return -1;
13457 : return 4920; /* unspec_fixuns_truncv16sfv16si2 */
13458 :
13459 : default:
13460 : return -1;
13461 : }
13462 :
13463 : case E_V8DImode:
13464 : switch (pattern656 (x2))
13465 : {
13466 : case 0:
13467 : if (!
13468 : #line 8259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13469 : (TARGET_AVX512FP16))
13470 : return -1;
13471 : return 4654; /* unspec_avx512fp16_fixuns_truncv8di2 */
13472 :
13473 : case 1:
13474 : if (!
13475 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13476 : (TARGET_AVX512DQ && 1))
13477 : return -1;
13478 : return 5098; /* unspec_fixuns_truncv8dfv8di2 */
13479 :
13480 : case 2:
13481 : if (!
13482 : #line 10121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13483 : (TARGET_AVX512DQ && 1))
13484 : return -1;
13485 : return 5146; /* unspec_fixuns_truncv8sfv8di2 */
13486 :
13487 : default:
13488 : return -1;
13489 : }
13490 :
13491 : case E_V4SImode:
13492 : if (!register_operand (operands[0], E_V4SImode)
13493 : || GET_MODE (x2) != E_V4SImode)
13494 : return -1;
13495 : switch (GET_MODE (operands[1]))
13496 : {
13497 : case E_V8HFmode:
13498 : if (!register_operand (operands[1], E_V8HFmode)
13499 : || !
13500 : #line 8297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13501 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13502 : return -1;
13503 : return 4708; /* unspec_avx512fp16_fixuns_truncv4si2 */
13504 :
13505 : case E_V4DFmode:
13506 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13507 : || !
13508 : #line 10058 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13509 : (TARGET_AVX512VL && TARGET_AVX512F))
13510 : return -1;
13511 : return 5090; /* unspec_fixuns_truncv4dfv4si2 */
13512 :
13513 : case E_V4SFmode:
13514 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
13515 : || !
13516 : #line 10292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13517 : (TARGET_AVX512VL))
13518 : return -1;
13519 : return 5176; /* *unspec_fixuns_truncv4sfv4si2 */
13520 :
13521 : default:
13522 : return -1;
13523 : }
13524 :
13525 : case E_V4DImode:
13526 : switch (pattern657 (x2))
13527 : {
13528 : case 0:
13529 : if (!
13530 : #line 8297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13531 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13532 : return -1;
13533 : return 4712; /* unspec_avx512fp16_fixuns_truncv4di2 */
13534 :
13535 : case 1:
13536 : if (!(
13537 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13538 : (TARGET_AVX512DQ && 1) &&
13539 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13540 : (TARGET_AVX512VL)))
13541 : return -1;
13542 : return 5104; /* unspec_fixuns_truncv4dfv4di2 */
13543 :
13544 : case 2:
13545 : if (!(
13546 : #line 10121 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13547 : (TARGET_AVX512DQ && 1) &&
13548 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13549 : (TARGET_AVX512VL)))
13550 : return -1;
13551 : return 5152; /* unspec_fixuns_truncv4sfv4di2 */
13552 :
13553 : default:
13554 : return -1;
13555 : }
13556 :
13557 : case E_V2DImode:
13558 : switch (pattern658 (x2))
13559 : {
13560 : case 0:
13561 : if (!
13562 : #line 8347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13563 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
13564 : return -1;
13565 : return 4732; /* unspec_avx512fp16_fixuns_truncv2di2 */
13566 :
13567 : case 1:
13568 : if (!(
13569 : #line 10078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13570 : (TARGET_AVX512DQ && 1) &&
13571 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13572 : (TARGET_AVX512VL)))
13573 : return -1;
13574 : return 5108; /* unspec_fixuns_truncv2dfv2di2 */
13575 :
13576 : case 2:
13577 : if (!
13578 : #line 10142 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13579 : (TARGET_AVX512DQ && TARGET_AVX512VL))
13580 : return -1;
13581 : return 5168; /* unspec_avx512dq_fixuns_truncv2sfv2di2 */
13582 :
13583 : default:
13584 : return -1;
13585 : }
13586 :
13587 : default:
13588 : return -1;
13589 : }
13590 : }
13591 :
13592 : int
13593 : recog_228 (rtx x1 ATTRIBUTE_UNUSED,
13594 : rtx_insn *insn ATTRIBUTE_UNUSED,
13595 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13596 : {
13597 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13598 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13599 : rtx x10, x11, x12;
13600 : int res ATTRIBUTE_UNUSED;
13601 : x2 = XEXP (x1, 1);
13602 : x3 = XVECEXP (x2, 0, 0);
13603 : x4 = XEXP (x3, 0);
13604 : x5 = XEXP (x4, 1);
13605 : operands[2] = x5;
13606 : x6 = XVECEXP (x2, 0, 1);
13607 : if (!const_4_or_8_to_11_operand (x6, E_SImode))
13608 : return -1;
13609 : x7 = XEXP (x4, 0);
13610 : switch (GET_CODE (x7))
13611 : {
13612 : case REG:
13613 : case SUBREG:
13614 : case MEM:
13615 : return recog_226 (x1, insn, pnum_clobbers);
13616 :
13617 : case NEG:
13618 : x8 = XEXP (x7, 0);
13619 : operands[1] = x8;
13620 : x9 = XEXP (x4, 2);
13621 : switch (GET_CODE (x9))
13622 : {
13623 : case REG:
13624 : case SUBREG:
13625 : case MEM:
13626 : operands[3] = x9;
13627 : x10 = XEXP (x3, 1);
13628 : switch (GET_CODE (x10))
13629 : {
13630 : case CONST_INT:
13631 : case CONST_DOUBLE:
13632 : case CONST_VECTOR:
13633 : operands[4] = x10;
13634 : x11 = XEXP (x3, 2);
13635 : operands[5] = x11;
13636 : operands[6] = x6;
13637 : switch (GET_MODE (operands[0]))
13638 : {
13639 : case E_V32HFmode:
13640 : if (pattern1613 (x2,
13641 : E_SImode,
13642 : E_V32HFmode) != 0
13643 : || !(
13644 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13645 : (TARGET_AVX512F) && (
13646 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13647 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13648 : || V32HFmode == V8DFmode
13649 : || V32HFmode == V8DImode
13650 : || V32HFmode == V16SImode
13651 : || V32HFmode == V32HFmode)) &&
13652 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13653 : (TARGET_AVX512FP16))))
13654 : return -1;
13655 : return 4011; /* fma_fnmadd_v32hf_maskz_1_round */
13656 :
13657 : case E_V16SFmode:
13658 : if (pattern1613 (x2,
13659 : E_HImode,
13660 : E_V16SFmode) != 0
13661 : || !(
13662 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13663 : (TARGET_AVX512F) &&
13664 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13665 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
13666 : || V16SFmode == V8DFmode
13667 : || V16SFmode == V8DImode
13668 : || V16SFmode == V16SImode
13669 : || V16SFmode == V32HFmode))))
13670 : return -1;
13671 : return 4021; /* fma_fnmadd_v16sf_maskz_1_round */
13672 :
13673 : case E_V8DFmode:
13674 : if (pattern1613 (x2,
13675 : E_QImode,
13676 : E_V8DFmode) != 0
13677 : || !(
13678 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13679 : (TARGET_AVX512F) &&
13680 : #line 6555 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13681 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
13682 : || V8DFmode == V8DFmode
13683 : || V8DFmode == V8DImode
13684 : || V8DFmode == V16SImode
13685 : || V8DFmode == V32HFmode))))
13686 : return -1;
13687 : return 4030; /* fma_fnmadd_v8df_maskz_1_round */
13688 :
13689 : default:
13690 : return -1;
13691 : }
13692 :
13693 : case REG:
13694 : case SUBREG:
13695 : case MEM:
13696 : x11 = XEXP (x3, 2);
13697 : switch (GET_CODE (x11))
13698 : {
13699 : case REG:
13700 : case SUBREG:
13701 : operands[4] = x11;
13702 : operands[5] = x6;
13703 : switch (GET_MODE (operands[0]))
13704 : {
13705 : case E_V32HFmode:
13706 : if (pattern1614 (x2,
13707 : E_SImode,
13708 : E_V32HFmode) != 0)
13709 : return -1;
13710 : if (nonimmediate_operand (operands[1], E_V32HFmode)
13711 : && register_operand (operands[3], E_V32HFmode)
13712 : && rtx_equal_p (x10, operands[1])
13713 : && (
13714 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13715 : (TARGET_AVX512F) && (
13716 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13717 : (TARGET_AVX512F && (V32HFmode == V16SFmode
13718 : || V32HFmode == V8DFmode
13719 : || V32HFmode == V8DImode
13720 : || V32HFmode == V16SImode
13721 : || V32HFmode == V32HFmode)) &&
13722 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13723 : (TARGET_AVX512FP16))))
13724 : return 4036; /* avx512bw_fnmadd_v32hf_mask_round */
13725 : if (!register_operand (operands[1], E_V32HFmode)
13726 : || !nonimmediate_operand (operands[3], E_V32HFmode)
13727 : || !rtx_equal_p (x10, operands[3])
13728 : || !(
13729 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13730 : (TARGET_AVX512F) && (
13731 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13732 : (TARGET_AVX512F && (V32HFmode == V16SFmode
13733 : || V32HFmode == V8DFmode
13734 : || V32HFmode == V8DImode
13735 : || V32HFmode == V16SImode
13736 : || V32HFmode == V32HFmode)) &&
13737 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13738 : (TARGET_AVX512FP16))))
13739 : return -1;
13740 : return 4048; /* avx512bw_fnmadd_v32hf_mask3_round */
13741 :
13742 : case E_V16SFmode:
13743 : if (pattern1614 (x2,
13744 : E_HImode,
13745 : E_V16SFmode) != 0)
13746 : return -1;
13747 : if (nonimmediate_operand (operands[1], E_V16SFmode)
13748 : && register_operand (operands[3], E_V16SFmode)
13749 : && rtx_equal_p (x10, operands[1])
13750 : && (
13751 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13752 : (TARGET_AVX512F) &&
13753 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13754 : (TARGET_AVX512F && (V16SFmode == V16SFmode
13755 : || V16SFmode == V8DFmode
13756 : || V16SFmode == V8DImode
13757 : || V16SFmode == V16SImode
13758 : || V16SFmode == V32HFmode))))
13759 : return 4040; /* avx512f_fnmadd_v16sf_mask_round */
13760 : if (!register_operand (operands[1], E_V16SFmode)
13761 : || !nonimmediate_operand (operands[3], E_V16SFmode)
13762 : || !rtx_equal_p (x10, operands[3])
13763 : || !(
13764 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13765 : (TARGET_AVX512F) &&
13766 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13767 : (TARGET_AVX512F && (V16SFmode == V16SFmode
13768 : || V16SFmode == V8DFmode
13769 : || V16SFmode == V8DImode
13770 : || V16SFmode == V16SImode
13771 : || V16SFmode == V32HFmode))))
13772 : return -1;
13773 : return 4052; /* avx512f_fnmadd_v16sf_mask3_round */
13774 :
13775 : case E_V8DFmode:
13776 : if (pattern1614 (x2,
13777 : E_QImode,
13778 : E_V8DFmode) != 0)
13779 : return -1;
13780 : if (nonimmediate_operand (operands[1], E_V8DFmode)
13781 : && register_operand (operands[3], E_V8DFmode)
13782 : && rtx_equal_p (x10, operands[1])
13783 : && (
13784 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13785 : (TARGET_AVX512F) &&
13786 : #line 6598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13787 : (TARGET_AVX512F && (V8DFmode == V16SFmode
13788 : || V8DFmode == V8DFmode
13789 : || V8DFmode == V8DImode
13790 : || V8DFmode == V16SImode
13791 : || V8DFmode == V32HFmode))))
13792 : return 4044; /* avx512f_fnmadd_v8df_mask_round */
13793 : if (!register_operand (operands[1], E_V8DFmode)
13794 : || !nonimmediate_operand (operands[3], E_V8DFmode)
13795 : || !rtx_equal_p (x10, operands[3])
13796 : || !(
13797 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13798 : (TARGET_AVX512F) &&
13799 : #line 6616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13800 : (TARGET_AVX512F && (V8DFmode == V16SFmode
13801 : || V8DFmode == V8DFmode
13802 : || V8DFmode == V8DImode
13803 : || V8DFmode == V16SImode
13804 : || V8DFmode == V32HFmode))))
13805 : return -1;
13806 : return 4056; /* avx512f_fnmadd_v8df_mask3_round */
13807 :
13808 : default:
13809 : return -1;
13810 : }
13811 :
13812 : case CONST_INT:
13813 : if (XWINT (x11, 0) != 1L)
13814 : return -1;
13815 : operands[4] = x6;
13816 : if (!rtx_equal_p (x10, operands[1]))
13817 : return -1;
13818 : switch (GET_MODE (operands[0]))
13819 : {
13820 : case E_V8HFmode:
13821 : if (pattern1673 (x2,
13822 : E_V8HFmode) != 0
13823 : || !(
13824 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13825 : (TARGET_AVX512F) && (
13826 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13827 : (TARGET_FMA || TARGET_AVX512F) &&
13828 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13829 : (TARGET_AVX512FP16))))
13830 : return -1;
13831 : return 4277; /* *fmai_fnmadd_v8hf_round */
13832 :
13833 : case E_V4SFmode:
13834 : if (pattern1673 (x2,
13835 : E_V4SFmode) != 0
13836 : || !(
13837 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13838 : (TARGET_AVX512F) &&
13839 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13840 : (TARGET_FMA || TARGET_AVX512F)))
13841 : return -1;
13842 : return 4279; /* *fmai_fnmadd_v4sf_round */
13843 :
13844 : case E_V2DFmode:
13845 : if (pattern1673 (x2,
13846 : E_V2DFmode) != 0
13847 : || !(
13848 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13849 : (TARGET_AVX512F) && (
13850 : #line 7036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13851 : (TARGET_FMA || TARGET_AVX512F) &&
13852 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13853 : (TARGET_SSE2))))
13854 : return -1;
13855 : return 4281; /* *fmai_fnmadd_v2df_round */
13856 :
13857 : default:
13858 : return -1;
13859 : }
13860 :
13861 : default:
13862 : return -1;
13863 : }
13864 :
13865 : default:
13866 : return -1;
13867 : }
13868 :
13869 : case NEG:
13870 : x12 = XEXP (x9, 0);
13871 : operands[3] = x12;
13872 : x10 = XEXP (x3, 1);
13873 : switch (GET_CODE (x10))
13874 : {
13875 : case CONST_INT:
13876 : case CONST_DOUBLE:
13877 : case CONST_VECTOR:
13878 : operands[4] = x10;
13879 : x11 = XEXP (x3, 2);
13880 : operands[5] = x11;
13881 : operands[6] = x6;
13882 : switch (GET_MODE (operands[0]))
13883 : {
13884 : case E_V4SFmode:
13885 : if (pattern1615 (x2,
13886 : E_V4SFmode) != 0
13887 : || !(
13888 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13889 : (TARGET_AVX512F) &&
13890 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13891 : (TARGET_FMA || TARGET_FMA4)))
13892 : return -1;
13893 : return 4066; /* *fma_fnmsub_v4sf */
13894 :
13895 : case E_V2DFmode:
13896 : if (pattern1615 (x2,
13897 : E_V2DFmode) != 0
13898 : || !(
13899 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13900 : (TARGET_AVX512F) &&
13901 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13902 : (TARGET_FMA || TARGET_FMA4)))
13903 : return -1;
13904 : return 4070; /* *fma_fnmsub_v2df */
13905 :
13906 : case E_V8SFmode:
13907 : if (pattern1615 (x2,
13908 : E_V8SFmode) != 0
13909 : || !(
13910 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13911 : (TARGET_AVX512F) &&
13912 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13913 : (TARGET_FMA || TARGET_FMA4)))
13914 : return -1;
13915 : return 4074; /* *fma_fnmsub_v8sf */
13916 :
13917 : case E_V4DFmode:
13918 : if (pattern1615 (x2,
13919 : E_V4DFmode) != 0
13920 : || !(
13921 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13922 : (TARGET_AVX512F) &&
13923 : #line 6630 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13924 : (TARGET_FMA || TARGET_FMA4)))
13925 : return -1;
13926 : return 4078; /* *fma_fnmsub_v4df */
13927 :
13928 : case E_V32HFmode:
13929 : if (pattern1616 (x2,
13930 : E_SImode,
13931 : E_V32HFmode) != 0
13932 : || !(
13933 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13934 : (TARGET_AVX512F) && (
13935 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13936 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V32HFmode == V16SFmode
13937 : || V32HFmode == V8DFmode
13938 : || V32HFmode == V8DImode
13939 : || V32HFmode == V16SImode
13940 : || V32HFmode == V32HFmode)) &&
13941 : #line 6333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13942 : (TARGET_AVX512FP16))))
13943 : return -1;
13944 : return 4082; /* fma_fnmsub_v32hf_maskz_1_round */
13945 :
13946 : case E_V16SFmode:
13947 : if (pattern1616 (x2,
13948 : E_HImode,
13949 : E_V16SFmode) != 0
13950 : || !(
13951 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13952 : (TARGET_AVX512F) &&
13953 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13954 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V16SFmode == V16SFmode
13955 : || V16SFmode == V8DFmode
13956 : || V16SFmode == V8DImode
13957 : || V16SFmode == V16SImode
13958 : || V16SFmode == V32HFmode))))
13959 : return -1;
13960 : return 4092; /* fma_fnmsub_v16sf_maskz_1_round */
13961 :
13962 : case E_V8DFmode:
13963 : if (pattern1616 (x2,
13964 : E_QImode,
13965 : E_V8DFmode) != 0
13966 : || !(
13967 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13968 : (TARGET_AVX512F) &&
13969 : #line 6663 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13970 : (TARGET_AVX512F && (64 == 64 || TARGET_AVX512VL) && (V8DFmode == V16SFmode
13971 : || V8DFmode == V8DFmode
13972 : || V8DFmode == V8DImode
13973 : || V8DFmode == V16SImode
13974 : || V8DFmode == V32HFmode))))
13975 : return -1;
13976 : return 4101; /* fma_fnmsub_v8df_maskz_1_round */
13977 :
13978 : default:
13979 : return -1;
13980 : }
13981 :
13982 : case REG:
13983 : case SUBREG:
13984 : case MEM:
13985 : switch (pattern1418 (x2))
13986 : {
13987 : case 0:
13988 : if (pattern1617 (x2,
13989 : E_SImode,
13990 : E_V32HFmode) != 0)
13991 : return -1;
13992 : if (nonimmediate_operand (operands[1], E_V32HFmode)
13993 : && register_operand (operands[3], E_V32HFmode)
13994 : && rtx_equal_p (x10, operands[1])
13995 : && (
13996 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13997 : (TARGET_AVX512F) && (
13998 : #line 6708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13999 : (TARGET_AVX512F && (V32HFmode == V16SFmode
14000 : || V32HFmode == V8DFmode
14001 : || V32HFmode == V8DImode
14002 : || V32HFmode == V16SImode
14003 : || V32HFmode == V32HFmode)) &&
14004 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14005 : (TARGET_AVX512FP16))))
14006 : return 4107; /* avx512bw_fnmsub_v32hf_mask_round */
14007 : if (!register_operand (operands[1], E_V32HFmode)
14008 : || !nonimmediate_operand (operands[3], E_V32HFmode)
14009 : || !rtx_equal_p (x10, operands[3])
14010 : || !(
14011 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14012 : (TARGET_AVX512F) && (
14013 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14014 : (TARGET_AVX512F) &&
14015 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14016 : (TARGET_AVX512FP16))))
14017 : return -1;
14018 : return 4119; /* avx512bw_fnmsub_v32hf_mask3_round */
14019 :
14020 : case 1:
14021 : if (pattern1617 (x2,
14022 : E_HImode,
14023 : E_V16SFmode) != 0)
14024 : return -1;
14025 : if (nonimmediate_operand (operands[1], E_V16SFmode)
14026 : && register_operand (operands[3], E_V16SFmode)
14027 : && rtx_equal_p (x10, operands[1])
14028 : && (
14029 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14030 : (TARGET_AVX512F) &&
14031 : #line 6708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14032 : (TARGET_AVX512F && (V16SFmode == V16SFmode
14033 : || V16SFmode == V8DFmode
14034 : || V16SFmode == V8DImode
14035 : || V16SFmode == V16SImode
14036 : || V16SFmode == V32HFmode))))
14037 : return 4111; /* avx512f_fnmsub_v16sf_mask_round */
14038 : if (!register_operand (operands[1], E_V16SFmode)
14039 : || !nonimmediate_operand (operands[3], E_V16SFmode)
14040 : || !rtx_equal_p (x10, operands[3])
14041 : || !
14042 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14043 : (TARGET_AVX512F))
14044 : return -1;
14045 : return 4125; /* avx512f_fnmsub_v16sf_mask3_round */
14046 :
14047 : case 2:
14048 : if (pattern1617 (x2,
14049 : E_QImode,
14050 : E_V8DFmode) != 0)
14051 : return -1;
14052 : if (nonimmediate_operand (operands[1], E_V8DFmode)
14053 : && register_operand (operands[3], E_V8DFmode)
14054 : && rtx_equal_p (x10, operands[1])
14055 : && (
14056 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14057 : (TARGET_AVX512F) &&
14058 : #line 6708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14059 : (TARGET_AVX512F && (V8DFmode == V16SFmode
14060 : || V8DFmode == V8DFmode
14061 : || V8DFmode == V8DImode
14062 : || V8DFmode == V16SImode
14063 : || V8DFmode == V32HFmode))))
14064 : return 4115; /* avx512f_fnmsub_v8df_mask_round */
14065 : if (!register_operand (operands[1], E_V8DFmode)
14066 : || !nonimmediate_operand (operands[3], E_V8DFmode)
14067 : || !rtx_equal_p (x10, operands[3])
14068 : || !
14069 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14070 : (TARGET_AVX512F))
14071 : return -1;
14072 : return 4131; /* avx512f_fnmsub_v8df_mask3_round */
14073 :
14074 : case 3:
14075 : if (pattern1618 (x2,
14076 : E_V16HFmode,
14077 : E_HImode) != 0
14078 : || !(
14079 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14080 : (TARGET_AVX512F) && (
14081 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14082 : (TARGET_AVX512F) &&
14083 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14084 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14085 : return -1;
14086 : return 4121; /* avx512vl_fnmsub_v16hf_mask3_round */
14087 :
14088 : case 4:
14089 : if (pattern1618 (x2,
14090 : E_V8HFmode,
14091 : E_QImode) != 0
14092 : || !(
14093 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14094 : (TARGET_AVX512F) && (
14095 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14096 : (TARGET_AVX512F) &&
14097 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14098 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14099 : return -1;
14100 : return 4123; /* avx512fp16_fnmsub_v8hf_mask3_round */
14101 :
14102 : case 5:
14103 : if (pattern1618 (x2,
14104 : E_V8SFmode,
14105 : E_QImode) != 0
14106 : || !(
14107 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14108 : (TARGET_AVX512F) && (
14109 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14110 : (TARGET_AVX512F) &&
14111 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14112 : (TARGET_AVX512VL))))
14113 : return -1;
14114 : return 4127; /* avx512vl_fnmsub_v8sf_mask3_round */
14115 :
14116 : case 6:
14117 : if (pattern1618 (x2,
14118 : E_V4SFmode,
14119 : E_QImode) != 0
14120 : || !(
14121 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14122 : (TARGET_AVX512F) && (
14123 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14124 : (TARGET_AVX512F) &&
14125 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14126 : (TARGET_AVX512VL))))
14127 : return -1;
14128 : return 4129; /* avx512vl_fnmsub_v4sf_mask3_round */
14129 :
14130 : case 7:
14131 : if (pattern1618 (x2,
14132 : E_V4DFmode,
14133 : E_QImode) != 0
14134 : || !(
14135 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14136 : (TARGET_AVX512F) && (
14137 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14138 : (TARGET_AVX512F) &&
14139 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14140 : (TARGET_AVX512VL))))
14141 : return -1;
14142 : return 4133; /* avx512vl_fnmsub_v4df_mask3_round */
14143 :
14144 : case 8:
14145 : if (pattern1618 (x2,
14146 : E_V2DFmode,
14147 : E_QImode) != 0
14148 : || !(
14149 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14150 : (TARGET_AVX512F) && (
14151 : #line 6727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14152 : (TARGET_AVX512F) &&
14153 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14154 : (TARGET_AVX512VL))))
14155 : return -1;
14156 : return 4135; /* avx512vl_fnmsub_v2df_mask3_round */
14157 :
14158 : case 9:
14159 : if (pattern1674 (x2,
14160 : E_V8HFmode) != 0
14161 : || !(
14162 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14163 : (TARGET_AVX512F) && (
14164 : #line 7055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14165 : (TARGET_FMA || TARGET_AVX512F) &&
14166 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14167 : (TARGET_AVX512FP16))))
14168 : return -1;
14169 : return 4283; /* *fmai_fnmsub_v8hf_round */
14170 :
14171 : case 10:
14172 : if (pattern1674 (x2,
14173 : E_V4SFmode) != 0
14174 : || !(
14175 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14176 : (TARGET_AVX512F) &&
14177 : #line 7055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14178 : (TARGET_FMA || TARGET_AVX512F)))
14179 : return -1;
14180 : return 4285; /* *fmai_fnmsub_v4sf_round */
14181 :
14182 : case 11:
14183 : if (pattern1674 (x2,
14184 : E_V2DFmode) != 0
14185 : || !(
14186 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14187 : (TARGET_AVX512F) && (
14188 : #line 7055 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14189 : (TARGET_FMA || TARGET_AVX512F) &&
14190 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14191 : (TARGET_SSE2))))
14192 : return -1;
14193 : return 4287; /* *fmai_fnmsub_v2df_round */
14194 :
14195 : default:
14196 : return -1;
14197 : }
14198 :
14199 : default:
14200 : return -1;
14201 : }
14202 :
14203 : default:
14204 : return -1;
14205 : }
14206 :
14207 : default:
14208 : return -1;
14209 : }
14210 : }
14211 :
14212 : int
14213 : recog_235 (rtx x1 ATTRIBUTE_UNUSED,
14214 : rtx_insn *insn ATTRIBUTE_UNUSED,
14215 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14216 : {
14217 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14218 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14219 : int res ATTRIBUTE_UNUSED;
14220 : x2 = XEXP (x1, 0);
14221 : operands[0] = x2;
14222 : x3 = XEXP (x1, 1);
14223 : x4 = XVECEXP (x3, 0, 0);
14224 : switch (GET_CODE (x4))
14225 : {
14226 : case PLUS:
14227 : switch (pattern494 (x3))
14228 : {
14229 : case 0:
14230 : if (!(
14231 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14232 : (TARGET_AVX512F) && (
14233 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14234 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V32HFmode, operands)
14235 : && 1 && (V32HFmode == V16SFmode
14236 : || V32HFmode == V8DFmode
14237 : || V32HFmode == V8DImode
14238 : || V32HFmode == V16SImode
14239 : || V32HFmode == V32HFmode)) &&
14240 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14241 : (TARGET_AVX512FP16))))
14242 : return -1;
14243 : return 2753; /* *addv32hf3_round */
14244 :
14245 : case 1:
14246 : if (!(
14247 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14248 : (TARGET_AVX512F) && (
14249 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14250 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16HFmode, operands)
14251 : && 1 && (V16HFmode == V16SFmode
14252 : || V16HFmode == V8DFmode
14253 : || V16HFmode == V8DImode
14254 : || V16HFmode == V16SImode
14255 : || V16HFmode == V32HFmode)) &&
14256 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14257 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14258 : return -1;
14259 : return 2761; /* *addv16hf3_round */
14260 :
14261 : case 2:
14262 : if (!(
14263 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14264 : (TARGET_AVX512F) && (
14265 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14266 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8HFmode, operands)
14267 : && 1 && (V8HFmode == V16SFmode
14268 : || V8HFmode == V8DFmode
14269 : || V8HFmode == V8DImode
14270 : || V8HFmode == V16SImode
14271 : || V8HFmode == V32HFmode)) &&
14272 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14273 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14274 : return -1;
14275 : return 2769; /* *addv8hf3_round */
14276 :
14277 : case 3:
14278 : if (!(
14279 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14280 : (TARGET_AVX512F) && (
14281 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14282 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V16SFmode, operands)
14283 : && 1 && (V16SFmode == V16SFmode
14284 : || V16SFmode == V8DFmode
14285 : || V16SFmode == V8DImode
14286 : || V16SFmode == V16SImode
14287 : || V16SFmode == V32HFmode)) &&
14288 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14289 : (TARGET_AVX512F))))
14290 : return -1;
14291 : return 2777; /* *addv16sf3_round */
14292 :
14293 : case 4:
14294 : if (!(
14295 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14296 : (TARGET_AVX512F) && (
14297 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14298 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8SFmode, operands)
14299 : && 1 && (V8SFmode == V16SFmode
14300 : || V8SFmode == V8DFmode
14301 : || V8SFmode == V8DImode
14302 : || V8SFmode == V16SImode
14303 : || V8SFmode == V32HFmode)) &&
14304 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14305 : (TARGET_AVX))))
14306 : return -1;
14307 : return 2785; /* *addv8sf3_round */
14308 :
14309 : case 5:
14310 : if (!(
14311 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14312 : (TARGET_AVX512F) &&
14313 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14314 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4SFmode, operands)
14315 : && 1 && (V4SFmode == V16SFmode
14316 : || V4SFmode == V8DFmode
14317 : || V4SFmode == V8DImode
14318 : || V4SFmode == V16SImode
14319 : || V4SFmode == V32HFmode))))
14320 : return -1;
14321 : return 2793; /* *addv4sf3_round */
14322 :
14323 : case 6:
14324 : if (!(
14325 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14326 : (TARGET_AVX512F) && (
14327 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V8DFmode, operands)
14329 : && 1 && (V8DFmode == V16SFmode
14330 : || V8DFmode == V8DFmode
14331 : || V8DFmode == V8DImode
14332 : || V8DFmode == V16SImode
14333 : || V8DFmode == V32HFmode)) &&
14334 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14335 : (TARGET_AVX512F))))
14336 : return -1;
14337 : return 2801; /* *addv8df3_round */
14338 :
14339 : case 7:
14340 : if (!(
14341 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14342 : (TARGET_AVX512F) && (
14343 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14344 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V4DFmode, operands)
14345 : && 1 && (V4DFmode == V16SFmode
14346 : || V4DFmode == V8DFmode
14347 : || V4DFmode == V8DImode
14348 : || V4DFmode == V16SImode
14349 : || V4DFmode == V32HFmode)) &&
14350 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14351 : (TARGET_AVX))))
14352 : return -1;
14353 : return 2809; /* *addv4df3_round */
14354 :
14355 : case 8:
14356 : if (!(
14357 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14358 : (TARGET_AVX512F) && (
14359 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14360 : (TARGET_SSE && ix86_binary_operator_ok (PLUS, V2DFmode, operands)
14361 : && 1 && (V2DFmode == V16SFmode
14362 : || V2DFmode == V8DFmode
14363 : || V2DFmode == V8DImode
14364 : || V2DFmode == V16SImode
14365 : || V2DFmode == V32HFmode)) &&
14366 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14367 : (TARGET_SSE2))))
14368 : return -1;
14369 : return 2817; /* *addv2df3_round */
14370 :
14371 : default:
14372 : return -1;
14373 : }
14374 :
14375 : case VEC_MERGE:
14376 : return recog_232 (x1, insn, pnum_clobbers);
14377 :
14378 : case MINUS:
14379 : switch (pattern494 (x3))
14380 : {
14381 : case 0:
14382 : if (!(
14383 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14384 : (TARGET_AVX512F) && (
14385 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14386 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V32HFmode, operands)
14387 : && 1 && (V32HFmode == V16SFmode
14388 : || V32HFmode == V8DFmode
14389 : || V32HFmode == V8DImode
14390 : || V32HFmode == V16SImode
14391 : || V32HFmode == V32HFmode)) &&
14392 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14393 : (TARGET_AVX512FP16))))
14394 : return -1;
14395 : return 2757; /* *subv32hf3_round */
14396 :
14397 : case 1:
14398 : if (!(
14399 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14400 : (TARGET_AVX512F) && (
14401 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14402 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16HFmode, operands)
14403 : && 1 && (V16HFmode == V16SFmode
14404 : || V16HFmode == V8DFmode
14405 : || V16HFmode == V8DImode
14406 : || V16HFmode == V16SImode
14407 : || V16HFmode == V32HFmode)) &&
14408 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14409 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14410 : return -1;
14411 : return 2765; /* *subv16hf3_round */
14412 :
14413 : case 2:
14414 : if (!(
14415 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14416 : (TARGET_AVX512F) && (
14417 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14418 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8HFmode, operands)
14419 : && 1 && (V8HFmode == V16SFmode
14420 : || V8HFmode == V8DFmode
14421 : || V8HFmode == V8DImode
14422 : || V8HFmode == V16SImode
14423 : || V8HFmode == V32HFmode)) &&
14424 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14425 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14426 : return -1;
14427 : return 2773; /* *subv8hf3_round */
14428 :
14429 : case 3:
14430 : if (!(
14431 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14432 : (TARGET_AVX512F) && (
14433 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14434 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V16SFmode, operands)
14435 : && 1 && (V16SFmode == V16SFmode
14436 : || V16SFmode == V8DFmode
14437 : || V16SFmode == V8DImode
14438 : || V16SFmode == V16SImode
14439 : || V16SFmode == V32HFmode)) &&
14440 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14441 : (TARGET_AVX512F))))
14442 : return -1;
14443 : return 2781; /* *subv16sf3_round */
14444 :
14445 : case 4:
14446 : if (!(
14447 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14448 : (TARGET_AVX512F) && (
14449 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14450 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8SFmode, operands)
14451 : && 1 && (V8SFmode == V16SFmode
14452 : || V8SFmode == V8DFmode
14453 : || V8SFmode == V8DImode
14454 : || V8SFmode == V16SImode
14455 : || V8SFmode == V32HFmode)) &&
14456 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14457 : (TARGET_AVX))))
14458 : return -1;
14459 : return 2789; /* *subv8sf3_round */
14460 :
14461 : case 5:
14462 : if (!(
14463 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14464 : (TARGET_AVX512F) &&
14465 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14466 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4SFmode, operands)
14467 : && 1 && (V4SFmode == V16SFmode
14468 : || V4SFmode == V8DFmode
14469 : || V4SFmode == V8DImode
14470 : || V4SFmode == V16SImode
14471 : || V4SFmode == V32HFmode))))
14472 : return -1;
14473 : return 2797; /* *subv4sf3_round */
14474 :
14475 : case 6:
14476 : if (!(
14477 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14478 : (TARGET_AVX512F) && (
14479 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14480 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V8DFmode, operands)
14481 : && 1 && (V8DFmode == V16SFmode
14482 : || V8DFmode == V8DFmode
14483 : || V8DFmode == V8DImode
14484 : || V8DFmode == V16SImode
14485 : || V8DFmode == V32HFmode)) &&
14486 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14487 : (TARGET_AVX512F))))
14488 : return -1;
14489 : return 2805; /* *subv8df3_round */
14490 :
14491 : case 7:
14492 : if (!(
14493 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14494 : (TARGET_AVX512F) && (
14495 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14496 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V4DFmode, operands)
14497 : && 1 && (V4DFmode == V16SFmode
14498 : || V4DFmode == V8DFmode
14499 : || V4DFmode == V8DImode
14500 : || V4DFmode == V16SImode
14501 : || V4DFmode == V32HFmode)) &&
14502 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14503 : (TARGET_AVX))))
14504 : return -1;
14505 : return 2813; /* *subv4df3_round */
14506 :
14507 : case 8:
14508 : if (!(
14509 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14510 : (TARGET_AVX512F) && (
14511 : #line 2701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14512 : (TARGET_SSE && ix86_binary_operator_ok (MINUS, V2DFmode, operands)
14513 : && 1 && (V2DFmode == V16SFmode
14514 : || V2DFmode == V8DFmode
14515 : || V2DFmode == V8DImode
14516 : || V2DFmode == V16SImode
14517 : || V2DFmode == V32HFmode)) &&
14518 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14519 : (TARGET_SSE2))))
14520 : return -1;
14521 : return 2821; /* *subv2df3_round */
14522 :
14523 : default:
14524 : return -1;
14525 : }
14526 :
14527 : case MULT:
14528 : switch (pattern494 (x3))
14529 : {
14530 : case 0:
14531 : if (!(
14532 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14533 : (TARGET_AVX512F) && (
14534 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14535 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V32HFmode, operands)
14536 : && 1 && (V32HFmode == V16SFmode
14537 : || V32HFmode == V8DFmode
14538 : || V32HFmode == V8DImode
14539 : || V32HFmode == V16SImode
14540 : || V32HFmode == V32HFmode)) &&
14541 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14542 : (TARGET_AVX512FP16))))
14543 : return -1;
14544 : return 2855; /* *mulv32hf3_round */
14545 :
14546 : case 1:
14547 : if (!(
14548 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14549 : (TARGET_AVX512F) && (
14550 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14551 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16HFmode, operands)
14552 : && 1 && (V16HFmode == V16SFmode
14553 : || V16HFmode == V8DFmode
14554 : || V16HFmode == V8DImode
14555 : || V16HFmode == V16SImode
14556 : || V16HFmode == V32HFmode)) &&
14557 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14558 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14559 : return -1;
14560 : return 2859; /* *mulv16hf3_round */
14561 :
14562 : case 2:
14563 : if (!(
14564 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14565 : (TARGET_AVX512F) && (
14566 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14567 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8HFmode, operands)
14568 : && 1 && (V8HFmode == V16SFmode
14569 : || V8HFmode == V8DFmode
14570 : || V8HFmode == V8DImode
14571 : || V8HFmode == V16SImode
14572 : || V8HFmode == V32HFmode)) &&
14573 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14574 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14575 : return -1;
14576 : return 2863; /* *mulv8hf3_round */
14577 :
14578 : case 3:
14579 : if (!(
14580 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14581 : (TARGET_AVX512F) && (
14582 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14583 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V16SFmode, operands)
14584 : && 1 && (V16SFmode == V16SFmode
14585 : || V16SFmode == V8DFmode
14586 : || V16SFmode == V8DImode
14587 : || V16SFmode == V16SImode
14588 : || V16SFmode == V32HFmode)) &&
14589 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14590 : (TARGET_AVX512F))))
14591 : return -1;
14592 : return 2867; /* *mulv16sf3_round */
14593 :
14594 : case 4:
14595 : if (!(
14596 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14597 : (TARGET_AVX512F) && (
14598 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14599 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8SFmode, operands)
14600 : && 1 && (V8SFmode == V16SFmode
14601 : || V8SFmode == V8DFmode
14602 : || V8SFmode == V8DImode
14603 : || V8SFmode == V16SImode
14604 : || V8SFmode == V32HFmode)) &&
14605 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14606 : (TARGET_AVX))))
14607 : return -1;
14608 : return 2871; /* *mulv8sf3_round */
14609 :
14610 : case 5:
14611 : if (!(
14612 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14613 : (TARGET_AVX512F) &&
14614 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14615 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4SFmode, operands)
14616 : && 1 && (V4SFmode == V16SFmode
14617 : || V4SFmode == V8DFmode
14618 : || V4SFmode == V8DImode
14619 : || V4SFmode == V16SImode
14620 : || V4SFmode == V32HFmode))))
14621 : return -1;
14622 : return 2875; /* *mulv4sf3_round */
14623 :
14624 : case 6:
14625 : if (!(
14626 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14627 : (TARGET_AVX512F) && (
14628 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14629 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V8DFmode, operands)
14630 : && 1 && (V8DFmode == V16SFmode
14631 : || V8DFmode == V8DFmode
14632 : || V8DFmode == V8DImode
14633 : || V8DFmode == V16SImode
14634 : || V8DFmode == V32HFmode)) &&
14635 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14636 : (TARGET_AVX512F))))
14637 : return -1;
14638 : return 2879; /* *mulv8df3_round */
14639 :
14640 : case 7:
14641 : if (!(
14642 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14643 : (TARGET_AVX512F) && (
14644 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14645 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V4DFmode, operands)
14646 : && 1 && (V4DFmode == V16SFmode
14647 : || V4DFmode == V8DFmode
14648 : || V4DFmode == V8DImode
14649 : || V4DFmode == V16SImode
14650 : || V4DFmode == V32HFmode)) &&
14651 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14652 : (TARGET_AVX))))
14653 : return -1;
14654 : return 2883; /* *mulv4df3_round */
14655 :
14656 : case 8:
14657 : if (!(
14658 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14659 : (TARGET_AVX512F) && (
14660 : #line 2790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14661 : (TARGET_SSE && ix86_binary_operator_ok (MULT, V2DFmode, operands)
14662 : && 1 && (V2DFmode == V16SFmode
14663 : || V2DFmode == V8DFmode
14664 : || V2DFmode == V8DImode
14665 : || V2DFmode == V16SImode
14666 : || V2DFmode == V32HFmode)) &&
14667 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14668 : (TARGET_SSE2))))
14669 : return -1;
14670 : return 2887; /* *mulv2df3_round */
14671 :
14672 : default:
14673 : return -1;
14674 : }
14675 :
14676 : case DIV:
14677 : x5 = XEXP (x4, 0);
14678 : operands[1] = x5;
14679 : x6 = XEXP (x4, 1);
14680 : operands[2] = x6;
14681 : x7 = XVECEXP (x3, 0, 1);
14682 : operands[3] = x7;
14683 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
14684 : return -1;
14685 : switch (GET_MODE (operands[0]))
14686 : {
14687 : case E_V32HFmode:
14688 : if (pattern493 (x3,
14689 : E_V32HFmode) != 0
14690 : || !(
14691 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14692 : (TARGET_AVX512F) && (
14693 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14694 : (TARGET_SSE && 1 && (V32HFmode == V16SFmode
14695 : || V32HFmode == V8DFmode
14696 : || V32HFmode == V8DImode
14697 : || V32HFmode == V16SImode
14698 : || V32HFmode == V32HFmode)) &&
14699 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14700 : (TARGET_AVX512FP16))))
14701 : return -1;
14702 : return 2921; /* avx512fp16_divv32hf3_round */
14703 :
14704 : case E_V16SFmode:
14705 : if (pattern493 (x3,
14706 : E_V16SFmode) != 0
14707 : || !(
14708 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14709 : (TARGET_AVX512F) && (
14710 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14711 : (TARGET_SSE && 1 && (V16SFmode == V16SFmode
14712 : || V16SFmode == V8DFmode
14713 : || V16SFmode == V8DImode
14714 : || V16SFmode == V16SImode
14715 : || V16SFmode == V32HFmode)) &&
14716 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14717 : (TARGET_AVX512F))))
14718 : return -1;
14719 : return 2929; /* avx512f_divv16sf3_round */
14720 :
14721 : case E_V8DFmode:
14722 : if (pattern493 (x3,
14723 : E_V8DFmode) != 0
14724 : || !(
14725 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14726 : (TARGET_AVX512F) && (
14727 : #line 2939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14728 : (TARGET_SSE && 1 && (V8DFmode == V16SFmode
14729 : || V8DFmode == V8DFmode
14730 : || V8DFmode == V8DImode
14731 : || V8DFmode == V16SImode
14732 : || V8DFmode == V32HFmode)) &&
14733 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14734 : (TARGET_AVX512F))))
14735 : return -1;
14736 : return 2937; /* avx512f_divv8df3_round */
14737 :
14738 : default:
14739 : return -1;
14740 : }
14741 :
14742 : case SQRT:
14743 : x5 = XEXP (x4, 0);
14744 : operands[1] = x5;
14745 : x7 = XVECEXP (x3, 0, 1);
14746 : operands[2] = x7;
14747 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
14748 : return -1;
14749 : switch (GET_MODE (operands[0]))
14750 : {
14751 : case E_V32HFmode:
14752 : if (pattern1027 (x3,
14753 : E_V32HFmode) != 0
14754 : || !(
14755 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14756 : (TARGET_AVX512F) && (
14757 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14758 : (TARGET_SSE && 1 && (V32HFmode == V16SFmode
14759 : || V32HFmode == V8DFmode
14760 : || V32HFmode == V8DImode
14761 : || V32HFmode == V16SImode
14762 : || V32HFmode == V32HFmode)) &&
14763 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14764 : (TARGET_AVX512FP16))))
14765 : return -1;
14766 : return 2974; /* avx512fp16_sqrtv32hf2_round */
14767 :
14768 : case E_V16SFmode:
14769 : if (pattern1027 (x3,
14770 : E_V16SFmode) != 0
14771 : || !(
14772 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14773 : (TARGET_AVX512F) && (
14774 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14775 : (TARGET_SSE && 1 && (V16SFmode == V16SFmode
14776 : || V16SFmode == V8DFmode
14777 : || V16SFmode == V8DImode
14778 : || V16SFmode == V16SImode
14779 : || V16SFmode == V32HFmode)) &&
14780 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14781 : (TARGET_AVX512F))))
14782 : return -1;
14783 : return 2982; /* avx512f_sqrtv16sf2_round */
14784 :
14785 : case E_V8DFmode:
14786 : if (pattern1027 (x3,
14787 : E_V8DFmode) != 0
14788 : || !(
14789 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14790 : (TARGET_AVX512F) && (
14791 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14792 : (TARGET_SSE && 1 && (V8DFmode == V16SFmode
14793 : || V8DFmode == V8DFmode
14794 : || V8DFmode == V8DImode
14795 : || V8DFmode == V16SImode
14796 : || V8DFmode == V32HFmode)) &&
14797 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14798 : (TARGET_AVX512F))))
14799 : return -1;
14800 : return 2990; /* avx512f_sqrtv8df2_round */
14801 :
14802 : default:
14803 : return -1;
14804 : }
14805 :
14806 : case SMAX:
14807 : switch (pattern495 (x3))
14808 : {
14809 : case 0:
14810 : if (!(
14811 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14812 : (TARGET_AVX512F) && (
14813 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14814 : (TARGET_SSE
14815 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14816 : && 1
14817 : && (V32HFmode == V16SFmode
14818 : || V32HFmode == V8DFmode
14819 : || V32HFmode == V8DImode
14820 : || V32HFmode == V16SImode
14821 : || V32HFmode == V32HFmode)) &&
14822 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14823 : (TARGET_AVX512FP16))))
14824 : return -1;
14825 : return 3052; /* *smaxv32hf3_round */
14826 :
14827 : case 1:
14828 : if (!(
14829 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14830 : (TARGET_AVX512F) && (
14831 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14832 : (TARGET_SSE
14833 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14834 : && 1
14835 : && (V16SFmode == V16SFmode
14836 : || V16SFmode == V8DFmode
14837 : || V16SFmode == V8DImode
14838 : || V16SFmode == V16SImode
14839 : || V16SFmode == V32HFmode)) &&
14840 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14841 : (TARGET_AVX512F))))
14842 : return -1;
14843 : return 3068; /* *smaxv16sf3_round */
14844 :
14845 : case 2:
14846 : if (!(
14847 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14848 : (TARGET_AVX512F) && (
14849 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14850 : (TARGET_SSE
14851 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14852 : && 1
14853 : && (V8DFmode == V16SFmode
14854 : || V8DFmode == V8DFmode
14855 : || V8DFmode == V8DImode
14856 : || V8DFmode == V16SImode
14857 : || V8DFmode == V32HFmode)) &&
14858 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14859 : (TARGET_AVX512F))))
14860 : return -1;
14861 : return 3084; /* *smaxv8df3_round */
14862 :
14863 : default:
14864 : return -1;
14865 : }
14866 :
14867 : case SMIN:
14868 : switch (pattern495 (x3))
14869 : {
14870 : case 0:
14871 : if (!(
14872 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14873 : (TARGET_AVX512F) && (
14874 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14875 : (TARGET_SSE
14876 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14877 : && 1
14878 : && (V32HFmode == V16SFmode
14879 : || V32HFmode == V8DFmode
14880 : || V32HFmode == V8DImode
14881 : || V32HFmode == V16SImode
14882 : || V32HFmode == V32HFmode)) &&
14883 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14884 : (TARGET_AVX512FP16))))
14885 : return -1;
14886 : return 3056; /* *sminv32hf3_round */
14887 :
14888 : case 1:
14889 : if (!(
14890 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14891 : (TARGET_AVX512F) && (
14892 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14893 : (TARGET_SSE
14894 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14895 : && 1
14896 : && (V16SFmode == V16SFmode
14897 : || V16SFmode == V8DFmode
14898 : || V16SFmode == V8DImode
14899 : || V16SFmode == V16SImode
14900 : || V16SFmode == V32HFmode)) &&
14901 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14902 : (TARGET_AVX512F))))
14903 : return -1;
14904 : return 3072; /* *sminv16sf3_round */
14905 :
14906 : case 2:
14907 : if (!(
14908 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14909 : (TARGET_AVX512F) && (
14910 : #line 3358 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14911 : (TARGET_SSE
14912 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
14913 : && 1
14914 : && (V8DFmode == V16SFmode
14915 : || V8DFmode == V8DFmode
14916 : || V8DFmode == V8DImode
14917 : || V8DFmode == V16SImode
14918 : || V8DFmode == V32HFmode)) &&
14919 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14920 : (TARGET_AVX512F))))
14921 : return -1;
14922 : return 3088; /* *sminv8df3_round */
14923 :
14924 : default:
14925 : return -1;
14926 : }
14927 :
14928 : case UNSPEC:
14929 : return recog_233 (x1, insn, pnum_clobbers);
14930 :
14931 : case FMA:
14932 : return recog_234 (x1, insn, pnum_clobbers);
14933 :
14934 : case FLOAT:
14935 : x5 = XEXP (x4, 0);
14936 : operands[1] = x5;
14937 : x7 = XVECEXP (x3, 0, 1);
14938 : operands[2] = x7;
14939 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
14940 : return -1;
14941 : switch (GET_MODE (operands[0]))
14942 : {
14943 : case E_V8HFmode:
14944 : switch (pattern1035 (x3))
14945 : {
14946 : case 0:
14947 : if (!(
14948 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14949 : (TARGET_AVX512F) && (
14950 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14951 : (TARGET_AVX512FP16) &&
14952 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14953 : (TARGET_AVX512VL))))
14954 : return -1;
14955 : return 4525; /* avx512fp16_vcvtw2ph_v8hi_round */
14956 :
14957 : case 1:
14958 : if (!(
14959 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14960 : (TARGET_AVX512F) && (
14961 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14962 : (TARGET_AVX512FP16) &&
14963 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14964 : (TARGET_AVX512VL))))
14965 : return -1;
14966 : return 4549; /* avx512fp16_vcvtdq2ph_v8si_round */
14967 :
14968 : case 2:
14969 : if (!(
14970 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14971 : (TARGET_AVX512F) &&
14972 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14973 : (TARGET_AVX512FP16)))
14974 : return -1;
14975 : return 4565; /* avx512fp16_vcvtqq2ph_v8di_round */
14976 :
14977 : default:
14978 : return -1;
14979 : }
14980 :
14981 : case E_V16HFmode:
14982 : switch (pattern1036 (x3))
14983 : {
14984 : case 0:
14985 : if (!(
14986 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14987 : (TARGET_AVX512F) && (
14988 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14989 : (TARGET_AVX512FP16) &&
14990 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14991 : (TARGET_AVX512VL))))
14992 : return -1;
14993 : return 4533; /* avx512fp16_vcvtw2ph_v16hi_round */
14994 :
14995 : case 1:
14996 : if (!(
14997 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14998 : (TARGET_AVX512F) &&
14999 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15000 : (TARGET_AVX512FP16)))
15001 : return -1;
15002 : return 4557; /* avx512fp16_vcvtdq2ph_v16si_round */
15003 :
15004 : default:
15005 : return -1;
15006 : }
15007 :
15008 : case E_V32HFmode:
15009 : if (pattern496 (x3,
15010 : E_V32HImode,
15011 : E_V32HFmode) != 0
15012 : || !(
15013 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15014 : (TARGET_AVX512F) &&
15015 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15016 : (TARGET_AVX512FP16)))
15017 : return -1;
15018 : return 4541; /* avx512fp16_vcvtw2ph_v32hi_round */
15019 :
15020 : case E_V16SFmode:
15021 : if (pattern496 (x3,
15022 : E_V16SImode,
15023 : E_V16SFmode) != 0
15024 : || !(
15025 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15026 : (TARGET_AVX512F) && (
15027 : #line 9029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_SSE2 && 1 && (V16SFmode == V16SFmode
15029 : || V16SFmode == V8DFmode
15030 : || V16SFmode == V8DImode
15031 : || V16SFmode == V16SImode
15032 : || V16SFmode == V32HFmode)) &&
15033 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15034 : (TARGET_AVX512F))))
15035 : return -1;
15036 : return 4861; /* floatv16siv16sf2_round */
15037 :
15038 : case E_V8DFmode:
15039 : if (pattern1037 (x3,
15040 : E_V8DImode,
15041 : E_V8DFmode) != 0
15042 : || !(
15043 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15044 : (TARGET_AVX512F) &&
15045 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15046 : (TARGET_AVX512DQ)))
15047 : return -1;
15048 : return 4993; /* floatv8div8df2_round */
15049 :
15050 : case E_V4DFmode:
15051 : if (pattern1037 (x3,
15052 : E_V4DImode,
15053 : E_V4DFmode) != 0
15054 : || !(
15055 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15056 : (TARGET_AVX512F) && (
15057 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15058 : (TARGET_AVX512DQ) &&
15059 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15060 : (TARGET_AVX512VL))))
15061 : return -1;
15062 : return 5001; /* floatv4div4df2_round */
15063 :
15064 : case E_V2DFmode:
15065 : if (pattern1037 (x3,
15066 : E_V2DImode,
15067 : E_V2DFmode) != 0
15068 : || !(
15069 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15070 : (TARGET_AVX512F) && (
15071 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15072 : (TARGET_AVX512DQ) &&
15073 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15074 : (TARGET_AVX512VL))))
15075 : return -1;
15076 : return 5009; /* floatv2div2df2_round */
15077 :
15078 : case E_V8SFmode:
15079 : if (pattern1037 (x3,
15080 : E_V8DImode,
15081 : E_V8SFmode) != 0
15082 : || !(
15083 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15084 : (TARGET_AVX512F) &&
15085 : #line 9577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15086 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15087 : || V8DImode == V8DFmode
15088 : || V8DImode == V8DImode
15089 : || V8DImode == V16SImode
15090 : || V8DImode == V32HFmode))))
15091 : return -1;
15092 : return 5017; /* floatv8div8sf2_round */
15093 :
15094 : default:
15095 : return -1;
15096 : }
15097 :
15098 : case UNSIGNED_FLOAT:
15099 : x5 = XEXP (x4, 0);
15100 : operands[1] = x5;
15101 : x7 = XVECEXP (x3, 0, 1);
15102 : operands[2] = x7;
15103 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15104 : return -1;
15105 : switch (GET_MODE (operands[0]))
15106 : {
15107 : case E_V8HFmode:
15108 : switch (pattern1035 (x3))
15109 : {
15110 : case 0:
15111 : if (!(
15112 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15113 : (TARGET_AVX512F) && (
15114 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15115 : (TARGET_AVX512FP16) &&
15116 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15117 : (TARGET_AVX512VL))))
15118 : return -1;
15119 : return 4529; /* avx512fp16_vcvtuw2ph_v8hi_round */
15120 :
15121 : case 1:
15122 : if (!(
15123 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15124 : (TARGET_AVX512F) && (
15125 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15126 : (TARGET_AVX512FP16) &&
15127 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15128 : (TARGET_AVX512VL))))
15129 : return -1;
15130 : return 4553; /* avx512fp16_vcvtudq2ph_v8si_round */
15131 :
15132 : case 2:
15133 : if (!(
15134 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15135 : (TARGET_AVX512F) &&
15136 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15137 : (TARGET_AVX512FP16)))
15138 : return -1;
15139 : return 4569; /* avx512fp16_vcvtuqq2ph_v8di_round */
15140 :
15141 : default:
15142 : return -1;
15143 : }
15144 :
15145 : case E_V16HFmode:
15146 : switch (pattern1036 (x3))
15147 : {
15148 : case 0:
15149 : if (!(
15150 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15151 : (TARGET_AVX512F) && (
15152 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15153 : (TARGET_AVX512FP16) &&
15154 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15155 : (TARGET_AVX512VL))))
15156 : return -1;
15157 : return 4537; /* avx512fp16_vcvtuw2ph_v16hi_round */
15158 :
15159 : case 1:
15160 : if (!(
15161 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15162 : (TARGET_AVX512F) &&
15163 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15164 : (TARGET_AVX512FP16)))
15165 : return -1;
15166 : return 4561; /* avx512fp16_vcvtudq2ph_v16si_round */
15167 :
15168 : default:
15169 : return -1;
15170 : }
15171 :
15172 : case E_V32HFmode:
15173 : if (pattern496 (x3,
15174 : E_V32HImode,
15175 : E_V32HFmode) != 0
15176 : || !(
15177 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15178 : (TARGET_AVX512F) &&
15179 : #line 8050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15180 : (TARGET_AVX512FP16)))
15181 : return -1;
15182 : return 4545; /* avx512fp16_vcvtuw2ph_v32hi_round */
15183 :
15184 : case E_V16SFmode:
15185 : if (pattern1037 (x3,
15186 : E_V16SImode,
15187 : E_V16SFmode) != 0
15188 : || !
15189 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15190 : (TARGET_AVX512F))
15191 : return -1;
15192 : return 4869; /* *floatunsv16siv16sf2_round */
15193 :
15194 : case E_V8SFmode:
15195 : if (!register_operand (operands[0], E_V8SFmode)
15196 : || GET_MODE (x3) != E_V8SFmode
15197 : || GET_MODE (x4) != E_V8SFmode)
15198 : return -1;
15199 : switch (GET_MODE (operands[1]))
15200 : {
15201 : case E_V8SImode:
15202 : if (!nonimmediate_operand (operands[1], E_V8SImode)
15203 : || !(
15204 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15205 : (TARGET_AVX512F) && (
15206 : #line 9042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15207 : (TARGET_AVX512F) &&
15208 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15209 : (TARGET_AVX512VL))))
15210 : return -1;
15211 : return 4873; /* *floatunsv8siv8sf2_round */
15212 :
15213 : case E_V8DImode:
15214 : if (!nonimmediate_operand (operands[1], E_V8DImode)
15215 : || !(
15216 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15217 : (TARGET_AVX512F) &&
15218 : #line 9577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15219 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15220 : || V8DImode == V8DFmode
15221 : || V8DImode == V8DImode
15222 : || V8DImode == V16SImode
15223 : || V8DImode == V32HFmode))))
15224 : return -1;
15225 : return 5021; /* floatunsv8div8sf2_round */
15226 :
15227 : default:
15228 : return -1;
15229 : }
15230 :
15231 : case E_V4SFmode:
15232 : if (pattern1037 (x3,
15233 : E_V4SImode,
15234 : E_V4SFmode) != 0
15235 : || !(
15236 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15237 : (TARGET_AVX512F) && (
15238 : #line 9042 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15239 : (TARGET_AVX512F) &&
15240 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15241 : (TARGET_AVX512VL))))
15242 : return -1;
15243 : return 4877; /* *floatunsv4siv4sf2_round */
15244 :
15245 : case E_V8DFmode:
15246 : if (pattern1037 (x3,
15247 : E_V8DImode,
15248 : E_V8DFmode) != 0
15249 : || !(
15250 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15251 : (TARGET_AVX512F) &&
15252 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15253 : (TARGET_AVX512DQ)))
15254 : return -1;
15255 : return 4997; /* floatunsv8div8df2_round */
15256 :
15257 : case E_V4DFmode:
15258 : if (pattern1037 (x3,
15259 : E_V4DImode,
15260 : E_V4DFmode) != 0
15261 : || !(
15262 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15263 : (TARGET_AVX512F) && (
15264 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15265 : (TARGET_AVX512DQ) &&
15266 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15267 : (TARGET_AVX512VL))))
15268 : return -1;
15269 : return 5005; /* floatunsv4div4df2_round */
15270 :
15271 : case E_V2DFmode:
15272 : if (pattern1037 (x3,
15273 : E_V2DImode,
15274 : E_V2DFmode) != 0
15275 : || !(
15276 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15277 : (TARGET_AVX512F) && (
15278 : #line 9563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15279 : (TARGET_AVX512DQ) &&
15280 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15281 : (TARGET_AVX512VL))))
15282 : return -1;
15283 : return 5013; /* floatunsv2div2df2_round */
15284 :
15285 : default:
15286 : return -1;
15287 : }
15288 :
15289 : case FIX:
15290 : switch (pattern497 (x3))
15291 : {
15292 : case 0:
15293 : if (!(
15294 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15295 : (TARGET_AVX512F) && (
15296 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15297 : (TARGET_AVX512FP16) &&
15298 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15299 : (TARGET_AVX512VL))))
15300 : return -1;
15301 : return 4659; /* avx512fp16_fix_truncv8hi2_round */
15302 :
15303 : case 1:
15304 : if (!(
15305 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15306 : (TARGET_AVX512F) && (
15307 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15308 : (TARGET_AVX512FP16) &&
15309 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15310 : (TARGET_AVX512VL))))
15311 : return -1;
15312 : return 4667; /* avx512fp16_fix_truncv16hi2_round */
15313 :
15314 : case 2:
15315 : if (!(
15316 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15317 : (TARGET_AVX512F) &&
15318 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15319 : (TARGET_AVX512FP16)))
15320 : return -1;
15321 : return 4675; /* avx512fp16_fix_truncv32hi2_round */
15322 :
15323 : case 3:
15324 : if (!(
15325 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15326 : (TARGET_AVX512F) && (
15327 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15328 : (TARGET_AVX512FP16) &&
15329 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15330 : (TARGET_AVX512VL))))
15331 : return -1;
15332 : return 4683; /* avx512fp16_fix_truncv8si2_round */
15333 :
15334 : case 4:
15335 : if (!
15336 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15337 : (TARGET_AVX512F))
15338 : return -1;
15339 : return 5074; /* fix_truncv8dfv8si2_round */
15340 :
15341 : case 5:
15342 : if (!(
15343 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15344 : (TARGET_AVX512F) &&
15345 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15346 : (TARGET_AVX512FP16)))
15347 : return -1;
15348 : return 4691; /* avx512fp16_fix_truncv16si2_round */
15349 :
15350 : case 6:
15351 : if (!
15352 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15353 : (TARGET_AVX512F))
15354 : return -1;
15355 : return 4925; /* fix_truncv16sfv16si2_round */
15356 :
15357 : case 7:
15358 : if (!(
15359 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15360 : (TARGET_AVX512F) &&
15361 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15362 : (TARGET_AVX512FP16)))
15363 : return -1;
15364 : return 4699; /* avx512fp16_fix_truncv8di2_round */
15365 :
15366 : case 8:
15367 : if (!(
15368 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15369 : (TARGET_AVX512F) &&
15370 : #line 10088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15371 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
15372 : || V8DFmode == V8DFmode
15373 : || V8DFmode == V8DImode
15374 : || V8DFmode == V16SImode
15375 : || V8DFmode == V32HFmode))))
15376 : return -1;
15377 : return 5111; /* fix_truncv8dfv8di2_round */
15378 :
15379 : case 9:
15380 : if (!(
15381 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15382 : (TARGET_AVX512F) &&
15383 : #line 10131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15384 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15385 : || V8DImode == V8DFmode
15386 : || V8DImode == V8DImode
15387 : || V8DImode == V16SImode
15388 : || V8DImode == V32HFmode))))
15389 : return -1;
15390 : return 5155; /* fix_truncv8sfv8di2_round */
15391 :
15392 : default:
15393 : return -1;
15394 : }
15395 :
15396 : case UNSIGNED_FIX:
15397 : switch (pattern497 (x3))
15398 : {
15399 : case 0:
15400 : if (!(
15401 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15402 : (TARGET_AVX512F) && (
15403 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15404 : (TARGET_AVX512FP16) &&
15405 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15406 : (TARGET_AVX512VL))))
15407 : return -1;
15408 : return 4663; /* avx512fp16_fixuns_truncv8hi2_round */
15409 :
15410 : case 1:
15411 : if (!(
15412 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15413 : (TARGET_AVX512F) && (
15414 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15415 : (TARGET_AVX512FP16) &&
15416 : #line 683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15417 : (TARGET_AVX512VL))))
15418 : return -1;
15419 : return 4671; /* avx512fp16_fixuns_truncv16hi2_round */
15420 :
15421 : case 2:
15422 : if (!(
15423 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15424 : (TARGET_AVX512F) &&
15425 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15426 : (TARGET_AVX512FP16)))
15427 : return -1;
15428 : return 4679; /* avx512fp16_fixuns_truncv32hi2_round */
15429 :
15430 : case 3:
15431 : if (!(
15432 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15433 : (TARGET_AVX512F) && (
15434 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15435 : (TARGET_AVX512FP16) &&
15436 : #line 684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15437 : (TARGET_AVX512VL))))
15438 : return -1;
15439 : return 4687; /* avx512fp16_fixuns_truncv8si2_round */
15440 :
15441 : case 4:
15442 : if (!
15443 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15444 : (TARGET_AVX512F))
15445 : return -1;
15446 : return 5078; /* fixuns_truncv8dfv8si2_round */
15447 :
15448 : case 5:
15449 : if (!(
15450 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15451 : (TARGET_AVX512F) &&
15452 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15453 : (TARGET_AVX512FP16)))
15454 : return -1;
15455 : return 4695; /* avx512fp16_fixuns_truncv16si2_round */
15456 :
15457 : case 6:
15458 : if (!
15459 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15460 : (TARGET_AVX512F))
15461 : return -1;
15462 : return 4929; /* fixuns_truncv16sfv16si2_round */
15463 :
15464 : case 7:
15465 : if (!(
15466 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15467 : (TARGET_AVX512F) &&
15468 : #line 8269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15469 : (TARGET_AVX512FP16)))
15470 : return -1;
15471 : return 4703; /* avx512fp16_fixuns_truncv8di2_round */
15472 :
15473 : case 8:
15474 : if (!(
15475 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15476 : (TARGET_AVX512F) &&
15477 : #line 10088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15478 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
15479 : || V8DFmode == V8DFmode
15480 : || V8DFmode == V8DImode
15481 : || V8DFmode == V16SImode
15482 : || V8DFmode == V32HFmode))))
15483 : return -1;
15484 : return 5115; /* fixuns_truncv8dfv8di2_round */
15485 :
15486 : case 9:
15487 : if (!(
15488 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15489 : (TARGET_AVX512F) &&
15490 : #line 10131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15491 : (TARGET_AVX512DQ && (V8DImode == V16SFmode
15492 : || V8DImode == V8DFmode
15493 : || V8DImode == V8DImode
15494 : || V8DImode == V16SImode
15495 : || V8DImode == V32HFmode))))
15496 : return -1;
15497 : return 5159; /* fixuns_truncv8sfv8di2_round */
15498 :
15499 : default:
15500 : return -1;
15501 : }
15502 :
15503 : case FLOAT_EXTEND:
15504 : x5 = XEXP (x4, 0);
15505 : operands[1] = x5;
15506 : x7 = XVECEXP (x3, 0, 1);
15507 : operands[2] = x7;
15508 : if (!const48_operand (operands[2], E_SImode))
15509 : return -1;
15510 : switch (GET_MODE (operands[0]))
15511 : {
15512 : case E_V8DFmode:
15513 : if (!register_operand (operands[0], E_V8DFmode)
15514 : || GET_MODE (x3) != E_V8DFmode
15515 : || GET_MODE (x4) != E_V8DFmode)
15516 : return -1;
15517 : switch (GET_MODE (operands[1]))
15518 : {
15519 : case E_V8HFmode:
15520 : if (!register_operand (operands[1], E_V8HFmode)
15521 : || !(
15522 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15523 : (TARGET_AVX512F) &&
15524 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15525 : (TARGET_AVX512FP16)))
15526 : return -1;
15527 : return 4763; /* avx512fp16_float_extend_phv8df2_round */
15528 :
15529 : case E_V8SFmode:
15530 : if (!register_operand (operands[1], E_V8SFmode)
15531 : || !(
15532 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15533 : (TARGET_AVX512F) && (
15534 : #line 10609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15535 : (TARGET_AVX && 1 && (V8DFmode == V16SFmode
15536 : || V8DFmode == V8DFmode
15537 : || V8DFmode == V8DImode
15538 : || V8DFmode == V16SImode
15539 : || V8DFmode == V32HFmode)) &&
15540 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15541 : (TARGET_AVX512F))))
15542 : return -1;
15543 : return 5208; /* avx512f_cvtps2pd512_round */
15544 :
15545 : default:
15546 : return -1;
15547 : }
15548 :
15549 : case E_V16SFmode:
15550 : if (pattern496 (x3,
15551 : E_V16HFmode,
15552 : E_V16SFmode) != 0
15553 : || !(
15554 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15555 : (TARGET_AVX512F) &&
15556 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15557 : (TARGET_AVX512FP16)))
15558 : return -1;
15559 : return 4767; /* avx512fp16_float_extend_phv16sf2_round */
15560 :
15561 : case E_V8SFmode:
15562 : if (pattern496 (x3,
15563 : E_V8HFmode,
15564 : E_V8SFmode) != 0
15565 : || !(
15566 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15567 : (TARGET_AVX512F) && (
15568 : #line 8422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15569 : (TARGET_AVX512FP16) &&
15570 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15571 : (TARGET_AVX512VL))))
15572 : return -1;
15573 : return 4771; /* avx512fp16_float_extend_phv8sf2_round */
15574 :
15575 : default:
15576 : return -1;
15577 : }
15578 :
15579 : case FLOAT_TRUNCATE:
15580 : x5 = XEXP (x4, 0);
15581 : operands[1] = x5;
15582 : x7 = XVECEXP (x3, 0, 1);
15583 : operands[2] = x7;
15584 : if (!const_4_or_8_to_11_operand (operands[2], E_SImode))
15585 : return -1;
15586 : switch (GET_MODE (operands[0]))
15587 : {
15588 : case E_V8HFmode:
15589 : if (!register_operand (operands[0], E_V8HFmode)
15590 : || GET_MODE (x3) != E_V8HFmode
15591 : || GET_MODE (x4) != E_V8HFmode)
15592 : return -1;
15593 : switch (GET_MODE (operands[1]))
15594 : {
15595 : case E_V8DFmode:
15596 : if (!register_operand (operands[1], E_V8DFmode)
15597 : || !(
15598 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15599 : (TARGET_AVX512F) &&
15600 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15601 : (TARGET_AVX512FP16)))
15602 : return -1;
15603 : return 4787; /* avx512fp16_vcvtpd2ph_v8df_round */
15604 :
15605 : case E_V8SFmode:
15606 : if (!register_operand (operands[1], E_V8SFmode)
15607 : || !(
15608 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15609 : (TARGET_AVX512F) && (
15610 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15611 : (TARGET_AVX512FP16) &&
15612 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15613 : (TARGET_AVX512VL))))
15614 : return -1;
15615 : return 4795; /* avx512fp16_vcvtps2ph_v8sf_round */
15616 :
15617 : default:
15618 : return -1;
15619 : }
15620 :
15621 : case E_V16HFmode:
15622 : if (pattern496 (x3,
15623 : E_V16SFmode,
15624 : E_V16HFmode) != 0
15625 : || !(
15626 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15627 : (TARGET_AVX512F) &&
15628 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15629 : (TARGET_AVX512FP16)))
15630 : return -1;
15631 : return 4791; /* avx512fp16_vcvtps2ph_v16sf_round */
15632 :
15633 : case E_V8SFmode:
15634 : if (pattern496 (x3,
15635 : E_V8DFmode,
15636 : E_V8SFmode) != 0
15637 : || !
15638 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15639 : (TARGET_AVX512F))
15640 : return -1;
15641 : return 5198; /* *avx512f_cvtpd2ps512_round */
15642 :
15643 : default:
15644 : return -1;
15645 : }
15646 :
15647 : case VEC_CONCAT:
15648 : if (GET_MODE (x4) != E_V32HFmode)
15649 : return -1;
15650 : x5 = XEXP (x4, 0);
15651 : if (GET_CODE (x5) != FLOAT_TRUNCATE
15652 : || GET_MODE (x5) != E_V16HFmode)
15653 : return -1;
15654 : x6 = XEXP (x4, 1);
15655 : if (GET_CODE (x6) != FLOAT_TRUNCATE
15656 : || GET_MODE (x6) != E_V16HFmode
15657 : || !register_operand (operands[0], E_V32HFmode)
15658 : || GET_MODE (x3) != E_V32HFmode)
15659 : return -1;
15660 : x8 = XEXP (x5, 0);
15661 : operands[2] = x8;
15662 : if (!register_operand (operands[2], E_V16SFmode))
15663 : return -1;
15664 : x9 = XEXP (x6, 0);
15665 : operands[1] = x9;
15666 : if (!register_operand (operands[1], E_V16SFmode))
15667 : return -1;
15668 : x7 = XVECEXP (x3, 0, 1);
15669 : operands[3] = x7;
15670 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode)
15671 : || !(
15672 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15673 : (TARGET_AVX512F) &&
15674 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15675 : (TARGET_AVX10_2 && (V32HFmode == V16SFmode
15676 : || V32HFmode == V8DFmode
15677 : || V32HFmode == V8DImode
15678 : || V32HFmode == V16SImode
15679 : || V32HFmode == V32HFmode))))
15680 : return -1;
15681 : return 10542; /* avx10_2_cvt2ps2phx_v32hf_round */
15682 :
15683 : default:
15684 : return -1;
15685 : }
15686 : }
15687 :
15688 : int
15689 : recog_277 (rtx x1 ATTRIBUTE_UNUSED,
15690 : rtx_insn *insn ATTRIBUTE_UNUSED,
15691 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15692 : {
15693 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15694 : rtx x2, x3, x4, x5, x6, x7, x8;
15695 : int res ATTRIBUTE_UNUSED;
15696 : x2 = XEXP (x1, 1);
15697 : x3 = XEXP (x2, 0);
15698 : switch (GET_CODE (x3))
15699 : {
15700 : case REG:
15701 : case SUBREG:
15702 : case MEM:
15703 : operands[1] = x3;
15704 : x4 = XEXP (x2, 1);
15705 : operands[2] = x4;
15706 : switch (GET_MODE (operands[0]))
15707 : {
15708 : case E_V32QImode:
15709 : if (pattern3 (x2,
15710 : E_V32QImode) != 0
15711 : || !
15712 : #line 18384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15713 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15714 : return -1;
15715 : return 7953; /* *avx2_eqv32qi3 */
15716 :
15717 : case E_V16HImode:
15718 : if (pattern3 (x2,
15719 : E_V16HImode) != 0
15720 : || !
15721 : #line 18384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15722 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15723 : return -1;
15724 : return 7954; /* *avx2_eqv16hi3 */
15725 :
15726 : case E_V8SImode:
15727 : if (pattern3 (x2,
15728 : E_V8SImode) != 0
15729 : || !
15730 : #line 18384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15731 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15732 : return -1;
15733 : return 7955; /* *avx2_eqv8si3 */
15734 :
15735 : case E_V4DImode:
15736 : if (pattern3 (x2,
15737 : E_V4DImode) != 0
15738 : || !
15739 : #line 18384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15740 : (TARGET_AVX2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15741 : return -1;
15742 : return 7956; /* *avx2_eqv4di3 */
15743 :
15744 : case E_V2DImode:
15745 : if (pattern26 (x2,
15746 : E_V2DImode) != 0
15747 : || !
15748 : #line 18685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15749 : (TARGET_SSE4_1 && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15750 : return -1;
15751 : return 8019; /* *sse4_1_eqv2di3 */
15752 :
15753 : case E_V16QImode:
15754 : if (pattern26 (x2,
15755 : E_V16QImode) != 0
15756 : || !
15757 : #line 18702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15758 : (TARGET_SSE2
15759 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15760 : return -1;
15761 : return 8020; /* *sse2_eqv16qi3 */
15762 :
15763 : case E_V8HImode:
15764 : if (pattern26 (x2,
15765 : E_V8HImode) != 0
15766 : || !
15767 : #line 18702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15768 : (TARGET_SSE2
15769 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15770 : return -1;
15771 : return 8021; /* *sse2_eqv8hi3 */
15772 :
15773 : case E_V4SImode:
15774 : if (pattern26 (x2,
15775 : E_V4SImode) != 0
15776 : || !
15777 : #line 18702 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15778 : (TARGET_SSE2
15779 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
15780 : return -1;
15781 : return 8022; /* *sse2_eqv4si3 */
15782 :
15783 : default:
15784 : return -1;
15785 : }
15786 :
15787 : case EQ:
15788 : x5 = XEXP (x3, 0);
15789 : if (GET_CODE (x5) != EQ)
15790 : return -1;
15791 : x6 = XEXP (x5, 0);
15792 : operands[1] = x6;
15793 : x7 = XEXP (x5, 1);
15794 : operands[2] = x7;
15795 : x8 = XEXP (x3, 1);
15796 : operands[3] = x8;
15797 : x4 = XEXP (x2, 1);
15798 : operands[4] = x4;
15799 : switch (GET_MODE (operands[0]))
15800 : {
15801 : case E_V32QImode:
15802 : if (pattern1155 (x2,
15803 : E_V32QImode) != 0
15804 : || !(
15805 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15806 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15807 : #line 584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15808 : (TARGET_AVX2)))
15809 : return -1;
15810 : return 7957; /* *eqv32qi3_2_negate */
15811 :
15812 : case E_V16QImode:
15813 : if (pattern1155 (x2,
15814 : E_V16QImode) != 0
15815 : || !
15816 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15817 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15818 : return -1;
15819 : return 7958; /* *eqv16qi3_2_negate */
15820 :
15821 : case E_V16HImode:
15822 : if (pattern1155 (x2,
15823 : E_V16HImode) != 0
15824 : || !(
15825 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15826 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15827 : #line 585 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15828 : (TARGET_AVX2)))
15829 : return -1;
15830 : return 7959; /* *eqv16hi3_2_negate */
15831 :
15832 : case E_V8HImode:
15833 : if (pattern1155 (x2,
15834 : E_V8HImode) != 0
15835 : || !
15836 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15837 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15838 : return -1;
15839 : return 7960; /* *eqv8hi3_2_negate */
15840 :
15841 : case E_V8SImode:
15842 : if (pattern1155 (x2,
15843 : E_V8SImode) != 0
15844 : || !(
15845 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15846 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15847 : #line 586 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15848 : (TARGET_AVX2)))
15849 : return -1;
15850 : return 7961; /* *eqv8si3_2_negate */
15851 :
15852 : case E_V4SImode:
15853 : if (pattern1155 (x2,
15854 : E_V4SImode) != 0
15855 : || !
15856 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15857 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15858 : return -1;
15859 : return 7962; /* *eqv4si3_2_negate */
15860 :
15861 : case E_V4DImode:
15862 : if (pattern1155 (x2,
15863 : E_V4DImode) != 0
15864 : || !(
15865 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15866 : (TARGET_SSE4_1 && ix86_pre_reload_split ()) &&
15867 : #line 587 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15868 : (TARGET_AVX2)))
15869 : return -1;
15870 : return 7963; /* *eqv4di3_2_negate */
15871 :
15872 : case E_V2DImode:
15873 : if (pattern1155 (x2,
15874 : E_V2DImode) != 0
15875 : || !
15876 : #line 18404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15877 : (TARGET_SSE4_1 && ix86_pre_reload_split ()))
15878 : return -1;
15879 : return 7964; /* *eqv2di3_2_negate */
15880 :
15881 : default:
15882 : return -1;
15883 : }
15884 :
15885 : default:
15886 : return -1;
15887 : }
15888 : }
15889 :
15890 : int
15891 : recog_282 (rtx x1 ATTRIBUTE_UNUSED,
15892 : rtx_insn *insn ATTRIBUTE_UNUSED,
15893 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15894 : {
15895 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15896 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
15897 : rtx x10, x11, x12, x13;
15898 : int res ATTRIBUTE_UNUSED;
15899 : x2 = XEXP (x1, 1);
15900 : x3 = XEXP (x2, 1);
15901 : if (pattern933 (x3) != 0)
15902 : return -1;
15903 : x4 = XVECEXP (x3, 0, 0);
15904 : switch (XWINT (x4, 0))
15905 : {
15906 : case 0L:
15907 : x5 = XVECEXP (x3, 0, 1);
15908 : switch (XWINT (x5, 0))
15909 : {
15910 : case 1L:
15911 : x6 = XVECEXP (x3, 0, 2);
15912 : if (XWINT (x6, 0) != 2L)
15913 : return -1;
15914 : x7 = XVECEXP (x3, 0, 3);
15915 : if (XWINT (x7, 0) != 3L)
15916 : return -1;
15917 : x8 = XVECEXP (x3, 0, 4);
15918 : if (XWINT (x8, 0) != 8L)
15919 : return -1;
15920 : x9 = XVECEXP (x3, 0, 5);
15921 : if (XWINT (x9, 0) != 9L)
15922 : return -1;
15923 : x10 = XVECEXP (x3, 0, 6);
15924 : if (XWINT (x10, 0) != 10L)
15925 : return -1;
15926 : x11 = XVECEXP (x3, 0, 7);
15927 : if (XWINT (x11, 0) != 11L)
15928 : return -1;
15929 : x12 = XEXP (x2, 0);
15930 : x13 = XEXP (x12, 1);
15931 : operands[2] = x13;
15932 : switch (GET_MODE (operands[0]))
15933 : {
15934 : case E_V8HImode:
15935 : if (pattern1492 (x2,
15936 : E_V8HImode,
15937 : E_V16HImode) != 0
15938 : || !
15939 : #line 11515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15940 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HImode, operands)))
15941 : return -1;
15942 : return 5263; /* sse_movlhps_v8hi */
15943 :
15944 : case E_V8HFmode:
15945 : if (pattern1492 (x2,
15946 : E_V8HFmode,
15947 : E_V16HFmode) != 0
15948 : || !
15949 : #line 11515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15950 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8HFmode, operands)))
15951 : return -1;
15952 : return 5264; /* sse_movlhps_v8hf */
15953 :
15954 : case E_V8BFmode:
15955 : if (pattern1492 (x2,
15956 : E_V8BFmode,
15957 : E_V16BFmode) != 0
15958 : || !
15959 : #line 11515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15960 : (TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V8BFmode, operands)))
15961 : return -1;
15962 : return 5265; /* sse_movlhps_v8bf */
15963 :
15964 : default:
15965 : return -1;
15966 : }
15967 :
15968 : case 8L:
15969 : x6 = XVECEXP (x3, 0, 2);
15970 : switch (XWINT (x6, 0))
15971 : {
15972 : case 1L:
15973 : x7 = XVECEXP (x3, 0, 3);
15974 : if (XWINT (x7, 0) != 9L)
15975 : return -1;
15976 : x12 = XEXP (x2, 0);
15977 : x13 = XEXP (x12, 1);
15978 : operands[2] = x13;
15979 : x8 = XVECEXP (x3, 0, 4);
15980 : switch (XWINT (x8, 0))
15981 : {
15982 : case 4L:
15983 : x9 = XVECEXP (x3, 0, 5);
15984 : if (XWINT (x9, 0) != 12L)
15985 : return -1;
15986 : x10 = XVECEXP (x3, 0, 6);
15987 : if (XWINT (x10, 0) != 5L)
15988 : return -1;
15989 : x11 = XVECEXP (x3, 0, 7);
15990 : if (XWINT (x11, 0) != 13L)
15991 : return -1;
15992 : switch (GET_MODE (operands[0]))
15993 : {
15994 : case E_V8SFmode:
15995 : if (pattern1424 (x2,
15996 : E_V8SFmode,
15997 : E_V16SFmode) != 0
15998 : || !
15999 : #line 11645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16000 : (TARGET_AVX && 1))
16001 : return -1;
16002 : return 5274; /* avx_unpcklps256 */
16003 :
16004 : case E_V8SImode:
16005 : if (pattern1424 (x2,
16006 : E_V8SImode,
16007 : E_V16SImode) != 0
16008 : || !
16009 : #line 20246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16010 : (TARGET_AVX2 && 1))
16011 : return -1;
16012 : return 8448; /* avx2_interleave_lowv8si */
16013 :
16014 : default:
16015 : return -1;
16016 : }
16017 :
16018 : case 2L:
16019 : x9 = XVECEXP (x3, 0, 5);
16020 : if (XWINT (x9, 0) != 10L)
16021 : return -1;
16022 : x10 = XVECEXP (x3, 0, 6);
16023 : if (XWINT (x10, 0) != 3L)
16024 : return -1;
16025 : x11 = XVECEXP (x3, 0, 7);
16026 : if (XWINT (x11, 0) != 11L)
16027 : return -1;
16028 : switch (GET_MODE (operands[0]))
16029 : {
16030 : case E_V8HImode:
16031 : if (pattern1493 (x2,
16032 : E_V8HImode,
16033 : E_V16HImode) != 0
16034 : || !
16035 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16036 : (TARGET_SSE2 && 1 && 1))
16037 : return -1;
16038 : return 8436; /* vec_interleave_lowv8hi */
16039 :
16040 : case E_V8HFmode:
16041 : if (pattern1493 (x2,
16042 : E_V8HFmode,
16043 : E_V16HFmode) != 0
16044 : || !
16045 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16046 : (TARGET_SSE2 && 1 && 1))
16047 : return -1;
16048 : return 8438; /* vec_interleave_lowv8hf */
16049 :
16050 : case E_V8BFmode:
16051 : if (pattern1493 (x2,
16052 : E_V8BFmode,
16053 : E_V16BFmode) != 0
16054 : || !
16055 : #line 20171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16056 : (TARGET_SSE2 && 1 && 1))
16057 : return -1;
16058 : return 8440; /* vec_interleave_lowv8bf */
16059 :
16060 : default:
16061 : return -1;
16062 : }
16063 :
16064 : default:
16065 : return -1;
16066 : }
16067 :
16068 : case 2L:
16069 : x7 = XVECEXP (x3, 0, 3);
16070 : if (XWINT (x7, 0) != 10L)
16071 : return -1;
16072 : x8 = XVECEXP (x3, 0, 4);
16073 : if (XWINT (x8, 0) != 4L)
16074 : return -1;
16075 : x9 = XVECEXP (x3, 0, 5);
16076 : if (XWINT (x9, 0) != 12L)
16077 : return -1;
16078 : x10 = XVECEXP (x3, 0, 6);
16079 : if (XWINT (x10, 0) != 6L)
16080 : return -1;
16081 : x11 = XVECEXP (x3, 0, 7);
16082 : if (XWINT (x11, 0) != 14L)
16083 : return -1;
16084 : switch (GET_MODE (operands[0]))
16085 : {
16086 : case E_V8DFmode:
16087 : if (!register_operand (operands[0], E_V8DFmode)
16088 : || GET_MODE (x2) != E_V8DFmode)
16089 : return -1;
16090 : x12 = XEXP (x2, 0);
16091 : if (GET_MODE (x12) != E_V16DFmode)
16092 : return -1;
16093 : if (nonimmediate_operand (operands[1], E_V8DFmode))
16094 : {
16095 : x13 = XEXP (x12, 1);
16096 : if (rtx_equal_p (x13, operands[1])
16097 : &&
16098 : #line 13835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16099 : (TARGET_AVX512F))
16100 : return 5426; /* avx512f_movddup512 */
16101 : }
16102 : if (!register_operand (operands[1], E_V8DFmode))
16103 : return -1;
16104 : x13 = XEXP (x12, 1);
16105 : operands[2] = x13;
16106 : if (!nonimmediate_operand (operands[2], E_V8DFmode)
16107 : || !
16108 : #line 13853 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16109 : (TARGET_AVX512F))
16110 : return -1;
16111 : return 5428; /* avx512f_unpcklpd512 */
16112 :
16113 : case E_V8DImode:
16114 : if (pattern1636 (x2,
16115 : E_V8DImode,
16116 : E_V16DImode) != 0
16117 : || !
16118 : #line 14933 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16119 : (TARGET_AVX512F))
16120 : return -1;
16121 : return 7247; /* *avx512f_interleave_lowv8di */
16122 :
16123 : default:
16124 : return -1;
16125 : }
16126 :
16127 : default:
16128 : return -1;
16129 : }
16130 :
16131 : case 0L:
16132 : if (pattern1682 (x3) != 0
16133 : || pattern1814 (x2,
16134 : E_V8SFmode,
16135 : E_V16SFmode) != 0
16136 : || !
16137 : #line 11784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16138 : (TARGET_AVX && 1))
16139 : return -1;
16140 : return 5284; /* avx_movsldup256 */
16141 :
16142 : default:
16143 : return -1;
16144 : }
16145 :
16146 : case 2L:
16147 : x5 = XVECEXP (x3, 0, 1);
16148 : if (XWINT (x5, 0) != 10L)
16149 : return -1;
16150 : x6 = XVECEXP (x3, 0, 2);
16151 : if (XWINT (x6, 0) != 3L)
16152 : return -1;
16153 : x7 = XVECEXP (x3, 0, 3);
16154 : if (XWINT (x7, 0) != 11L
16155 : || pattern1729 (x2) != 0)
16156 : return -1;
16157 : switch (GET_MODE (operands[0]))
16158 : {
16159 : case E_V8SFmode:
16160 : if (pattern1424 (x2,
16161 : E_V8SFmode,
16162 : E_V16SFmode) != 0
16163 : || !
16164 : #line 11557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16165 : (TARGET_AVX && 1))
16166 : return -1;
16167 : return 5268; /* avx_unpckhps256 */
16168 :
16169 : case E_V8SImode:
16170 : if (pattern1424 (x2,
16171 : E_V8SImode,
16172 : E_V16SImode) != 0
16173 : || !
16174 : #line 20191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16175 : (TARGET_AVX2 && 1))
16176 : return -1;
16177 : return 8442; /* avx2_interleave_highv8si */
16178 :
16179 : default:
16180 : return -1;
16181 : }
16182 :
16183 : case 1L:
16184 : x6 = XVECEXP (x3, 0, 2);
16185 : if (XWINT (x6, 0) != 3L)
16186 : return -1;
16187 : x8 = XVECEXP (x3, 0, 4);
16188 : if (XWINT (x8, 0) != 5L)
16189 : return -1;
16190 : x10 = XVECEXP (x3, 0, 6);
16191 : if (XWINT (x10, 0) != 7L)
16192 : return -1;
16193 : x5 = XVECEXP (x3, 0, 1);
16194 : switch (XWINT (x5, 0))
16195 : {
16196 : case 1L:
16197 : x7 = XVECEXP (x3, 0, 3);
16198 : if (XWINT (x7, 0) != 3L)
16199 : return -1;
16200 : x9 = XVECEXP (x3, 0, 5);
16201 : if (XWINT (x9, 0) != 5L)
16202 : return -1;
16203 : x11 = XVECEXP (x3, 0, 7);
16204 : if (XWINT (x11, 0) != 7L
16205 : || pattern1814 (x2,
16206 : E_V8SFmode,
16207 : E_V16SFmode) != 0
16208 : || !
16209 : #line 11731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16210 : (TARGET_AVX && 1))
16211 : return -1;
16212 : return 5278; /* avx_movshdup256 */
16213 :
16214 : case 9L:
16215 : x7 = XVECEXP (x3, 0, 3);
16216 : if (XWINT (x7, 0) != 11L)
16217 : return -1;
16218 : x9 = XVECEXP (x3, 0, 5);
16219 : if (XWINT (x9, 0) != 13L)
16220 : return -1;
16221 : x11 = XVECEXP (x3, 0, 7);
16222 : if (XWINT (x11, 0) != 15L)
16223 : return -1;
16224 : x12 = XEXP (x2, 0);
16225 : x13 = XEXP (x12, 1);
16226 : operands[2] = x13;
16227 : switch (GET_MODE (operands[0]))
16228 : {
16229 : case E_V8DFmode:
16230 : if (pattern1424 (x2,
16231 : E_V8DFmode,
16232 : E_V16DFmode) != 0
16233 : || !
16234 : #line 13721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16235 : (TARGET_AVX512F))
16236 : return -1;
16237 : return 5420; /* *avx512f_unpckhpd512 */
16238 :
16239 : case E_V8DImode:
16240 : if (pattern1424 (x2,
16241 : E_V8DImode,
16242 : E_V16DImode) != 0
16243 : || !
16244 : #line 14883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16245 : (TARGET_AVX512F))
16246 : return -1;
16247 : return 7241; /* *avx512f_interleave_highv8di */
16248 :
16249 : default:
16250 : return -1;
16251 : }
16252 :
16253 : default:
16254 : return -1;
16255 : }
16256 :
16257 : case 4L:
16258 : x5 = XVECEXP (x3, 0, 1);
16259 : if (XWINT (x5, 0) != 12L)
16260 : return -1;
16261 : x6 = XVECEXP (x3, 0, 2);
16262 : if (XWINT (x6, 0) != 5L)
16263 : return -1;
16264 : x7 = XVECEXP (x3, 0, 3);
16265 : if (XWINT (x7, 0) != 13L
16266 : || pattern1729 (x2) != 0)
16267 : return -1;
16268 : switch (GET_MODE (operands[0]))
16269 : {
16270 : case E_V8HImode:
16271 : if (pattern1493 (x2,
16272 : E_V8HImode,
16273 : E_V16HImode) != 0
16274 : || !
16275 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16276 : (TARGET_SSE2 && 1 && 1))
16277 : return -1;
16278 : return 8418; /* vec_interleave_highv8hi */
16279 :
16280 : case E_V8HFmode:
16281 : if (pattern1493 (x2,
16282 : E_V8HFmode,
16283 : E_V16HFmode) != 0
16284 : || !
16285 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16286 : (TARGET_SSE2 && 1 && 1))
16287 : return -1;
16288 : return 8420; /* vec_interleave_highv8hf */
16289 :
16290 : case E_V8BFmode:
16291 : if (pattern1493 (x2,
16292 : E_V8BFmode,
16293 : E_V16BFmode) != 0
16294 : || !
16295 : #line 20103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16296 : (TARGET_SSE2 && 1 && 1))
16297 : return -1;
16298 : return 8422; /* vec_interleave_highv8bf */
16299 :
16300 : default:
16301 : return -1;
16302 : }
16303 :
16304 : default:
16305 : return -1;
16306 : }
16307 : }
16308 :
16309 : int
16310 : recog_290 (rtx x1 ATTRIBUTE_UNUSED,
16311 : rtx_insn *insn ATTRIBUTE_UNUSED,
16312 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16313 : {
16314 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16315 : rtx x2, x3, x4, x5;
16316 : int res ATTRIBUTE_UNUSED;
16317 : x2 = XEXP (x1, 1);
16318 : x3 = XEXP (x2, 1);
16319 : x4 = XVECEXP (x3, 0, 0);
16320 : if (GET_CODE (x4) != CONST_INT)
16321 : return -1;
16322 : operands[2] = x4;
16323 : if (const_0_to_7_operand (operands[2], E_VOIDmode))
16324 : {
16325 : x5 = XVECEXP (x3, 0, 1);
16326 : operands[3] = x5;
16327 : if (const_0_to_7_operand (operands[3], E_VOIDmode))
16328 : {
16329 : switch (GET_MODE (operands[0]))
16330 : {
16331 : case E_V2DFmode:
16332 : if (nonimmediate_operand (operands[0], E_V2DFmode)
16333 : && GET_MODE (x2) == E_V2DFmode
16334 : && register_operand (operands[1], E_V8DFmode)
16335 : &&
16336 : #line 12852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16337 : (TARGET_AVX512DQ
16338 : && INTVAL (operands[2]) % 2 == 0
16339 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
16340 : return 5358; /* *avx512dq_vextractf64x2_1 */
16341 : break;
16342 :
16343 : case E_V2DImode:
16344 : if (nonimmediate_operand (operands[0], E_V2DImode)
16345 : && GET_MODE (x2) == E_V2DImode
16346 : && register_operand (operands[1], E_V8DImode)
16347 : &&
16348 : #line 12852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16349 : (TARGET_AVX512DQ
16350 : && INTVAL (operands[2]) % 2 == 0
16351 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1))
16352 : return 5359; /* *avx512dq_vextracti64x2_1 */
16353 : break;
16354 :
16355 : default:
16356 : break;
16357 : }
16358 : }
16359 : }
16360 : x5 = XVECEXP (x3, 0, 1);
16361 : if (GET_CODE (x5) != CONST_INT)
16362 : return -1;
16363 : switch (XWINT (x4, 0))
16364 : {
16365 : case 0L:
16366 : if (XWINT (x5, 0) != 1L)
16367 : return -1;
16368 : switch (GET_MODE (operands[0]))
16369 : {
16370 : case E_V2DImode:
16371 : if (!nonimmediate_operand (operands[0], E_V2DImode)
16372 : || GET_MODE (x2) != E_V2DImode
16373 : || !nonimmediate_operand (operands[1], E_V4DImode)
16374 : || !
16375 : #line 13276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16376 : (TARGET_AVX
16377 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16378 : return -1;
16379 : return 5382; /* vec_extract_lo_v4di */
16380 :
16381 : case E_V2DFmode:
16382 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
16383 : || GET_MODE (x2) != E_V2DFmode
16384 : || !nonimmediate_operand (operands[1], E_V4DFmode)
16385 : || !
16386 : #line 13276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16387 : (TARGET_AVX
16388 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16389 : return -1;
16390 : return 5383; /* vec_extract_lo_v4df */
16391 :
16392 : default:
16393 : return -1;
16394 : }
16395 :
16396 : case 2L:
16397 : if (XWINT (x5, 0) != 3L)
16398 : return -1;
16399 : switch (GET_MODE (operands[0]))
16400 : {
16401 : case E_V2DImode:
16402 : if (!nonimmediate_operand (operands[0], E_V2DImode)
16403 : || GET_MODE (x2) != E_V2DImode
16404 : || !register_operand (operands[1], E_V4DImode)
16405 : || !
16406 : #line 13312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16407 : (TARGET_AVX))
16408 : return -1;
16409 : return 5386; /* vec_extract_hi_v4di */
16410 :
16411 : case E_V2DFmode:
16412 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
16413 : || GET_MODE (x2) != E_V2DFmode
16414 : || !register_operand (operands[1], E_V4DFmode)
16415 : || !
16416 : #line 13312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16417 : (TARGET_AVX))
16418 : return -1;
16419 : return 5387; /* vec_extract_hi_v4df */
16420 :
16421 : default:
16422 : return -1;
16423 : }
16424 :
16425 : default:
16426 : return -1;
16427 : }
16428 : }
16429 :
16430 : int
16431 : recog_293 (rtx x1 ATTRIBUTE_UNUSED,
16432 : rtx_insn *insn ATTRIBUTE_UNUSED,
16433 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16434 : {
16435 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16436 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
16437 : rtx x10, x11;
16438 : int res ATTRIBUTE_UNUSED;
16439 : x2 = XEXP (x1, 1);
16440 : x3 = XEXP (x2, 1);
16441 : if (pattern933 (x3) != 0)
16442 : return -1;
16443 : x4 = XVECEXP (x3, 0, 0);
16444 : switch (XWINT (x4, 0))
16445 : {
16446 : case 8L:
16447 : x5 = XVECEXP (x3, 0, 1);
16448 : if (XWINT (x5, 0) != 9L)
16449 : return -1;
16450 : x6 = XVECEXP (x3, 0, 2);
16451 : if (XWINT (x6, 0) != 10L)
16452 : return -1;
16453 : x7 = XVECEXP (x3, 0, 3);
16454 : if (XWINT (x7, 0) != 11L)
16455 : return -1;
16456 : x8 = XVECEXP (x3, 0, 4);
16457 : if (XWINT (x8, 0) != 12L)
16458 : return -1;
16459 : x9 = XVECEXP (x3, 0, 5);
16460 : if (XWINT (x9, 0) != 13L)
16461 : return -1;
16462 : x10 = XVECEXP (x3, 0, 6);
16463 : if (XWINT (x10, 0) != 14L)
16464 : return -1;
16465 : x11 = XVECEXP (x3, 0, 7);
16466 : if (XWINT (x11, 0) != 15L)
16467 : return -1;
16468 : switch (GET_MODE (operands[0]))
16469 : {
16470 : case E_V8SFmode:
16471 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
16472 : || GET_MODE (x2) != E_V8SFmode
16473 : || !register_operand (operands[1], E_V16SFmode)
16474 : || !
16475 : #line 13103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16476 : (TARGET_AVX512F))
16477 : return -1;
16478 : return 5374; /* vec_extract_hi_v16sf */
16479 :
16480 : case E_V8SImode:
16481 : if (!nonimmediate_operand (operands[0], E_V8SImode)
16482 : || GET_MODE (x2) != E_V8SImode
16483 : || !register_operand (operands[1], E_V16SImode)
16484 : || !
16485 : #line 13103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16486 : (TARGET_AVX512F))
16487 : return -1;
16488 : return 5375; /* vec_extract_hi_v16si */
16489 :
16490 : case E_V8HImode:
16491 : if (!nonimmediate_operand (operands[0], E_V8HImode)
16492 : || GET_MODE (x2) != E_V8HImode
16493 : || !register_operand (operands[1], E_V16HImode)
16494 : || !
16495 : #line 13491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16496 : (TARGET_AVX))
16497 : return -1;
16498 : return 5405; /* vec_extract_hi_v16hi */
16499 :
16500 : case E_V8HFmode:
16501 : if (!nonimmediate_operand (operands[0], E_V8HFmode)
16502 : || GET_MODE (x2) != E_V8HFmode
16503 : || !register_operand (operands[1], E_V16HFmode)
16504 : || !
16505 : #line 13491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16506 : (TARGET_AVX))
16507 : return -1;
16508 : return 5406; /* vec_extract_hi_v16hf */
16509 :
16510 : case E_V8BFmode:
16511 : if (!nonimmediate_operand (operands[0], E_V8BFmode)
16512 : || GET_MODE (x2) != E_V8BFmode
16513 : || !register_operand (operands[1], E_V16BFmode)
16514 : || !
16515 : #line 13491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16516 : (TARGET_AVX))
16517 : return -1;
16518 : return 5407; /* vec_extract_hi_v16bf */
16519 :
16520 : default:
16521 : return -1;
16522 : }
16523 :
16524 : case 0L:
16525 : x5 = XVECEXP (x3, 0, 1);
16526 : if (XWINT (x5, 0) != 1L)
16527 : return -1;
16528 : x6 = XVECEXP (x3, 0, 2);
16529 : if (XWINT (x6, 0) != 2L)
16530 : return -1;
16531 : x7 = XVECEXP (x3, 0, 3);
16532 : if (XWINT (x7, 0) != 3L)
16533 : return -1;
16534 : x8 = XVECEXP (x3, 0, 4);
16535 : if (XWINT (x8, 0) != 4L)
16536 : return -1;
16537 : x9 = XVECEXP (x3, 0, 5);
16538 : if (XWINT (x9, 0) != 5L)
16539 : return -1;
16540 : x10 = XVECEXP (x3, 0, 6);
16541 : if (XWINT (x10, 0) != 6L)
16542 : return -1;
16543 : x11 = XVECEXP (x3, 0, 7);
16544 : if (XWINT (x11, 0) != 7L)
16545 : return -1;
16546 : switch (pattern1547 (x2))
16547 : {
16548 : case 0:
16549 : if (!
16550 : #line 13208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16551 : (TARGET_AVX512F
16552 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16553 : return -1;
16554 : return 5378; /* vec_extract_lo_v16sf */
16555 :
16556 : case 1:
16557 : if (!
16558 : #line 13208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16559 : (TARGET_AVX512F
16560 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16561 : return -1;
16562 : return 5379; /* vec_extract_lo_v16si */
16563 :
16564 : case 2:
16565 : if (!
16566 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16567 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16568 : return -1;
16569 : return 5402; /* vec_extract_lo_v16hi */
16570 :
16571 : case 3:
16572 : if (!
16573 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16574 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16575 : return -1;
16576 : return 5403; /* vec_extract_lo_v16hf */
16577 :
16578 : case 4:
16579 : if (!
16580 : #line 13477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16581 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
16582 : return -1;
16583 : return 5404; /* vec_extract_lo_v16bf */
16584 :
16585 : default:
16586 : return -1;
16587 : }
16588 :
16589 : default:
16590 : return -1;
16591 : }
16592 : }
16593 :
16594 : int
16595 : recog_305 (rtx x1 ATTRIBUTE_UNUSED,
16596 : rtx_insn *insn ATTRIBUTE_UNUSED,
16597 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16598 : {
16599 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16600 : rtx x2, x3, x4;
16601 : int res ATTRIBUTE_UNUSED;
16602 : x2 = XEXP (x1, 1);
16603 : x3 = XEXP (x2, 0);
16604 : operands[1] = x3;
16605 : x4 = XEXP (x2, 1);
16606 : operands[2] = x4;
16607 : switch (GET_MODE (operands[0]))
16608 : {
16609 : case E_V16BFmode:
16610 : if (GET_MODE (x2) != E_V16BFmode)
16611 : return -1;
16612 : if (register_operand (operands[0], E_V16BFmode)
16613 : && vector_operand (operands[1], E_V16BFmode)
16614 : && vector_operand (operands[2], E_V16BFmode)
16615 : && (
16616 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16617 : (TARGET_SSE && 1
16618 : && (!false || 16 != 16)
16619 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16620 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16621 : (TARGET_AVX)))
16622 : return 3789; /* *andv16bf3 */
16623 : if (!nonimmediate_operand (operands[0], E_V16BFmode)
16624 : || !nonimmediate_operand (operands[1], E_V16BFmode)
16625 : || !float_vector_all_ones_operand (operands[2], E_V16BFmode)
16626 : || !(
16627 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16628 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16629 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16630 : (TARGET_AVX)))
16631 : return -1;
16632 : return 3844; /* *bit_and_float_vector_all_ones */
16633 :
16634 : case E_V8BFmode:
16635 : if (GET_MODE (x2) != E_V8BFmode)
16636 : return -1;
16637 : if (register_operand (operands[0], E_V8BFmode)
16638 : && vector_operand (operands[1], E_V8BFmode)
16639 : && vector_operand (operands[2], E_V8BFmode)
16640 : && (
16641 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16642 : (TARGET_SSE && 1
16643 : && (!false || 16 != 16)
16644 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16645 : #line 430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16646 : (TARGET_SSE2)))
16647 : return 3792; /* *andv8bf3 */
16648 : if (!nonimmediate_operand (operands[0], E_V8BFmode)
16649 : || !nonimmediate_operand (operands[1], E_V8BFmode)
16650 : || !float_vector_all_ones_operand (operands[2], E_V8BFmode)
16651 : || !(
16652 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16653 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16654 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16655 : (TARGET_SSE2)))
16656 : return -1;
16657 : return 3845; /* *bit_and_float_vector_all_ones */
16658 :
16659 : case E_V16HFmode:
16660 : if (GET_MODE (x2) != E_V16HFmode)
16661 : return -1;
16662 : if (register_operand (operands[0], E_V16HFmode)
16663 : && vector_operand (operands[1], E_V16HFmode)
16664 : && vector_operand (operands[2], E_V16HFmode)
16665 : && (
16666 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16667 : (TARGET_SSE && 1
16668 : && (!false || 16 != 16)
16669 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16670 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16671 : (TARGET_AVX)))
16672 : return 3795; /* *andv16hf3 */
16673 : if (!nonimmediate_operand (operands[0], E_V16HFmode)
16674 : || !nonimmediate_operand (operands[1], E_V16HFmode)
16675 : || !float_vector_all_ones_operand (operands[2], E_V16HFmode)
16676 : || !(
16677 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16678 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16679 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16680 : (TARGET_AVX)))
16681 : return -1;
16682 : return 3847; /* *bit_and_float_vector_all_ones */
16683 :
16684 : case E_V8HFmode:
16685 : if (GET_MODE (x2) != E_V8HFmode)
16686 : return -1;
16687 : if (register_operand (operands[0], E_V8HFmode)
16688 : && vector_operand (operands[1], E_V8HFmode)
16689 : && vector_operand (operands[2], E_V8HFmode)
16690 : && (
16691 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16692 : (TARGET_SSE && 1
16693 : && (!false || 16 != 16)
16694 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16695 : #line 431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16696 : (TARGET_SSE2)))
16697 : return 3798; /* *andv8hf3 */
16698 : if (!nonimmediate_operand (operands[0], E_V8HFmode)
16699 : || !nonimmediate_operand (operands[1], E_V8HFmode)
16700 : || !float_vector_all_ones_operand (operands[2], E_V8HFmode)
16701 : || !(
16702 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16703 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16704 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16705 : (TARGET_SSE2)))
16706 : return -1;
16707 : return 3848; /* *bit_and_float_vector_all_ones */
16708 :
16709 : case E_V8SFmode:
16710 : if (GET_MODE (x2) != E_V8SFmode)
16711 : return -1;
16712 : if (register_operand (operands[0], E_V8SFmode)
16713 : && vector_operand (operands[1], E_V8SFmode)
16714 : && vector_operand (operands[2], E_V8SFmode)
16715 : && (
16716 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16717 : (TARGET_SSE && 1
16718 : && (!false || 32 != 16)
16719 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16720 : #line 432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16721 : (TARGET_AVX)))
16722 : return 3801; /* *andv8sf3 */
16723 : if (!nonimmediate_operand (operands[0], E_V8SFmode)
16724 : || !nonimmediate_operand (operands[1], E_V8SFmode)
16725 : || !float_vector_all_ones_operand (operands[2], E_V8SFmode)
16726 : || !(
16727 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16728 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16729 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16730 : (TARGET_AVX)))
16731 : return -1;
16732 : return 3850; /* *bit_and_float_vector_all_ones */
16733 :
16734 : case E_V4SFmode:
16735 : if (GET_MODE (x2) != E_V4SFmode)
16736 : return -1;
16737 : if (register_operand (operands[0], E_V4SFmode)
16738 : && vector_operand (operands[1], E_V4SFmode)
16739 : && vector_operand (operands[2], E_V4SFmode)
16740 : &&
16741 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16742 : (TARGET_SSE && 1
16743 : && (!false || 32 != 16)
16744 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
16745 : return 3807; /* *andv4sf3 */
16746 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
16747 : || !nonimmediate_operand (operands[1], E_V4SFmode)
16748 : || !float_vector_all_ones_operand (operands[2], E_V4SFmode)
16749 : || !
16750 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16751 : (TARGET_SSE && ix86_pre_reload_split ()))
16752 : return -1;
16753 : return 3851; /* *bit_and_float_vector_all_ones */
16754 :
16755 : case E_V4DFmode:
16756 : if (GET_MODE (x2) != E_V4DFmode)
16757 : return -1;
16758 : if (register_operand (operands[0], E_V4DFmode)
16759 : && vector_operand (operands[1], E_V4DFmode)
16760 : && vector_operand (operands[2], E_V4DFmode)
16761 : && (
16762 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16763 : (TARGET_SSE && 1
16764 : && (!false || 64 != 16)
16765 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16766 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16767 : (TARGET_AVX)))
16768 : return 3813; /* *andv4df3 */
16769 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
16770 : || !nonimmediate_operand (operands[1], E_V4DFmode)
16771 : || !float_vector_all_ones_operand (operands[2], E_V4DFmode)
16772 : || !(
16773 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16774 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16775 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16776 : (TARGET_AVX)))
16777 : return -1;
16778 : return 3853; /* *bit_and_float_vector_all_ones */
16779 :
16780 : case E_V2DFmode:
16781 : if (GET_MODE (x2) != E_V2DFmode)
16782 : return -1;
16783 : if (register_operand (operands[0], E_V2DFmode)
16784 : && vector_operand (operands[1], E_V2DFmode)
16785 : && vector_operand (operands[2], E_V2DFmode)
16786 : && (
16787 : #line 5769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16788 : (TARGET_SSE && 1
16789 : && (!false || 64 != 16)
16790 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16791 : #line 433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16792 : (TARGET_SSE2)))
16793 : return 3819; /* *andv2df3 */
16794 : if (!nonimmediate_operand (operands[0], E_V2DFmode)
16795 : || !nonimmediate_operand (operands[1], E_V2DFmode)
16796 : || !float_vector_all_ones_operand (operands[2], E_V2DFmode)
16797 : || !(
16798 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16799 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16800 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16801 : (TARGET_SSE2)))
16802 : return -1;
16803 : return 3854; /* *bit_and_float_vector_all_ones */
16804 :
16805 : case E_V32BFmode:
16806 : if (GET_MODE (x2) != E_V32BFmode
16807 : || !nonimmediate_operand (operands[1], E_V32BFmode))
16808 : return -1;
16809 : if (register_operand (operands[0], E_V32BFmode)
16810 : && nonimmediate_operand (operands[2], E_V32BFmode)
16811 : &&
16812 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16813 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
16814 : && (!false || 16 != 16)))
16815 : return 3825; /* *andv32bf3 */
16816 : if (!nonimmediate_operand (operands[0], E_V32BFmode)
16817 : || !float_vector_all_ones_operand (operands[2], E_V32BFmode)
16818 : || !(
16819 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16820 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16821 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16822 : (TARGET_AVX512F)))
16823 : return -1;
16824 : return 3843; /* *bit_and_float_vector_all_ones */
16825 :
16826 : case E_V32HFmode:
16827 : if (GET_MODE (x2) != E_V32HFmode
16828 : || !nonimmediate_operand (operands[1], E_V32HFmode))
16829 : return -1;
16830 : if (register_operand (operands[0], E_V32HFmode)
16831 : && nonimmediate_operand (operands[2], E_V32HFmode)
16832 : &&
16833 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16834 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
16835 : && (!false || 16 != 16)))
16836 : return 3828; /* *andv32hf3 */
16837 : if (!nonimmediate_operand (operands[0], E_V32HFmode)
16838 : || !float_vector_all_ones_operand (operands[2], E_V32HFmode)
16839 : || !(
16840 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16841 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16842 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16843 : (TARGET_AVX512F)))
16844 : return -1;
16845 : return 3846; /* *bit_and_float_vector_all_ones */
16846 :
16847 : case E_V16SFmode:
16848 : if (GET_MODE (x2) != E_V16SFmode
16849 : || !nonimmediate_operand (operands[1], E_V16SFmode))
16850 : return -1;
16851 : if (register_operand (operands[0], E_V16SFmode)
16852 : && nonimmediate_operand (operands[2], E_V16SFmode)
16853 : &&
16854 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16855 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
16856 : && (!false || 32 != 16)))
16857 : return 3831; /* *andv16sf3 */
16858 : if (!nonimmediate_operand (operands[0], E_V16SFmode)
16859 : || !float_vector_all_ones_operand (operands[2], E_V16SFmode)
16860 : || !(
16861 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16862 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16863 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16864 : (TARGET_AVX512F)))
16865 : return -1;
16866 : return 3849; /* *bit_and_float_vector_all_ones */
16867 :
16868 : case E_V8DFmode:
16869 : if (GET_MODE (x2) != E_V8DFmode
16870 : || !nonimmediate_operand (operands[1], E_V8DFmode))
16871 : return -1;
16872 : if (register_operand (operands[0], E_V8DFmode)
16873 : && nonimmediate_operand (operands[2], E_V8DFmode)
16874 : &&
16875 : #line 5840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16876 : (TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))
16877 : && (!false || 64 != 16)))
16878 : return 3837; /* *andv8df3 */
16879 : if (!nonimmediate_operand (operands[0], E_V8DFmode)
16880 : || !float_vector_all_ones_operand (operands[2], E_V8DFmode)
16881 : || !(
16882 : #line 5879 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16883 : (TARGET_SSE && ix86_pre_reload_split ()) &&
16884 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16885 : (TARGET_AVX512F)))
16886 : return -1;
16887 : return 3852; /* *bit_and_float_vector_all_ones */
16888 :
16889 : case E_V16SImode:
16890 : if (pattern189 (x2,
16891 : E_V16SImode) != 0
16892 : || !(
16893 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16894 : (TARGET_SSE && 1
16895 : && ix86_binary_operator_ok (AND, V16SImode, operands)) &&
16896 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16897 : (TARGET_AVX512F)))
16898 : return -1;
16899 : return 8079; /* *andv16si3 */
16900 :
16901 : case E_V8SImode:
16902 : if (pattern189 (x2,
16903 : E_V8SImode) != 0
16904 : || !(
16905 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16906 : (TARGET_SSE && 1
16907 : && ix86_binary_operator_ok (AND, V8SImode, operands)) &&
16908 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16909 : (TARGET_AVX)))
16910 : return -1;
16911 : return 8085; /* *andv8si3 */
16912 :
16913 : case E_V4SImode:
16914 : if (pattern189 (x2,
16915 : E_V4SImode) != 0
16916 : || !
16917 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16918 : (TARGET_SSE && 1
16919 : && ix86_binary_operator_ok (AND, V4SImode, operands)))
16920 : return -1;
16921 : return 8091; /* *andv4si3 */
16922 :
16923 : case E_V8DImode:
16924 : if (pattern189 (x2,
16925 : E_V8DImode) != 0
16926 : || !(
16927 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16928 : (TARGET_SSE && 1
16929 : && ix86_binary_operator_ok (AND, V8DImode, operands)) &&
16930 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16931 : (TARGET_AVX512F)))
16932 : return -1;
16933 : return 8097; /* *andv8di3 */
16934 :
16935 : case E_V4DImode:
16936 : if (pattern189 (x2,
16937 : E_V4DImode) != 0
16938 : || !(
16939 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16940 : (TARGET_SSE && 1
16941 : && ix86_binary_operator_ok (AND, V4DImode, operands)) &&
16942 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16943 : (TARGET_AVX)))
16944 : return -1;
16945 : return 8103; /* *andv4di3 */
16946 :
16947 : case E_V2DImode:
16948 : if (pattern189 (x2,
16949 : E_V2DImode) != 0
16950 : || !
16951 : #line 19195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16952 : (TARGET_SSE && 1
16953 : && ix86_binary_operator_ok (AND, V2DImode, operands)))
16954 : return -1;
16955 : return 8109; /* *andv2di3 */
16956 :
16957 : case E_V64QImode:
16958 : if (pattern26 (x2,
16959 : E_V64QImode) != 0
16960 : || !(
16961 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16962 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16963 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16964 : (TARGET_AVX512F)))
16965 : return -1;
16966 : return 8115; /* *andv64qi3 */
16967 :
16968 : case E_V32QImode:
16969 : if (pattern26 (x2,
16970 : E_V32QImode) != 0
16971 : || !(
16972 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16973 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16974 : #line 799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16975 : (TARGET_AVX)))
16976 : return -1;
16977 : return 8118; /* *andv32qi3 */
16978 :
16979 : case E_V16QImode:
16980 : if (pattern26 (x2,
16981 : E_V16QImode) != 0
16982 : || !
16983 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16984 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
16985 : return -1;
16986 : return 8121; /* *andv16qi3 */
16987 :
16988 : case E_V32HImode:
16989 : if (pattern26 (x2,
16990 : E_V32HImode) != 0
16991 : || !(
16992 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16993 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
16994 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16995 : (TARGET_AVX512F)))
16996 : return -1;
16997 : return 8124; /* *andv32hi3 */
16998 :
16999 : case E_V16HImode:
17000 : if (pattern26 (x2,
17001 : E_V16HImode) != 0
17002 : || !(
17003 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17004 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
17005 : #line 800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17006 : (TARGET_AVX)))
17007 : return -1;
17008 : return 8127; /* *andv16hi3 */
17009 :
17010 : case E_V8HImode:
17011 : if (pattern26 (x2,
17012 : E_V8HImode) != 0
17013 : || !
17014 : #line 19298 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17015 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
17016 : return -1;
17017 : return 8130; /* *andv8hi3 */
17018 :
17019 : case E_V1TImode:
17020 : if (pattern682 (x2,
17021 : E_V1TImode) != 0
17022 : || !
17023 : #line 19396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17024 : (TARGET_SSE2))
17025 : return -1;
17026 : return 8133; /* andv1ti3 */
17027 :
17028 : default:
17029 : return -1;
17030 : }
17031 : }
17032 :
17033 : int
17034 : recog_314 (rtx x1 ATTRIBUTE_UNUSED,
17035 : rtx_insn *insn ATTRIBUTE_UNUSED,
17036 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17037 : {
17038 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17039 : rtx x2, x3, x4;
17040 : int res ATTRIBUTE_UNUSED;
17041 : x2 = XEXP (x1, 1);
17042 : x3 = XEXP (x2, 0);
17043 : x4 = XEXP (x3, 0);
17044 : switch (GET_CODE (x4))
17045 : {
17046 : case REG:
17047 : case SUBREG:
17048 : case MEM:
17049 : case NOT:
17050 : switch (pattern543 (x2))
17051 : {
17052 : case 0:
17053 : if (!(
17054 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17055 : ((64 == 64 || TARGET_AVX512VL
17056 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17057 : && ix86_pre_reload_split ()
17058 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17059 : STRIP_UNARY (operands[4]))
17060 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17061 : STRIP_UNARY (operands[4]))
17062 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17063 : STRIP_UNARY (operands[3]))
17064 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17065 : STRIP_UNARY (operands[3])))) &&
17066 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17067 : (TARGET_AVX512F)))
17068 : return -1;
17069 : return 5886; /* *avx512bw_vpternlogv32hf_1 */
17070 :
17071 : case 1:
17072 : if (!(
17073 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17074 : ((32 == 64 || TARGET_AVX512VL
17075 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17076 : && ix86_pre_reload_split ()
17077 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17078 : STRIP_UNARY (operands[4]))
17079 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17080 : STRIP_UNARY (operands[4]))
17081 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17082 : STRIP_UNARY (operands[3]))
17083 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17084 : STRIP_UNARY (operands[3])))) &&
17085 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17086 : (TARGET_AVX)))
17087 : return -1;
17088 : return 5913; /* *avx512vl_vpternlogv16hf_1 */
17089 :
17090 : case 2:
17091 : if (!
17092 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17093 : ((16 == 64 || TARGET_AVX512VL
17094 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17095 : && ix86_pre_reload_split ()
17096 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17097 : STRIP_UNARY (operands[4]))
17098 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17099 : STRIP_UNARY (operands[4]))
17100 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17101 : STRIP_UNARY (operands[3]))
17102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17103 : STRIP_UNARY (operands[3])))))
17104 : return -1;
17105 : return 5940; /* *avx512fp16_vpternlogv8hf_1 */
17106 :
17107 : case 3:
17108 : if (!(
17109 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17110 : ((64 == 64 || TARGET_AVX512VL
17111 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17112 : && ix86_pre_reload_split ()
17113 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17114 : STRIP_UNARY (operands[4]))
17115 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17116 : STRIP_UNARY (operands[4]))
17117 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17118 : STRIP_UNARY (operands[3]))
17119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17120 : STRIP_UNARY (operands[3])))) &&
17121 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17122 : (TARGET_AVX512F)))
17123 : return -1;
17124 : return 5967; /* *avx512bw_vpternlogv32bf_1 */
17125 :
17126 : case 4:
17127 : if (!(
17128 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17129 : ((32 == 64 || TARGET_AVX512VL
17130 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17131 : && ix86_pre_reload_split ()
17132 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17133 : STRIP_UNARY (operands[4]))
17134 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17135 : STRIP_UNARY (operands[4]))
17136 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17137 : STRIP_UNARY (operands[3]))
17138 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17139 : STRIP_UNARY (operands[3])))) &&
17140 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17141 : (TARGET_AVX)))
17142 : return -1;
17143 : return 5994; /* *avx512vl_vpternlogv16bf_1 */
17144 :
17145 : case 5:
17146 : if (!
17147 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17148 : ((16 == 64 || TARGET_AVX512VL
17149 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17150 : && ix86_pre_reload_split ()
17151 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17152 : STRIP_UNARY (operands[4]))
17153 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17154 : STRIP_UNARY (operands[4]))
17155 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17156 : STRIP_UNARY (operands[3]))
17157 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17158 : STRIP_UNARY (operands[3])))))
17159 : return -1;
17160 : return 6021; /* *avx512vl_vpternlogv8bf_1 */
17161 :
17162 : case 6:
17163 : if (!(
17164 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17165 : ((64 == 64 || TARGET_AVX512VL
17166 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17167 : && ix86_pre_reload_split ()
17168 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17169 : STRIP_UNARY (operands[4]))
17170 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17171 : STRIP_UNARY (operands[4]))
17172 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17173 : STRIP_UNARY (operands[3]))
17174 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17175 : STRIP_UNARY (operands[3])))) &&
17176 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17177 : (TARGET_AVX512F)))
17178 : return -1;
17179 : return 6048; /* *avx512f_vpternlogv16sf_1 */
17180 :
17181 : case 7:
17182 : if (!(
17183 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17184 : ((32 == 64 || TARGET_AVX512VL
17185 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17186 : && ix86_pre_reload_split ()
17187 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17188 : STRIP_UNARY (operands[4]))
17189 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17190 : STRIP_UNARY (operands[4]))
17191 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17192 : STRIP_UNARY (operands[3]))
17193 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17194 : STRIP_UNARY (operands[3])))) &&
17195 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17196 : (TARGET_AVX)))
17197 : return -1;
17198 : return 6075; /* *avx512vl_vpternlogv8sf_1 */
17199 :
17200 : case 8:
17201 : if (!
17202 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17203 : ((16 == 64 || TARGET_AVX512VL
17204 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17205 : && ix86_pre_reload_split ()
17206 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17207 : STRIP_UNARY (operands[4]))
17208 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17209 : STRIP_UNARY (operands[4]))
17210 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17211 : STRIP_UNARY (operands[3]))
17212 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17213 : STRIP_UNARY (operands[3])))))
17214 : return -1;
17215 : return 6102; /* *avx512vl_vpternlogv4sf_1 */
17216 :
17217 : case 9:
17218 : if (!(
17219 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17220 : ((64 == 64 || TARGET_AVX512VL
17221 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17222 : && ix86_pre_reload_split ()
17223 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17224 : STRIP_UNARY (operands[4]))
17225 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17226 : STRIP_UNARY (operands[4]))
17227 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17228 : STRIP_UNARY (operands[3]))
17229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17230 : STRIP_UNARY (operands[3])))) &&
17231 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17232 : (TARGET_AVX512F)))
17233 : return -1;
17234 : return 6129; /* *avx512f_vpternlogv8df_1 */
17235 :
17236 : case 10:
17237 : if (!(
17238 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17239 : ((32 == 64 || TARGET_AVX512VL
17240 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17241 : && ix86_pre_reload_split ()
17242 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17243 : STRIP_UNARY (operands[4]))
17244 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17245 : STRIP_UNARY (operands[4]))
17246 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17247 : STRIP_UNARY (operands[3]))
17248 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17249 : STRIP_UNARY (operands[3])))) &&
17250 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17251 : (TARGET_AVX)))
17252 : return -1;
17253 : return 6156; /* *avx512vl_vpternlogv4df_1 */
17254 :
17255 : case 11:
17256 : if (!(
17257 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17258 : ((16 == 64 || TARGET_AVX512VL
17259 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17260 : && ix86_pre_reload_split ()
17261 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17262 : STRIP_UNARY (operands[4]))
17263 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17264 : STRIP_UNARY (operands[4]))
17265 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17266 : STRIP_UNARY (operands[3]))
17267 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17268 : STRIP_UNARY (operands[3])))) &&
17269 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17270 : (TARGET_SSE2)))
17271 : return -1;
17272 : return 6183; /* *avx512vl_vpternlogv2df_1 */
17273 :
17274 : case 12:
17275 : if (!(
17276 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17277 : ((64 == 64 || TARGET_AVX512VL
17278 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17279 : && ix86_pre_reload_split ()
17280 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17281 : STRIP_UNARY (operands[4]))
17282 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17283 : STRIP_UNARY (operands[4]))
17284 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17285 : STRIP_UNARY (operands[3]))
17286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17287 : STRIP_UNARY (operands[3])))) &&
17288 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17289 : (TARGET_AVX512F)))
17290 : return -1;
17291 : return 5889; /* *avx512bw_vpternlogv32hf_1 */
17292 :
17293 : case 13:
17294 : if (!(
17295 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17296 : ((32 == 64 || TARGET_AVX512VL
17297 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17298 : && ix86_pre_reload_split ()
17299 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17300 : STRIP_UNARY (operands[4]))
17301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17302 : STRIP_UNARY (operands[4]))
17303 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17304 : STRIP_UNARY (operands[3]))
17305 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17306 : STRIP_UNARY (operands[3])))) &&
17307 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17308 : (TARGET_AVX)))
17309 : return -1;
17310 : return 5916; /* *avx512vl_vpternlogv16hf_1 */
17311 :
17312 : case 14:
17313 : if (!
17314 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17315 : ((16 == 64 || TARGET_AVX512VL
17316 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17317 : && ix86_pre_reload_split ()
17318 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17319 : STRIP_UNARY (operands[4]))
17320 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17321 : STRIP_UNARY (operands[4]))
17322 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17323 : STRIP_UNARY (operands[3]))
17324 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17325 : STRIP_UNARY (operands[3])))))
17326 : return -1;
17327 : return 5943; /* *avx512fp16_vpternlogv8hf_1 */
17328 :
17329 : case 15:
17330 : if (!(
17331 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17332 : ((64 == 64 || TARGET_AVX512VL
17333 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17334 : && ix86_pre_reload_split ()
17335 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17336 : STRIP_UNARY (operands[4]))
17337 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17338 : STRIP_UNARY (operands[4]))
17339 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17340 : STRIP_UNARY (operands[3]))
17341 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17342 : STRIP_UNARY (operands[3])))) &&
17343 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17344 : (TARGET_AVX512F)))
17345 : return -1;
17346 : return 5970; /* *avx512bw_vpternlogv32bf_1 */
17347 :
17348 : case 16:
17349 : if (!(
17350 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17351 : ((32 == 64 || TARGET_AVX512VL
17352 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17353 : && ix86_pre_reload_split ()
17354 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17355 : STRIP_UNARY (operands[4]))
17356 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17357 : STRIP_UNARY (operands[4]))
17358 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17359 : STRIP_UNARY (operands[3]))
17360 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17361 : STRIP_UNARY (operands[3])))) &&
17362 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17363 : (TARGET_AVX)))
17364 : return -1;
17365 : return 5997; /* *avx512vl_vpternlogv16bf_1 */
17366 :
17367 : case 17:
17368 : if (!
17369 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17370 : ((16 == 64 || TARGET_AVX512VL
17371 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17372 : && ix86_pre_reload_split ()
17373 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17374 : STRIP_UNARY (operands[4]))
17375 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17376 : STRIP_UNARY (operands[4]))
17377 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17378 : STRIP_UNARY (operands[3]))
17379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17380 : STRIP_UNARY (operands[3])))))
17381 : return -1;
17382 : return 6024; /* *avx512vl_vpternlogv8bf_1 */
17383 :
17384 : case 18:
17385 : if (!(
17386 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17387 : ((64 == 64 || TARGET_AVX512VL
17388 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17389 : && ix86_pre_reload_split ()
17390 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17391 : STRIP_UNARY (operands[4]))
17392 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17393 : STRIP_UNARY (operands[4]))
17394 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17395 : STRIP_UNARY (operands[3]))
17396 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17397 : STRIP_UNARY (operands[3])))) &&
17398 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17399 : (TARGET_AVX512F)))
17400 : return -1;
17401 : return 6051; /* *avx512f_vpternlogv16sf_1 */
17402 :
17403 : case 19:
17404 : if (!(
17405 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17406 : ((32 == 64 || TARGET_AVX512VL
17407 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17408 : && ix86_pre_reload_split ()
17409 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17410 : STRIP_UNARY (operands[4]))
17411 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17412 : STRIP_UNARY (operands[4]))
17413 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17414 : STRIP_UNARY (operands[3]))
17415 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17416 : STRIP_UNARY (operands[3])))) &&
17417 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17418 : (TARGET_AVX)))
17419 : return -1;
17420 : return 6078; /* *avx512vl_vpternlogv8sf_1 */
17421 :
17422 : case 20:
17423 : if (!
17424 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17425 : ((16 == 64 || TARGET_AVX512VL
17426 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17427 : && ix86_pre_reload_split ()
17428 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17429 : STRIP_UNARY (operands[4]))
17430 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17431 : STRIP_UNARY (operands[4]))
17432 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17433 : STRIP_UNARY (operands[3]))
17434 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17435 : STRIP_UNARY (operands[3])))))
17436 : return -1;
17437 : return 6105; /* *avx512vl_vpternlogv4sf_1 */
17438 :
17439 : case 21:
17440 : if (!(
17441 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17442 : ((64 == 64 || TARGET_AVX512VL
17443 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17444 : && ix86_pre_reload_split ()
17445 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17446 : STRIP_UNARY (operands[4]))
17447 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17448 : STRIP_UNARY (operands[4]))
17449 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17450 : STRIP_UNARY (operands[3]))
17451 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17452 : STRIP_UNARY (operands[3])))) &&
17453 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17454 : (TARGET_AVX512F)))
17455 : return -1;
17456 : return 6132; /* *avx512f_vpternlogv8df_1 */
17457 :
17458 : case 22:
17459 : if (!(
17460 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17461 : ((32 == 64 || TARGET_AVX512VL
17462 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17463 : && ix86_pre_reload_split ()
17464 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17465 : STRIP_UNARY (operands[4]))
17466 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17467 : STRIP_UNARY (operands[4]))
17468 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17469 : STRIP_UNARY (operands[3]))
17470 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17471 : STRIP_UNARY (operands[3])))) &&
17472 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17473 : (TARGET_AVX)))
17474 : return -1;
17475 : return 6159; /* *avx512vl_vpternlogv4df_1 */
17476 :
17477 : case 23:
17478 : if (!(
17479 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17480 : ((16 == 64 || TARGET_AVX512VL
17481 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17482 : && ix86_pre_reload_split ()
17483 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17484 : STRIP_UNARY (operands[4]))
17485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17486 : STRIP_UNARY (operands[4]))
17487 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17488 : STRIP_UNARY (operands[3]))
17489 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17490 : STRIP_UNARY (operands[3])))) &&
17491 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17492 : (TARGET_SSE2)))
17493 : return -1;
17494 : return 6186; /* *avx512vl_vpternlogv2df_1 */
17495 :
17496 : case 24:
17497 : if (!(
17498 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17499 : ((64 == 64 || TARGET_AVX512VL
17500 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17501 : && ix86_pre_reload_split ()
17502 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17503 : STRIP_UNARY (operands[4]))
17504 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17505 : STRIP_UNARY (operands[4]))
17506 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17507 : STRIP_UNARY (operands[3]))
17508 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17509 : STRIP_UNARY (operands[3])))) &&
17510 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17511 : (TARGET_AVX512F)))
17512 : return -1;
17513 : return 5892; /* *avx512bw_vpternlogv32hf_1 */
17514 :
17515 : case 25:
17516 : if (!(
17517 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17518 : ((32 == 64 || TARGET_AVX512VL
17519 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17520 : && ix86_pre_reload_split ()
17521 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17522 : STRIP_UNARY (operands[4]))
17523 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17524 : STRIP_UNARY (operands[4]))
17525 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17526 : STRIP_UNARY (operands[3]))
17527 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17528 : STRIP_UNARY (operands[3])))) &&
17529 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17530 : (TARGET_AVX)))
17531 : return -1;
17532 : return 5919; /* *avx512vl_vpternlogv16hf_1 */
17533 :
17534 : case 26:
17535 : if (!
17536 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17537 : ((16 == 64 || TARGET_AVX512VL
17538 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17539 : && ix86_pre_reload_split ()
17540 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17541 : STRIP_UNARY (operands[4]))
17542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17543 : STRIP_UNARY (operands[4]))
17544 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17545 : STRIP_UNARY (operands[3]))
17546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17547 : STRIP_UNARY (operands[3])))))
17548 : return -1;
17549 : return 5946; /* *avx512fp16_vpternlogv8hf_1 */
17550 :
17551 : case 27:
17552 : if (!(
17553 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17554 : ((64 == 64 || TARGET_AVX512VL
17555 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17556 : && ix86_pre_reload_split ()
17557 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17558 : STRIP_UNARY (operands[4]))
17559 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17560 : STRIP_UNARY (operands[4]))
17561 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17562 : STRIP_UNARY (operands[3]))
17563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17564 : STRIP_UNARY (operands[3])))) &&
17565 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17566 : (TARGET_AVX512F)))
17567 : return -1;
17568 : return 5973; /* *avx512bw_vpternlogv32bf_1 */
17569 :
17570 : case 28:
17571 : if (!(
17572 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17573 : ((32 == 64 || TARGET_AVX512VL
17574 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17575 : && ix86_pre_reload_split ()
17576 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17577 : STRIP_UNARY (operands[4]))
17578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17579 : STRIP_UNARY (operands[4]))
17580 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17581 : STRIP_UNARY (operands[3]))
17582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17583 : STRIP_UNARY (operands[3])))) &&
17584 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17585 : (TARGET_AVX)))
17586 : return -1;
17587 : return 6000; /* *avx512vl_vpternlogv16bf_1 */
17588 :
17589 : case 29:
17590 : if (!
17591 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17592 : ((16 == 64 || TARGET_AVX512VL
17593 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17594 : && ix86_pre_reload_split ()
17595 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17596 : STRIP_UNARY (operands[4]))
17597 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17598 : STRIP_UNARY (operands[4]))
17599 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17600 : STRIP_UNARY (operands[3]))
17601 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17602 : STRIP_UNARY (operands[3])))))
17603 : return -1;
17604 : return 6027; /* *avx512vl_vpternlogv8bf_1 */
17605 :
17606 : case 30:
17607 : if (!(
17608 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17609 : ((64 == 64 || TARGET_AVX512VL
17610 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17611 : && ix86_pre_reload_split ()
17612 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17613 : STRIP_UNARY (operands[4]))
17614 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17615 : STRIP_UNARY (operands[4]))
17616 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17617 : STRIP_UNARY (operands[3]))
17618 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17619 : STRIP_UNARY (operands[3])))) &&
17620 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17621 : (TARGET_AVX512F)))
17622 : return -1;
17623 : return 6054; /* *avx512f_vpternlogv16sf_1 */
17624 :
17625 : case 31:
17626 : if (!(
17627 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17628 : ((32 == 64 || TARGET_AVX512VL
17629 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17630 : && ix86_pre_reload_split ()
17631 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17632 : STRIP_UNARY (operands[4]))
17633 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17634 : STRIP_UNARY (operands[4]))
17635 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17636 : STRIP_UNARY (operands[3]))
17637 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17638 : STRIP_UNARY (operands[3])))) &&
17639 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17640 : (TARGET_AVX)))
17641 : return -1;
17642 : return 6081; /* *avx512vl_vpternlogv8sf_1 */
17643 :
17644 : case 32:
17645 : if (!
17646 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17647 : ((16 == 64 || TARGET_AVX512VL
17648 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17649 : && ix86_pre_reload_split ()
17650 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17651 : STRIP_UNARY (operands[4]))
17652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17653 : STRIP_UNARY (operands[4]))
17654 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17655 : STRIP_UNARY (operands[3]))
17656 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17657 : STRIP_UNARY (operands[3])))))
17658 : return -1;
17659 : return 6108; /* *avx512vl_vpternlogv4sf_1 */
17660 :
17661 : case 33:
17662 : if (!(
17663 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17664 : ((64 == 64 || TARGET_AVX512VL
17665 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17666 : && ix86_pre_reload_split ()
17667 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17668 : STRIP_UNARY (operands[4]))
17669 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17670 : STRIP_UNARY (operands[4]))
17671 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17672 : STRIP_UNARY (operands[3]))
17673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17674 : STRIP_UNARY (operands[3])))) &&
17675 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17676 : (TARGET_AVX512F)))
17677 : return -1;
17678 : return 6135; /* *avx512f_vpternlogv8df_1 */
17679 :
17680 : case 34:
17681 : if (!(
17682 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17683 : ((32 == 64 || TARGET_AVX512VL
17684 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17685 : && ix86_pre_reload_split ()
17686 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17687 : STRIP_UNARY (operands[4]))
17688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17689 : STRIP_UNARY (operands[4]))
17690 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17691 : STRIP_UNARY (operands[3]))
17692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17693 : STRIP_UNARY (operands[3])))) &&
17694 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17695 : (TARGET_AVX)))
17696 : return -1;
17697 : return 6162; /* *avx512vl_vpternlogv4df_1 */
17698 :
17699 : case 35:
17700 : if (!(
17701 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17702 : ((16 == 64 || TARGET_AVX512VL
17703 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17704 : && ix86_pre_reload_split ()
17705 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17706 : STRIP_UNARY (operands[4]))
17707 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17708 : STRIP_UNARY (operands[4]))
17709 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17710 : STRIP_UNARY (operands[3]))
17711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17712 : STRIP_UNARY (operands[3])))) &&
17713 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17714 : (TARGET_SSE2)))
17715 : return -1;
17716 : return 6189; /* *avx512vl_vpternlogv2df_1 */
17717 :
17718 : case 36:
17719 : if (!(
17720 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17721 : ((64 == 64 || TARGET_AVX512VL
17722 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17723 : && ix86_pre_reload_split ()) &&
17724 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17725 : (TARGET_AVX512F)))
17726 : return -1;
17727 : return 6954; /* *avx512bw_vpternlogv32hf_3 */
17728 :
17729 : case 37:
17730 : if (!(
17731 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17732 : ((32 == 64 || TARGET_AVX512VL
17733 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17734 : && ix86_pre_reload_split ()) &&
17735 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17736 : (TARGET_AVX)))
17737 : return -1;
17738 : return 6963; /* *avx512vl_vpternlogv16hf_3 */
17739 :
17740 : case 38:
17741 : if (!
17742 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17743 : ((16 == 64 || TARGET_AVX512VL
17744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17745 : && ix86_pre_reload_split ()))
17746 : return -1;
17747 : return 6972; /* *avx512fp16_vpternlogv8hf_3 */
17748 :
17749 : case 39:
17750 : if (!(
17751 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17752 : ((64 == 64 || TARGET_AVX512VL
17753 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17754 : && ix86_pre_reload_split ()) &&
17755 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17756 : (TARGET_AVX512F)))
17757 : return -1;
17758 : return 6981; /* *avx512bw_vpternlogv32bf_3 */
17759 :
17760 : case 40:
17761 : if (!(
17762 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17763 : ((32 == 64 || TARGET_AVX512VL
17764 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17765 : && ix86_pre_reload_split ()) &&
17766 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17767 : (TARGET_AVX)))
17768 : return -1;
17769 : return 6990; /* *avx512vl_vpternlogv16bf_3 */
17770 :
17771 : case 41:
17772 : if (!
17773 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17774 : ((16 == 64 || TARGET_AVX512VL
17775 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17776 : && ix86_pre_reload_split ()))
17777 : return -1;
17778 : return 6999; /* *avx512vl_vpternlogv8bf_3 */
17779 :
17780 : case 42:
17781 : if (!(
17782 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17783 : ((64 == 64 || TARGET_AVX512VL
17784 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17785 : && ix86_pre_reload_split ()) &&
17786 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17787 : (TARGET_AVX512F)))
17788 : return -1;
17789 : return 7008; /* *avx512f_vpternlogv16sf_3 */
17790 :
17791 : case 43:
17792 : if (!(
17793 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17794 : ((32 == 64 || TARGET_AVX512VL
17795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17796 : && ix86_pre_reload_split ()) &&
17797 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17798 : (TARGET_AVX)))
17799 : return -1;
17800 : return 7017; /* *avx512vl_vpternlogv8sf_3 */
17801 :
17802 : case 44:
17803 : if (!
17804 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17805 : ((16 == 64 || TARGET_AVX512VL
17806 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17807 : && ix86_pre_reload_split ()))
17808 : return -1;
17809 : return 7026; /* *avx512vl_vpternlogv4sf_3 */
17810 :
17811 : case 45:
17812 : if (!(
17813 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17814 : ((64 == 64 || TARGET_AVX512VL
17815 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17816 : && ix86_pre_reload_split ()) &&
17817 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17818 : (TARGET_AVX512F)))
17819 : return -1;
17820 : return 7035; /* *avx512f_vpternlogv8df_3 */
17821 :
17822 : case 46:
17823 : if (!(
17824 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17825 : ((32 == 64 || TARGET_AVX512VL
17826 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17827 : && ix86_pre_reload_split ()) &&
17828 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17829 : (TARGET_AVX)))
17830 : return -1;
17831 : return 7044; /* *avx512vl_vpternlogv4df_3 */
17832 :
17833 : case 47:
17834 : if (!(
17835 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17836 : ((16 == 64 || TARGET_AVX512VL
17837 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17838 : && ix86_pre_reload_split ()) &&
17839 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17840 : (TARGET_SSE2)))
17841 : return -1;
17842 : return 7053; /* *avx512vl_vpternlogv2df_3 */
17843 :
17844 : default:
17845 : return -1;
17846 : }
17847 :
17848 : case AND:
17849 : switch (pattern544 (x2))
17850 : {
17851 : case 0:
17852 : if (!(
17853 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17854 : ((64 == 64 || TARGET_AVX512VL
17855 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17856 : && ix86_pre_reload_split ()
17857 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17858 : STRIP_UNARY (operands[4]))
17859 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17860 : STRIP_UNARY (operands[4]))
17861 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17862 : STRIP_UNARY (operands[3]))
17863 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17864 : STRIP_UNARY (operands[3])))) &&
17865 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17866 : (TARGET_AVX512F)))
17867 : return -1;
17868 : return 6534; /* *avx512bw_vpternlogv32hf_2 */
17869 :
17870 : case 1:
17871 : if (!(
17872 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17873 : ((32 == 64 || TARGET_AVX512VL
17874 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17875 : && ix86_pre_reload_split ()
17876 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17877 : STRIP_UNARY (operands[4]))
17878 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17879 : STRIP_UNARY (operands[4]))
17880 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17881 : STRIP_UNARY (operands[3]))
17882 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17883 : STRIP_UNARY (operands[3])))) &&
17884 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17885 : (TARGET_AVX)))
17886 : return -1;
17887 : return 6561; /* *avx512vl_vpternlogv16hf_2 */
17888 :
17889 : case 2:
17890 : if (!
17891 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17892 : ((16 == 64 || TARGET_AVX512VL
17893 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17894 : && ix86_pre_reload_split ()
17895 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17896 : STRIP_UNARY (operands[4]))
17897 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17898 : STRIP_UNARY (operands[4]))
17899 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17900 : STRIP_UNARY (operands[3]))
17901 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17902 : STRIP_UNARY (operands[3])))))
17903 : return -1;
17904 : return 6588; /* *avx512fp16_vpternlogv8hf_2 */
17905 :
17906 : case 3:
17907 : if (!(
17908 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17909 : ((64 == 64 || TARGET_AVX512VL
17910 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17911 : && ix86_pre_reload_split ()
17912 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17913 : STRIP_UNARY (operands[4]))
17914 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17915 : STRIP_UNARY (operands[4]))
17916 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17917 : STRIP_UNARY (operands[3]))
17918 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17919 : STRIP_UNARY (operands[3])))) &&
17920 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17921 : (TARGET_AVX512F)))
17922 : return -1;
17923 : return 6615; /* *avx512bw_vpternlogv32bf_2 */
17924 :
17925 : case 4:
17926 : if (!(
17927 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17928 : ((32 == 64 || TARGET_AVX512VL
17929 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17930 : && ix86_pre_reload_split ()
17931 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17932 : STRIP_UNARY (operands[4]))
17933 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17934 : STRIP_UNARY (operands[4]))
17935 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17936 : STRIP_UNARY (operands[3]))
17937 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17938 : STRIP_UNARY (operands[3])))) &&
17939 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17940 : (TARGET_AVX)))
17941 : return -1;
17942 : return 6642; /* *avx512vl_vpternlogv16bf_2 */
17943 :
17944 : case 5:
17945 : if (!
17946 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17947 : ((16 == 64 || TARGET_AVX512VL
17948 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17949 : && ix86_pre_reload_split ()
17950 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17951 : STRIP_UNARY (operands[4]))
17952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17953 : STRIP_UNARY (operands[4]))
17954 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17955 : STRIP_UNARY (operands[3]))
17956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17957 : STRIP_UNARY (operands[3])))))
17958 : return -1;
17959 : return 6669; /* *avx512vl_vpternlogv8bf_2 */
17960 :
17961 : case 6:
17962 : if (!(
17963 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17964 : ((64 == 64 || TARGET_AVX512VL
17965 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17966 : && ix86_pre_reload_split ()
17967 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17968 : STRIP_UNARY (operands[4]))
17969 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17970 : STRIP_UNARY (operands[4]))
17971 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17972 : STRIP_UNARY (operands[3]))
17973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17974 : STRIP_UNARY (operands[3])))) &&
17975 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17976 : (TARGET_AVX512F)))
17977 : return -1;
17978 : return 6696; /* *avx512f_vpternlogv16sf_2 */
17979 :
17980 : case 7:
17981 : if (!(
17982 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17983 : ((32 == 64 || TARGET_AVX512VL
17984 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17985 : && ix86_pre_reload_split ()
17986 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17987 : STRIP_UNARY (operands[4]))
17988 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17989 : STRIP_UNARY (operands[4]))
17990 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17991 : STRIP_UNARY (operands[3]))
17992 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17993 : STRIP_UNARY (operands[3])))) &&
17994 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17995 : (TARGET_AVX)))
17996 : return -1;
17997 : return 6723; /* *avx512vl_vpternlogv8sf_2 */
17998 :
17999 : case 8:
18000 : if (!
18001 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18002 : ((16 == 64 || TARGET_AVX512VL
18003 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18004 : && ix86_pre_reload_split ()
18005 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18006 : STRIP_UNARY (operands[4]))
18007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18008 : STRIP_UNARY (operands[4]))
18009 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18010 : STRIP_UNARY (operands[3]))
18011 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18012 : STRIP_UNARY (operands[3])))))
18013 : return -1;
18014 : return 6750; /* *avx512vl_vpternlogv4sf_2 */
18015 :
18016 : case 9:
18017 : if (!(
18018 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18019 : ((64 == 64 || TARGET_AVX512VL
18020 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18021 : && ix86_pre_reload_split ()
18022 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18023 : STRIP_UNARY (operands[4]))
18024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18025 : STRIP_UNARY (operands[4]))
18026 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18027 : STRIP_UNARY (operands[3]))
18028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18029 : STRIP_UNARY (operands[3])))) &&
18030 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18031 : (TARGET_AVX512F)))
18032 : return -1;
18033 : return 6777; /* *avx512f_vpternlogv8df_2 */
18034 :
18035 : case 10:
18036 : if (!(
18037 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18038 : ((32 == 64 || TARGET_AVX512VL
18039 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18040 : && ix86_pre_reload_split ()
18041 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18042 : STRIP_UNARY (operands[4]))
18043 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18044 : STRIP_UNARY (operands[4]))
18045 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18046 : STRIP_UNARY (operands[3]))
18047 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18048 : STRIP_UNARY (operands[3])))) &&
18049 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18050 : (TARGET_AVX)))
18051 : return -1;
18052 : return 6804; /* *avx512vl_vpternlogv4df_2 */
18053 :
18054 : case 11:
18055 : if (!(
18056 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18057 : ((16 == 64 || TARGET_AVX512VL
18058 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18059 : && ix86_pre_reload_split ()
18060 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18061 : STRIP_UNARY (operands[4]))
18062 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18063 : STRIP_UNARY (operands[4]))
18064 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18065 : STRIP_UNARY (operands[3]))
18066 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18067 : STRIP_UNARY (operands[3])))) &&
18068 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18069 : (TARGET_SSE2)))
18070 : return -1;
18071 : return 6831; /* *avx512vl_vpternlogv2df_2 */
18072 :
18073 : default:
18074 : return -1;
18075 : }
18076 :
18077 : case IOR:
18078 : switch (pattern544 (x2))
18079 : {
18080 : case 0:
18081 : if (!(
18082 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18083 : ((64 == 64 || TARGET_AVX512VL
18084 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18085 : && ix86_pre_reload_split ()
18086 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18087 : STRIP_UNARY (operands[4]))
18088 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18089 : STRIP_UNARY (operands[4]))
18090 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18091 : STRIP_UNARY (operands[3]))
18092 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18093 : STRIP_UNARY (operands[3])))) &&
18094 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18095 : (TARGET_AVX512F)))
18096 : return -1;
18097 : return 6537; /* *avx512bw_vpternlogv32hf_2 */
18098 :
18099 : case 1:
18100 : if (!(
18101 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18102 : ((32 == 64 || TARGET_AVX512VL
18103 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18104 : && ix86_pre_reload_split ()
18105 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18106 : STRIP_UNARY (operands[4]))
18107 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18108 : STRIP_UNARY (operands[4]))
18109 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18110 : STRIP_UNARY (operands[3]))
18111 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18112 : STRIP_UNARY (operands[3])))) &&
18113 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18114 : (TARGET_AVX)))
18115 : return -1;
18116 : return 6564; /* *avx512vl_vpternlogv16hf_2 */
18117 :
18118 : case 2:
18119 : if (!
18120 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18121 : ((16 == 64 || TARGET_AVX512VL
18122 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18123 : && ix86_pre_reload_split ()
18124 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18125 : STRIP_UNARY (operands[4]))
18126 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18127 : STRIP_UNARY (operands[4]))
18128 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18129 : STRIP_UNARY (operands[3]))
18130 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18131 : STRIP_UNARY (operands[3])))))
18132 : return -1;
18133 : return 6591; /* *avx512fp16_vpternlogv8hf_2 */
18134 :
18135 : case 3:
18136 : if (!(
18137 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18138 : ((64 == 64 || TARGET_AVX512VL
18139 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18140 : && ix86_pre_reload_split ()
18141 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18142 : STRIP_UNARY (operands[4]))
18143 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18144 : STRIP_UNARY (operands[4]))
18145 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18146 : STRIP_UNARY (operands[3]))
18147 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18148 : STRIP_UNARY (operands[3])))) &&
18149 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18150 : (TARGET_AVX512F)))
18151 : return -1;
18152 : return 6618; /* *avx512bw_vpternlogv32bf_2 */
18153 :
18154 : case 4:
18155 : if (!(
18156 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18157 : ((32 == 64 || TARGET_AVX512VL
18158 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18159 : && ix86_pre_reload_split ()
18160 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18161 : STRIP_UNARY (operands[4]))
18162 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18163 : STRIP_UNARY (operands[4]))
18164 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18165 : STRIP_UNARY (operands[3]))
18166 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18167 : STRIP_UNARY (operands[3])))) &&
18168 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18169 : (TARGET_AVX)))
18170 : return -1;
18171 : return 6645; /* *avx512vl_vpternlogv16bf_2 */
18172 :
18173 : case 5:
18174 : if (!
18175 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18176 : ((16 == 64 || TARGET_AVX512VL
18177 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18178 : && ix86_pre_reload_split ()
18179 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18180 : STRIP_UNARY (operands[4]))
18181 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18182 : STRIP_UNARY (operands[4]))
18183 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18184 : STRIP_UNARY (operands[3]))
18185 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18186 : STRIP_UNARY (operands[3])))))
18187 : return -1;
18188 : return 6672; /* *avx512vl_vpternlogv8bf_2 */
18189 :
18190 : case 6:
18191 : if (!(
18192 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18193 : ((64 == 64 || TARGET_AVX512VL
18194 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18195 : && ix86_pre_reload_split ()
18196 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18197 : STRIP_UNARY (operands[4]))
18198 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18199 : STRIP_UNARY (operands[4]))
18200 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18201 : STRIP_UNARY (operands[3]))
18202 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18203 : STRIP_UNARY (operands[3])))) &&
18204 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18205 : (TARGET_AVX512F)))
18206 : return -1;
18207 : return 6699; /* *avx512f_vpternlogv16sf_2 */
18208 :
18209 : case 7:
18210 : if (!(
18211 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18212 : ((32 == 64 || TARGET_AVX512VL
18213 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18214 : && ix86_pre_reload_split ()
18215 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18216 : STRIP_UNARY (operands[4]))
18217 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18218 : STRIP_UNARY (operands[4]))
18219 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18220 : STRIP_UNARY (operands[3]))
18221 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18222 : STRIP_UNARY (operands[3])))) &&
18223 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18224 : (TARGET_AVX)))
18225 : return -1;
18226 : return 6726; /* *avx512vl_vpternlogv8sf_2 */
18227 :
18228 : case 8:
18229 : if (!
18230 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18231 : ((16 == 64 || TARGET_AVX512VL
18232 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18233 : && ix86_pre_reload_split ()
18234 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18235 : STRIP_UNARY (operands[4]))
18236 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18237 : STRIP_UNARY (operands[4]))
18238 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18239 : STRIP_UNARY (operands[3]))
18240 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18241 : STRIP_UNARY (operands[3])))))
18242 : return -1;
18243 : return 6753; /* *avx512vl_vpternlogv4sf_2 */
18244 :
18245 : case 9:
18246 : if (!(
18247 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18248 : ((64 == 64 || TARGET_AVX512VL
18249 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18250 : && ix86_pre_reload_split ()
18251 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18252 : STRIP_UNARY (operands[4]))
18253 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18254 : STRIP_UNARY (operands[4]))
18255 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18256 : STRIP_UNARY (operands[3]))
18257 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18258 : STRIP_UNARY (operands[3])))) &&
18259 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18260 : (TARGET_AVX512F)))
18261 : return -1;
18262 : return 6780; /* *avx512f_vpternlogv8df_2 */
18263 :
18264 : case 10:
18265 : if (!(
18266 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18267 : ((32 == 64 || TARGET_AVX512VL
18268 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18269 : && ix86_pre_reload_split ()
18270 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18271 : STRIP_UNARY (operands[4]))
18272 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18273 : STRIP_UNARY (operands[4]))
18274 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18275 : STRIP_UNARY (operands[3]))
18276 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18277 : STRIP_UNARY (operands[3])))) &&
18278 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18279 : (TARGET_AVX)))
18280 : return -1;
18281 : return 6807; /* *avx512vl_vpternlogv4df_2 */
18282 :
18283 : case 11:
18284 : if (!(
18285 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18286 : ((16 == 64 || TARGET_AVX512VL
18287 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18288 : && ix86_pre_reload_split ()
18289 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18290 : STRIP_UNARY (operands[4]))
18291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18292 : STRIP_UNARY (operands[4]))
18293 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18294 : STRIP_UNARY (operands[3]))
18295 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18296 : STRIP_UNARY (operands[3])))) &&
18297 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18298 : (TARGET_SSE2)))
18299 : return -1;
18300 : return 6834; /* *avx512vl_vpternlogv2df_2 */
18301 :
18302 : default:
18303 : return -1;
18304 : }
18305 :
18306 : case XOR:
18307 : switch (pattern544 (x2))
18308 : {
18309 : case 0:
18310 : if (!(
18311 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18312 : ((64 == 64 || TARGET_AVX512VL
18313 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18314 : && ix86_pre_reload_split ()
18315 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18316 : STRIP_UNARY (operands[4]))
18317 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18318 : STRIP_UNARY (operands[4]))
18319 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18320 : STRIP_UNARY (operands[3]))
18321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18322 : STRIP_UNARY (operands[3])))) &&
18323 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18324 : (TARGET_AVX512F)))
18325 : return -1;
18326 : return 6540; /* *avx512bw_vpternlogv32hf_2 */
18327 :
18328 : case 1:
18329 : if (!(
18330 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18331 : ((32 == 64 || TARGET_AVX512VL
18332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18333 : && ix86_pre_reload_split ()
18334 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18335 : STRIP_UNARY (operands[4]))
18336 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18337 : STRIP_UNARY (operands[4]))
18338 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18339 : STRIP_UNARY (operands[3]))
18340 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18341 : STRIP_UNARY (operands[3])))) &&
18342 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18343 : (TARGET_AVX)))
18344 : return -1;
18345 : return 6567; /* *avx512vl_vpternlogv16hf_2 */
18346 :
18347 : case 2:
18348 : if (!
18349 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18350 : ((16 == 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 : return -1;
18362 : return 6594; /* *avx512fp16_vpternlogv8hf_2 */
18363 :
18364 : case 3:
18365 : if (!(
18366 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18367 : ((64 == 64 || TARGET_AVX512VL
18368 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18369 : && ix86_pre_reload_split ()
18370 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18371 : STRIP_UNARY (operands[4]))
18372 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18373 : STRIP_UNARY (operands[4]))
18374 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18375 : STRIP_UNARY (operands[3]))
18376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18377 : STRIP_UNARY (operands[3])))) &&
18378 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18379 : (TARGET_AVX512F)))
18380 : return -1;
18381 : return 6621; /* *avx512bw_vpternlogv32bf_2 */
18382 :
18383 : case 4:
18384 : if (!(
18385 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18386 : ((32 == 64 || TARGET_AVX512VL
18387 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18388 : && ix86_pre_reload_split ()
18389 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18390 : STRIP_UNARY (operands[4]))
18391 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18392 : STRIP_UNARY (operands[4]))
18393 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18394 : STRIP_UNARY (operands[3]))
18395 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18396 : STRIP_UNARY (operands[3])))) &&
18397 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18398 : (TARGET_AVX)))
18399 : return -1;
18400 : return 6648; /* *avx512vl_vpternlogv16bf_2 */
18401 :
18402 : case 5:
18403 : if (!
18404 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18405 : ((16 == 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 : return -1;
18417 : return 6675; /* *avx512vl_vpternlogv8bf_2 */
18418 :
18419 : case 6:
18420 : if (!(
18421 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18422 : ((64 == 64 || TARGET_AVX512VL
18423 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18424 : && ix86_pre_reload_split ()
18425 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18426 : STRIP_UNARY (operands[4]))
18427 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18428 : STRIP_UNARY (operands[4]))
18429 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18430 : STRIP_UNARY (operands[3]))
18431 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18432 : STRIP_UNARY (operands[3])))) &&
18433 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18434 : (TARGET_AVX512F)))
18435 : return -1;
18436 : return 6702; /* *avx512f_vpternlogv16sf_2 */
18437 :
18438 : case 7:
18439 : if (!(
18440 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18441 : ((32 == 64 || TARGET_AVX512VL
18442 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18443 : && ix86_pre_reload_split ()
18444 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18445 : STRIP_UNARY (operands[4]))
18446 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18447 : STRIP_UNARY (operands[4]))
18448 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18449 : STRIP_UNARY (operands[3]))
18450 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18451 : STRIP_UNARY (operands[3])))) &&
18452 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18453 : (TARGET_AVX)))
18454 : return -1;
18455 : return 6729; /* *avx512vl_vpternlogv8sf_2 */
18456 :
18457 : case 8:
18458 : if (!
18459 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18460 : ((16 == 64 || TARGET_AVX512VL
18461 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18462 : && ix86_pre_reload_split ()
18463 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18464 : STRIP_UNARY (operands[4]))
18465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18466 : STRIP_UNARY (operands[4]))
18467 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18468 : STRIP_UNARY (operands[3]))
18469 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18470 : STRIP_UNARY (operands[3])))))
18471 : return -1;
18472 : return 6756; /* *avx512vl_vpternlogv4sf_2 */
18473 :
18474 : case 9:
18475 : if (!(
18476 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18477 : ((64 == 64 || TARGET_AVX512VL
18478 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18479 : && ix86_pre_reload_split ()
18480 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18481 : STRIP_UNARY (operands[4]))
18482 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18483 : STRIP_UNARY (operands[4]))
18484 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18485 : STRIP_UNARY (operands[3]))
18486 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18487 : STRIP_UNARY (operands[3])))) &&
18488 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18489 : (TARGET_AVX512F)))
18490 : return -1;
18491 : return 6783; /* *avx512f_vpternlogv8df_2 */
18492 :
18493 : case 10:
18494 : if (!(
18495 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18496 : ((32 == 64 || TARGET_AVX512VL
18497 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18498 : && ix86_pre_reload_split ()
18499 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18500 : STRIP_UNARY (operands[4]))
18501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18502 : STRIP_UNARY (operands[4]))
18503 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18504 : STRIP_UNARY (operands[3]))
18505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18506 : STRIP_UNARY (operands[3])))) &&
18507 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18508 : (TARGET_AVX)))
18509 : return -1;
18510 : return 6810; /* *avx512vl_vpternlogv4df_2 */
18511 :
18512 : case 11:
18513 : if (!(
18514 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18515 : ((16 == 64 || TARGET_AVX512VL
18516 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18517 : && ix86_pre_reload_split ()
18518 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18519 : STRIP_UNARY (operands[4]))
18520 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18521 : STRIP_UNARY (operands[4]))
18522 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18523 : STRIP_UNARY (operands[3]))
18524 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18525 : STRIP_UNARY (operands[3])))) &&
18526 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18527 : (TARGET_SSE2)))
18528 : return -1;
18529 : return 6837; /* *avx512vl_vpternlogv2df_2 */
18530 :
18531 : default:
18532 : return -1;
18533 : }
18534 :
18535 : default:
18536 : return -1;
18537 : }
18538 : }
18539 :
18540 : int
18541 : recog_323 (rtx x1 ATTRIBUTE_UNUSED,
18542 : rtx_insn *insn ATTRIBUTE_UNUSED,
18543 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18544 : {
18545 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18546 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18547 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18548 : rtx x18, x19, x20, x21, x22;
18549 : int res ATTRIBUTE_UNUSED;
18550 : x2 = XEXP (x1, 0);
18551 : operands[0] = x2;
18552 : x3 = XEXP (x1, 1);
18553 : x4 = XEXP (x3, 0);
18554 : switch (GET_CODE (x4))
18555 : {
18556 : case VEC_SELECT:
18557 : return recog_274 (x1, insn, pnum_clobbers);
18558 :
18559 : case VEC_CONCAT:
18560 : x5 = XEXP (x4, 0);
18561 : switch (GET_CODE (x5))
18562 : {
18563 : case PLUS:
18564 : switch (pattern333 (x3,
18565 : PLUS))
18566 : {
18567 : case 0:
18568 : if (!
18569 : #line 3769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18570 : (TARGET_AVX))
18571 : return -1;
18572 : return 3226; /* avx_haddv4df3 */
18573 :
18574 : case 1:
18575 : if (!
18576 : #line 3951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18577 : (TARGET_SSE3))
18578 : return -1;
18579 : return 3234; /* sse3_haddv4sf3 */
18580 :
18581 : default:
18582 : return -1;
18583 : }
18584 :
18585 : case MINUS:
18586 : switch (pattern333 (x3,
18587 : MINUS))
18588 : {
18589 : case 0:
18590 : if (!
18591 : #line 3769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18592 : (TARGET_AVX))
18593 : return -1;
18594 : return 3227; /* avx_hsubv4df3 */
18595 :
18596 : case 1:
18597 : if (!
18598 : #line 3951 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18599 : (TARGET_SSE3))
18600 : return -1;
18601 : return 3235; /* sse3_hsubv4sf3 */
18602 :
18603 : default:
18604 : return -1;
18605 : }
18606 :
18607 : case VEC_CONCAT:
18608 : if (GET_MODE (x5) != E_V2SFmode)
18609 : return -1;
18610 : x6 = XEXP (x4, 1);
18611 : if (GET_CODE (x6) != VEC_CONCAT
18612 : || GET_MODE (x6) != E_V2SFmode)
18613 : return -1;
18614 : x7 = XEXP (x3, 1);
18615 : if (GET_CODE (x7) != VEC_CONCAT
18616 : || GET_MODE (x7) != E_V4SFmode
18617 : || pattern1043 (x7,
18618 : E_V2SFmode,
18619 : VEC_CONCAT) != 0
18620 : || !register_operand (operands[0], E_V8SFmode)
18621 : || GET_MODE (x3) != E_V8SFmode
18622 : || GET_MODE (x4) != E_V4SFmode
18623 : || pattern1566 (x3,
18624 : E_SFmode) != 0)
18625 : return -1;
18626 : x8 = XEXP (x5, 0);
18627 : switch (GET_CODE (x8))
18628 : {
18629 : case PLUS:
18630 : if (pattern1845 (x3,
18631 : PLUS) != 0
18632 : || !
18633 : #line 3922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18634 : (TARGET_AVX))
18635 : return -1;
18636 : return 3232; /* avx_haddv8sf3 */
18637 :
18638 : case MINUS:
18639 : if (pattern1845 (x3,
18640 : MINUS) != 0
18641 : || !
18642 : #line 3922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18643 : (TARGET_AVX))
18644 : return -1;
18645 : return 3233; /* avx_hsubv8sf3 */
18646 :
18647 : default:
18648 : return -1;
18649 : }
18650 :
18651 : case REG:
18652 : case SUBREG:
18653 : case MEM:
18654 : operands[1] = x5;
18655 : if (pattern418 (x3) != 0)
18656 : return -1;
18657 : switch (GET_MODE (operands[0]))
18658 : {
18659 : case E_V16SImode:
18660 : if (pattern1490 (x3,
18661 : E_V8SImode,
18662 : E_V4SImode,
18663 : E_V16SImode) != 0
18664 : || !
18665 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18666 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18667 : return -1;
18668 : return 10207; /* avx512f_si512_si */
18669 :
18670 : case E_V16SFmode:
18671 : if (pattern1490 (x3,
18672 : E_V8SFmode,
18673 : E_V4SFmode,
18674 : E_V16SFmode) != 0
18675 : || !
18676 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18677 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18678 : return -1;
18679 : return 10208; /* avx512f_ps512_ps */
18680 :
18681 : case E_V8DFmode:
18682 : if (pattern1490 (x3,
18683 : E_V4DFmode,
18684 : E_V2DFmode,
18685 : E_V8DFmode) != 0
18686 : || !
18687 : #line 31194 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18688 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18689 : return -1;
18690 : return 10209; /* avx512f_pd512_pd */
18691 :
18692 : default:
18693 : return -1;
18694 : }
18695 :
18696 : default:
18697 : return -1;
18698 : }
18699 :
18700 : case PLUS:
18701 : if (pattern102 (x3,
18702 : E_V2DFmode,
18703 : E_DFmode) != 0)
18704 : return -1;
18705 : x7 = XEXP (x3, 1);
18706 : x9 = XEXP (x7, 0);
18707 : x10 = XEXP (x9, 0);
18708 : operands[2] = x10;
18709 : if (!vector_operand (operands[2], E_V2DFmode)
18710 : || pattern1880 (x3) != 0
18711 : || !
18712 : #line 3809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18713 : (TARGET_SSE3
18714 : && INTVAL (operands[3]) != INTVAL (operands[4])
18715 : && INTVAL (operands[5]) != INTVAL (operands[6])))
18716 : return -1;
18717 : return 3228; /* *sse3_haddv2df3 */
18718 :
18719 : case MINUS:
18720 : if (pattern103 (x4,
18721 : E_DFmode) != 0)
18722 : return -1;
18723 : x7 = XEXP (x3, 1);
18724 : if (GET_CODE (x7) != MINUS
18725 : || GET_MODE (x7) != E_DFmode
18726 : || pattern1567 (x7,
18727 : E_DFmode) != 0
18728 : || !register_operand (operands[0], E_V2DFmode)
18729 : || GET_MODE (x3) != E_V2DFmode)
18730 : return -1;
18731 : x5 = XEXP (x4, 0);
18732 : x8 = XEXP (x5, 0);
18733 : operands[1] = x8;
18734 : if (!register_operand (operands[1], E_V2DFmode))
18735 : return -1;
18736 : x9 = XEXP (x7, 0);
18737 : x10 = XEXP (x9, 0);
18738 : operands[2] = x10;
18739 : if (!vector_operand (operands[2], E_V2DFmode))
18740 : return -1;
18741 : x6 = XEXP (x4, 1);
18742 : x11 = XEXP (x6, 0);
18743 : if (!rtx_equal_p (x11, operands[1]))
18744 : return -1;
18745 : x12 = XEXP (x7, 1);
18746 : x13 = XEXP (x12, 0);
18747 : if (!rtx_equal_p (x13, operands[2])
18748 : || !
18749 : #line 3835 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18750 : (TARGET_SSE3))
18751 : return -1;
18752 : return 3229; /* sse3_hsubv2df3 */
18753 :
18754 : case FLOAT:
18755 : switch (pattern187 (x3))
18756 : {
18757 : case 0:
18758 : if (!
18759 : #line 8082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18760 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18761 : return -1;
18762 : return 4572; /* *avx512fp16_vcvtdq2ph_v4si */
18763 :
18764 : case 1:
18765 : if (!
18766 : #line 8082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18767 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18768 : return -1;
18769 : return 4574; /* *avx512fp16_vcvtqq2ph_v4di */
18770 :
18771 : case 2:
18772 : if (!
18773 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18774 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18775 : return -1;
18776 : return 4584; /* *avx512fp16_vcvtqq2ph_v2di */
18777 :
18778 : case 3:
18779 : if (!
18780 : #line 9596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18781 : (TARGET_AVX512DQ && TARGET_AVX512VL))
18782 : return -1;
18783 : return 5028; /* *avx512dq_floatv2div2sf2 */
18784 :
18785 : default:
18786 : return -1;
18787 : }
18788 :
18789 : case UNSIGNED_FLOAT:
18790 : switch (pattern187 (x3))
18791 : {
18792 : case 0:
18793 : if (!
18794 : #line 8082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18795 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18796 : return -1;
18797 : return 4573; /* *avx512fp16_vcvtudq2ph_v4si */
18798 :
18799 : case 1:
18800 : if (!
18801 : #line 8082 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18802 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18803 : return -1;
18804 : return 4575; /* *avx512fp16_vcvtuqq2ph_v4di */
18805 :
18806 : case 2:
18807 : if (!
18808 : #line 8158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18809 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18810 : return -1;
18811 : return 4585; /* *avx512fp16_vcvtuqq2ph_v2di */
18812 :
18813 : case 3:
18814 : if (!
18815 : #line 9596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18816 : (TARGET_AVX512DQ && TARGET_AVX512VL))
18817 : return -1;
18818 : return 5029; /* *avx512dq_floatunsv2div2sf2 */
18819 :
18820 : default:
18821 : return -1;
18822 : }
18823 :
18824 : case VEC_MERGE:
18825 : return recog_273 (x1, insn, pnum_clobbers);
18826 :
18827 : case FLOAT_TRUNCATE:
18828 : x7 = XEXP (x3, 1);
18829 : switch (GET_CODE (x7))
18830 : {
18831 : case CONST_INT:
18832 : case CONST_DOUBLE:
18833 : case CONST_VECTOR:
18834 : operands[2] = x7;
18835 : x5 = XEXP (x4, 0);
18836 : operands[1] = x5;
18837 : switch (GET_MODE (operands[0]))
18838 : {
18839 : case E_V8HFmode:
18840 : if (!register_operand (operands[0], E_V8HFmode)
18841 : || GET_MODE (x3) != E_V8HFmode)
18842 : return -1;
18843 : switch (GET_MODE (x4))
18844 : {
18845 : case E_V4HFmode:
18846 : if (!const0_operand (operands[2], E_V4HFmode))
18847 : return -1;
18848 : switch (GET_MODE (operands[1]))
18849 : {
18850 : case E_V4DFmode:
18851 : if (!vector_operand (operands[1], E_V4DFmode)
18852 : || !
18853 : #line 8549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18854 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18855 : return -1;
18856 : return 4798; /* *avx512fp16_vcvtpd2ph_v4df */
18857 :
18858 : case E_V4SFmode:
18859 : if (!vector_operand (operands[1], E_V4SFmode)
18860 : || !
18861 : #line 8549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18862 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18863 : return -1;
18864 : return 4799; /* *avx512fp16_vcvtps2ph_v4sf */
18865 :
18866 : default:
18867 : return -1;
18868 : }
18869 :
18870 : case E_V2HFmode:
18871 : if (!vector_operand (operands[1], E_V2DFmode)
18872 : || !const0_operand (operands[2], E_V6HFmode)
18873 : || !
18874 : #line 8628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18875 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18876 : return -1;
18877 : return 4804; /* *avx512fp16_vcvtpd2ph_v2df */
18878 :
18879 : default:
18880 : return -1;
18881 : }
18882 :
18883 : case E_V4SFmode:
18884 : if (!register_operand (operands[0], E_V4SFmode)
18885 : || GET_MODE (x3) != E_V4SFmode
18886 : || GET_MODE (x4) != E_V2SFmode
18887 : || !vector_operand (operands[1], E_V2DFmode)
18888 : || !const0_operand (operands[2], E_V2SFmode)
18889 : || !
18890 : #line 10521 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18891 : (TARGET_SSE2))
18892 : return -1;
18893 : return 5203; /* *sse2_cvtpd2ps */
18894 :
18895 : case E_V8BFmode:
18896 : if (pattern186 (x3,
18897 : E_V4BFmode,
18898 : E_V4SFmode,
18899 : E_V8BFmode) != 0
18900 : || !
18901 : #line 32127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18902 : (TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)))
18903 : return -1;
18904 : return 10448; /* *vcvtneps2bf16_v4sf */
18905 :
18906 : default:
18907 : return -1;
18908 : }
18909 :
18910 : case FLOAT_TRUNCATE:
18911 : x5 = XEXP (x4, 0);
18912 : operands[2] = x5;
18913 : x9 = XEXP (x7, 0);
18914 : operands[1] = x9;
18915 : switch (GET_MODE (operands[0]))
18916 : {
18917 : case E_V32BFmode:
18918 : if (pattern798 (x3,
18919 : E_V16SFmode,
18920 : E_V16BFmode,
18921 : E_V32BFmode) != 0
18922 : || !
18923 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18924 : (TARGET_AVX512BF16))
18925 : return -1;
18926 : return 10442; /* avx512f_cvtne2ps2bf16_v32bf */
18927 :
18928 : case E_V16BFmode:
18929 : if (pattern798 (x3,
18930 : E_V8SFmode,
18931 : E_V8BFmode,
18932 : E_V16BFmode) != 0
18933 : || !(
18934 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18935 : (TARGET_AVX512BF16) &&
18936 : #line 32054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18937 : (TARGET_AVX512VL)))
18938 : return -1;
18939 : return 10444; /* avx512f_cvtne2ps2bf16_v16bf */
18940 :
18941 : case E_V8BFmode:
18942 : if (pattern798 (x3,
18943 : E_V4SFmode,
18944 : E_V4BFmode,
18945 : E_V8BFmode) != 0
18946 : || !(
18947 : #line 32088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18948 : (TARGET_AVX512BF16) &&
18949 : #line 32054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18950 : (TARGET_AVX512VL)))
18951 : return -1;
18952 : return 10446; /* avx512f_cvtne2ps2bf16_v8bf */
18953 :
18954 : case E_V32HFmode:
18955 : if (pattern799 (x3,
18956 : E_V16SFmode,
18957 : E_V16HFmode,
18958 : E_V32HFmode) != 0
18959 : || !
18960 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18961 : (TARGET_AVX10_2 && 1))
18962 : return -1;
18963 : return 10541; /* avx10_2_cvt2ps2phx_v32hf */
18964 :
18965 : case E_V16HFmode:
18966 : if (pattern799 (x3,
18967 : E_V8SFmode,
18968 : E_V8HFmode,
18969 : E_V16HFmode) != 0
18970 : || !(
18971 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18972 : (TARGET_AVX10_2 && 1) &&
18973 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18974 : (TARGET_AVX512VL)))
18975 : return -1;
18976 : return 10545; /* avx10_2_cvt2ps2phx_v16hf */
18977 :
18978 : case E_V8HFmode:
18979 : if (pattern799 (x3,
18980 : E_V4SFmode,
18981 : E_V4HFmode,
18982 : E_V8HFmode) != 0
18983 : || !(
18984 : #line 32789 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18985 : (TARGET_AVX10_2 && 1) &&
18986 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18987 : (TARGET_AVX512VL)))
18988 : return -1;
18989 : return 10547; /* avx10_2_cvt2ps2phx_v8hf */
18990 :
18991 : default:
18992 : return -1;
18993 : }
18994 :
18995 : default:
18996 : return -1;
18997 : }
18998 :
18999 : case UNSPEC:
19000 : return recog_275 (x1, insn, pnum_clobbers);
19001 :
19002 : case UNSIGNED_FIX:
19003 : if (GET_MODE (x4) != E_V2SImode)
19004 : return -1;
19005 : x7 = XEXP (x3, 1);
19006 : if (GET_CODE (x7) != CONST_VECTOR
19007 : || XVECLEN (x7, 0) != 2
19008 : || GET_MODE (x7) != E_V2SImode
19009 : || pattern278 (x3,
19010 : E_V2DFmode,
19011 : E_V4SImode,
19012 : 0) != 0
19013 : || !
19014 : #line 9982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19015 : (TARGET_AVX512VL))
19016 : return -1;
19017 : return 5082; /* *fixuns_truncv2dfv2si2 */
19018 :
19019 : case FIX:
19020 : if (GET_MODE (x4) != E_V2SImode)
19021 : return -1;
19022 : x7 = XEXP (x3, 1);
19023 : if (GET_CODE (x7) != CONST_VECTOR
19024 : || pattern514 (x7,
19025 : E_V2SImode,
19026 : 2) != 0
19027 : || !register_operand (operands[0], E_V4SImode)
19028 : || GET_MODE (x3) != E_V4SImode)
19029 : return -1;
19030 : x5 = XEXP (x4, 0);
19031 : operands[1] = x5;
19032 : if (!vector_operand (operands[1], E_V2DFmode)
19033 : || !
19034 : #line 10340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19035 : (TARGET_SSE2))
19036 : return -1;
19037 : return 5184; /* sse2_cvttpd2dq */
19038 :
19039 : case REG:
19040 : case SUBREG:
19041 : case MEM:
19042 : x7 = XEXP (x3, 1);
19043 : switch (GET_CODE (x7))
19044 : {
19045 : case VEC_SELECT:
19046 : res = recog_271 (x1, insn, pnum_clobbers);
19047 : if (res >= 0)
19048 : return res;
19049 : break;
19050 :
19051 : case CONST_INT:
19052 : case CONST_DOUBLE:
19053 : case CONST_VECTOR:
19054 : case REG:
19055 : case SUBREG:
19056 : case MEM:
19057 : res = recog_272 (x1, insn, pnum_clobbers);
19058 : if (res >= 0)
19059 : return res;
19060 : break;
19061 :
19062 : case UNSPEC:
19063 : if (XVECLEN (x7, 0) == 1
19064 : && XINT (x7, 1) == 148)
19065 : {
19066 : x14 = XVECEXP (x7, 0, 0);
19067 : if (x14 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
19068 : {
19069 : operands[1] = x4;
19070 : switch (GET_MODE (operands[0]))
19071 : {
19072 : case E_V8SImode:
19073 : if (pattern1044 (x3,
19074 : E_V4SImode,
19075 : E_V8SImode) == 0
19076 : &&
19077 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19078 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19079 : return 9654; /* avx_si256_si */
19080 : break;
19081 :
19082 : case E_V8SFmode:
19083 : if (pattern1044 (x3,
19084 : E_V4SFmode,
19085 : E_V8SFmode) == 0
19086 : &&
19087 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19088 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19089 : return 9655; /* avx_ps256_ps */
19090 : break;
19091 :
19092 : case E_V4DFmode:
19093 : if (pattern1044 (x3,
19094 : E_V2DFmode,
19095 : E_V4DFmode) == 0
19096 : &&
19097 : #line 29859 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19098 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19099 : return 9656; /* avx_pd256_pd */
19100 : break;
19101 :
19102 : case E_V16SImode:
19103 : if (pattern1044 (x3,
19104 : E_V8SImode,
19105 : E_V16SImode) == 0
19106 : &&
19107 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19108 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19109 : return 10210; /* avx512f_si512_256si */
19110 : break;
19111 :
19112 : case E_V16SFmode:
19113 : if (pattern1044 (x3,
19114 : E_V8SFmode,
19115 : E_V16SFmode) == 0
19116 : &&
19117 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19118 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19119 : return 10211; /* avx512f_ps512_256ps */
19120 : break;
19121 :
19122 : case E_V8DFmode:
19123 : if (pattern1044 (x3,
19124 : E_V4DFmode,
19125 : E_V8DFmode) == 0
19126 : &&
19127 : #line 31211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19128 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19129 : return 10212; /* avx512f_pd512_256pd */
19130 : break;
19131 :
19132 : default:
19133 : break;
19134 : }
19135 : }
19136 : }
19137 : break;
19138 :
19139 : default:
19140 : break;
19141 : }
19142 : if (!register_operand (operands[0], E_V4DImode)
19143 : || GET_MODE (x3) != E_V4DImode)
19144 : return -1;
19145 : if (GET_CODE (x4) == SUBREG
19146 : && known_eq (SUBREG_BYTE (x4), 0)
19147 : && GET_MODE (x4) == E_V2DImode)
19148 : {
19149 : x5 = XEXP (x4, 0);
19150 : if (pattern89 (x5,
19151 : E_V16QImode,
19152 : 120,
19153 : 1) == 0
19154 : && GET_CODE (x7) == SUBREG
19155 : && pattern1265 (x7) == 0)
19156 : {
19157 : x15 = XVECEXP (x5, 0, 0);
19158 : operands[1] = x15;
19159 : if (memory_operand (operands[1], E_V16QImode))
19160 : {
19161 : x9 = XEXP (x7, 0);
19162 : x16 = XVECEXP (x9, 0, 0);
19163 : if (rtx_equal_p (x16, operands[1])
19164 : &&
19165 : #line 28852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19166 : (TARGET_AVX2 && ix86_pre_reload_split ()))
19167 : return 9393; /* avx2_lddqu_inserti_to_bcasti */
19168 : }
19169 : }
19170 : }
19171 : operands[1] = x4;
19172 : if (!nonimmediate_operand (operands[1], E_V2DImode))
19173 : return -1;
19174 : if (rtx_equal_p (x7, operands[1])
19175 : &&
19176 : #line 28944 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19177 : (TARGET_AVX))
19178 : return 9411; /* avx_vbroadcastf128_v4di */
19179 : operands[2] = x7;
19180 : if (!nonimm_or_0_operand (operands[2], E_V2DImode)
19181 : || !
19182 : #line 29992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19183 : (TARGET_AVX
19184 : && (operands[2] == CONST0_RTX (V2DImode)
19185 : || !MEM_P (operands[1]))))
19186 : return -1;
19187 : return 9716; /* avx_vec_concatv4di */
19188 :
19189 : case ZERO_EXTEND:
19190 : switch (pattern188 (x3))
19191 : {
19192 : case 0:
19193 : if (!
19194 : #line 12496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19195 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
19196 : return -1;
19197 : return 5337; /* *vec_setv2di_0_zero_extendhi_1 */
19198 :
19199 : case 1:
19200 : if (!
19201 : #line 12610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19202 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19203 : return -1;
19204 : return 5349; /* *vec_setv2di_0_zero_extendsi_1 */
19205 :
19206 : default:
19207 : return -1;
19208 : }
19209 :
19210 : case SS_TRUNCATE:
19211 : x5 = XEXP (x4, 0);
19212 : operands[1] = x5;
19213 : x7 = XEXP (x3, 1);
19214 : switch (GET_CODE (x7))
19215 : {
19216 : case CONST_INT:
19217 : case CONST_DOUBLE:
19218 : case CONST_VECTOR:
19219 : operands[2] = x7;
19220 : switch (pattern516 (x3))
19221 : {
19222 : case 0:
19223 : if (
19224 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19225 : (TARGET_AVX512VL))
19226 : return 7322; /* avx512vl_ss_truncatev4div4qi2 */
19227 : break;
19228 :
19229 : case 1:
19230 : if (
19231 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19232 : (TARGET_AVX512VL))
19233 : return 7331; /* avx512vl_ss_truncatev4siv4qi2 */
19234 : break;
19235 :
19236 : case 2:
19237 : if (
19238 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19239 : (TARGET_AVX512VL))
19240 : return 7325; /* avx512vl_ss_truncatev2div2qi2 */
19241 : break;
19242 :
19243 : case 3:
19244 : if (
19245 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19246 : (TARGET_AVX512VL))
19247 : return 7328; /* avx512vl_ss_truncatev8siv8qi2 */
19248 : break;
19249 :
19250 : case 4:
19251 : if ((
19252 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19253 : (TARGET_AVX512VL) &&
19254 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19255 : (TARGET_AVX512BW)))
19256 : return 7334; /* avx512vl_ss_truncatev8hiv8qi2 */
19257 : break;
19258 :
19259 : case 5:
19260 : if ((
19261 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19262 : (TARGET_AVX512VL) &&
19263 : #line 16086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19264 : (TARGET_AVX2)))
19265 : return 7413; /* avx512vl_ss_truncatev4div4hi2 */
19266 : break;
19267 :
19268 : case 6:
19269 : if (
19270 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19271 : (TARGET_AVX512VL))
19272 : return 7419; /* avx512vl_ss_truncatev4siv4hi2 */
19273 : break;
19274 :
19275 : case 7:
19276 : if (
19277 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19278 : (TARGET_AVX512VL))
19279 : return 7416; /* avx512vl_ss_truncatev2div2hi2 */
19280 : break;
19281 :
19282 : case 8:
19283 : if (
19284 : #line 16361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19285 : (TARGET_AVX512VL))
19286 : return 7468; /* avx512vl_ss_truncatev2div2si2 */
19287 : break;
19288 :
19289 : default:
19290 : break;
19291 : }
19292 : if (GET_CODE (x7) != CONST_VECTOR
19293 : || pattern514 (x7,
19294 : E_V8QImode,
19295 : 8) != 0)
19296 : return -1;
19297 : x17 = XVECEXP (x7, 0, 2);
19298 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19299 : return -1;
19300 : x18 = XVECEXP (x7, 0, 3);
19301 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19302 : return -1;
19303 : x19 = XVECEXP (x7, 0, 4);
19304 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19305 : return -1;
19306 : x20 = XVECEXP (x7, 0, 5);
19307 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19308 : return -1;
19309 : x21 = XVECEXP (x7, 0, 6);
19310 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19311 : return -1;
19312 : x22 = XVECEXP (x7, 0, 7);
19313 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
19314 : || pattern620 (x3,
19315 : E_V8DImode,
19316 : E_V8QImode,
19317 : E_V16QImode) != 0
19318 : || !
19319 : #line 16497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19320 : (TARGET_AVX512F))
19321 : return -1;
19322 : return 7487; /* avx512f_ss_truncatev8div16qi2 */
19323 :
19324 : case SS_TRUNCATE:
19325 : x9 = XEXP (x7, 0);
19326 : operands[2] = x9;
19327 : switch (GET_MODE (operands[0]))
19328 : {
19329 : case E_V16QImode:
19330 : if (pattern804 (x3,
19331 : E_V8HImode,
19332 : E_V8QImode,
19333 : E_V16QImode) != 0
19334 : || !
19335 : #line 19679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19336 : (TARGET_SSE2 && 1 && 1))
19337 : return -1;
19338 : return 8376; /* sse2_packsswb */
19339 :
19340 : case E_V8HImode:
19341 : if (pattern804 (x3,
19342 : E_V4SImode,
19343 : E_V4HImode,
19344 : E_V8HImode) != 0
19345 : || !
19346 : #line 19773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19347 : (TARGET_SSE2 && 1 && 1))
19348 : return -1;
19349 : return 8382; /* sse2_packssdw */
19350 :
19351 : default:
19352 : return -1;
19353 : }
19354 :
19355 : default:
19356 : return -1;
19357 : }
19358 :
19359 : case TRUNCATE:
19360 : x5 = XEXP (x4, 0);
19361 : operands[1] = x5;
19362 : x7 = XEXP (x3, 1);
19363 : operands[2] = x7;
19364 : switch (pattern516 (x3))
19365 : {
19366 : case 0:
19367 : if (
19368 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19369 : (TARGET_AVX512VL))
19370 : return 7323; /* avx512vl_truncatev4div4qi2 */
19371 : break;
19372 :
19373 : case 1:
19374 : if (
19375 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19376 : (TARGET_AVX512VL))
19377 : return 7332; /* avx512vl_truncatev4siv4qi2 */
19378 : break;
19379 :
19380 : case 2:
19381 : if (
19382 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19383 : (TARGET_AVX512VL))
19384 : return 7326; /* avx512vl_truncatev2div2qi2 */
19385 : break;
19386 :
19387 : case 3:
19388 : if (
19389 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19390 : (TARGET_AVX512VL))
19391 : return 7329; /* avx512vl_truncatev8siv8qi2 */
19392 : break;
19393 :
19394 : case 4:
19395 : if ((
19396 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19397 : (TARGET_AVX512VL) &&
19398 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19399 : (TARGET_AVX512BW)))
19400 : return 7335; /* avx512vl_truncatev8hiv8qi2 */
19401 : break;
19402 :
19403 : case 5:
19404 : if ((
19405 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19406 : (TARGET_AVX512VL) &&
19407 : #line 16086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19408 : (TARGET_AVX2)))
19409 : return 7414; /* avx512vl_truncatev4div4hi2 */
19410 : break;
19411 :
19412 : case 6:
19413 : if (
19414 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19415 : (TARGET_AVX512VL))
19416 : return 7420; /* avx512vl_truncatev4siv4hi2 */
19417 : break;
19418 :
19419 : case 7:
19420 : if (
19421 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19422 : (TARGET_AVX512VL))
19423 : return 7417; /* avx512vl_truncatev2div2hi2 */
19424 : break;
19425 :
19426 : case 8:
19427 : if (
19428 : #line 16361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19429 : (TARGET_AVX512VL))
19430 : return 7469; /* avx512vl_truncatev2div2si2 */
19431 : break;
19432 :
19433 : default:
19434 : break;
19435 : }
19436 : if (!register_operand (operands[1], E_V8DImode)
19437 : || pattern517 (x3) != 0
19438 : || !
19439 : #line 16497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19440 : (TARGET_AVX512F))
19441 : return -1;
19442 : return 7488; /* avx512f_truncatev8div16qi2 */
19443 :
19444 : case US_TRUNCATE:
19445 : x5 = XEXP (x4, 0);
19446 : operands[1] = x5;
19447 : x7 = XEXP (x3, 1);
19448 : operands[2] = x7;
19449 : switch (pattern516 (x3))
19450 : {
19451 : case 0:
19452 : if (
19453 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19454 : (TARGET_AVX512VL))
19455 : return 7324; /* avx512vl_us_truncatev4div4qi2 */
19456 : break;
19457 :
19458 : case 1:
19459 : if (
19460 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19461 : (TARGET_AVX512VL))
19462 : return 7333; /* avx512vl_us_truncatev4siv4qi2 */
19463 : break;
19464 :
19465 : case 2:
19466 : if (
19467 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19468 : (TARGET_AVX512VL))
19469 : return 7327; /* avx512vl_us_truncatev2div2qi2 */
19470 : break;
19471 :
19472 : case 3:
19473 : if (
19474 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19475 : (TARGET_AVX512VL))
19476 : return 7330; /* avx512vl_us_truncatev8siv8qi2 */
19477 : break;
19478 :
19479 : case 4:
19480 : if ((
19481 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19482 : (TARGET_AVX512VL) &&
19483 : #line 15725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19484 : (TARGET_AVX512BW)))
19485 : return 7336; /* avx512vl_us_truncatev8hiv8qi2 */
19486 : break;
19487 :
19488 : case 5:
19489 : if ((
19490 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19491 : (TARGET_AVX512VL) &&
19492 : #line 16086 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19493 : (TARGET_AVX2)))
19494 : return 7415; /* avx512vl_us_truncatev4div4hi2 */
19495 : break;
19496 :
19497 : case 6:
19498 : if (
19499 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19500 : (TARGET_AVX512VL))
19501 : return 7421; /* avx512vl_us_truncatev4siv4hi2 */
19502 : break;
19503 :
19504 : case 7:
19505 : if (
19506 : #line 16124 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19507 : (TARGET_AVX512VL))
19508 : return 7418; /* avx512vl_us_truncatev2div2hi2 */
19509 : break;
19510 :
19511 : case 8:
19512 : if (
19513 : #line 16361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19514 : (TARGET_AVX512VL))
19515 : return 7470; /* avx512vl_us_truncatev2div2si2 */
19516 : break;
19517 :
19518 : default:
19519 : break;
19520 : }
19521 : if (!register_operand (operands[1], E_V8DImode)
19522 : || pattern517 (x3) != 0
19523 : || !
19524 : #line 16497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19525 : (TARGET_AVX512F))
19526 : return -1;
19527 : return 7489; /* avx512f_us_truncatev8div16qi2 */
19528 :
19529 : default:
19530 : return -1;
19531 : }
19532 : }
19533 :
19534 : int
19535 : recog_328 (rtx x1 ATTRIBUTE_UNUSED,
19536 : rtx_insn *insn ATTRIBUTE_UNUSED,
19537 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19538 : {
19539 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19540 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
19541 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
19542 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
19543 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
19544 : rtx x34, x35, x36, x37, x38, x39, x40, x41;
19545 : rtx x42, x43, x44, x45, x46, x47, x48, x49;
19546 : rtx x50, x51, x52, x53, x54, x55, x56, x57;
19547 : rtx x58, x59, x60, x61, x62, x63, x64, x65;
19548 : rtx x66, x67, x68, x69, x70, x71, x72, x73;
19549 : rtx x74, x75, x76;
19550 : int res ATTRIBUTE_UNUSED;
19551 : x2 = XEXP (x1, 0);
19552 : operands[0] = x2;
19553 : x3 = XEXP (x1, 1);
19554 : x4 = XEXP (x3, 0);
19555 : switch (GET_CODE (x4))
19556 : {
19557 : case REG:
19558 : case SUBREG:
19559 : case MEM:
19560 : switch (pattern54 (x3))
19561 : {
19562 : case 0:
19563 : if (!(
19564 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19565 : (TARGET_SSE2 && 1 && 1
19566 : && ix86_binary_operator_ok (SS_PLUS, V64QImode, operands)) &&
19567 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19568 : (TARGET_AVX512BW)))
19569 : return -1;
19570 : return 7577; /* *avx512bw_ssaddv64qi3 */
19571 :
19572 : case 1:
19573 : if (!(
19574 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19575 : (TARGET_SSE2 && 1 && 1
19576 : && ix86_binary_operator_ok (SS_PLUS, V32QImode, operands)) &&
19577 : #line 728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19578 : (TARGET_AVX2)))
19579 : return -1;
19580 : return 7585; /* *avx2_ssaddv32qi3 */
19581 :
19582 : case 2:
19583 : if (!
19584 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19585 : (TARGET_SSE2 && 1 && 1
19586 : && ix86_binary_operator_ok (SS_PLUS, V16QImode, operands)))
19587 : return -1;
19588 : return 7593; /* *sse2_ssaddv16qi3 */
19589 :
19590 : case 3:
19591 : if (!(
19592 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19593 : (TARGET_SSE2 && 1 && 1
19594 : && ix86_binary_operator_ok (SS_PLUS, V32HImode, operands)) &&
19595 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19596 : (TARGET_AVX512BW)))
19597 : return -1;
19598 : return 7601; /* *avx512bw_ssaddv32hi3 */
19599 :
19600 : case 4:
19601 : if (!(
19602 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19603 : (TARGET_SSE2 && 1 && 1
19604 : && ix86_binary_operator_ok (SS_PLUS, V16HImode, operands)) &&
19605 : #line 729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19606 : (TARGET_AVX2)))
19607 : return -1;
19608 : return 7609; /* *avx2_ssaddv16hi3 */
19609 :
19610 : case 5:
19611 : if (!
19612 : #line 16757 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19613 : (TARGET_SSE2 && 1 && 1
19614 : && ix86_binary_operator_ok (SS_PLUS, V8HImode, operands)))
19615 : return -1;
19616 : return 7617; /* *sse2_ssaddv8hi3 */
19617 :
19618 : default:
19619 : return -1;
19620 : }
19621 :
19622 : case VEC_SELECT:
19623 : switch (pattern206 (x3))
19624 : {
19625 : case 0:
19626 : if (!
19627 : #line 23090 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19628 : (TARGET_AVX2))
19629 : return -1;
19630 : return 8663; /* avx2_phaddswv16hi3 */
19631 :
19632 : case 1:
19633 : if (!
19634 : #line 23114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19635 : (TARGET_SSSE3))
19636 : return -1;
19637 : return 8667; /* ssse3_phaddswv8hi3 */
19638 :
19639 : default:
19640 : return -1;
19641 : }
19642 :
19643 : case MULT:
19644 : x5 = XEXP (x4, 0);
19645 : switch (GET_CODE (x5))
19646 : {
19647 : case ZERO_EXTEND:
19648 : x6 = XEXP (x5, 0);
19649 : if (GET_CODE (x6) != VEC_SELECT)
19650 : return -1;
19651 : x7 = XEXP (x6, 1);
19652 : if (GET_CODE (x7) != PARALLEL)
19653 : return -1;
19654 : x8 = XEXP (x4, 1);
19655 : if (GET_CODE (x8) != SIGN_EXTEND)
19656 : return -1;
19657 : x9 = XEXP (x8, 0);
19658 : if (GET_CODE (x9) != VEC_SELECT)
19659 : return -1;
19660 : x10 = XEXP (x9, 1);
19661 : if (GET_CODE (x10) != PARALLEL)
19662 : return -1;
19663 : x11 = XEXP (x3, 1);
19664 : if (GET_CODE (x11) != MULT)
19665 : return -1;
19666 : x12 = XEXP (x11, 0);
19667 : if (GET_CODE (x12) != ZERO_EXTEND)
19668 : return -1;
19669 : x13 = XEXP (x12, 0);
19670 : if (GET_CODE (x13) != VEC_SELECT)
19671 : return -1;
19672 : x14 = XEXP (x13, 1);
19673 : if (GET_CODE (x14) != PARALLEL)
19674 : return -1;
19675 : x15 = XEXP (x11, 1);
19676 : if (GET_CODE (x15) != SIGN_EXTEND)
19677 : return -1;
19678 : x16 = XEXP (x15, 0);
19679 : if (GET_CODE (x16) != VEC_SELECT)
19680 : return -1;
19681 : x17 = XEXP (x16, 1);
19682 : if (GET_CODE (x17) != PARALLEL)
19683 : return -1;
19684 : x18 = XEXP (x6, 0);
19685 : operands[1] = x18;
19686 : x19 = XEXP (x9, 0);
19687 : operands[2] = x19;
19688 : x20 = XEXP (x13, 0);
19689 : if (!rtx_equal_p (x20, operands[1]))
19690 : return -1;
19691 : x21 = XEXP (x16, 0);
19692 : if (!rtx_equal_p (x21, operands[2]))
19693 : return -1;
19694 : switch (XVECLEN (x7, 0))
19695 : {
19696 : case 16:
19697 : if (pattern1095 (x7,
19698 : 6,
19699 : 4,
19700 : 2,
19701 : 0) != 0)
19702 : return -1;
19703 : x22 = XVECEXP (x7, 0, 4);
19704 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
19705 : return -1;
19706 : x23 = XVECEXP (x7, 0, 5);
19707 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
19708 : return -1;
19709 : x24 = XVECEXP (x7, 0, 6);
19710 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
19711 : return -1;
19712 : x25 = XVECEXP (x7, 0, 7);
19713 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
19714 : return -1;
19715 : x26 = XVECEXP (x7, 0, 8);
19716 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19717 : return -1;
19718 : x27 = XVECEXP (x7, 0, 9);
19719 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19720 : return -1;
19721 : x28 = XVECEXP (x7, 0, 10);
19722 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19723 : return -1;
19724 : x29 = XVECEXP (x7, 0, 11);
19725 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19726 : return -1;
19727 : x30 = XVECEXP (x7, 0, 12);
19728 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19729 : return -1;
19730 : x31 = XVECEXP (x7, 0, 13);
19731 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19732 : return -1;
19733 : x32 = XVECEXP (x7, 0, 14);
19734 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19735 : return -1;
19736 : x33 = XVECEXP (x7, 0, 15);
19737 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
19738 : || pattern1322 (x10,
19739 : 16) != 0)
19740 : return -1;
19741 : x34 = XVECEXP (x10, 0, 8);
19742 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
19743 : return -1;
19744 : x35 = XVECEXP (x10, 0, 9);
19745 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
19746 : return -1;
19747 : x36 = XVECEXP (x10, 0, 10);
19748 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
19749 : return -1;
19750 : x37 = XVECEXP (x10, 0, 11);
19751 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
19752 : return -1;
19753 : x38 = XVECEXP (x10, 0, 12);
19754 : if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
19755 : return -1;
19756 : x39 = XVECEXP (x10, 0, 13);
19757 : if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
19758 : return -1;
19759 : x40 = XVECEXP (x10, 0, 14);
19760 : if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
19761 : return -1;
19762 : x41 = XVECEXP (x10, 0, 15);
19763 : if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 30]
19764 : || pattern1895 (x14,
19765 : 16) != 0)
19766 : return -1;
19767 : x42 = XVECEXP (x14, 0, 8);
19768 : if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19769 : return -1;
19770 : x43 = XVECEXP (x14, 0, 9);
19771 : if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19772 : return -1;
19773 : x44 = XVECEXP (x14, 0, 10);
19774 : if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19775 : return -1;
19776 : x45 = XVECEXP (x14, 0, 11);
19777 : if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19778 : return -1;
19779 : x46 = XVECEXP (x14, 0, 12);
19780 : if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19781 : return -1;
19782 : x47 = XVECEXP (x14, 0, 13);
19783 : if (x47 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19784 : return -1;
19785 : x48 = XVECEXP (x14, 0, 14);
19786 : if (x48 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19787 : return -1;
19788 : x49 = XVECEXP (x14, 0, 15);
19789 : if (x49 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
19790 : || pattern1912 (x17,
19791 : 16) != 0)
19792 : return -1;
19793 : x50 = XVECEXP (x17, 0, 8);
19794 : if (x50 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
19795 : return -1;
19796 : x51 = XVECEXP (x17, 0, 9);
19797 : if (x51 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
19798 : return -1;
19799 : x52 = XVECEXP (x17, 0, 10);
19800 : if (x52 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
19801 : return -1;
19802 : x53 = XVECEXP (x17, 0, 11);
19803 : if (x53 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
19804 : return -1;
19805 : x54 = XVECEXP (x17, 0, 12);
19806 : if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
19807 : return -1;
19808 : x55 = XVECEXP (x17, 0, 13);
19809 : if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
19810 : return -1;
19811 : x56 = XVECEXP (x17, 0, 14);
19812 : if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
19813 : return -1;
19814 : x57 = XVECEXP (x17, 0, 15);
19815 : if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
19816 : || pattern1918 (x3,
19817 : E_V32QImode,
19818 : E_V16QImode,
19819 : E_V16HImode) != 0
19820 : || GET_MODE (x8) != E_V16HImode
19821 : || GET_MODE (x9) != E_V16QImode
19822 : || !nonimmediate_operand (operands[2], E_V32QImode)
19823 : || pattern338 (x11,
19824 : E_V16QImode,
19825 : E_V16HImode) != 0
19826 : || !
19827 : #line 23306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19828 : (TARGET_AVX2))
19829 : return -1;
19830 : return 8680; /* avx2_pmaddubsw256 */
19831 :
19832 : case 8:
19833 : if (pattern1323 (x4) != 0
19834 : || pattern1895 (x14,
19835 : 8) != 0
19836 : || pattern1912 (x17,
19837 : 8) != 0
19838 : || pattern1918 (x3,
19839 : E_V16QImode,
19840 : E_V8QImode,
19841 : E_V8HImode) != 0
19842 : || GET_MODE (x8) != E_V8HImode
19843 : || GET_MODE (x9) != E_V8QImode
19844 : || !vector_operand (operands[2], E_V16QImode)
19845 : || pattern338 (x11,
19846 : E_V8QImode,
19847 : E_V8HImode) != 0
19848 : || !
19849 : #line 23395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19850 : (TARGET_SSSE3))
19851 : return -1;
19852 : return 8689; /* ssse3_pmaddubsw128 */
19853 :
19854 : default:
19855 : return -1;
19856 : }
19857 :
19858 : case REG:
19859 : case SUBREG:
19860 : case MEM:
19861 : switch (pattern336 (x3))
19862 : {
19863 : case 0:
19864 : if (!
19865 : #line 26953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19866 : (TARGET_XOP))
19867 : return -1;
19868 : return 9071; /* xop_pmacssww */
19869 :
19870 : case 1:
19871 : if (!
19872 : #line 26953 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19873 : (TARGET_XOP))
19874 : return -1;
19875 : return 9073; /* xop_pmacssdd */
19876 :
19877 : default:
19878 : return -1;
19879 : }
19880 :
19881 : case SIGN_EXTEND:
19882 : if (pattern334 (x4) != 0)
19883 : return -1;
19884 : x11 = XEXP (x3, 1);
19885 : operands[3] = x11;
19886 : x6 = XEXP (x5, 0);
19887 : x7 = XEXP (x6, 1);
19888 : switch (XVECLEN (x7, 0))
19889 : {
19890 : case 2:
19891 : if (pattern1324 (x3) != 0)
19892 : return -1;
19893 : x8 = XEXP (x4, 1);
19894 : if (GET_MODE (x8) != E_V2DImode)
19895 : return -1;
19896 : x9 = XEXP (x8, 0);
19897 : if (GET_MODE (x9) != E_V2SImode
19898 : || !nonimmediate_operand (operands[2], E_V4SImode))
19899 : return -1;
19900 : switch (pattern1859 (x4))
19901 : {
19902 : case 0:
19903 : if (!
19904 : #line 26972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19905 : (TARGET_XOP))
19906 : return -1;
19907 : return 9075; /* xop_pmacssdql */
19908 :
19909 : case 1:
19910 : if (!
19911 : #line 26991 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19912 : (TARGET_XOP))
19913 : return -1;
19914 : return 9077; /* xop_pmacssdqh */
19915 :
19916 : default:
19917 : return -1;
19918 : }
19919 :
19920 : case 4:
19921 : if (pattern1095 (x7,
19922 : 7,
19923 : 5,
19924 : 3,
19925 : 1) != 0)
19926 : return -1;
19927 : x8 = XEXP (x4, 1);
19928 : x9 = XEXP (x8, 0);
19929 : x10 = XEXP (x9, 1);
19930 : if (pattern1638 (x10,
19931 : 7,
19932 : 5,
19933 : 3,
19934 : 1) != 0
19935 : || !register_operand (operands[0], E_V4SImode)
19936 : || GET_MODE (x3) != E_V4SImode
19937 : || GET_MODE (x4) != E_V4SImode
19938 : || GET_MODE (x5) != E_V4SImode
19939 : || GET_MODE (x6) != E_V4HImode
19940 : || !nonimmediate_operand (operands[1], E_V8HImode)
19941 : || GET_MODE (x8) != E_V4SImode
19942 : || GET_MODE (x9) != E_V4HImode
19943 : || !nonimmediate_operand (operands[2], E_V8HImode)
19944 : || !register_operand (operands[3], E_V4SImode)
19945 : || !
19946 : #line 27013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19947 : (TARGET_XOP))
19948 : return -1;
19949 : return 9079; /* xop_pmacsswd */
19950 :
19951 : default:
19952 : return -1;
19953 : }
19954 :
19955 : default:
19956 : return -1;
19957 : }
19958 :
19959 : case PLUS:
19960 : if (GET_MODE (x4) != E_V4SImode)
19961 : return -1;
19962 : x5 = XEXP (x4, 0);
19963 : if (GET_CODE (x5) != MULT
19964 : || pattern337 (x5) != 0)
19965 : return -1;
19966 : x58 = XEXP (x5, 1);
19967 : if (GET_MODE (x58) != E_V4SImode)
19968 : return -1;
19969 : x59 = XEXP (x58, 0);
19970 : if (GET_CODE (x59) != VEC_SELECT
19971 : || GET_MODE (x59) != E_V4HImode)
19972 : return -1;
19973 : x60 = XEXP (x59, 1);
19974 : if (GET_CODE (x60) != PARALLEL
19975 : || XVECLEN (x60, 0) != 4)
19976 : return -1;
19977 : x61 = XVECEXP (x60, 0, 0);
19978 : if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19979 : return -1;
19980 : x62 = XVECEXP (x60, 0, 1);
19981 : if (x62 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
19982 : return -1;
19983 : x63 = XVECEXP (x60, 0, 2);
19984 : if (x63 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
19985 : return -1;
19986 : x64 = XVECEXP (x60, 0, 3);
19987 : if (x64 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
19988 : return -1;
19989 : x8 = XEXP (x4, 1);
19990 : if (GET_CODE (x8) != MULT
19991 : || GET_MODE (x8) != E_V4SImode)
19992 : return -1;
19993 : x9 = XEXP (x8, 0);
19994 : if (GET_CODE (x9) != SIGN_EXTEND
19995 : || GET_MODE (x9) != E_V4SImode)
19996 : return -1;
19997 : x19 = XEXP (x9, 0);
19998 : if (GET_CODE (x19) != VEC_SELECT
19999 : || GET_MODE (x19) != E_V4HImode)
20000 : return -1;
20001 : x65 = XEXP (x19, 1);
20002 : if (GET_CODE (x65) != PARALLEL
20003 : || XVECLEN (x65, 0) != 4)
20004 : return -1;
20005 : x66 = XVECEXP (x65, 0, 0);
20006 : if (x66 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20007 : return -1;
20008 : x67 = XVECEXP (x65, 0, 1);
20009 : if (x67 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20010 : return -1;
20011 : x68 = XVECEXP (x65, 0, 2);
20012 : if (x68 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20013 : return -1;
20014 : x69 = XVECEXP (x65, 0, 3);
20015 : if (x69 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
20016 : return -1;
20017 : x70 = XEXP (x8, 1);
20018 : if (GET_CODE (x70) != SIGN_EXTEND
20019 : || GET_MODE (x70) != E_V4SImode)
20020 : return -1;
20021 : x71 = XEXP (x70, 0);
20022 : if (GET_CODE (x71) != VEC_SELECT
20023 : || GET_MODE (x71) != E_V4HImode)
20024 : return -1;
20025 : x72 = XEXP (x71, 1);
20026 : if (GET_CODE (x72) != PARALLEL
20027 : || XVECLEN (x72, 0) != 4)
20028 : return -1;
20029 : x73 = XVECEXP (x72, 0, 0);
20030 : if (x73 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
20031 : return -1;
20032 : x74 = XVECEXP (x72, 0, 1);
20033 : if (x74 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
20034 : return -1;
20035 : x75 = XVECEXP (x72, 0, 2);
20036 : if (x75 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
20037 : return -1;
20038 : x76 = XVECEXP (x72, 0, 3);
20039 : if (x76 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
20040 : || !register_operand (operands[0], E_V4SImode)
20041 : || GET_MODE (x3) != E_V4SImode
20042 : || pattern1915 (x3) != 0
20043 : || !
20044 : #line 27046 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20045 : (TARGET_XOP))
20046 : return -1;
20047 : return 9081; /* xop_pmadcsswd */
20048 :
20049 : default:
20050 : return -1;
20051 : }
20052 : }
20053 :
20054 : int
20055 : recog_332 (rtx x1 ATTRIBUTE_UNUSED,
20056 : rtx_insn *insn ATTRIBUTE_UNUSED,
20057 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20058 : {
20059 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20060 : rtx x2, x3, x4, x5;
20061 : int res ATTRIBUTE_UNUSED;
20062 : x2 = XEXP (x1, 0);
20063 : operands[0] = x2;
20064 : x3 = XEXP (x1, 1);
20065 : x4 = XEXP (x3, 0);
20066 : operands[1] = x4;
20067 : x5 = XEXP (x3, 1);
20068 : operands[2] = x5;
20069 : switch (GET_MODE (operands[0]))
20070 : {
20071 : case E_V16HImode:
20072 : if (!register_operand (operands[0], E_V16HImode)
20073 : || GET_MODE (x3) != E_V16HImode)
20074 : return -1;
20075 : if (nonimmediate_operand (operands[1], E_V16HImode)
20076 : && nonmemory_operand (operands[2], E_DImode)
20077 : && (
20078 : #line 17536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20079 : (TARGET_AVX512VL) &&
20080 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20081 : (TARGET_AVX512BW)))
20082 : return 7675; /* *ashrv16hi3 */
20083 : if (!register_operand (operands[1], E_V16HImode))
20084 : return -1;
20085 : if (nonmemory_operand (operands[2], E_DImode)
20086 : && (
20087 : #line 17550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20088 : (TARGET_SSE2) &&
20089 : #line 732 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20090 : (TARGET_AVX2)))
20091 : return 7685; /* ashrv16hi3 */
20092 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20093 : || !(
20094 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20095 : (TARGET_AVX512BW) &&
20096 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20097 : (TARGET_AVX512VL)))
20098 : return -1;
20099 : return 9671; /* avx512vl_ashrvv16hi */
20100 :
20101 : case E_V8HImode:
20102 : if (!register_operand (operands[0], E_V8HImode)
20103 : || GET_MODE (x3) != E_V8HImode)
20104 : return -1;
20105 : if (nonimmediate_operand (operands[1], E_V8HImode)
20106 : && nonmemory_operand (operands[2], E_DImode)
20107 : && (
20108 : #line 17536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20109 : (TARGET_AVX512VL) &&
20110 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20111 : (TARGET_AVX512BW)))
20112 : return 7677; /* *ashrv8hi3 */
20113 : if (!register_operand (operands[1], E_V8HImode))
20114 : return -1;
20115 : if (nonmemory_operand (operands[2], E_DImode)
20116 : &&
20117 : #line 17550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20118 : (TARGET_SSE2))
20119 : return 7686; /* ashrv8hi3 */
20120 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20121 : || !(
20122 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20123 : (TARGET_AVX512BW) &&
20124 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20125 : (TARGET_AVX512VL)))
20126 : return -1;
20127 : return 9669; /* avx512vl_ashrvv8hi */
20128 :
20129 : case E_V8SImode:
20130 : if (!register_operand (operands[0], E_V8SImode)
20131 : || GET_MODE (x3) != E_V8SImode)
20132 : return -1;
20133 : if (nonimmediate_operand (operands[1], E_V8SImode)
20134 : && nonmemory_operand (operands[2], E_DImode)
20135 : &&
20136 : #line 17536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20137 : (TARGET_AVX512VL))
20138 : return 7679; /* *ashrv8si3 */
20139 : if (!register_operand (operands[1], E_V8SImode))
20140 : return -1;
20141 : if (nonmemory_operand (operands[2], E_DImode)
20142 : && (
20143 : #line 17550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20144 : (TARGET_SSE2) &&
20145 : #line 733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20146 : (TARGET_AVX2)))
20147 : return 7687; /* ashrv8si3 */
20148 : if (!nonimmediate_operand (operands[2], E_V8SImode)
20149 : || !
20150 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20151 : (TARGET_AVX2 && 1))
20152 : return -1;
20153 : return 9659; /* avx2_ashrvv8si */
20154 :
20155 : case E_V4SImode:
20156 : if (!register_operand (operands[0], E_V4SImode)
20157 : || GET_MODE (x3) != E_V4SImode)
20158 : return -1;
20159 : if (nonimmediate_operand (operands[1], E_V4SImode)
20160 : && nonmemory_operand (operands[2], E_DImode)
20161 : &&
20162 : #line 17536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20163 : (TARGET_AVX512VL))
20164 : return 7681; /* *ashrv4si3 */
20165 : if (!register_operand (operands[1], E_V4SImode))
20166 : return -1;
20167 : if (nonmemory_operand (operands[2], E_DImode)
20168 : &&
20169 : #line 17550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20170 : (TARGET_SSE2))
20171 : return 7688; /* ashrv4si3 */
20172 : if (!nonimmediate_operand (operands[2], E_V4SImode)
20173 : || !
20174 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20175 : (TARGET_AVX2 && 1))
20176 : return -1;
20177 : return 9657; /* avx2_ashrvv4si */
20178 :
20179 : case E_V2DImode:
20180 : if (!register_operand (operands[0], E_V2DImode)
20181 : || GET_MODE (x3) != E_V2DImode)
20182 : return -1;
20183 : if (nonimmediate_operand (operands[1], E_V2DImode)
20184 : && nonmemory_operand (operands[2], E_DImode)
20185 : &&
20186 : #line 17536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20187 : (TARGET_AVX512VL))
20188 : return 7683; /* *ashrv2di3 */
20189 : if (!register_operand (operands[1], E_V2DImode))
20190 : return -1;
20191 : if (nonmemory_operand (operands[2], E_DImode)
20192 : &&
20193 : #line 27909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20194 : (TARGET_SSE2 && !TARGET_AVX512VL && ix86_pre_reload_split ()))
20195 : return 9137; /* *ashrv2di3 */
20196 : if (!nonimmediate_operand (operands[2], E_V2DImode)
20197 : || !(
20198 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20199 : (TARGET_AVX2 && 1) &&
20200 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20201 : (TARGET_AVX512VL)))
20202 : return -1;
20203 : return 9663; /* avx2_ashrvv2di */
20204 :
20205 : case E_V32HImode:
20206 : if (!register_operand (operands[0], E_V32HImode)
20207 : || GET_MODE (x3) != E_V32HImode)
20208 : return -1;
20209 : if (nonimmediate_operand (operands[1], E_V32HImode)
20210 : && nonmemory_operand (operands[2], E_DImode)
20211 : && (
20212 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20213 : (TARGET_AVX512F) &&
20214 : #line 776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20215 : (TARGET_AVX512BW)))
20216 : return 7693; /* *ashrv32hi3 */
20217 : if (!register_operand (operands[1], E_V32HImode)
20218 : || !nonimmediate_operand (operands[2], E_V32HImode)
20219 : || !
20220 : #line 29959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20221 : (TARGET_AVX512BW))
20222 : return -1;
20223 : return 9673; /* avx512bw_ashrvv32hi */
20224 :
20225 : case E_V4DImode:
20226 : if (!register_operand (operands[0], E_V4DImode)
20227 : || GET_MODE (x3) != E_V4DImode)
20228 : return -1;
20229 : if (nonimmediate_operand (operands[1], E_V4DImode)
20230 : && nonmemory_operand (operands[2], E_DImode)
20231 : && (
20232 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20233 : (TARGET_AVX512F) &&
20234 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20235 : (TARGET_AVX512VL)))
20236 : return 7695; /* *ashrv4di3 */
20237 : if (!register_operand (operands[1], E_V4DImode)
20238 : || !nonimmediate_operand (operands[2], E_V4DImode)
20239 : || !(
20240 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20241 : (TARGET_AVX2 && 1) &&
20242 : #line 671 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20243 : (TARGET_AVX512VL)))
20244 : return -1;
20245 : return 9665; /* avx2_ashrvv4di */
20246 :
20247 : case E_V16SImode:
20248 : if (!register_operand (operands[0], E_V16SImode)
20249 : || GET_MODE (x3) != E_V16SImode)
20250 : return -1;
20251 : if (nonimmediate_operand (operands[1], E_V16SImode)
20252 : && nonmemory_operand (operands[2], E_DImode)
20253 : &&
20254 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20255 : (TARGET_AVX512F))
20256 : return 7697; /* *ashrv16si3 */
20257 : if (!register_operand (operands[1], E_V16SImode)
20258 : || !nonimmediate_operand (operands[2], E_V16SImode)
20259 : || !(
20260 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20261 : (TARGET_AVX2 && 1) &&
20262 : #line 670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20263 : (TARGET_AVX512F)))
20264 : return -1;
20265 : return 9661; /* avx512f_ashrvv16si */
20266 :
20267 : case E_V8DImode:
20268 : if (!register_operand (operands[0], E_V8DImode)
20269 : || GET_MODE (x3) != E_V8DImode)
20270 : return -1;
20271 : if (nonimmediate_operand (operands[1], E_V8DImode)
20272 : && nonmemory_operand (operands[2], E_DImode)
20273 : &&
20274 : #line 17580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20275 : (TARGET_AVX512F))
20276 : return 7699; /* *ashrv8di3 */
20277 : if (!register_operand (operands[1], E_V8DImode)
20278 : || !nonimmediate_operand (operands[2], E_V8DImode)
20279 : || !(
20280 : #line 29948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20281 : (TARGET_AVX2 && 1) &&
20282 : #line 672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20283 : (TARGET_AVX512F)))
20284 : return -1;
20285 : return 9667; /* avx512f_ashrvv8di */
20286 :
20287 : case E_V1TImode:
20288 : if (pattern31 (x3) != 0
20289 : || !
20290 : #line 17954 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20291 : (TARGET_SSE2 && TARGET_64BIT
20292 : && ix86_pre_reload_split ()))
20293 : return -1;
20294 : return 7764; /* *ashrv1ti3_internal */
20295 :
20296 : default:
20297 : return -1;
20298 : }
20299 : }
20300 :
20301 : int
20302 : recog_335 (rtx x1 ATTRIBUTE_UNUSED,
20303 : rtx_insn *insn ATTRIBUTE_UNUSED,
20304 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20305 : {
20306 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20307 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
20308 : rtx x10, x11;
20309 : int res ATTRIBUTE_UNUSED;
20310 : x2 = XEXP (x1, 0);
20311 : operands[0] = x2;
20312 : x3 = XEXP (x1, 1);
20313 : x4 = XEXP (x3, 0);
20314 : switch (GET_CODE (x4))
20315 : {
20316 : case REG:
20317 : case SUBREG:
20318 : case MEM:
20319 : operands[3] = x4;
20320 : x5 = XEXP (x3, 1);
20321 : operands[1] = x5;
20322 : x6 = XEXP (x3, 2);
20323 : operands[2] = x6;
20324 : switch (GET_MODE (operands[0]))
20325 : {
20326 : case E_V32QImode:
20327 : if (pattern821 (x3,
20328 : E_V32QImode) != 0
20329 : || !
20330 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20331 : (TARGET_XOP))
20332 : return -1;
20333 : return 9082; /* xop_pcmov_v32qi256 */
20334 :
20335 : case E_V16QImode:
20336 : if (pattern821 (x3,
20337 : E_V16QImode) != 0
20338 : || !
20339 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20340 : (TARGET_XOP))
20341 : return -1;
20342 : return 9083; /* xop_pcmov_v16qi */
20343 :
20344 : case E_V16HImode:
20345 : if (pattern821 (x3,
20346 : E_V16HImode) != 0
20347 : || !
20348 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20349 : (TARGET_XOP))
20350 : return -1;
20351 : return 9084; /* xop_pcmov_v16hi256 */
20352 :
20353 : case E_V8HImode:
20354 : if (pattern821 (x3,
20355 : E_V8HImode) != 0
20356 : || !
20357 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20358 : (TARGET_XOP))
20359 : return -1;
20360 : return 9085; /* xop_pcmov_v8hi */
20361 :
20362 : case E_V8SImode:
20363 : if (pattern821 (x3,
20364 : E_V8SImode) != 0
20365 : || !
20366 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20367 : (TARGET_XOP))
20368 : return -1;
20369 : return 9086; /* xop_pcmov_v8si256 */
20370 :
20371 : case E_V4SImode:
20372 : if (pattern821 (x3,
20373 : E_V4SImode) != 0
20374 : || !
20375 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20376 : (TARGET_XOP))
20377 : return -1;
20378 : return 9087; /* xop_pcmov_v4si */
20379 :
20380 : case E_V4DImode:
20381 : if (pattern821 (x3,
20382 : E_V4DImode) != 0
20383 : || !
20384 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20385 : (TARGET_XOP))
20386 : return -1;
20387 : return 9088; /* xop_pcmov_v4di256 */
20388 :
20389 : case E_V2DImode:
20390 : if (pattern821 (x3,
20391 : E_V2DImode) != 0
20392 : || !
20393 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20394 : (TARGET_XOP))
20395 : return -1;
20396 : return 9089; /* xop_pcmov_v2di */
20397 :
20398 : case E_V2TImode:
20399 : if (pattern821 (x3,
20400 : E_V2TImode) != 0
20401 : || !
20402 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20403 : (TARGET_XOP))
20404 : return -1;
20405 : return 9090; /* xop_pcmov_v2ti256 */
20406 :
20407 : case E_V1TImode:
20408 : if (pattern821 (x3,
20409 : E_V1TImode) != 0
20410 : || !
20411 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20412 : (TARGET_XOP))
20413 : return -1;
20414 : return 9091; /* xop_pcmov_v1ti */
20415 :
20416 : case E_V16HFmode:
20417 : if (pattern821 (x3,
20418 : E_V16HFmode) != 0
20419 : || !
20420 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20421 : (TARGET_XOP))
20422 : return -1;
20423 : return 9092; /* xop_pcmov_v16hf256 */
20424 :
20425 : case E_V8HFmode:
20426 : if (pattern821 (x3,
20427 : E_V8HFmode) != 0
20428 : || !
20429 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20430 : (TARGET_XOP))
20431 : return -1;
20432 : return 9093; /* xop_pcmov_v8hf */
20433 :
20434 : case E_V8SFmode:
20435 : if (pattern821 (x3,
20436 : E_V8SFmode) != 0
20437 : || !
20438 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20439 : (TARGET_XOP))
20440 : return -1;
20441 : return 9094; /* xop_pcmov_v8sf256 */
20442 :
20443 : case E_V4SFmode:
20444 : if (pattern821 (x3,
20445 : E_V4SFmode) != 0
20446 : || !
20447 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20448 : (TARGET_XOP))
20449 : return -1;
20450 : return 9095; /* xop_pcmov_v4sf */
20451 :
20452 : case E_V4DFmode:
20453 : if (pattern821 (x3,
20454 : E_V4DFmode) != 0
20455 : || !
20456 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20457 : (TARGET_XOP))
20458 : return -1;
20459 : return 9096; /* xop_pcmov_v4df256 */
20460 :
20461 : case E_V2DFmode:
20462 : if (pattern821 (x3,
20463 : E_V2DFmode) != 0
20464 : || !
20465 : #line 27059 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20466 : (TARGET_XOP))
20467 : return -1;
20468 : return 9097; /* xop_pcmov_v2df */
20469 :
20470 : default:
20471 : return -1;
20472 : }
20473 :
20474 : case GE:
20475 : x7 = XEXP (x4, 1);
20476 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20477 : return -1;
20478 : x8 = XEXP (x4, 0);
20479 : operands[2] = x8;
20480 : x5 = XEXP (x3, 1);
20481 : switch (GET_CODE (x5))
20482 : {
20483 : case ROTATE:
20484 : x6 = XEXP (x3, 2);
20485 : if (GET_CODE (x6) != ROTATERT)
20486 : return -1;
20487 : x9 = XEXP (x6, 1);
20488 : if (GET_CODE (x9) != NEG)
20489 : return -1;
20490 : x10 = XEXP (x5, 0);
20491 : operands[1] = x10;
20492 : x11 = XEXP (x5, 1);
20493 : if (!rtx_equal_p (x11, operands[2]))
20494 : return -1;
20495 : switch (pattern1159 (x3))
20496 : {
20497 : case 0:
20498 : if (!
20499 : #line 27514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20500 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20501 : return -1;
20502 : return 9125; /* xop_vrotlv16qi3 */
20503 :
20504 : case 1:
20505 : if (!
20506 : #line 27514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20507 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20508 : return -1;
20509 : return 9126; /* xop_vrotlv8hi3 */
20510 :
20511 : case 2:
20512 : if (!
20513 : #line 27514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20514 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20515 : return -1;
20516 : return 9127; /* xop_vrotlv4si3 */
20517 :
20518 : case 3:
20519 : if (!
20520 : #line 27514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20521 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20522 : return -1;
20523 : return 9128; /* xop_vrotlv2di3 */
20524 :
20525 : default:
20526 : return -1;
20527 : }
20528 :
20529 : case ASHIFT:
20530 : x10 = XEXP (x5, 0);
20531 : operands[1] = x10;
20532 : x11 = XEXP (x5, 1);
20533 : if (!rtx_equal_p (x11, operands[2]))
20534 : return -1;
20535 : x6 = XEXP (x3, 2);
20536 : switch (GET_CODE (x6))
20537 : {
20538 : case ASHIFTRT:
20539 : x9 = XEXP (x6, 1);
20540 : if (GET_CODE (x9) != NEG)
20541 : return -1;
20542 : switch (pattern1159 (x3))
20543 : {
20544 : case 0:
20545 : if (!
20546 : #line 27751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20547 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20548 : return -1;
20549 : return 9129; /* xop_shav16qi3 */
20550 :
20551 : case 1:
20552 : if (!
20553 : #line 27751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20554 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20555 : return -1;
20556 : return 9130; /* xop_shav8hi3 */
20557 :
20558 : case 2:
20559 : if (!
20560 : #line 27751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20561 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20562 : return -1;
20563 : return 9131; /* xop_shav4si3 */
20564 :
20565 : case 3:
20566 : if (!
20567 : #line 27751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20568 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20569 : return -1;
20570 : return 9132; /* xop_shav2di3 */
20571 :
20572 : default:
20573 : return -1;
20574 : }
20575 :
20576 : case LSHIFTRT:
20577 : x9 = XEXP (x6, 1);
20578 : if (GET_CODE (x9) != NEG)
20579 : return -1;
20580 : switch (pattern1159 (x3))
20581 : {
20582 : case 0:
20583 : if (!
20584 : #line 27770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20585 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20586 : return -1;
20587 : return 9133; /* xop_shlv16qi3 */
20588 :
20589 : case 1:
20590 : if (!
20591 : #line 27770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20592 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20593 : return -1;
20594 : return 9134; /* xop_shlv8hi3 */
20595 :
20596 : case 2:
20597 : if (!
20598 : #line 27770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20599 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20600 : return -1;
20601 : return 9135; /* xop_shlv4si3 */
20602 :
20603 : case 3:
20604 : if (!
20605 : #line 27770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20606 : (TARGET_XOP && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
20607 : return -1;
20608 : return 9136; /* xop_shlv2di3 */
20609 :
20610 : default:
20611 : return -1;
20612 : }
20613 :
20614 : default:
20615 : return -1;
20616 : }
20617 :
20618 : default:
20619 : return -1;
20620 : }
20621 :
20622 : default:
20623 : return -1;
20624 : }
20625 : }
20626 :
20627 : int
20628 : recog_342 (rtx x1 ATTRIBUTE_UNUSED,
20629 : rtx_insn *insn ATTRIBUTE_UNUSED,
20630 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20631 : {
20632 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20633 : rtx x2, x3, x4;
20634 : int res ATTRIBUTE_UNUSED;
20635 : x2 = XEXP (x1, 0);
20636 : operands[0] = x2;
20637 : x3 = XEXP (x1, 1);
20638 : x4 = XEXP (x3, 0);
20639 : operands[1] = x4;
20640 : switch (GET_MODE (operands[0]))
20641 : {
20642 : case E_V32HFmode:
20643 : if (!register_operand (operands[0], E_V32HFmode)
20644 : || GET_MODE (x3) != E_V32HFmode
20645 : || !vector_operand (operands[1], E_V32HFmode)
20646 : || !(
20647 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20648 : (TARGET_SSE && 1 && 1) &&
20649 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20650 : (TARGET_AVX512FP16)))
20651 : return -1;
20652 : return 2973; /* avx512fp16_sqrtv32hf2 */
20653 :
20654 : case E_V16HFmode:
20655 : if (!register_operand (operands[0], E_V16HFmode)
20656 : || GET_MODE (x3) != E_V16HFmode
20657 : || !vector_operand (operands[1], E_V16HFmode)
20658 : || !(
20659 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20660 : (TARGET_SSE && 1 && 1) &&
20661 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20662 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20663 : return -1;
20664 : return 2977; /* avx512fp16_sqrtv16hf2 */
20665 :
20666 : case E_V8HFmode:
20667 : if (!register_operand (operands[0], E_V8HFmode)
20668 : || GET_MODE (x3) != E_V8HFmode
20669 : || !vector_operand (operands[1], E_V8HFmode)
20670 : || !(
20671 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20672 : (TARGET_SSE && 1 && 1) &&
20673 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20674 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
20675 : return -1;
20676 : return 2979; /* avx512fp16_sqrtv8hf2 */
20677 :
20678 : case E_V16SFmode:
20679 : if (!register_operand (operands[0], E_V16SFmode)
20680 : || GET_MODE (x3) != E_V16SFmode
20681 : || !vector_operand (operands[1], E_V16SFmode)
20682 : || !(
20683 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20684 : (TARGET_SSE && 1 && 1) &&
20685 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20686 : (TARGET_AVX512F)))
20687 : return -1;
20688 : return 2981; /* avx512f_sqrtv16sf2 */
20689 :
20690 : case E_V8SFmode:
20691 : if (!register_operand (operands[0], E_V8SFmode)
20692 : || GET_MODE (x3) != E_V8SFmode
20693 : || !vector_operand (operands[1], E_V8SFmode)
20694 : || !(
20695 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20696 : (TARGET_SSE && 1 && 1) &&
20697 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20698 : (TARGET_AVX)))
20699 : return -1;
20700 : return 2985; /* avx_sqrtv8sf2 */
20701 :
20702 : case E_V4SFmode:
20703 : if (!register_operand (operands[0], E_V4SFmode)
20704 : || GET_MODE (x3) != E_V4SFmode
20705 : || !vector_operand (operands[1], E_V4SFmode)
20706 : || !
20707 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20708 : (TARGET_SSE && 1 && 1))
20709 : return -1;
20710 : return 2987; /* sse_sqrtv4sf2 */
20711 :
20712 : case E_V8DFmode:
20713 : if (!register_operand (operands[0], E_V8DFmode)
20714 : || GET_MODE (x3) != E_V8DFmode
20715 : || !vector_operand (operands[1], E_V8DFmode)
20716 : || !(
20717 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20718 : (TARGET_SSE && 1 && 1) &&
20719 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20720 : (TARGET_AVX512F)))
20721 : return -1;
20722 : return 2989; /* avx512f_sqrtv8df2 */
20723 :
20724 : case E_V4DFmode:
20725 : if (!register_operand (operands[0], E_V4DFmode)
20726 : || GET_MODE (x3) != E_V4DFmode
20727 : || !vector_operand (operands[1], E_V4DFmode)
20728 : || !(
20729 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20730 : (TARGET_SSE && 1 && 1) &&
20731 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20732 : (TARGET_AVX)))
20733 : return -1;
20734 : return 2993; /* avx_sqrtv4df2 */
20735 :
20736 : case E_V2DFmode:
20737 : if (!register_operand (operands[0], E_V2DFmode)
20738 : || GET_MODE (x3) != E_V2DFmode
20739 : || !vector_operand (operands[1], E_V2DFmode)
20740 : || !(
20741 : #line 3111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20742 : (TARGET_SSE && 1 && 1) &&
20743 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20744 : (TARGET_SSE2)))
20745 : return -1;
20746 : return 2995; /* sse2_sqrtv2df2 */
20747 :
20748 : case E_V32BFmode:
20749 : if (!register_operand (operands[0], E_V32BFmode)
20750 : || GET_MODE (x3) != E_V32BFmode
20751 : || !nonimmediate_operand (operands[1], E_V32BFmode)
20752 : || !
20753 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20754 : (TARGET_AVX10_2))
20755 : return -1;
20756 : return 10786; /* avx10_2_sqrtbf16_v32bf */
20757 :
20758 : case E_V16BFmode:
20759 : if (!register_operand (operands[0], E_V16BFmode)
20760 : || GET_MODE (x3) != E_V16BFmode
20761 : || !nonimmediate_operand (operands[1], E_V16BFmode)
20762 : || !
20763 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20764 : (TARGET_AVX10_2))
20765 : return -1;
20766 : return 10788; /* avx10_2_sqrtbf16_v16bf */
20767 :
20768 : case E_V8BFmode:
20769 : if (!register_operand (operands[0], E_V8BFmode)
20770 : || GET_MODE (x3) != E_V8BFmode
20771 : || !nonimmediate_operand (operands[1], E_V8BFmode)
20772 : || !
20773 : #line 33473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20774 : (TARGET_AVX10_2))
20775 : return -1;
20776 : return 10790; /* avx10_2_sqrtbf16_v8bf */
20777 :
20778 : default:
20779 : return -1;
20780 : }
20781 : }
20782 :
20783 : int
20784 : recog_348 (rtx x1 ATTRIBUTE_UNUSED,
20785 : rtx_insn *insn ATTRIBUTE_UNUSED,
20786 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20787 : {
20788 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20789 : rtx x2, x3, x4;
20790 : int res ATTRIBUTE_UNUSED;
20791 : switch (pattern35 (x1))
20792 : {
20793 : case 0:
20794 : if (!
20795 : #line 24661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20796 : (TARGET_AVX2 && 1 && 1))
20797 : return -1;
20798 : return 8828; /* avx2_sign_extendv16qiv16hi2 */
20799 :
20800 : case 1:
20801 : if (!
20802 : #line 24716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20803 : (TARGET_AVX512BW))
20804 : return -1;
20805 : return 8836; /* avx512bw_sign_extendv32qiv32hi2 */
20806 :
20807 : case 2:
20808 : if (!
20809 : #line 24788 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20810 : (TARGET_SSE4_1 && 1 && 1))
20811 : return -1;
20812 : return 8848; /* *sse4_1_sign_extendv8qiv8hi2_1 */
20813 :
20814 : case 3:
20815 : if (!
20816 : #line 24940 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20817 : (TARGET_AVX512F))
20818 : return -1;
20819 : return 8860; /* *avx512f_sign_extendv16qiv16si2 */
20820 :
20821 : case 4:
20822 : if (!
20823 : #line 25144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20824 : (TARGET_AVX512F))
20825 : return -1;
20826 : return 8890; /* avx512f_sign_extendv16hiv16si2 */
20827 :
20828 : case 5:
20829 : if (!
20830 : #line 24974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20831 : (TARGET_AVX2 && 1))
20832 : return -1;
20833 : return 8868; /* *avx2_sign_extendv8qiv8si2_1 */
20834 :
20835 : case 6:
20836 : if (!
20837 : #line 25198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20838 : (TARGET_AVX2 && 1))
20839 : return -1;
20840 : return 8898; /* avx2_sign_extendv8hiv8si2 */
20841 :
20842 : case 7:
20843 : if (!
20844 : #line 25064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20845 : (TARGET_SSE4_1 && 1))
20846 : return -1;
20847 : return 8880; /* *sse4_1_sign_extendv4qiv4si2_1 */
20848 :
20849 : case 8:
20850 : if (!
20851 : #line 25270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20852 : (TARGET_SSE4_1 && 1))
20853 : return -1;
20854 : return 8910; /* *sse4_1_sign_extendv4hiv4si2_1 */
20855 :
20856 : case 9:
20857 : if (!
20858 : #line 25428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20859 : (TARGET_AVX512F))
20860 : return -1;
20861 : return 8926; /* *avx512f_sign_extendv8qiv8di2_1 */
20862 :
20863 : case 10:
20864 : if (!
20865 : #line 25659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20866 : (TARGET_AVX512F))
20867 : return -1;
20868 : return 8957; /* avx512f_sign_extendv8hiv8di2 */
20869 :
20870 : case 11:
20871 : if (!
20872 : #line 25854 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20873 : (TARGET_AVX512F))
20874 : return -1;
20875 : return 8985; /* avx512f_sign_extendv8siv8di2 */
20876 :
20877 : case 12:
20878 : if (!
20879 : #line 25514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20880 : (TARGET_AVX2 && 1))
20881 : return -1;
20882 : return 8938; /* *avx2_sign_extendv4qiv4di2_1 */
20883 :
20884 : case 13:
20885 : if (!
20886 : #line 25691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20887 : (TARGET_AVX2 && 1))
20888 : return -1;
20889 : return 8965; /* *avx2_sign_extendv4hiv4di2_1 */
20890 :
20891 : case 14:
20892 : if (!
20893 : #line 25906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20894 : (TARGET_AVX2 && 1))
20895 : return -1;
20896 : return 8991; /* avx2_sign_extendv4siv4di2 */
20897 :
20898 : case 15:
20899 : if (!
20900 : #line 25607 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20901 : (TARGET_SSE4_1 && 1))
20902 : return -1;
20903 : return 8950; /* *sse4_1_sign_extendv2qiv2di2_1 */
20904 :
20905 : case 16:
20906 : if (!
20907 : #line 25776 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20908 : (TARGET_SSE4_1 && 1))
20909 : return -1;
20910 : return 8977; /* *sse4_1_sign_extendv2hiv2di2_1 */
20911 :
20912 : case 17:
20913 : if (!
20914 : #line 25974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20915 : (TARGET_SSE4_1 && 1))
20916 : return -1;
20917 : return 9001; /* *sse4_1_sign_extendv2siv2di2_1 */
20918 :
20919 : case 18:
20920 : x2 = XEXP (x1, 1);
20921 : x3 = XEXP (x2, 0);
20922 : x4 = XEXP (x3, 0);
20923 : operands[1] = x4;
20924 : switch (pattern547 (x2))
20925 : {
20926 : case 0:
20927 : if (
20928 : #line 24775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20929 : (TARGET_SSE4_1 && 1 && 1))
20930 : return 8844; /* sse4_1_sign_extendv8qiv8hi2 */
20931 : break;
20932 :
20933 : case 1:
20934 : if (
20935 : #line 24962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20936 : (TARGET_AVX2 && 1))
20937 : return 8864; /* avx2_sign_extendv8qiv8si2 */
20938 : break;
20939 :
20940 : case 2:
20941 : if (
20942 : #line 25417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20943 : (TARGET_AVX512F))
20944 : return 8922; /* avx512f_sign_extendv8qiv8di2 */
20945 : break;
20946 :
20947 : case 3:
20948 : if (
20949 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20950 : (TARGET_SSE4_1 && 1))
20951 : return 8876; /* sse4_1_sign_extendv4qiv4si2 */
20952 : break;
20953 :
20954 : case 4:
20955 : if (
20956 : #line 25257 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20957 : (TARGET_SSE4_1 && 1))
20958 : return 8906; /* sse4_1_sign_extendv4hiv4si2 */
20959 : break;
20960 :
20961 : case 5:
20962 : if (
20963 : #line 25502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20964 : (TARGET_AVX2 && 1))
20965 : return 8934; /* avx2_sign_extendv4qiv4di2 */
20966 : break;
20967 :
20968 : case 6:
20969 : if (
20970 : #line 25679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20971 : (TARGET_AVX2 && 1))
20972 : return 8961; /* avx2_sign_extendv4hiv4di2 */
20973 : break;
20974 :
20975 : case 7:
20976 : if (
20977 : #line 25594 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20978 : (TARGET_SSE4_1 && 1))
20979 : return 8946; /* sse4_1_sign_extendv2qiv2di2 */
20980 : break;
20981 :
20982 : case 8:
20983 : if (
20984 : #line 25763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20985 : (TARGET_SSE4_1 && 1))
20986 : return 8973; /* sse4_1_sign_extendv2hiv2di2 */
20987 : break;
20988 :
20989 : case 9:
20990 : if (
20991 : #line 25961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20992 : (TARGET_SSE4_1 && 1))
20993 : return 8997; /* sse4_1_sign_extendv2siv2di2 */
20994 : break;
20995 :
20996 : default:
20997 : break;
20998 : }
20999 : if (GET_CODE (x4) != SUBREG
21000 : || maybe_ne (SUBREG_BYTE (x4), 0))
21001 : return -1;
21002 : switch (pattern693 (x2))
21003 : {
21004 : case 0:
21005 : if (!
21006 : #line 24813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21007 : (TARGET_SSE4_1
21008 : && ix86_pre_reload_split ()))
21009 : return -1;
21010 : return 8852; /* *sse4_1_sign_extendv8qiv8hi2_2 */
21011 :
21012 : case 1:
21013 : if (!
21014 : #line 24994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21015 : (TARGET_AVX2
21016 : && ix86_pre_reload_split ()))
21017 : return -1;
21018 : return 8872; /* *avx2_sign_extendv8qiv8si2_2 */
21019 :
21020 : case 2:
21021 : if (!
21022 : #line 25447 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21023 : (TARGET_AVX512F && ix86_pre_reload_split ()))
21024 : return -1;
21025 : return 8930; /* *avx512f_sign_extendv8qiv8di2_2 */
21026 :
21027 : case 3:
21028 : if (!
21029 : #line 25290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21030 : (TARGET_SSE4_1
21031 : && ix86_pre_reload_split ()))
21032 : return -1;
21033 : return 8914; /* *sse4_1_sign_extendv4hiv4si2_2 */
21034 :
21035 : case 4:
21036 : if (!
21037 : #line 25709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21038 : (TARGET_AVX2
21039 : && ix86_pre_reload_split ()))
21040 : return -1;
21041 : return 8969; /* *avx2_sign_extendv4hiv4di2_2 */
21042 :
21043 : case 5:
21044 : if (!
21045 : #line 25993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21046 : (TARGET_SSE4_1
21047 : && ix86_pre_reload_split ()))
21048 : return -1;
21049 : return 9005; /* *sse4_1_sign_extendv2siv2di2_2 */
21050 :
21051 : case 6:
21052 : if (!
21053 : #line 25088 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21054 : (TARGET_SSE4_1 && 1
21055 : && ix86_pre_reload_split ()))
21056 : return -1;
21057 : return 8884; /* *sse4_1_sign_extendv4qiv4si2_2 */
21058 :
21059 : case 7:
21060 : if (!
21061 : #line 25536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21062 : (TARGET_AVX2
21063 : && ix86_pre_reload_split ()))
21064 : return -1;
21065 : return 8942; /* *avx2_sign_extendv4qiv4di2_2 */
21066 :
21067 : case 8:
21068 : if (!
21069 : #line 25799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21070 : (TARGET_SSE4_1
21071 : && ix86_pre_reload_split ()))
21072 : return -1;
21073 : return 8981; /* *sse4_1_sign_extendv2hiv2di2_2 */
21074 :
21075 : default:
21076 : return -1;
21077 : }
21078 :
21079 : default:
21080 : return -1;
21081 : }
21082 : }
21083 :
21084 : int
21085 : recog_354 (rtx x1 ATTRIBUTE_UNUSED,
21086 : rtx_insn *insn ATTRIBUTE_UNUSED,
21087 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21088 : {
21089 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21090 : rtx x2, x3, x4;
21091 : int res ATTRIBUTE_UNUSED;
21092 : x2 = XEXP (x1, 0);
21093 : operands[0] = x2;
21094 : x3 = XEXP (x1, 1);
21095 : x4 = XEXP (x3, 0);
21096 : operands[1] = x4;
21097 : switch (GET_MODE (operands[0]))
21098 : {
21099 : case E_V8HFmode:
21100 : if (!register_operand (operands[0], E_V8HFmode)
21101 : || GET_MODE (x3) != E_V8HFmode)
21102 : return -1;
21103 : switch (GET_MODE (operands[1]))
21104 : {
21105 : case E_V8DFmode:
21106 : if (!vector_operand (operands[1], E_V8DFmode)
21107 : || !
21108 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21109 : (TARGET_AVX512FP16))
21110 : return -1;
21111 : return 4786; /* avx512fp16_vcvtpd2ph_v8df */
21112 :
21113 : case E_V8SFmode:
21114 : if (!vector_operand (operands[1], E_V8SFmode)
21115 : || !(
21116 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21117 : (TARGET_AVX512FP16) &&
21118 : #line 982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21119 : (TARGET_AVX512VL)))
21120 : return -1;
21121 : return 4794; /* avx512fp16_vcvtps2ph_v8sf */
21122 :
21123 : default:
21124 : return -1;
21125 : }
21126 :
21127 : case E_V16HFmode:
21128 : if (!register_operand (operands[0], E_V16HFmode)
21129 : || GET_MODE (x3) != E_V16HFmode
21130 : || !vector_operand (operands[1], E_V16SFmode)
21131 : || !
21132 : #line 8516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21133 : (TARGET_AVX512FP16))
21134 : return -1;
21135 : return 4790; /* avx512fp16_vcvtps2ph_v16sf */
21136 :
21137 : case E_V8SFmode:
21138 : if (!register_operand (operands[0], E_V8SFmode)
21139 : || GET_MODE (x3) != E_V8SFmode
21140 : || !vector_operand (operands[1], E_V8DFmode)
21141 : || !
21142 : #line 10475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21143 : (TARGET_AVX512F))
21144 : return -1;
21145 : return 5197; /* *avx512f_cvtpd2ps512 */
21146 :
21147 : case E_V4SFmode:
21148 : if (!register_operand (operands[0], E_V4SFmode)
21149 : || GET_MODE (x3) != E_V4SFmode
21150 : || !nonimmediate_operand (operands[1], E_V4DFmode)
21151 : || !
21152 : #line 10485 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21153 : (TARGET_AVX && 1))
21154 : return -1;
21155 : return 5201; /* avx_cvtpd2ps256 */
21156 :
21157 : case E_V8BFmode:
21158 : if (!register_operand (operands[0], E_V8BFmode)
21159 : || GET_MODE (x3) != E_V8BFmode
21160 : || !nonimmediate_operand (operands[1], E_V8SFmode))
21161 : return -1;
21162 : if (
21163 : #line 32208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21164 : (TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)))
21165 : return 10450; /* vcvtneps2bf16_v8sf */
21166 : if (!(
21167 : #line 32246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21168 : (TARGET_AVX512BF16) &&
21169 : #line 32174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21170 : (TARGET_AVX512VL)))
21171 : return -1;
21172 : return 10453; /* avx512f_cvtneps2bf16_v8sf */
21173 :
21174 : case E_V16BFmode:
21175 : if (!register_operand (operands[0], E_V16BFmode)
21176 : || GET_MODE (x3) != E_V16BFmode
21177 : || !nonimmediate_operand (operands[1], E_V16SFmode)
21178 : || !
21179 : #line 32246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21180 : (TARGET_AVX512BF16))
21181 : return -1;
21182 : return 10451; /* avx512f_cvtneps2bf16_v16sf */
21183 :
21184 : default:
21185 : return -1;
21186 : }
21187 : }
21188 :
21189 : int
21190 : recog_357 (rtx x1 ATTRIBUTE_UNUSED,
21191 : rtx_insn *insn ATTRIBUTE_UNUSED,
21192 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21193 : {
21194 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21195 : int res ATTRIBUTE_UNUSED;
21196 : switch (pattern33 (x1))
21197 : {
21198 : case 0:
21199 : if (!
21200 : #line 18024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21201 : (TARGET_SSE2 && TARGET_64BIT
21202 : && ix86_pre_reload_split ()))
21203 : return -1;
21204 : return 7766; /* *rotrv1ti3_internal */
21205 :
21206 : case 1:
21207 : if (!
21208 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21209 : (TARGET_AVX512F))
21210 : return -1;
21211 : return 7803; /* avx512f_rorv16si */
21212 :
21213 : case 2:
21214 : if (!(
21215 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21216 : (TARGET_AVX512F) &&
21217 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21218 : (TARGET_AVX512VL)))
21219 : return -1;
21220 : return 7807; /* avx512vl_rorv8si */
21221 :
21222 : case 3:
21223 : if (const_0_to_255_operand (operands[2], E_SImode)
21224 : && (
21225 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21226 : (TARGET_AVX512F) &&
21227 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21228 : (TARGET_AVX512VL)))
21229 : return 7811; /* avx512vl_rorv4si */
21230 : if (!const_0_to_31_operand (operands[2], E_SImode)
21231 : || !
21232 : #line 27468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21233 : (TARGET_XOP))
21234 : return -1;
21235 : return 9123; /* xop_rotrv4si3 */
21236 :
21237 : case 4:
21238 : if (!
21239 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21240 : (TARGET_AVX512F))
21241 : return -1;
21242 : return 7815; /* avx512f_rorv8di */
21243 :
21244 : case 5:
21245 : if (!(
21246 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21247 : (TARGET_AVX512F) &&
21248 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21249 : (TARGET_AVX512VL)))
21250 : return -1;
21251 : return 7819; /* avx512vl_rorv4di */
21252 :
21253 : case 6:
21254 : if (const_0_to_255_operand (operands[2], E_SImode)
21255 : && (
21256 : #line 18091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21257 : (TARGET_AVX512F) &&
21258 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21259 : (TARGET_AVX512VL)))
21260 : return 7823; /* avx512vl_rorv2di */
21261 : if (!const_0_to_63_operand (operands[2], E_SImode)
21262 : || !
21263 : #line 27468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21264 : (TARGET_XOP))
21265 : return -1;
21266 : return 9124; /* xop_rotrv2di3 */
21267 :
21268 : case 7:
21269 : if (!
21270 : #line 27468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21271 : (TARGET_XOP))
21272 : return -1;
21273 : return 9121; /* xop_rotrv16qi3 */
21274 :
21275 : case 8:
21276 : if (!
21277 : #line 27468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21278 : (TARGET_XOP))
21279 : return -1;
21280 : return 9122; /* xop_rotrv8hi3 */
21281 :
21282 : case 9:
21283 : if (!
21284 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21285 : (TARGET_AVX512F))
21286 : return -1;
21287 : return 7779; /* avx512f_rorvv16si */
21288 :
21289 : case 10:
21290 : if (!(
21291 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21292 : (TARGET_AVX512F) &&
21293 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21294 : (TARGET_AVX512VL)))
21295 : return -1;
21296 : return 7783; /* avx512vl_rorvv8si */
21297 :
21298 : case 11:
21299 : if (!(
21300 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21301 : (TARGET_AVX512F) &&
21302 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21303 : (TARGET_AVX512VL)))
21304 : return -1;
21305 : return 7787; /* avx512vl_rorvv4si */
21306 :
21307 : case 12:
21308 : if (!
21309 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21310 : (TARGET_AVX512F))
21311 : return -1;
21312 : return 7791; /* avx512f_rorvv8di */
21313 :
21314 : case 13:
21315 : if (!(
21316 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21317 : (TARGET_AVX512F) &&
21318 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21319 : (TARGET_AVX512VL)))
21320 : return -1;
21321 : return 7795; /* avx512vl_rorvv4di */
21322 :
21323 : case 14:
21324 : if (!(
21325 : #line 18081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21326 : (TARGET_AVX512F) &&
21327 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21328 : (TARGET_AVX512VL)))
21329 : return -1;
21330 : return 7799; /* avx512vl_rorvv2di */
21331 :
21332 : default:
21333 : return -1;
21334 : }
21335 : }
21336 :
21337 : int
21338 : recog_367 (rtx x1 ATTRIBUTE_UNUSED,
21339 : rtx_insn *insn ATTRIBUTE_UNUSED,
21340 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21341 : {
21342 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21343 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21344 : int res ATTRIBUTE_UNUSED;
21345 : switch (pattern345 (x1))
21346 : {
21347 : case 0:
21348 : x2 = XVECEXP (x1, 0, 0);
21349 : x3 = XEXP (x2, 0);
21350 : operands[0] = x3;
21351 : switch (pattern824 (x1))
21352 : {
21353 : case 0:
21354 : if ((
21355 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21356 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21357 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21358 : == (2 * 4 * BITS_PER_UNIT - 1)))
21359 : && ix86_pre_reload_split ()) &&
21360 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21361 : (!TARGET_64BIT)))
21362 : return 1154; /* *lshrdi3_doubleword_mask */
21363 : break;
21364 :
21365 : case 1:
21366 : if ((
21367 : #line 17523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21368 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21369 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21370 : == (2 * 8 * BITS_PER_UNIT - 1)))
21371 : && ix86_pre_reload_split ()) &&
21372 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21373 : (TARGET_64BIT)))
21374 : return 1156; /* *lshrti3_doubleword_mask */
21375 : break;
21376 :
21377 : case 2:
21378 : if ((
21379 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21380 : (TARGET_AVX512F) &&
21381 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21382 : (TARGET_AVX512DQ)))
21383 : return 2671; /* klshiftrtqi */
21384 : break;
21385 :
21386 : case 3:
21387 : if (
21388 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21389 : (TARGET_AVX512F))
21390 : return 2673; /* klshiftrthi */
21391 : break;
21392 :
21393 : case 4:
21394 : if ((
21395 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21396 : (TARGET_AVX512F) &&
21397 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21398 : (TARGET_AVX512BW)))
21399 : return 2675; /* klshiftrtsi */
21400 : break;
21401 :
21402 : case 5:
21403 : if ((
21404 : #line 2302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21405 : (TARGET_AVX512F) &&
21406 : #line 2104 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21407 : (TARGET_AVX512BW)))
21408 : return 2677; /* klshiftrtdi */
21409 : break;
21410 :
21411 : default:
21412 : break;
21413 : }
21414 : x4 = XEXP (x2, 1);
21415 : x5 = XEXP (x4, 1);
21416 : operands[2] = x5;
21417 : switch (pattern825 (x1))
21418 : {
21419 : case 0:
21420 : operands[0] = x3;
21421 : switch (GET_MODE (operands[0]))
21422 : {
21423 : case E_DImode:
21424 : if (register_operand (operands[0], E_DImode)
21425 : && GET_MODE (x4) == E_DImode
21426 : && register_operand (operands[1], E_DImode)
21427 : &&
21428 : #line 1226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21429 : (!TARGET_64BIT))
21430 : return 1162; /* lshrdi3_doubleword */
21431 : break;
21432 :
21433 : case E_TImode:
21434 : if (register_operand (operands[0], E_TImode)
21435 : && GET_MODE (x4) == E_TImode
21436 : && register_operand (operands[1], E_TImode)
21437 : &&
21438 : #line 1227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21439 : (TARGET_64BIT))
21440 : return 1164; /* lshrti3_doubleword */
21441 : break;
21442 :
21443 : case E_SImode:
21444 : if (nonimmediate_operand (operands[0], E_SImode)
21445 : && GET_MODE (x4) == E_SImode
21446 : && nonimmediate_operand (operands[1], E_SImode)
21447 : &&
21448 : #line 18353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21449 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)
21450 : && true))
21451 : return 1213; /* *lshrsi3_1 */
21452 : break;
21453 :
21454 : case E_QImode:
21455 : if (nonimmediate_operand (operands[0], E_QImode)
21456 : && GET_MODE (x4) == E_QImode
21457 : && nonimmediate_operand (operands[1], E_QImode)
21458 : &&
21459 : #line 18528 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21460 : (ix86_binary_operator_ok (LSHIFTRT, QImode, operands, TARGET_APX_NDD)
21461 : && true))
21462 : return 1245; /* *lshrqi3_1 */
21463 : break;
21464 :
21465 : case E_HImode:
21466 : if (nonimmediate_operand (operands[0], E_HImode)
21467 : && GET_MODE (x4) == E_HImode
21468 : && nonimmediate_operand (operands[1], E_HImode)
21469 : &&
21470 : #line 18562 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21471 : (ix86_binary_operator_ok (LSHIFTRT, HImode, operands, TARGET_APX_NDD)
21472 : && true))
21473 : return 1247; /* *lshrhi3_1 */
21474 : break;
21475 :
21476 : case E_V2QImode:
21477 : if (register_operand (operands[0], E_V2QImode)
21478 : && GET_MODE (x4) == E_V2QImode
21479 : && register_operand (operands[1], E_V2QImode)
21480 : &&
21481 : #line 4039 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
21482 : (!TARGET_PARTIAL_REG_STALL || optimize_size))
21483 : return 2269; /* lshrv2qi3 */
21484 : break;
21485 :
21486 : default:
21487 : break;
21488 : }
21489 : break;
21490 :
21491 : case 1:
21492 : x6 = XEXP (x3, 0);
21493 : operands[0] = x6;
21494 : switch (pattern379 (x4))
21495 : {
21496 : case 0:
21497 : if (
21498 : #line 18597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21499 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21500 : return 1248; /* *lshrqi3_1_slp */
21501 : break;
21502 :
21503 : case 1:
21504 : if (
21505 : #line 18597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21506 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
21507 : return 1250; /* *lshrhi3_1_slp */
21508 : break;
21509 :
21510 : default:
21511 : break;
21512 : }
21513 : break;
21514 :
21515 : default:
21516 : break;
21517 : }
21518 : x7 = XVECEXP (x1, 0, 1);
21519 : if (GET_CODE (x7) != CLOBBER)
21520 : return -1;
21521 : x8 = XEXP (x7, 0);
21522 : if (GET_CODE (x8) != REG
21523 : || REGNO (x8) != 17
21524 : || GET_MODE (x8) != E_CCmode)
21525 : return -1;
21526 : switch (GET_CODE (x5))
21527 : {
21528 : case CONST_INT:
21529 : if (pattern1243 (x2) == 0
21530 : && GET_MODE (x4) == E_DImode
21531 : && nonimmediate_operand (operands[1], E_DImode)
21532 : &&
21533 : #line 18325 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21534 : (TARGET_64BIT))
21535 : return 1211; /* *highpartdisi2 */
21536 : break;
21537 :
21538 : case SUBREG:
21539 : switch (pattern1246 (x2,
21540 : E_SImode))
21541 : {
21542 : case 0:
21543 : if (
21544 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21545 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21546 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21547 : == 4 * BITS_PER_UNIT - 1
21548 : && ix86_pre_reload_split ()))
21549 : return 1277; /* *lshrsi3_mask */
21550 : break;
21551 :
21552 : case 1:
21553 : if (
21554 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21555 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21556 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21557 : && ix86_pre_reload_split ()))
21558 : return 1289; /* *lshrsi3_add */
21559 : break;
21560 :
21561 : case 2:
21562 : if (
21563 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21564 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21565 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21566 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21567 : == 4 * BITS_PER_UNIT - 1)
21568 : && ix86_pre_reload_split ()))
21569 : return 1301; /* *lshrsi3_sub */
21570 : break;
21571 :
21572 : default:
21573 : break;
21574 : }
21575 : break;
21576 :
21577 : default:
21578 : break;
21579 : }
21580 : operands[0] = x3;
21581 : if (!nonimmediate_operand (operands[0], E_DImode)
21582 : || GET_MODE (x4) != E_DImode
21583 : || !nonimmediate_operand (operands[1], E_DImode))
21584 : return -1;
21585 : operands[2] = x5;
21586 : if (nonmemory_operand (operands[2], E_QImode)
21587 : && (
21588 : #line 18353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21589 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands, TARGET_APX_NDD)
21590 : && true) &&
21591 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21592 : (TARGET_64BIT)))
21593 : return 1215; /* *lshrdi3_1 */
21594 : if (GET_CODE (x5) != SUBREG
21595 : || maybe_ne (SUBREG_BYTE (x5), 0)
21596 : || GET_MODE (x5) != E_QImode)
21597 : return -1;
21598 : x9 = XEXP (x5, 0);
21599 : switch (pattern1244 (x9))
21600 : {
21601 : case 0:
21602 : if (!(
21603 : #line 18773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21604 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21605 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21606 : == 8 * BITS_PER_UNIT - 1
21607 : && ix86_pre_reload_split ()) &&
21608 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21609 : (TARGET_64BIT)))
21610 : return -1;
21611 : return 1280; /* *lshrdi3_mask */
21612 :
21613 : case 1:
21614 : if (!(
21615 : #line 18821 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21616 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21617 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21618 : && ix86_pre_reload_split ()) &&
21619 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21620 : (TARGET_64BIT)))
21621 : return -1;
21622 : return 1292; /* *lshrdi3_add */
21623 :
21624 : case 2:
21625 : if (!(
21626 : #line 18867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21627 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21628 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21629 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21630 : == 8 * BITS_PER_UNIT - 1)
21631 : && ix86_pre_reload_split ()) &&
21632 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21633 : (TARGET_64BIT)))
21634 : return -1;
21635 : return 1304; /* *lshrdi3_sub */
21636 :
21637 : default:
21638 : return -1;
21639 : }
21640 :
21641 : case 1:
21642 : if (register_operand (operands[0], E_DImode)
21643 : && register_operand (operands[1], E_DImode)
21644 : && (
21645 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21646 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
21647 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
21648 : == (2 * 4 * BITS_PER_UNIT - 1)))
21649 : && ix86_pre_reload_split ()) &&
21650 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21651 : (!TARGET_64BIT)))
21652 : return 1158; /* *lshrdi3_doubleword_mask_1 */
21653 : if (!nonimmediate_operand (operands[0], E_DImode)
21654 : || !nonimmediate_operand (operands[1], E_DImode)
21655 : || !(
21656 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21657 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21658 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21659 : == 8 * BITS_PER_UNIT - 1
21660 : && ix86_pre_reload_split ()) &&
21661 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21662 : (TARGET_64BIT)))
21663 : return -1;
21664 : return 1286; /* *lshrdi3_mask_1 */
21665 :
21666 : case 2:
21667 : if (!(
21668 : #line 17584 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21669 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
21670 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
21671 : == (2 * 8 * BITS_PER_UNIT - 1)))
21672 : && ix86_pre_reload_split ()) &&
21673 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21674 : (TARGET_64BIT)))
21675 : return -1;
21676 : return 1160; /* *lshrti3_doubleword_mask_1 */
21677 :
21678 : case 3:
21679 : if (!
21680 : #line 18798 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21681 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21682 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21683 : == 4 * BITS_PER_UNIT - 1
21684 : && ix86_pre_reload_split ()))
21685 : return -1;
21686 : return 1283; /* *lshrsi3_mask_1 */
21687 :
21688 : case 4:
21689 : if (!
21690 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21691 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21692 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21693 : && ix86_pre_reload_split ()))
21694 : return -1;
21695 : return 1295; /* *lshrsi3_add_1 */
21696 :
21697 : case 5:
21698 : if (!(
21699 : #line 18845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21700 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21701 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21702 : && ix86_pre_reload_split ()) &&
21703 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21704 : (TARGET_64BIT)))
21705 : return -1;
21706 : return 1298; /* *lshrdi3_add_1 */
21707 :
21708 : case 6:
21709 : if (!
21710 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21711 : (ix86_binary_operator_ok (LSHIFTRT, SImode, operands)
21712 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
21713 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
21714 : == 4 * BITS_PER_UNIT - 1)
21715 : && ix86_pre_reload_split ()))
21716 : return -1;
21717 : return 1307; /* *lshrsi3_sub_1 */
21718 :
21719 : case 7:
21720 : if (!(
21721 : #line 18900 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21722 : (ix86_binary_operator_ok (LSHIFTRT, DImode, operands)
21723 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
21724 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
21725 : == 8 * BITS_PER_UNIT - 1)
21726 : && ix86_pre_reload_split ()) &&
21727 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21728 : (TARGET_64BIT)))
21729 : return -1;
21730 : return 1310; /* *lshrdi3_sub_1 */
21731 :
21732 : default:
21733 : return -1;
21734 : }
21735 : }
21736 :
21737 : int
21738 : recog_381 (rtx x1 ATTRIBUTE_UNUSED,
21739 : rtx_insn *insn ATTRIBUTE_UNUSED,
21740 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21741 : {
21742 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21743 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21744 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
21745 : int res ATTRIBUTE_UNUSED;
21746 : x2 = XVECEXP (x1, 0, 0);
21747 : x3 = XEXP (x2, 1);
21748 : x4 = XEXP (x3, 0);
21749 : switch (GET_CODE (x4))
21750 : {
21751 : case REG:
21752 : case SUBREG:
21753 : case MEM:
21754 : operands[1] = x4;
21755 : if (pattern346 (x1) != 0)
21756 : return -1;
21757 : switch (pattern1164 (x3))
21758 : {
21759 : case 0:
21760 : if (!
21761 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21762 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21763 : return -1;
21764 : return 182; /* zero_extendqisi2_and */
21765 :
21766 : case 1:
21767 : if (!
21768 : #line 4917 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21769 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21770 : return -1;
21771 : return 183; /* zero_extendhisi2_and */
21772 :
21773 : case 2:
21774 : if (!
21775 : #line 4971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21776 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)))
21777 : return -1;
21778 : return 186; /* zero_extendqihi2_and */
21779 :
21780 : default:
21781 : return -1;
21782 : }
21783 :
21784 : case PLUS:
21785 : return recog_379 (x1, insn, pnum_clobbers);
21786 :
21787 : case MINUS:
21788 : return recog_380 (x1, insn, pnum_clobbers);
21789 :
21790 : case MULT:
21791 : if (pattern347 (x1) != 0)
21792 : return -1;
21793 : switch (GET_MODE (operands[0]))
21794 : {
21795 : case E_SImode:
21796 : if (!register_operand (operands[0], E_SImode)
21797 : || GET_MODE (x3) != E_SImode
21798 : || GET_MODE (x4) != E_HImode
21799 : || !nonimmediate_operand (operands[1], E_HImode)
21800 : || !immediate_operand (operands[2], E_HImode)
21801 : || !
21802 : #line 11404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21803 : (TARGET_APX_ZU && true))
21804 : return -1;
21805 : return 625; /* *imulhisizu */
21806 :
21807 : case E_DImode:
21808 : if (!register_operand (operands[0], E_DImode)
21809 : || GET_MODE (x3) != E_DImode)
21810 : return -1;
21811 : switch (GET_MODE (x4))
21812 : {
21813 : case E_HImode:
21814 : if (!nonimmediate_operand (operands[1], E_HImode)
21815 : || !immediate_operand (operands[2], E_HImode)
21816 : || !
21817 : #line 11404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21818 : (TARGET_APX_ZU && true))
21819 : return -1;
21820 : return 627; /* *imulhidizu */
21821 :
21822 : case E_SImode:
21823 : if (!nonimmediate_operand (operands[1], E_SImode)
21824 : || !x86_64_general_operand (operands[2], E_SImode)
21825 : || !
21826 : #line 11416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21827 : (TARGET_64BIT
21828 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
21829 : && true))
21830 : return -1;
21831 : return 629; /* *mulsi3_1_zext */
21832 :
21833 : default:
21834 : return -1;
21835 : }
21836 :
21837 : default:
21838 : return -1;
21839 : }
21840 :
21841 : case DIV:
21842 : if (pattern348 (x1, pnum_clobbers,
21843 : MOD) != 0)
21844 : return -1;
21845 : x5 = XEXP (x4, 0);
21846 : operands[2] = x5;
21847 : if (!register_operand (operands[2], E_SImode))
21848 : return -1;
21849 : x6 = XEXP (x4, 1);
21850 : operands[3] = x6;
21851 : if (!nonimmediate_operand (operands[3], E_SImode))
21852 : return -1;
21853 : x7 = XVECEXP (x1, 0, 1);
21854 : x8 = XEXP (x7, 0);
21855 : operands[1] = x8;
21856 : if (!register_operand (operands[1], E_SImode))
21857 : return -1;
21858 : x9 = XEXP (x7, 1);
21859 : x10 = XEXP (x9, 0);
21860 : if (!rtx_equal_p (x10, operands[2]))
21861 : return -1;
21862 : x11 = XEXP (x9, 1);
21863 : if (!rtx_equal_p (x11, operands[3])
21864 : || !
21865 : #line 12460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21866 : (TARGET_64BIT))
21867 : return -1;
21868 : *pnum_clobbers = 1;
21869 : return 683; /* *divmodsi4_zext_1 */
21870 :
21871 : case UDIV:
21872 : if (pattern348 (x1, pnum_clobbers,
21873 : UMOD) != 0)
21874 : return -1;
21875 : x5 = XEXP (x4, 0);
21876 : operands[2] = x5;
21877 : if (!register_operand (operands[2], E_SImode))
21878 : return -1;
21879 : x6 = XEXP (x4, 1);
21880 : operands[3] = x6;
21881 : x7 = XVECEXP (x1, 0, 1);
21882 : x8 = XEXP (x7, 0);
21883 : operands[1] = x8;
21884 : if (!register_operand (operands[1], E_SImode))
21885 : return -1;
21886 : x9 = XEXP (x7, 1);
21887 : switch (pattern1640 (x9))
21888 : {
21889 : case 0:
21890 : if (!
21891 : #line 12495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21892 : (TARGET_64BIT))
21893 : return -1;
21894 : *pnum_clobbers = 1;
21895 : return 684; /* *udivmodsi4_zext_1 */
21896 :
21897 : case 1:
21898 : if (!
21899 : #line 12517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21900 : (TARGET_64BIT
21901 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
21902 : return -1;
21903 : *pnum_clobbers = 1;
21904 : return 685; /* *udivmodsi4_pow2_zext_1 */
21905 :
21906 : default:
21907 : return -1;
21908 : }
21909 :
21910 : case MOD:
21911 : if (pattern349 (x1, pnum_clobbers,
21912 : DIV) != 0)
21913 : return -1;
21914 : x5 = XEXP (x4, 0);
21915 : operands[2] = x5;
21916 : if (!register_operand (operands[2], E_SImode))
21917 : return -1;
21918 : x6 = XEXP (x4, 1);
21919 : operands[3] = x6;
21920 : if (!nonimmediate_operand (operands[3], E_SImode))
21921 : return -1;
21922 : x7 = XVECEXP (x1, 0, 1);
21923 : x8 = XEXP (x7, 0);
21924 : operands[0] = x8;
21925 : if (!register_operand (operands[0], E_SImode))
21926 : return -1;
21927 : x9 = XEXP (x7, 1);
21928 : x10 = XEXP (x9, 0);
21929 : if (!rtx_equal_p (x10, operands[2]))
21930 : return -1;
21931 : x11 = XEXP (x9, 1);
21932 : if (!rtx_equal_p (x11, operands[3])
21933 : || !
21934 : #line 12543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21935 : (TARGET_64BIT))
21936 : return -1;
21937 : *pnum_clobbers = 1;
21938 : return 686; /* *divmodsi4_zext_2 */
21939 :
21940 : case UMOD:
21941 : if (pattern349 (x1, pnum_clobbers,
21942 : UDIV) != 0)
21943 : return -1;
21944 : x5 = XEXP (x4, 0);
21945 : operands[2] = x5;
21946 : if (!register_operand (operands[2], E_SImode))
21947 : return -1;
21948 : x6 = XEXP (x4, 1);
21949 : operands[3] = x6;
21950 : x7 = XVECEXP (x1, 0, 1);
21951 : x8 = XEXP (x7, 0);
21952 : operands[0] = x8;
21953 : if (!register_operand (operands[0], E_SImode))
21954 : return -1;
21955 : x9 = XEXP (x7, 1);
21956 : switch (pattern1640 (x9))
21957 : {
21958 : case 0:
21959 : if (!
21960 : #line 12579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21961 : (TARGET_64BIT))
21962 : return -1;
21963 : *pnum_clobbers = 1;
21964 : return 687; /* *udivmodsi4_zext_2 */
21965 :
21966 : case 1:
21967 : if (!
21968 : #line 12601 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21969 : (TARGET_64BIT
21970 : && IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
21971 : return -1;
21972 : *pnum_clobbers = 1;
21973 : return 688; /* *udivmodsi4_pow2_zext_2 */
21974 :
21975 : default:
21976 : return -1;
21977 : }
21978 :
21979 : case AND:
21980 : if (pattern346 (x1) != 0)
21981 : return -1;
21982 : x5 = XEXP (x4, 0);
21983 : switch (GET_CODE (x5))
21984 : {
21985 : case REG:
21986 : case SUBREG:
21987 : case MEM:
21988 : switch (pattern1052 (x3))
21989 : {
21990 : case 0:
21991 : if (!
21992 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21993 : (TARGET_APX_NDD && true
21994 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
21995 : return -1;
21996 : return 737; /* *andqi_1_zexthi */
21997 :
21998 : case 1:
21999 : if (!
22000 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22001 : (TARGET_APX_NDD && true
22002 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22003 : return -1;
22004 : return 739; /* *andqi_1_zextsi */
22005 :
22006 : case 2:
22007 : if (!
22008 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22009 : (TARGET_APX_NDD && true
22010 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22011 : return -1;
22012 : return 743; /* *andhi_1_zextsi */
22013 :
22014 : case 3:
22015 : if (!
22016 : #line 13412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22017 : (TARGET_APX_NDD && true
22018 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22019 : return -1;
22020 : return 741; /* *andqi_1_zextdi */
22021 :
22022 : case 4:
22023 : if (!
22024 : #line 13431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22025 : (TARGET_APX_NDD && true
22026 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22027 : return -1;
22028 : return 745; /* *andhi_1_zextdi */
22029 :
22030 : case 5:
22031 : if (!
22032 : #line 13452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22033 : (TARGET_64BIT
22034 : && ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)))
22035 : return -1;
22036 : return 746; /* *andsi_1_zext */
22037 :
22038 : default:
22039 : return -1;
22040 : }
22041 :
22042 : case PLUS:
22043 : if (pattern706 (x5) != 0
22044 : || !register_operand (operands[0], E_DImode)
22045 : || GET_MODE (x3) != E_DImode
22046 : || GET_MODE (x4) != E_SImode)
22047 : return -1;
22048 : x12 = XEXP (x5, 0);
22049 : x13 = XEXP (x12, 1);
22050 : operands[2] = x13;
22051 : if (!register_operand (operands[2], E_QImode))
22052 : return -1;
22053 : x6 = XEXP (x4, 1);
22054 : operands[1] = x6;
22055 : if (!nonimmediate_operand (operands[1], E_SImode)
22056 : || !
22057 : #line 23126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22058 : (TARGET_64BIT && TARGET_BMI2))
22059 : return -1;
22060 : return 1630; /* *bmi2_bzhi_zero_extendsidi_4 */
22061 :
22062 : default:
22063 : return -1;
22064 : }
22065 :
22066 : case IOR:
22067 : if (pattern350 (x1) != 0)
22068 : return -1;
22069 : switch (pattern1052 (x3))
22070 : {
22071 : case 0:
22072 : if (!
22073 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22074 : (TARGET_APX_NDD && true
22075 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22076 : return -1;
22077 : return 872; /* *iorqi_1_zexthi */
22078 :
22079 : case 1:
22080 : if (!
22081 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22082 : (TARGET_APX_NDD && true
22083 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22084 : return -1;
22085 : return 876; /* *iorqi_1_zextsi */
22086 :
22087 : case 2:
22088 : if (!
22089 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22090 : (TARGET_APX_NDD && true
22091 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22092 : return -1;
22093 : return 884; /* *iorhi_1_zextsi */
22094 :
22095 : case 3:
22096 : if (!
22097 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22098 : (TARGET_APX_NDD && true
22099 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22100 : return -1;
22101 : return 880; /* *iorqi_1_zextdi */
22102 :
22103 : case 4:
22104 : if (!
22105 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22106 : (TARGET_APX_NDD && true
22107 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22108 : return -1;
22109 : return 888; /* *iorhi_1_zextdi */
22110 :
22111 : case 5:
22112 : if (!
22113 : #line 14579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22114 : (TARGET_64BIT
22115 : && ix86_binary_operator_ok (IOR, SImode, operands, TARGET_APX_NDD)))
22116 : return -1;
22117 : return 891; /* *iorsi_1_zext */
22118 :
22119 : default:
22120 : return -1;
22121 : }
22122 :
22123 : case XOR:
22124 : if (pattern346 (x1) != 0)
22125 : return -1;
22126 : x5 = XEXP (x4, 0);
22127 : switch (GET_CODE (x5))
22128 : {
22129 : case REG:
22130 : case SUBREG:
22131 : case MEM:
22132 : switch (pattern1052 (x3))
22133 : {
22134 : case 0:
22135 : if (!
22136 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22137 : (TARGET_APX_NDD && true
22138 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22139 : return -1;
22140 : return 874; /* *xorqi_1_zexthi */
22141 :
22142 : case 1:
22143 : if (!
22144 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22145 : (TARGET_APX_NDD && true
22146 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22147 : return -1;
22148 : return 878; /* *xorqi_1_zextsi */
22149 :
22150 : case 2:
22151 : if (!
22152 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22153 : (TARGET_APX_NDD && true
22154 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22155 : return -1;
22156 : return 886; /* *xorhi_1_zextsi */
22157 :
22158 : case 3:
22159 : if (!
22160 : #line 14539 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22161 : (TARGET_APX_NDD && true
22162 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22163 : return -1;
22164 : return 882; /* *xorqi_1_zextdi */
22165 :
22166 : case 4:
22167 : if (!
22168 : #line 14558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22169 : (TARGET_APX_NDD && true
22170 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
22171 : return -1;
22172 : return 890; /* *xorhi_1_zextdi */
22173 :
22174 : case 5:
22175 : if (!
22176 : #line 14579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22177 : (TARGET_64BIT
22178 : && ix86_binary_operator_ok (XOR, SImode, operands, TARGET_APX_NDD)))
22179 : return -1;
22180 : return 892; /* *xorsi_1_zext */
22181 :
22182 : default:
22183 : return -1;
22184 : }
22185 :
22186 : case MINUS:
22187 : if (pattern1168 (x4) != 0
22188 : || !register_operand (operands[0], E_DImode)
22189 : || GET_MODE (x3) != E_DImode
22190 : || GET_MODE (x4) != E_SImode)
22191 : return -1;
22192 : x14 = XEXP (x5, 1);
22193 : x15 = XEXP (x14, 0);
22194 : operands[1] = x15;
22195 : if (!nonimmediate_operand (operands[1], E_SImode)
22196 : || !
22197 : #line 22357 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22198 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()))
22199 : return -1;
22200 : return 1563; /* *bsru_2 */
22201 :
22202 : default:
22203 : return -1;
22204 : }
22205 :
22206 : case NEG:
22207 : if (pattern351 (x1) != 0)
22208 : return -1;
22209 : switch (pattern353 (x3))
22210 : {
22211 : case 0:
22212 : if (!
22213 : #line 15253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22214 : (TARGET_APX_NDD && true))
22215 : return -1;
22216 : return 995; /* *negqi_1_zexthi */
22217 :
22218 : case 1:
22219 : if (!
22220 : #line 15253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22221 : (TARGET_APX_NDD && true))
22222 : return -1;
22223 : return 997; /* *negqi_1_zextsi */
22224 :
22225 : case 2:
22226 : if (!
22227 : #line 15267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22228 : (TARGET_APX_NDD && true))
22229 : return -1;
22230 : return 1001; /* *neghi_1_zextsi */
22231 :
22232 : case 3:
22233 : if (!
22234 : #line 15253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22235 : (TARGET_APX_NDD && true))
22236 : return -1;
22237 : return 999; /* *negqi_1_zextdi */
22238 :
22239 : case 4:
22240 : if (!
22241 : #line 15267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22242 : (TARGET_APX_NDD && true))
22243 : return -1;
22244 : return 1003; /* *neghi_1_zextdi */
22245 :
22246 : case 5:
22247 : if (!
22248 : #line 15282 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22249 : (TARGET_64BIT
22250 : && ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)))
22251 : return -1;
22252 : return 1004; /* *negsi_1_zext */
22253 :
22254 : default:
22255 : return -1;
22256 : }
22257 :
22258 : case ASHIFT:
22259 : switch (pattern355 (x1))
22260 : {
22261 : case 0:
22262 : if (!
22263 : #line 16986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22264 : (TARGET_APX_NDD && true))
22265 : return -1;
22266 : return 1126; /* *ashlqi3_1_zexthi */
22267 :
22268 : case 1:
22269 : if (!
22270 : #line 16986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22271 : (TARGET_APX_NDD && true))
22272 : return -1;
22273 : return 1128; /* *ashlqi3_1_zextsi */
22274 :
22275 : case 2:
22276 : if (!
22277 : #line 17001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22278 : (TARGET_APX_NDD && true))
22279 : return -1;
22280 : return 1132; /* *ashlhi3_1_zextsi */
22281 :
22282 : case 3:
22283 : if (!
22284 : #line 16986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22285 : (TARGET_APX_NDD && true))
22286 : return -1;
22287 : return 1130; /* *ashlqi3_1_zextdi */
22288 :
22289 : case 4:
22290 : if (!
22291 : #line 17001 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22292 : (TARGET_APX_NDD && true))
22293 : return -1;
22294 : return 1134; /* *ashlhi3_1_zextdi */
22295 :
22296 : case 5:
22297 : if (!
22298 : #line 17017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22299 : (TARGET_64BIT
22300 : && ix86_binary_operator_ok (ASHIFT, SImode, operands, TARGET_APX_NDD)))
22301 : return -1;
22302 : return 1135; /* *ashlsi3_1_zext */
22303 :
22304 : default:
22305 : return -1;
22306 : }
22307 :
22308 : case ASHIFTRT:
22309 : if (pattern347 (x1) != 0)
22310 : return -1;
22311 : switch (GET_MODE (operands[0]))
22312 : {
22313 : case E_DImode:
22314 : if (!register_operand (operands[0], E_DImode)
22315 : || GET_MODE (x3) != E_DImode)
22316 : return -1;
22317 : switch (GET_MODE (x4))
22318 : {
22319 : case E_SImode:
22320 : if (!nonimmediate_operand (operands[1], E_SImode))
22321 : return -1;
22322 : if (const_int_operand (operands[2], E_QImode)
22323 : &&
22324 : #line 18228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22325 : (TARGET_64BIT && INTVAL (operands[2]) == 31
22326 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
22327 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
22328 : return 1202; /* *ashrsi3_cvt_zext */
22329 : if (!nonmemory_operand (operands[2], E_QImode)
22330 : || !
22331 : #line 18451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22332 : (TARGET_64BIT
22333 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
22334 : return -1;
22335 : return 1239; /* *ashrsi3_1_zext */
22336 :
22337 : case E_QImode:
22338 : if (!nonimmediate_operand (operands[1], E_QImode)
22339 : || !nonmemory_operand (operands[2], E_QImode)
22340 : || !
22341 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22342 : (TARGET_APX_NDD && true))
22343 : return -1;
22344 : return 1229; /* *ashrqi3_1_zextdi */
22345 :
22346 : case E_HImode:
22347 : if (!nonimmediate_operand (operands[1], E_HImode)
22348 : || !nonmemory_operand (operands[2], E_QImode)
22349 : || !
22350 : #line 18435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22351 : (TARGET_APX_NDD && true))
22352 : return -1;
22353 : return 1237; /* *ashrhi3_1_zextdi */
22354 :
22355 : default:
22356 : return -1;
22357 : }
22358 :
22359 : case E_HImode:
22360 : if (!register_operand (operands[0], E_HImode)
22361 : || GET_MODE (x3) != E_HImode
22362 : || GET_MODE (x4) != E_QImode
22363 : || !nonimmediate_operand (operands[1], E_QImode)
22364 : || !nonmemory_operand (operands[2], E_QImode)
22365 : || !
22366 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22367 : (TARGET_APX_NDD && true))
22368 : return -1;
22369 : return 1221; /* *ashrqi3_1_zexthi */
22370 :
22371 : case E_SImode:
22372 : if (!register_operand (operands[0], E_SImode)
22373 : || GET_MODE (x3) != E_SImode
22374 : || !nonmemory_operand (operands[2], E_QImode))
22375 : return -1;
22376 : switch (GET_MODE (x4))
22377 : {
22378 : case E_QImode:
22379 : if (!nonimmediate_operand (operands[1], E_QImode)
22380 : || !
22381 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22382 : (TARGET_APX_NDD && true))
22383 : return -1;
22384 : return 1225; /* *ashrqi3_1_zextsi */
22385 :
22386 : case E_HImode:
22387 : if (!nonimmediate_operand (operands[1], E_HImode)
22388 : || !
22389 : #line 18435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22390 : (TARGET_APX_NDD && true))
22391 : return -1;
22392 : return 1233; /* *ashrhi3_1_zextsi */
22393 :
22394 : default:
22395 : return -1;
22396 : }
22397 :
22398 : default:
22399 : return -1;
22400 : }
22401 :
22402 : case LSHIFTRT:
22403 : x16 = XEXP (x2, 0);
22404 : operands[0] = x16;
22405 : x5 = XEXP (x4, 0);
22406 : operands[1] = x5;
22407 : x6 = XEXP (x4, 1);
22408 : operands[2] = x6;
22409 : x7 = XVECEXP (x1, 0, 1);
22410 : switch (GET_CODE (x7))
22411 : {
22412 : case CLOBBER:
22413 : x8 = XEXP (x7, 0);
22414 : if (GET_CODE (x8) != REG
22415 : || REGNO (x8) != 17
22416 : || GET_MODE (x8) != E_CCmode)
22417 : return -1;
22418 : switch (pattern354 (x3))
22419 : {
22420 : case 0:
22421 : if (!
22422 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22423 : (TARGET_APX_NDD && true))
22424 : return -1;
22425 : return 1219; /* *lshrqi3_1_zexthi */
22426 :
22427 : case 1:
22428 : if (!
22429 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22430 : (TARGET_APX_NDD && true))
22431 : return -1;
22432 : return 1223; /* *lshrqi3_1_zextsi */
22433 :
22434 : case 2:
22435 : if (!
22436 : #line 18435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22437 : (TARGET_APX_NDD && true))
22438 : return -1;
22439 : return 1231; /* *lshrhi3_1_zextsi */
22440 :
22441 : case 3:
22442 : if (!
22443 : #line 18420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22444 : (TARGET_APX_NDD && true))
22445 : return -1;
22446 : return 1227; /* *lshrqi3_1_zextdi */
22447 :
22448 : case 4:
22449 : if (!
22450 : #line 18435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22451 : (TARGET_APX_NDD && true))
22452 : return -1;
22453 : return 1235; /* *lshrhi3_1_zextdi */
22454 :
22455 : case 5:
22456 : if (!
22457 : #line 18451 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22458 : (TARGET_64BIT
22459 : && ix86_binary_operator_ok (LSHIFTRT, SImode, operands, TARGET_APX_NDD)))
22460 : return -1;
22461 : return 1238; /* *lshrsi3_1_zext */
22462 :
22463 : default:
22464 : return -1;
22465 : }
22466 :
22467 : case UNSPEC:
22468 : if (XVECLEN (x7, 0) != 1
22469 : || XINT (x7, 1) != 175)
22470 : return -1;
22471 : x17 = XVECEXP (x7, 0, 0);
22472 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
22473 : || pattern1241 (x3,
22474 : E_SImode,
22475 : E_DImode) != 0
22476 : || !const_0_to_31_operand (operands[2], E_VOIDmode)
22477 : || !
22478 : #line 2341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22479 : (TARGET_AVX512BW))
22480 : return -1;
22481 : return 2678; /* *klshrsi3_1_zext */
22482 :
22483 : default:
22484 : return -1;
22485 : }
22486 :
22487 : case ROTATE:
22488 : switch (pattern355 (x1))
22489 : {
22490 : case 0:
22491 : if (!
22492 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22493 : (TARGET_APX_NDD && true))
22494 : return -1;
22495 : return 1384; /* *rotlqi3_1_zexthi */
22496 :
22497 : case 1:
22498 : if (!
22499 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22500 : (TARGET_APX_NDD && true))
22501 : return -1;
22502 : return 1388; /* *rotlqi3_1_zextsi */
22503 :
22504 : case 2:
22505 : if (!
22506 : #line 19541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22507 : (TARGET_APX_NDD && true))
22508 : return -1;
22509 : return 1396; /* *rotlhi3_1_zextsi */
22510 :
22511 : case 3:
22512 : if (!
22513 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22514 : (TARGET_APX_NDD && true))
22515 : return -1;
22516 : return 1392; /* *rotlqi3_1_zextdi */
22517 :
22518 : case 4:
22519 : if (!
22520 : #line 19541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22521 : (TARGET_APX_NDD && true))
22522 : return -1;
22523 : return 1400; /* *rotlhi3_1_zextdi */
22524 :
22525 : case 5:
22526 : if (!
22527 : #line 19557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22528 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATE, SImode, operands)))
22529 : return -1;
22530 : return 1403; /* *rotlsi3_1_zext */
22531 :
22532 : default:
22533 : return -1;
22534 : }
22535 :
22536 : case ROTATERT:
22537 : switch (pattern355 (x1))
22538 : {
22539 : case 0:
22540 : if (!
22541 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22542 : (TARGET_APX_NDD && true))
22543 : return -1;
22544 : return 1386; /* *rotrqi3_1_zexthi */
22545 :
22546 : case 1:
22547 : if (!
22548 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22549 : (TARGET_APX_NDD && true))
22550 : return -1;
22551 : return 1390; /* *rotrqi3_1_zextsi */
22552 :
22553 : case 2:
22554 : if (!
22555 : #line 19541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22556 : (TARGET_APX_NDD && true))
22557 : return -1;
22558 : return 1398; /* *rotrhi3_1_zextsi */
22559 :
22560 : case 3:
22561 : if (!
22562 : #line 19526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22563 : (TARGET_APX_NDD && true))
22564 : return -1;
22565 : return 1394; /* *rotrqi3_1_zextdi */
22566 :
22567 : case 4:
22568 : if (!
22569 : #line 19541 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22570 : (TARGET_APX_NDD && true))
22571 : return -1;
22572 : return 1402; /* *rotrhi3_1_zextdi */
22573 :
22574 : case 5:
22575 : if (!
22576 : #line 19557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22577 : (TARGET_64BIT && ix86_binary_operator_ok (ROTATERT, SImode, operands)))
22578 : return -1;
22579 : return 1404; /* *rotrsi3_1_zext */
22580 :
22581 : default:
22582 : return -1;
22583 : }
22584 :
22585 : case CTZ:
22586 : if (GET_MODE (x4) != E_SImode)
22587 : return -1;
22588 : x16 = XEXP (x2, 0);
22589 : operands[0] = x16;
22590 : if (!register_operand (operands[0], E_DImode)
22591 : || GET_MODE (x3) != E_DImode)
22592 : return -1;
22593 : switch (pattern942 (x1, pnum_clobbers))
22594 : {
22595 : case 0:
22596 : if (!
22597 : #line 22178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22598 : (TARGET_64BIT))
22599 : return -1;
22600 : return 1551; /* *ctzsidi2_uext */
22601 :
22602 : case 1:
22603 : if (!
22604 : #line 22218 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22605 : (TARGET_64BIT))
22606 : return -1;
22607 : *pnum_clobbers = 1;
22608 : return 1553; /* *ctzsidi2_uext_falsedep */
22609 :
22610 : default:
22611 : return -1;
22612 : }
22613 :
22614 : case CLZ:
22615 : if (GET_MODE (x4) != E_SImode)
22616 : return -1;
22617 : x16 = XEXP (x2, 0);
22618 : operands[0] = x16;
22619 : if (!register_operand (operands[0], E_DImode)
22620 : || GET_MODE (x3) != E_DImode)
22621 : return -1;
22622 : switch (pattern559 (x1, pnum_clobbers))
22623 : {
22624 : case 0:
22625 : if (!nonimmediate_operand (operands[1], E_SImode)
22626 : || !
22627 : #line 22621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22628 : (TARGET_LZCNT && TARGET_64BIT))
22629 : return -1;
22630 : return 1575; /* *clzsi2_lzcnt_zext_2 */
22631 :
22632 : case 1:
22633 : x7 = XVECEXP (x1, 0, 1);
22634 : x17 = XVECEXP (x7, 0, 0);
22635 : switch (pattern1432 (x17))
22636 : {
22637 : case 0:
22638 : if (!
22639 : #line 22646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22640 : (TARGET_LZCNT))
22641 : return -1;
22642 : *pnum_clobbers = 1;
22643 : return 1576; /* *clzsi2_lzcnt_zext_2_falsedep */
22644 :
22645 : case 1:
22646 : if (!(
22647 : #line 22646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22648 : (TARGET_LZCNT) &&
22649 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22650 : (TARGET_64BIT)))
22651 : return -1;
22652 : *pnum_clobbers = 1;
22653 : return 1577; /* *clzsi2_lzcnt_zext_2_falsedep */
22654 :
22655 : default:
22656 : return -1;
22657 : }
22658 :
22659 : default:
22660 : return -1;
22661 : }
22662 :
22663 : case POPCOUNT:
22664 : x16 = XEXP (x2, 0);
22665 : operands[0] = x16;
22666 : switch (pattern559 (x1, pnum_clobbers))
22667 : {
22668 : case 0:
22669 : switch (GET_MODE (operands[0]))
22670 : {
22671 : case E_DImode:
22672 : if (pattern352 (x3,
22673 : E_SImode,
22674 : E_DImode) != 0
22675 : || !
22676 : #line 23460 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22677 : (TARGET_POPCNT && TARGET_64BIT))
22678 : return -1;
22679 : return 1666; /* *popcountsi2_zext_2 */
22680 :
22681 : case E_SImode:
22682 : if (pattern352 (x3,
22683 : E_HImode,
22684 : E_SImode) != 0
22685 : || !
22686 : #line 23526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22687 : (TARGET_POPCNT
22688 : && ix86_pre_reload_split ()))
22689 : return -1;
22690 : return 1669; /* *popcounthi2_2 */
22691 :
22692 : default:
22693 : return -1;
22694 : }
22695 :
22696 : case 1:
22697 : if (!register_operand (operands[0], E_DImode)
22698 : || GET_MODE (x3) != E_DImode
22699 : || GET_MODE (x4) != E_SImode
22700 : || !nonimmediate_operand (operands[1], E_SImode))
22701 : return -1;
22702 : x7 = XVECEXP (x1, 0, 1);
22703 : x17 = XVECEXP (x7, 0, 0);
22704 : operands[2] = x17;
22705 : if (!register_operand (operands[2], E_DImode)
22706 : || !
22707 : #line 23491 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22708 : (TARGET_POPCNT && TARGET_64BIT))
22709 : return -1;
22710 : *pnum_clobbers = 1;
22711 : return 1667; /* *popcountsi2_zext_2_falsedep */
22712 :
22713 : default:
22714 : return -1;
22715 : }
22716 :
22717 : case NOT:
22718 : if (GET_MODE (x4) != E_SImode)
22719 : return -1;
22720 : x7 = XVECEXP (x1, 0, 1);
22721 : if (pattern386 (x7,
22722 : 175,
22723 : 0) != 0)
22724 : return -1;
22725 : x16 = XEXP (x2, 0);
22726 : operands[0] = x16;
22727 : if (!register_operand (operands[0], E_DImode)
22728 : || GET_MODE (x3) != E_DImode)
22729 : return -1;
22730 : x5 = XEXP (x4, 0);
22731 : operands[1] = x5;
22732 : if (!register_operand (operands[1], E_SImode)
22733 : || !
22734 : #line 2264 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22735 : (TARGET_AVX512BW))
22736 : return -1;
22737 : return 2665; /* *knotsi_1_zext */
22738 :
22739 : case UNSPEC:
22740 : return recog_378 (x1, insn, pnum_clobbers);
22741 :
22742 : default:
22743 : return -1;
22744 : }
22745 : }
22746 :
22747 : int
22748 : recog_403 (rtx x1 ATTRIBUTE_UNUSED,
22749 : rtx_insn *insn ATTRIBUTE_UNUSED,
22750 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22751 : {
22752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22753 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22754 : rtx x10, x11, x12, x13;
22755 : int res ATTRIBUTE_UNUSED;
22756 : x2 = XVECEXP (x1, 0, 0);
22757 : x3 = XEXP (x2, 1);
22758 : x4 = XEXP (x3, 0);
22759 : switch (GET_CODE (x4))
22760 : {
22761 : case CONST_INT:
22762 : case CONST_WIDE_INT:
22763 : case CONST_POLY_INT:
22764 : case CONST_FIXED:
22765 : case CONST_DOUBLE:
22766 : case CONST_VECTOR:
22767 : case CONST:
22768 : case REG:
22769 : case SUBREG:
22770 : case MEM:
22771 : case LABEL_REF:
22772 : case SYMBOL_REF:
22773 : case HIGH:
22774 : operands[1] = x4;
22775 : res = recog_402 (x1, insn, pnum_clobbers);
22776 : if (res >= 0)
22777 : return res;
22778 : x5 = XVECEXP (x1, 0, 1);
22779 : if (GET_CODE (x5) != CLOBBER)
22780 : return -1;
22781 : x6 = XEXP (x5, 0);
22782 : if (GET_CODE (x6) != REG
22783 : || REGNO (x6) != 17
22784 : || GET_MODE (x6) != E_CCmode)
22785 : return -1;
22786 : switch (GET_CODE (x4))
22787 : {
22788 : case SUBREG:
22789 : switch (pattern1059 (x2))
22790 : {
22791 : case 0:
22792 : if (!
22793 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22794 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22795 : return -1;
22796 : return 412; /* *subqi_exthi_2_slp */
22797 :
22798 : case 1:
22799 : if (!
22800 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22801 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
22802 : return -1;
22803 : return 413; /* *subqi_extsi_2_slp */
22804 :
22805 : case 2:
22806 : if (!(
22807 : #line 8494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22808 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
22809 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22810 : (TARGET_64BIT)))
22811 : return -1;
22812 : return 414; /* *subqi_extdi_2_slp */
22813 :
22814 : case 3:
22815 : return 423; /* *subqi_ext2hi_0 */
22816 :
22817 : case 4:
22818 : return 424; /* *subqi_ext2si_0 */
22819 :
22820 : case 5:
22821 : if (!
22822 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22823 : (TARGET_64BIT))
22824 : return -1;
22825 : return 425; /* *subqi_ext2di_0 */
22826 :
22827 : default:
22828 : return -1;
22829 : }
22830 :
22831 : case CONST_INT:
22832 : x7 = XEXP (x3, 1);
22833 : if (GET_CODE (x7) != CLZ)
22834 : return -1;
22835 : x8 = XEXP (x2, 0);
22836 : operands[0] = x8;
22837 : x9 = XEXP (x7, 0);
22838 : operands[1] = x9;
22839 : switch (XWINT (x4, 0))
22840 : {
22841 : case 63L:
22842 : if (pattern1440 (x3,
22843 : E_DImode) != 0
22844 : || !
22845 : #line 22253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22846 : (!TARGET_LZCNT && TARGET_64BIT))
22847 : return -1;
22848 : return 1555; /* bsr_rex64_1 */
22849 :
22850 : case 31L:
22851 : if (pattern1440 (x3,
22852 : E_SImode) != 0
22853 : || !
22854 : #line 22297 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22855 : (!TARGET_LZCNT))
22856 : return -1;
22857 : return 1558; /* bsr_1 */
22858 :
22859 : default:
22860 : return -1;
22861 : }
22862 :
22863 : default:
22864 : return -1;
22865 : }
22866 :
22867 : case MINUS:
22868 : x5 = XVECEXP (x1, 0, 1);
22869 : if (pattern357 (x5) != 0)
22870 : return -1;
22871 : x8 = XEXP (x2, 0);
22872 : operands[0] = x8;
22873 : x10 = XEXP (x4, 0);
22874 : operands[1] = x10;
22875 : x7 = XEXP (x3, 1);
22876 : operands[2] = x7;
22877 : x11 = XEXP (x4, 1);
22878 : switch (GET_CODE (x11))
22879 : {
22880 : case LTU:
22881 : case UNLT:
22882 : operands[4] = x11;
22883 : x12 = XEXP (x11, 1);
22884 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22885 : return -1;
22886 : x13 = XEXP (x11, 0);
22887 : operands[3] = x13;
22888 : if (!flags_reg_operand (operands[3], E_VOIDmode))
22889 : return -1;
22890 : switch (GET_MODE (operands[0]))
22891 : {
22892 : case E_QImode:
22893 : if (pattern1645 (x3,
22894 : E_QImode) != 0
22895 : || !
22896 : #line 9828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22897 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)))
22898 : return -1;
22899 : return 503; /* subqi3_carry */
22900 :
22901 : case E_HImode:
22902 : if (pattern1645 (x3,
22903 : E_HImode) != 0
22904 : || !
22905 : #line 9828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22906 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)))
22907 : return -1;
22908 : return 504; /* subhi3_carry */
22909 :
22910 : case E_SImode:
22911 : if (pattern1646 (x3,
22912 : E_SImode) != 0
22913 : || !
22914 : #line 9828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22915 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)))
22916 : return -1;
22917 : return 505; /* subsi3_carry */
22918 :
22919 : case E_DImode:
22920 : if (pattern1646 (x3,
22921 : E_DImode) != 0
22922 : || !(
22923 : #line 9828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22924 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
22925 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22926 : (TARGET_64BIT)))
22927 : return -1;
22928 : return 506; /* subdi3_carry */
22929 :
22930 : default:
22931 : return -1;
22932 : }
22933 :
22934 : case EQ:
22935 : x12 = XEXP (x11, 1);
22936 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22937 : return -1;
22938 : x13 = XEXP (x11, 0);
22939 : operands[3] = x13;
22940 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
22941 : return -1;
22942 : switch (GET_MODE (operands[0]))
22943 : {
22944 : case E_QImode:
22945 : if (pattern1579 (x3,
22946 : E_QImode) != 0
22947 : || !
22948 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22949 : (ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
22950 : && ix86_pre_reload_split ()))
22951 : return -1;
22952 : return 598; /* *subqi3_eq */
22953 :
22954 : case E_HImode:
22955 : if (pattern1579 (x3,
22956 : E_HImode) != 0
22957 : || !
22958 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22959 : (ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
22960 : && ix86_pre_reload_split ()))
22961 : return -1;
22962 : return 599; /* *subhi3_eq */
22963 :
22964 : case E_SImode:
22965 : if (pattern1580 (x3,
22966 : E_SImode) != 0
22967 : || !
22968 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22969 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
22970 : && ix86_pre_reload_split ()))
22971 : return -1;
22972 : return 600; /* *subsi3_eq */
22973 :
22974 : case E_DImode:
22975 : if (pattern1580 (x3,
22976 : E_DImode) != 0
22977 : || !(
22978 : #line 10986 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22979 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
22980 : && ix86_pre_reload_split ()) &&
22981 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22982 : (TARGET_64BIT)))
22983 : return -1;
22984 : return 601; /* *subdi3_eq */
22985 :
22986 : default:
22987 : return -1;
22988 : }
22989 :
22990 : default:
22991 : return -1;
22992 : }
22993 :
22994 : default:
22995 : return -1;
22996 : }
22997 : }
22998 :
22999 : int
23000 : recog_409 (rtx x1 ATTRIBUTE_UNUSED,
23001 : rtx_insn *insn ATTRIBUTE_UNUSED,
23002 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23003 : {
23004 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23005 : rtx x2, x3, x4, x5;
23006 : int res ATTRIBUTE_UNUSED;
23007 : switch (pattern563 (x1))
23008 : {
23009 : case 0:
23010 : x2 = XVECEXP (x1, 0, 1);
23011 : x3 = XEXP (x2, 0);
23012 : if (GET_CODE (x3) != REG
23013 : || REGNO (x3) != 17
23014 : || GET_MODE (x3) != E_CCmode)
23015 : return -1;
23016 : switch (GET_MODE (operands[0]))
23017 : {
23018 : case E_DImode:
23019 : if (!nonimmediate_operand (operands[0], E_DImode))
23020 : return -1;
23021 : x4 = XVECEXP (x1, 0, 0);
23022 : x5 = XEXP (x4, 1);
23023 : if (GET_MODE (x5) != E_DImode
23024 : || !nonimmediate_operand (operands[1], E_DImode))
23025 : return -1;
23026 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
23027 : && (
23028 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23029 : (ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)) &&
23030 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23031 : (!TARGET_64BIT)))
23032 : return 731; /* *anddi3_doubleword */
23033 : if (x86_64_szext_general_operand (operands[2], E_DImode)
23034 : &&
23035 : #line 13323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23036 : (TARGET_64BIT
23037 : && ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)
23038 : && true))
23039 : return 734; /* *anddi_1 */
23040 : if (!const_int_operand (operands[2], E_DImode)
23041 : || !
23042 : #line 13361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23043 : (TARGET_64BIT && TARGET_USE_BT
23044 : && ix86_binary_operator_ok (AND, DImode, operands)
23045 : && IN_RANGE (exact_log2 (~INTVAL (operands[2])), 31, 63)))
23046 : return -1;
23047 : return 735; /* *anddi_1_btr */
23048 :
23049 : case E_TImode:
23050 : x4 = XVECEXP (x1, 0, 0);
23051 : x5 = XEXP (x4, 1);
23052 : if (pattern568 (x5,
23053 : E_TImode) != 0
23054 : || !(
23055 : #line 13277 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23056 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
23057 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23058 : (TARGET_64BIT)))
23059 : return -1;
23060 : return 732; /* *andti3_doubleword */
23061 :
23062 : case E_HImode:
23063 : x4 = XVECEXP (x1, 0, 0);
23064 : x5 = XEXP (x4, 1);
23065 : if (pattern569 (x5,
23066 : E_HImode) != 0
23067 : || !
23068 : #line 13472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23069 : (ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)
23070 : && true))
23071 : return -1;
23072 : return 748; /* *andhi_1 */
23073 :
23074 : case E_SImode:
23075 : x4 = XVECEXP (x1, 0, 0);
23076 : x5 = XEXP (x4, 1);
23077 : if (pattern570 (x5) != 0
23078 : || !
23079 : #line 13472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23080 : (ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)
23081 : && true))
23082 : return -1;
23083 : return 750; /* *andsi_1 */
23084 :
23085 : case E_QImode:
23086 : x4 = XVECEXP (x1, 0, 0);
23087 : x5 = XEXP (x4, 1);
23088 : if (pattern569 (x5,
23089 : E_QImode) != 0
23090 : || !
23091 : #line 13516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23092 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
23093 : && true))
23094 : return -1;
23095 : return 752; /* *andqi_1 */
23096 :
23097 : case E_V4QImode:
23098 : x4 = XVECEXP (x1, 0, 0);
23099 : x5 = XEXP (x4, 1);
23100 : if (pattern571 (x5,
23101 : E_V4QImode) != 0
23102 : || !
23103 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23104 : (ix86_binary_operator_ok (AND, V4QImode, operands)))
23105 : return -1;
23106 : return 2337; /* *andv4qi3 */
23107 :
23108 : case E_V2QImode:
23109 : x4 = XVECEXP (x1, 0, 0);
23110 : x5 = XEXP (x4, 1);
23111 : if (pattern571 (x5,
23112 : E_V2QImode) != 0
23113 : || !
23114 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23115 : (ix86_binary_operator_ok (AND, V2QImode, operands)))
23116 : return -1;
23117 : return 2340; /* *andv2qi3 */
23118 :
23119 : case E_V2HImode:
23120 : x4 = XVECEXP (x1, 0, 0);
23121 : x5 = XEXP (x4, 1);
23122 : if (pattern571 (x5,
23123 : E_V2HImode) != 0
23124 : || !
23125 : #line 4747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23126 : (ix86_binary_operator_ok (AND, V2HImode, operands)))
23127 : return -1;
23128 : return 2343; /* *andv2hi3 */
23129 :
23130 : default:
23131 : return -1;
23132 : }
23133 :
23134 : case 1:
23135 : switch (pattern573 (x1))
23136 : {
23137 : case 0:
23138 : if (!
23139 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23140 : (TARGET_AVX512F))
23141 : return -1;
23142 : return 2641; /* kandqi */
23143 :
23144 : case 1:
23145 : if (!
23146 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23147 : (TARGET_AVX512F))
23148 : return -1;
23149 : return 2644; /* kandhi */
23150 :
23151 : case 2:
23152 : if (!(
23153 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23154 : (TARGET_AVX512F) &&
23155 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23156 : (TARGET_AVX512BW)))
23157 : return -1;
23158 : return 2647; /* kandsi */
23159 :
23160 : case 3:
23161 : if (!(
23162 : #line 2128 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23163 : (TARGET_AVX512F) &&
23164 : #line 2109 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23165 : (TARGET_AVX512BW)))
23166 : return -1;
23167 : return 2650; /* kanddi */
23168 :
23169 : default:
23170 : return -1;
23171 : }
23172 :
23173 : case 2:
23174 : if (!
23175 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23176 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23177 : return -1;
23178 : return 753; /* *andqi_1_slp */
23179 :
23180 : case 3:
23181 : if (!
23182 : #line 13553 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23183 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23184 : return -1;
23185 : return 756; /* *andhi_1_slp */
23186 :
23187 : default:
23188 : return -1;
23189 : }
23190 : }
23191 :
23192 : int
23193 : recog_416 (rtx x1 ATTRIBUTE_UNUSED,
23194 : rtx_insn *insn ATTRIBUTE_UNUSED,
23195 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23196 : {
23197 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23198 : rtx x2, x3, x4, x5, x6, x7;
23199 : int res ATTRIBUTE_UNUSED;
23200 : x2 = XVECEXP (x1, 0, 0);
23201 : x3 = XEXP (x2, 0);
23202 : operands[0] = x3;
23203 : x4 = XEXP (x2, 1);
23204 : x5 = XEXP (x4, 0);
23205 : operands[1] = x5;
23206 : x6 = XVECEXP (x1, 0, 1);
23207 : switch (GET_CODE (x6))
23208 : {
23209 : case CLOBBER:
23210 : x7 = XEXP (x6, 0);
23211 : switch (pattern707 (x7))
23212 : {
23213 : case 0:
23214 : if (!register_operand (operands[0], E_DImode)
23215 : || GET_MODE (x4) != E_DImode
23216 : || !general_operand (operands[1], E_DImode))
23217 : return -1;
23218 : if ((
23219 : #line 15535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23220 : (TARGET_CMOVE
23221 : && ix86_pre_reload_split ()) &&
23222 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23223 : (!TARGET_64BIT)))
23224 : return 1027; /* *absdi2_doubleword */
23225 : if (!(
23226 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23227 : (TARGET_CMOVE
23228 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
23229 : && ix86_pre_reload_split ()) &&
23230 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23231 : (TARGET_64BIT)))
23232 : return -1;
23233 : return 1034; /* *absdi2_1 */
23234 :
23235 : case 1:
23236 : if (!register_operand (operands[0], E_TImode)
23237 : || GET_MODE (x4) != E_TImode
23238 : || !general_operand (operands[1], E_TImode)
23239 : || !(
23240 : #line 15535 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23241 : (TARGET_CMOVE
23242 : && ix86_pre_reload_split ()) &&
23243 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23244 : (TARGET_64BIT)))
23245 : return -1;
23246 : return 1028; /* *absti2_doubleword */
23247 :
23248 : case 2:
23249 : if (!register_operand (operands[0], E_QImode)
23250 : || GET_MODE (x4) != E_QImode
23251 : || !general_operand (operands[1], E_QImode)
23252 : || !
23253 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23254 : (TARGET_CMOVE
23255 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23256 : && ix86_pre_reload_split ()))
23257 : return -1;
23258 : return 1031; /* *absqi2_1 */
23259 :
23260 : case 3:
23261 : if (!register_operand (operands[0], E_HImode)
23262 : || GET_MODE (x4) != E_HImode
23263 : || !general_operand (operands[1], E_HImode)
23264 : || !
23265 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23266 : (TARGET_CMOVE
23267 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23268 : && ix86_pre_reload_split ()))
23269 : return -1;
23270 : return 1032; /* *abshi2_1 */
23271 :
23272 : case 4:
23273 : if (!register_operand (operands[0], E_SImode)
23274 : || GET_MODE (x4) != E_SImode
23275 : || !general_operand (operands[1], E_SImode)
23276 : || !
23277 : #line 15622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23278 : (TARGET_CMOVE
23279 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
23280 : && ix86_pre_reload_split ()))
23281 : return -1;
23282 : return 1033; /* *abssi2_1 */
23283 :
23284 : case 5:
23285 : if (!register_operand (operands[0], E_SFmode)
23286 : || GET_MODE (x4) != E_SFmode
23287 : || !register_operand (operands[1], E_SFmode)
23288 : || !
23289 : #line 15745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23290 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23291 : return -1;
23292 : return 1042; /* *abssf2_i387_1 */
23293 :
23294 : case 6:
23295 : if (!register_operand (operands[0], E_DFmode)
23296 : || GET_MODE (x4) != E_DFmode
23297 : || !register_operand (operands[1], E_DFmode)
23298 : || !
23299 : #line 15745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23300 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23301 : return -1;
23302 : return 1044; /* *absdf2_i387_1 */
23303 :
23304 : case 7:
23305 : if (!register_operand (operands[0], E_XFmode)
23306 : || GET_MODE (x4) != E_XFmode
23307 : || !register_operand (operands[1], E_XFmode)
23308 : || !
23309 : #line 15745 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23310 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
23311 : return -1;
23312 : return 1046; /* *absxf2_i387_1 */
23313 :
23314 : default:
23315 : return -1;
23316 : }
23317 :
23318 : case USE:
23319 : switch (pattern711 (x1, pnum_clobbers))
23320 : {
23321 : case 0:
23322 : if (!
23323 : #line 15683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23324 : (TARGET_SSE))
23325 : return -1;
23326 : return 1039; /* *abstf2_1 */
23327 :
23328 : case 1:
23329 : if (!
23330 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23331 : (TARGET_AVX512FP16))
23332 : return -1;
23333 : *pnum_clobbers = 1;
23334 : return 1048; /* *abshf2_1 */
23335 :
23336 : case 2:
23337 : if (!
23338 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23339 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23340 : return -1;
23341 : *pnum_clobbers = 1;
23342 : return 1050; /* *abssf2_1 */
23343 :
23344 : case 3:
23345 : if (!
23346 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23347 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23348 : return -1;
23349 : *pnum_clobbers = 1;
23350 : return 1052; /* *absdf2_1 */
23351 :
23352 : case 4:
23353 : if (!
23354 : #line 707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23355 : (TARGET_MMX_WITH_SSE))
23356 : return -1;
23357 : return 2103; /* *mmx_absv2sf2 */
23358 :
23359 : case 5:
23360 : if (!
23361 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23362 : (TARGET_SSE))
23363 : return -1;
23364 : return 2149; /* *mmx_absv2bf */
23365 :
23366 : case 6:
23367 : if (!(
23368 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23369 : (TARGET_SSE) &&
23370 : #line 2251 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23371 : (TARGET_MMX_WITH_SSE)))
23372 : return -1;
23373 : return 2151; /* *mmx_absv4bf */
23374 :
23375 : case 7:
23376 : if (!
23377 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23378 : (TARGET_SSE))
23379 : return -1;
23380 : return 2153; /* *mmx_absv2hf */
23381 :
23382 : case 8:
23383 : if (!(
23384 : #line 2266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23385 : (TARGET_SSE) &&
23386 : #line 2252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23387 : (TARGET_MMX_WITH_SSE)))
23388 : return -1;
23389 : return 2155; /* *mmx_absv4hf */
23390 :
23391 : case 9:
23392 : if (!(
23393 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23394 : (TARGET_SSE) &&
23395 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23396 : (TARGET_AVX512F)))
23397 : return -1;
23398 : return 2722; /* *absv32bf2 */
23399 :
23400 : case 10:
23401 : if (!(
23402 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23403 : (TARGET_SSE) &&
23404 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23405 : (TARGET_AVX)))
23406 : return -1;
23407 : return 2724; /* *absv16bf2 */
23408 :
23409 : case 11:
23410 : if (!(
23411 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23412 : (TARGET_SSE) &&
23413 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23414 : (TARGET_SSE2)))
23415 : return -1;
23416 : return 2726; /* *absv8bf2 */
23417 :
23418 : case 12:
23419 : if (!(
23420 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23421 : (TARGET_SSE) &&
23422 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23423 : (TARGET_AVX512F)))
23424 : return -1;
23425 : return 2728; /* *absv32hf2 */
23426 :
23427 : case 13:
23428 : if (!(
23429 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23430 : (TARGET_SSE) &&
23431 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23432 : (TARGET_AVX)))
23433 : return -1;
23434 : return 2730; /* *absv16hf2 */
23435 :
23436 : case 14:
23437 : if (!(
23438 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23439 : (TARGET_SSE) &&
23440 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23441 : (TARGET_SSE2)))
23442 : return -1;
23443 : return 2732; /* *absv8hf2 */
23444 :
23445 : case 15:
23446 : if (!(
23447 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23448 : (TARGET_SSE) &&
23449 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23450 : (TARGET_AVX512F)))
23451 : return -1;
23452 : return 2734; /* *absv16sf2 */
23453 :
23454 : case 16:
23455 : if (!(
23456 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23457 : (TARGET_SSE) &&
23458 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23459 : (TARGET_AVX)))
23460 : return -1;
23461 : return 2736; /* *absv8sf2 */
23462 :
23463 : case 17:
23464 : if (!
23465 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23466 : (TARGET_SSE))
23467 : return -1;
23468 : return 2738; /* *absv4sf2 */
23469 :
23470 : case 18:
23471 : if (!(
23472 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23473 : (TARGET_SSE) &&
23474 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23475 : (TARGET_AVX512F)))
23476 : return -1;
23477 : return 2740; /* *absv8df2 */
23478 :
23479 : case 19:
23480 : if (!(
23481 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23482 : (TARGET_SSE) &&
23483 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23484 : (TARGET_AVX)))
23485 : return -1;
23486 : return 2742; /* *absv4df2 */
23487 :
23488 : case 20:
23489 : if (!(
23490 : #line 2626 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23491 : (TARGET_SSE) &&
23492 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23493 : (TARGET_SSE2)))
23494 : return -1;
23495 : return 2744; /* *absv2df2 */
23496 :
23497 : default:
23498 : return -1;
23499 : }
23500 :
23501 : default:
23502 : return -1;
23503 : }
23504 : }
23505 :
23506 : int
23507 : recog_423 (rtx x1 ATTRIBUTE_UNUSED,
23508 : rtx_insn *insn ATTRIBUTE_UNUSED,
23509 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23510 : {
23511 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23512 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23513 : rtx x10, x11;
23514 : int res ATTRIBUTE_UNUSED;
23515 : x2 = XVECEXP (x1, 0, 0);
23516 : x3 = XEXP (x2, 0);
23517 : operands[0] = x3;
23518 : x4 = XEXP (x2, 1);
23519 : switch (XVECLEN (x4, 0))
23520 : {
23521 : case 1:
23522 : switch (XINT (x4, 1))
23523 : {
23524 : case 2:
23525 : x5 = XVECEXP (x1, 0, 1);
23526 : if (pattern237 (x5,
23527 : E_CCmode,
23528 : 17) != 0)
23529 : return -1;
23530 : x6 = XVECEXP (x4, 0, 0);
23531 : operands[1] = x6;
23532 : switch (GET_MODE (operands[0]))
23533 : {
23534 : case E_SImode:
23535 : if (!register_operand (operands[0], E_SImode)
23536 : || GET_MODE (x4) != E_SImode
23537 : || !register_operand (operands[1], E_SImode)
23538 : || !(
23539 : #line 28458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23540 : (ix86_target_stack_probe ()) &&
23541 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23542 : (Pmode == SImode)))
23543 : return -1;
23544 : return 1911; /* allocate_stack_worker_probe_si */
23545 :
23546 : case E_DImode:
23547 : if (!register_operand (operands[0], E_DImode)
23548 : || GET_MODE (x4) != E_DImode
23549 : || !register_operand (operands[1], E_DImode)
23550 : || !(
23551 : #line 28458 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23552 : (ix86_target_stack_probe ()) &&
23553 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23554 : (Pmode == DImode)))
23555 : return -1;
23556 : return 1912; /* allocate_stack_worker_probe_di */
23557 :
23558 : default:
23559 : return -1;
23560 : }
23561 :
23562 : case 11:
23563 : if (pattern714 (x1,
23564 : 11) != 0
23565 : || !
23566 : #line 30495 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23567 : (TARGET_64BIT))
23568 : return -1;
23569 : return 1947; /* rdpmc_rex64 */
23570 :
23571 : case 9:
23572 : if (pattern715 (x1,
23573 : E_DImode,
23574 : 9) != 0
23575 : || !
23576 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23577 : (TARGET_64BIT))
23578 : return -1;
23579 : return 1949; /* rdtsc_rex64 */
23580 :
23581 : case 10:
23582 : if (pattern715 (x1,
23583 : E_SImode,
23584 : 10) != 0
23585 : || !
23586 : #line 30523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23587 : (!TARGET_64BIT))
23588 : return -1;
23589 : return 1950; /* rdtscp */
23590 :
23591 : case 36:
23592 : if (pattern714 (x1,
23593 : 36) != 0
23594 : || !
23595 : #line 30737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23596 : (TARGET_64BIT && TARGET_XSAVE))
23597 : return -1;
23598 : return 1977; /* xgetbv_rex64 */
23599 :
23600 : case 44:
23601 : switch (pattern716 (x1,
23602 : 44))
23603 : {
23604 : case 0:
23605 : if (!
23606 : #line 30898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23607 : (TARGET_RDRND))
23608 : return -1;
23609 : return 2000; /* rdrandhi */
23610 :
23611 : case 1:
23612 : if (!
23613 : #line 30898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23614 : (TARGET_RDRND))
23615 : return -1;
23616 : return 2001; /* rdrandsi */
23617 :
23618 : case 2:
23619 : if (!(
23620 : #line 30898 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23621 : (TARGET_RDRND) &&
23622 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23623 : (TARGET_64BIT)))
23624 : return -1;
23625 : return 2002; /* rdranddi */
23626 :
23627 : default:
23628 : return -1;
23629 : }
23630 :
23631 : case 45:
23632 : switch (pattern716 (x1,
23633 : 45))
23634 : {
23635 : case 0:
23636 : if (!
23637 : #line 30908 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23638 : (TARGET_RDSEED))
23639 : return -1;
23640 : return 2003; /* rdseedhi */
23641 :
23642 : case 1:
23643 : if (!
23644 : #line 30908 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23645 : (TARGET_RDSEED))
23646 : return -1;
23647 : return 2004; /* rdseedsi */
23648 :
23649 : case 2:
23650 : if (!(
23651 : #line 30908 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23652 : (TARGET_RDSEED) &&
23653 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23654 : (TARGET_64BIT)))
23655 : return -1;
23656 : return 2005; /* rdseeddi */
23657 :
23658 : default:
23659 : return -1;
23660 : }
23661 :
23662 : case 56:
23663 : if (GET_MODE (x4) != E_SImode)
23664 : return -1;
23665 : x5 = XVECEXP (x1, 0, 1);
23666 : if (GET_CODE (x5) != SET)
23667 : return -1;
23668 : x7 = XEXP (x5, 1);
23669 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
23670 : || !register_operand (operands[0], E_SImode))
23671 : return -1;
23672 : x6 = XVECEXP (x4, 0, 0);
23673 : operands[2] = x6;
23674 : if (!register_operand (operands[2], E_SImode))
23675 : return -1;
23676 : x8 = XEXP (x5, 0);
23677 : operands[1] = x8;
23678 : if (!register_operand (operands[1], E_SImode)
23679 : || !
23680 : #line 31151 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23681 : (TARGET_PKU))
23682 : return -1;
23683 : return 2031; /* *rdpkru */
23684 :
23685 : default:
23686 : return -1;
23687 : }
23688 :
23689 : case 2:
23690 : switch (XINT (x4, 1))
23691 : {
23692 : case 3:
23693 : x5 = XVECEXP (x1, 0, 1);
23694 : if (pattern237 (x5,
23695 : E_CCmode,
23696 : 17) != 0)
23697 : return -1;
23698 : x6 = XVECEXP (x4, 0, 0);
23699 : operands[1] = x6;
23700 : x9 = XVECEXP (x4, 0, 1);
23701 : operands[2] = x9;
23702 : switch (GET_MODE (operands[0]))
23703 : {
23704 : case E_SImode:
23705 : if (pattern1447 (x4,
23706 : E_SImode) != 0
23707 : || !
23708 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23709 : (Pmode == SImode))
23710 : return -1;
23711 : return 1916; /* probe_stack_range_si */
23712 :
23713 : case E_DImode:
23714 : if (pattern1447 (x4,
23715 : E_DImode) != 0
23716 : || !
23717 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23718 : (Pmode == DImode))
23719 : return -1;
23720 : return 1917; /* probe_stack_range_di */
23721 :
23722 : default:
23723 : return -1;
23724 : }
23725 :
23726 : case 99:
23727 : if (pattern717 (x1,
23728 : 99) != 0
23729 : || !
23730 : #line 32427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23731 : (TARGET_KL))
23732 : return -1;
23733 : return 10467; /* aesdec128klu8 */
23734 :
23735 : case 101:
23736 : if (pattern717 (x1,
23737 : 101) != 0
23738 : || !
23739 : #line 32427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23740 : (TARGET_KL))
23741 : return -1;
23742 : return 10468; /* aesdec256klu8 */
23743 :
23744 : case 100:
23745 : if (pattern717 (x1,
23746 : 100) != 0
23747 : || !
23748 : #line 32427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23749 : (TARGET_KL))
23750 : return -1;
23751 : return 10469; /* aesenc128klu8 */
23752 :
23753 : case 102:
23754 : if (pattern717 (x1,
23755 : 102) != 0
23756 : || !
23757 : #line 32427 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23758 : (TARGET_KL))
23759 : return -1;
23760 : return 10470; /* aesenc256klu8 */
23761 :
23762 : case 110:
23763 : x5 = XVECEXP (x1, 0, 1);
23764 : if (GET_CODE (x5) != SET)
23765 : return -1;
23766 : x6 = XVECEXP (x4, 0, 0);
23767 : operands[1] = x6;
23768 : x9 = XVECEXP (x4, 0, 1);
23769 : operands[3] = x9;
23770 : if (!const_int_operand (operands[3], E_SImode))
23771 : return -1;
23772 : x8 = XEXP (x5, 0);
23773 : if (!rtx_equal_p (x8, operands[1]))
23774 : return -1;
23775 : x7 = XEXP (x5, 1);
23776 : switch (GET_CODE (x7))
23777 : {
23778 : case PLUS:
23779 : if (pnum_clobbers == NULL)
23780 : return -1;
23781 : x10 = XEXP (x7, 1);
23782 : operands[2] = x10;
23783 : x11 = XEXP (x7, 0);
23784 : if (!rtx_equal_p (x11, operands[1]))
23785 : return -1;
23786 : switch (GET_MODE (operands[0]))
23787 : {
23788 : case E_QImode:
23789 : if (pattern1583 (x1,
23790 : E_QImode) != 0
23791 : || !
23792 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23793 : (TARGET_XADD))
23794 : return -1;
23795 : *pnum_clobbers = 1;
23796 : return 11110; /* atomic_fetch_addqi */
23797 :
23798 : case E_HImode:
23799 : if (pattern1583 (x1,
23800 : E_HImode) != 0
23801 : || !
23802 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23803 : (TARGET_XADD))
23804 : return -1;
23805 : *pnum_clobbers = 1;
23806 : return 11111; /* atomic_fetch_addhi */
23807 :
23808 : case E_SImode:
23809 : if (pattern1583 (x1,
23810 : E_SImode) != 0
23811 : || !
23812 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23813 : (TARGET_XADD))
23814 : return -1;
23815 : *pnum_clobbers = 1;
23816 : return 11112; /* atomic_fetch_addsi */
23817 :
23818 : case E_DImode:
23819 : if (pattern1583 (x1,
23820 : E_DImode) != 0
23821 : || !(
23822 : #line 703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
23823 : (TARGET_XADD) &&
23824 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23825 : (TARGET_64BIT)))
23826 : return -1;
23827 : *pnum_clobbers = 1;
23828 : return 11113; /* atomic_fetch_adddi */
23829 :
23830 : default:
23831 : return -1;
23832 : }
23833 :
23834 : case REG:
23835 : case SUBREG:
23836 : operands[2] = x7;
23837 : switch (GET_MODE (operands[0]))
23838 : {
23839 : case E_QImode:
23840 : if (pattern1505 (x4,
23841 : E_QImode) != 0)
23842 : return -1;
23843 : return 11118; /* atomic_exchangeqi */
23844 :
23845 : case E_HImode:
23846 : if (pattern1505 (x4,
23847 : E_HImode) != 0)
23848 : return -1;
23849 : return 11119; /* atomic_exchangehi */
23850 :
23851 : case E_SImode:
23852 : if (pattern1505 (x4,
23853 : E_SImode) != 0)
23854 : return -1;
23855 : return 11120; /* atomic_exchangesi */
23856 :
23857 : case E_DImode:
23858 : if (pattern1505 (x4,
23859 : E_DImode) != 0
23860 : || !
23861 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23862 : (TARGET_64BIT))
23863 : return -1;
23864 : return 11121; /* atomic_exchangedi */
23865 :
23866 : default:
23867 : return -1;
23868 : }
23869 :
23870 : default:
23871 : return -1;
23872 : }
23873 :
23874 : case 111:
23875 : x5 = XVECEXP (x1, 0, 1);
23876 : if (pattern237 (x5,
23877 : E_CCmode,
23878 : 17) != 0)
23879 : return -1;
23880 : x9 = XVECEXP (x4, 0, 1);
23881 : operands[2] = x9;
23882 : if (!const_int_operand (operands[2], E_SImode))
23883 : return -1;
23884 : x6 = XVECEXP (x4, 0, 0);
23885 : switch (GET_CODE (x6))
23886 : {
23887 : case PLUS:
23888 : switch (pattern1449 (x4))
23889 : {
23890 : case 0:
23891 : return 11130; /* atomic_addqi */
23892 :
23893 : case 1:
23894 : return 11131; /* atomic_addhi */
23895 :
23896 : case 2:
23897 : return 11132; /* atomic_addsi */
23898 :
23899 : case 3:
23900 : if (!
23901 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23902 : (TARGET_64BIT))
23903 : return -1;
23904 : return 11133; /* atomic_adddi */
23905 :
23906 : default:
23907 : return -1;
23908 : }
23909 :
23910 : case MINUS:
23911 : switch (pattern1449 (x4))
23912 : {
23913 : case 0:
23914 : return 11134; /* atomic_subqi */
23915 :
23916 : case 1:
23917 : return 11135; /* atomic_subhi */
23918 :
23919 : case 2:
23920 : return 11136; /* atomic_subsi */
23921 :
23922 : case 3:
23923 : if (!
23924 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23925 : (TARGET_64BIT))
23926 : return -1;
23927 : return 11137; /* atomic_subdi */
23928 :
23929 : default:
23930 : return -1;
23931 : }
23932 :
23933 : case AND:
23934 : switch (pattern1449 (x4))
23935 : {
23936 : case 0:
23937 : return 11138; /* atomic_andqi */
23938 :
23939 : case 1:
23940 : return 11141; /* atomic_andhi */
23941 :
23942 : case 2:
23943 : return 11144; /* atomic_andsi */
23944 :
23945 : case 3:
23946 : if (!
23947 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23948 : (TARGET_64BIT))
23949 : return -1;
23950 : return 11147; /* atomic_anddi */
23951 :
23952 : default:
23953 : return -1;
23954 : }
23955 :
23956 : case IOR:
23957 : switch (pattern1449 (x4))
23958 : {
23959 : case 0:
23960 : return 11139; /* atomic_orqi */
23961 :
23962 : case 1:
23963 : return 11142; /* atomic_orhi */
23964 :
23965 : case 2:
23966 : return 11145; /* atomic_orsi */
23967 :
23968 : case 3:
23969 : if (!
23970 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23971 : (TARGET_64BIT))
23972 : return -1;
23973 : return 11148; /* atomic_ordi */
23974 :
23975 : default:
23976 : return -1;
23977 : }
23978 :
23979 : case XOR:
23980 : switch (pattern1449 (x4))
23981 : {
23982 : case 0:
23983 : return 11140; /* atomic_xorqi */
23984 :
23985 : case 1:
23986 : return 11143; /* atomic_xorhi */
23987 :
23988 : case 2:
23989 : return 11146; /* atomic_xorsi */
23990 :
23991 : case 3:
23992 : if (!
23993 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23994 : (TARGET_64BIT))
23995 : return -1;
23996 : return 11149; /* atomic_xordi */
23997 :
23998 : default:
23999 : return -1;
24000 : }
24001 :
24002 : default:
24003 : return -1;
24004 : }
24005 :
24006 : default:
24007 : return -1;
24008 : }
24009 :
24010 : default:
24011 : return -1;
24012 : }
24013 : }
24014 :
24015 : int
24016 : recog_437 (rtx x1 ATTRIBUTE_UNUSED,
24017 : rtx_insn *insn ATTRIBUTE_UNUSED,
24018 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24019 : {
24020 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24021 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24022 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
24023 : rtx x18, x19;
24024 : int res ATTRIBUTE_UNUSED;
24025 : x2 = XVECEXP (x1, 0, 0);
24026 : switch (GET_CODE (x2))
24027 : {
24028 : case SET:
24029 : x3 = XEXP (x2, 1);
24030 : switch (GET_CODE (x3))
24031 : {
24032 : case UNSPEC:
24033 : return recog_430 (x1, insn, pnum_clobbers);
24034 :
24035 : case SIGN_EXTEND:
24036 : x4 = XVECEXP (x1, 0, 2);
24037 : if (GET_CODE (x4) != CLOBBER)
24038 : return -1;
24039 : x5 = XEXP (x2, 0);
24040 : operands[0] = x5;
24041 : x6 = XEXP (x3, 0);
24042 : switch (GET_CODE (x6))
24043 : {
24044 : case REG:
24045 : case SUBREG:
24046 : operands[1] = x6;
24047 : x7 = XVECEXP (x1, 0, 1);
24048 : if (pattern237 (x7,
24049 : E_CCmode,
24050 : 17) != 0)
24051 : return -1;
24052 : x8 = XEXP (x4, 0);
24053 : operands[2] = x8;
24054 : switch (GET_MODE (operands[0]))
24055 : {
24056 : case E_DImode:
24057 : if (pattern1450 (x3,
24058 : E_SImode,
24059 : E_DImode) != 0
24060 : || !
24061 : #line 5094 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24062 : (!TARGET_64BIT))
24063 : return -1;
24064 : return 189; /* extendsidi2_1 */
24065 :
24066 : case E_TImode:
24067 : if (pattern1450 (x3,
24068 : E_DImode,
24069 : E_TImode) != 0
24070 : || !
24071 : #line 5102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24072 : (TARGET_64BIT))
24073 : return -1;
24074 : return 190; /* extendditi2 */
24075 :
24076 : default:
24077 : return -1;
24078 : }
24079 :
24080 : case CTZ:
24081 : if (GET_MODE (x6) != E_SImode)
24082 : return -1;
24083 : x7 = XVECEXP (x1, 0, 1);
24084 : if (GET_CODE (x7) != UNSPEC
24085 : || XVECLEN (x7, 0) != 1
24086 : || XINT (x7, 1) != 39)
24087 : return -1;
24088 : x8 = XEXP (x4, 0);
24089 : if (GET_CODE (x8) != REG
24090 : || REGNO (x8) != 17
24091 : || GET_MODE (x8) != E_CCmode
24092 : || !register_operand (operands[0], E_DImode)
24093 : || GET_MODE (x3) != E_DImode)
24094 : return -1;
24095 : x9 = XEXP (x6, 0);
24096 : operands[1] = x9;
24097 : if (!nonimmediate_operand (operands[1], E_SImode))
24098 : return -1;
24099 : x10 = XVECEXP (x7, 0, 0);
24100 : operands[2] = x10;
24101 : if (!register_operand (operands[2], E_DImode)
24102 : || !
24103 : #line 22218 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24104 : (TARGET_64BIT))
24105 : return -1;
24106 : return 1552; /* *ctzsidi2_sext_falsedep */
24107 :
24108 : default:
24109 : return -1;
24110 : }
24111 :
24112 : case FIX:
24113 : x7 = XVECEXP (x1, 0, 1);
24114 : if (GET_CODE (x7) != USE)
24115 : return -1;
24116 : x4 = XVECEXP (x1, 0, 2);
24117 : if (GET_CODE (x4) != USE)
24118 : return -1;
24119 : x5 = XEXP (x2, 0);
24120 : operands[0] = x5;
24121 : x6 = XEXP (x3, 0);
24122 : operands[1] = x6;
24123 : if (!register_operand (operands[1], E_VOIDmode))
24124 : return -1;
24125 : switch (pattern837 (x1, pnum_clobbers))
24126 : {
24127 : case 0:
24128 : if (!
24129 : #line 6132 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24130 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24131 : && !TARGET_FISTTP
24132 : && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
24133 : return -1;
24134 : *pnum_clobbers = 1;
24135 : return 239; /* fix_truncdi_i387 */
24136 :
24137 : case 1:
24138 : if (!
24139 : #line 6145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24140 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24141 : && !TARGET_FISTTP
24142 : && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
24143 : return -1;
24144 : return 240; /* fix_trunchi_i387 */
24145 :
24146 : case 2:
24147 : if (!
24148 : #line 6145 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24149 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24150 : && !TARGET_FISTTP
24151 : && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))))
24152 : return -1;
24153 : return 241; /* fix_truncsi_i387 */
24154 :
24155 : default:
24156 : return -1;
24157 : }
24158 :
24159 : case UNSIGNED_FLOAT:
24160 : x7 = XVECEXP (x1, 0, 1);
24161 : if (GET_CODE (x7) != CLOBBER)
24162 : return -1;
24163 : x4 = XVECEXP (x1, 0, 2);
24164 : if (GET_CODE (x4) != CLOBBER)
24165 : return -1;
24166 : switch (pattern578 (x1))
24167 : {
24168 : case 0:
24169 : if (!
24170 : #line 6412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24171 : (!TARGET_64BIT
24172 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
24173 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24174 : return -1;
24175 : return 265; /* floatunssisf2_i387_with_xmm */
24176 :
24177 : case 1:
24178 : if (!
24179 : #line 6412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24180 : (!TARGET_64BIT
24181 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
24182 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24183 : return -1;
24184 : return 266; /* floatunssidf2_i387_with_xmm */
24185 :
24186 : case 2:
24187 : if (!
24188 : #line 6412 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24189 : (!TARGET_64BIT
24190 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
24191 : && TARGET_SSE2 && TARGET_INTER_UNIT_MOVES_TO_VEC))
24192 : return -1;
24193 : return 267; /* floatunssixf2_i387_with_xmm */
24194 :
24195 : default:
24196 : return -1;
24197 : }
24198 :
24199 : case EQ:
24200 : return recog_436 (x1, insn, pnum_clobbers);
24201 :
24202 : case SMUL_HIGHPART:
24203 : switch (pattern224 (x1))
24204 : {
24205 : case 0:
24206 : if (!
24207 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24208 : (!TARGET_64BIT))
24209 : return -1;
24210 : return 655; /* smulsi3_highpart */
24211 :
24212 : case 1:
24213 : if (!
24214 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24215 : (TARGET_64BIT))
24216 : return -1;
24217 : return 657; /* smuldi3_highpart */
24218 :
24219 : default:
24220 : return -1;
24221 : }
24222 :
24223 : case UMUL_HIGHPART:
24224 : switch (pattern224 (x1))
24225 : {
24226 : case 0:
24227 : if (!
24228 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24229 : (!TARGET_64BIT))
24230 : return -1;
24231 : return 656; /* umulsi3_highpart */
24232 :
24233 : case 1:
24234 : if (!
24235 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24236 : (TARGET_64BIT))
24237 : return -1;
24238 : return 658; /* umuldi3_highpart */
24239 :
24240 : default:
24241 : return -1;
24242 : }
24243 :
24244 : case ZERO_EXTEND:
24245 : return recog_431 (x1, insn, pnum_clobbers);
24246 :
24247 : case TRUNCATE:
24248 : x6 = XEXP (x3, 0);
24249 : if (GET_CODE (x6) != LSHIFTRT)
24250 : return -1;
24251 : x9 = XEXP (x6, 0);
24252 : if (GET_CODE (x9) != MULT)
24253 : return -1;
24254 : x11 = XEXP (x6, 1);
24255 : if (GET_CODE (x11) != CONST_INT)
24256 : return -1;
24257 : x7 = XVECEXP (x1, 0, 1);
24258 : if (GET_CODE (x7) != CLOBBER
24259 : || pattern841 (x1) != 0)
24260 : return -1;
24261 : x12 = XEXP (x7, 0);
24262 : operands[3] = x12;
24263 : x13 = XEXP (x9, 0);
24264 : switch (GET_CODE (x13))
24265 : {
24266 : case SIGN_EXTEND:
24267 : switch (pattern1507 (x3,
24268 : SIGN_EXTEND))
24269 : {
24270 : case 0:
24271 : if (!
24272 : #line 11950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24273 : (TARGET_64BIT
24274 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24275 : return -1;
24276 : return 661; /* *smuldi3_highpart_1 */
24277 :
24278 : case 1:
24279 : if (!
24280 : #line 11999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24281 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24282 : return -1;
24283 : return 665; /* *smulsi3_highpart_1 */
24284 :
24285 : default:
24286 : return -1;
24287 : }
24288 :
24289 : case ZERO_EXTEND:
24290 : switch (pattern1507 (x3,
24291 : ZERO_EXTEND))
24292 : {
24293 : case 0:
24294 : if (!
24295 : #line 11950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24296 : (TARGET_64BIT
24297 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
24298 : return -1;
24299 : return 662; /* *umuldi3_highpart_1 */
24300 :
24301 : case 1:
24302 : if (!
24303 : #line 11999 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24304 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))))
24305 : return -1;
24306 : return 666; /* *umulsi3_highpart_1 */
24307 :
24308 : default:
24309 : return -1;
24310 : }
24311 :
24312 : default:
24313 : return -1;
24314 : }
24315 :
24316 : case DIV:
24317 : switch (pattern225 (x1))
24318 : {
24319 : case 0:
24320 : switch (pattern1343 (x1, pnum_clobbers))
24321 : {
24322 : case 0:
24323 : *pnum_clobbers = 1;
24324 : return 667; /* divmodsi4_1 */
24325 :
24326 : case 1:
24327 : if (!
24328 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24329 : (TARGET_64BIT))
24330 : return -1;
24331 : *pnum_clobbers = 1;
24332 : return 668; /* divmoddi4_1 */
24333 :
24334 : case 2:
24335 : if (!
24336 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24337 : (TARGET_HIMODE_MATH))
24338 : return -1;
24339 : return 675; /* *divmodhi4 */
24340 :
24341 : case 3:
24342 : return 676; /* *divmodsi4 */
24343 :
24344 : case 4:
24345 : if (!
24346 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24347 : (TARGET_64BIT))
24348 : return -1;
24349 : return 677; /* *divmoddi4 */
24350 :
24351 : case 5:
24352 : if ((
24353 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24354 : (TARGET_APX_NF) &&
24355 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24356 : (TARGET_HIMODE_MATH)))
24357 : return 689; /* *divmodhi4_noext_nf */
24358 : if (pnum_clobbers == NULL
24359 : || !
24360 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24361 : (TARGET_HIMODE_MATH))
24362 : return -1;
24363 : *pnum_clobbers = 1;
24364 : return 695; /* *divmodhi4_noext */
24365 :
24366 : case 6:
24367 : if (
24368 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24369 : (TARGET_APX_NF))
24370 : return 691; /* *divmodsi4_noext_nf */
24371 : if (pnum_clobbers == NULL)
24372 : return -1;
24373 : *pnum_clobbers = 1;
24374 : return 697; /* *divmodsi4_noext */
24375 :
24376 : case 7:
24377 : if ((
24378 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24379 : (TARGET_APX_NF) &&
24380 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24381 : (TARGET_64BIT)))
24382 : return 693; /* *divmoddi4_noext_nf */
24383 : if (pnum_clobbers == NULL
24384 : || !
24385 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24386 : (TARGET_64BIT))
24387 : return -1;
24388 : *pnum_clobbers = 1;
24389 : return 699; /* *divmoddi4_noext */
24390 :
24391 : default:
24392 : return -1;
24393 : }
24394 :
24395 : case 1:
24396 : if (!const_int_operand (operands[2], E_SImode))
24397 : return -1;
24398 : x4 = XVECEXP (x1, 0, 2);
24399 : if (pattern956 (x4,
24400 : E_CCmode,
24401 : 17) != 0
24402 : || pattern1503 (x1) != 0
24403 : || !
24404 : #line 12683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24405 : (!optimize_function_for_size_p (cfun)))
24406 : return -1;
24407 : return 705; /* *divmodsi4_const */
24408 :
24409 : default:
24410 : return -1;
24411 : }
24412 :
24413 : case UDIV:
24414 : switch (pattern226 (x1))
24415 : {
24416 : case 0:
24417 : switch (pattern1343 (x1, pnum_clobbers))
24418 : {
24419 : case 0:
24420 : *pnum_clobbers = 1;
24421 : return 669; /* udivmodsi4_1 */
24422 :
24423 : case 1:
24424 : if (!
24425 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24426 : (TARGET_64BIT))
24427 : return -1;
24428 : *pnum_clobbers = 1;
24429 : return 670; /* udivmoddi4_1 */
24430 :
24431 : case 2:
24432 : if (!
24433 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24434 : (TARGET_HIMODE_MATH))
24435 : return -1;
24436 : return 678; /* *udivmodhi4 */
24437 :
24438 : case 3:
24439 : return 679; /* *udivmodsi4 */
24440 :
24441 : case 4:
24442 : if (!
24443 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24444 : (TARGET_64BIT))
24445 : return -1;
24446 : return 680; /* *udivmoddi4 */
24447 :
24448 : case 5:
24449 : if ((
24450 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24451 : (TARGET_APX_NF) &&
24452 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24453 : (TARGET_HIMODE_MATH)))
24454 : return 690; /* *udivmodhi4_noext_nf */
24455 : if (pnum_clobbers == NULL
24456 : || !
24457 : #line 1222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24458 : (TARGET_HIMODE_MATH))
24459 : return -1;
24460 : *pnum_clobbers = 1;
24461 : return 696; /* *udivmodhi4_noext */
24462 :
24463 : case 6:
24464 : if (
24465 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24466 : (TARGET_APX_NF))
24467 : return 692; /* *udivmodsi4_noext_nf */
24468 : if (pnum_clobbers == NULL)
24469 : return -1;
24470 : *pnum_clobbers = 1;
24471 : return 698; /* *udivmodsi4_noext */
24472 :
24473 : case 7:
24474 : if ((
24475 : #line 12627 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24476 : (TARGET_APX_NF) &&
24477 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24478 : (TARGET_64BIT)))
24479 : return 694; /* *udivmoddi4_noext_nf */
24480 : if (pnum_clobbers == NULL
24481 : || !
24482 : #line 1223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24483 : (TARGET_64BIT))
24484 : return -1;
24485 : *pnum_clobbers = 1;
24486 : return 700; /* *udivmoddi4_noext */
24487 :
24488 : default:
24489 : return -1;
24490 : }
24491 :
24492 : case 1:
24493 : x4 = XVECEXP (x1, 0, 2);
24494 : if (pattern956 (x4,
24495 : E_CCmode,
24496 : 17) != 0)
24497 : return -1;
24498 : switch (GET_MODE (operands[0]))
24499 : {
24500 : case E_SImode:
24501 : if (pattern1504 (x1,
24502 : E_SImode) != 0
24503 : || !
24504 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24505 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)))
24506 : return -1;
24507 : return 681; /* *udivmodsi4_pow2 */
24508 :
24509 : case E_DImode:
24510 : if (pattern1504 (x1,
24511 : E_DImode) != 0
24512 : || !(
24513 : #line 12436 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24514 : (IN_RANGE (exact_log2 (UINTVAL (operands[3])), 1, 31)) &&
24515 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24516 : (TARGET_64BIT)))
24517 : return -1;
24518 : return 682; /* *udivmoddi4_pow2 */
24519 :
24520 : default:
24521 : return -1;
24522 : }
24523 :
24524 : default:
24525 : return -1;
24526 : }
24527 :
24528 : case ABS:
24529 : switch (pattern228 (x1))
24530 : {
24531 : case 0:
24532 : if (!
24533 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24534 : (TARGET_AVX512FP16))
24535 : return -1;
24536 : return 1048; /* *abshf2_1 */
24537 :
24538 : case 1:
24539 : if (!
24540 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24541 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
24542 : return -1;
24543 : return 1050; /* *abssf2_1 */
24544 :
24545 : case 2:
24546 : if (!
24547 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24548 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
24549 : return -1;
24550 : return 1052; /* *absdf2_1 */
24551 :
24552 : default:
24553 : return -1;
24554 : }
24555 :
24556 : case NEG:
24557 : switch (pattern228 (x1))
24558 : {
24559 : case 0:
24560 : if (!
24561 : #line 15769 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24562 : (TARGET_AVX512FP16))
24563 : return -1;
24564 : return 1049; /* *neghf2_1 */
24565 :
24566 : case 1:
24567 : if (!
24568 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24569 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
24570 : return -1;
24571 : return 1051; /* *negsf2_1 */
24572 :
24573 : case 2:
24574 : if (!
24575 : #line 15785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24576 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
24577 : return -1;
24578 : return 1053; /* *negdf2_1 */
24579 :
24580 : default:
24581 : return -1;
24582 : }
24583 :
24584 : case ROTATE:
24585 : switch (pattern230 (x1))
24586 : {
24587 : case 0:
24588 : if (!
24589 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24590 : (!TARGET_64BIT))
24591 : return -1;
24592 : return 1364; /* ix86_rotldi3_doubleword */
24593 :
24594 : case 1:
24595 : if (!
24596 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24597 : (TARGET_64BIT))
24598 : return -1;
24599 : return 1365; /* ix86_rotlti3_doubleword */
24600 :
24601 : default:
24602 : return -1;
24603 : }
24604 :
24605 : case ROTATERT:
24606 : switch (pattern230 (x1))
24607 : {
24608 : case 0:
24609 : if (!
24610 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24611 : (!TARGET_64BIT))
24612 : return -1;
24613 : return 1366; /* ix86_rotrdi3_doubleword */
24614 :
24615 : case 1:
24616 : if (!
24617 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24618 : (TARGET_64BIT))
24619 : return -1;
24620 : return 1367; /* ix86_rotrti3_doubleword */
24621 :
24622 : default:
24623 : return -1;
24624 : }
24625 :
24626 : case CALL:
24627 : return recog_433 (x1, insn, pnum_clobbers);
24628 :
24629 : case PLUS:
24630 : x4 = XVECEXP (x1, 0, 2);
24631 : if (pattern231 (x4) != 0)
24632 : return -1;
24633 : x6 = XEXP (x3, 0);
24634 : if (GET_CODE (x6) == REG
24635 : && REGNO (x6) == 6)
24636 : {
24637 : x14 = XEXP (x3, 1);
24638 : if (GET_CODE (x14) == CONST_INT)
24639 : {
24640 : x5 = XEXP (x2, 0);
24641 : if (GET_CODE (x5) == REG
24642 : && REGNO (x5) == 7)
24643 : {
24644 : x7 = XVECEXP (x1, 0, 1);
24645 : if (pattern722 (x7,
24646 : 6,
24647 : MEM) == 0)
24648 : {
24649 : switch (XWINT (x14, 0))
24650 : {
24651 : case 4L:
24652 : if (pattern1709 (x1,
24653 : E_SImode) == 0
24654 : &&
24655 : #line 21873 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24656 : (!TARGET_64BIT))
24657 : return 1534; /* *leave */
24658 : break;
24659 :
24660 : case 8L:
24661 : if (pattern1709 (x1,
24662 : E_DImode) == 0
24663 : &&
24664 : #line 21881 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24665 : (TARGET_64BIT))
24666 : return 1535; /* *leave_rex64 */
24667 : break;
24668 :
24669 : default:
24670 : break;
24671 : }
24672 : }
24673 : }
24674 : }
24675 : }
24676 : x7 = XVECEXP (x1, 0, 1);
24677 : if (GET_CODE (x7) != CLOBBER)
24678 : return -1;
24679 : x12 = XEXP (x7, 0);
24680 : if (GET_CODE (x12) != REG
24681 : || REGNO (x12) != 17
24682 : || GET_MODE (x12) != E_CCmode)
24683 : return -1;
24684 : x5 = XEXP (x2, 0);
24685 : operands[0] = x5;
24686 : operands[1] = x6;
24687 : x14 = XEXP (x3, 1);
24688 : operands[2] = x14;
24689 : switch (GET_MODE (operands[0]))
24690 : {
24691 : case E_SImode:
24692 : if (pattern1433 (x3,
24693 : E_SImode) != 0
24694 : || !
24695 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24696 : (Pmode == SImode))
24697 : return -1;
24698 : return 1905; /* pro_epilogue_adjust_stack_add_si */
24699 :
24700 : case E_DImode:
24701 : if (pattern1433 (x3,
24702 : E_DImode) != 0
24703 : || !
24704 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24705 : (Pmode == DImode))
24706 : return -1;
24707 : return 1906; /* pro_epilogue_adjust_stack_add_di */
24708 :
24709 : default:
24710 : return -1;
24711 : }
24712 :
24713 : case FFS:
24714 : if (GET_MODE (x3) != E_SImode)
24715 : return -1;
24716 : x7 = XVECEXP (x1, 0, 1);
24717 : if (GET_CODE (x7) != CLOBBER)
24718 : return -1;
24719 : x4 = XVECEXP (x1, 0, 2);
24720 : if (GET_CODE (x4) != CLOBBER
24721 : || pattern721 (x1) != 0
24722 : || !
24723 : #line 21976 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24724 : (!TARGET_CMOVE))
24725 : return -1;
24726 : return 1537; /* ffssi2_no_cmove */
24727 :
24728 : case COMPARE:
24729 : return recog_434 (x1, insn, pnum_clobbers);
24730 :
24731 : case CTZ:
24732 : switch (pattern235 (x1))
24733 : {
24734 : case 0:
24735 : return 1546; /* *ctzsi2_falsedep */
24736 :
24737 : case 1:
24738 : if (!
24739 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24740 : (TARGET_64BIT))
24741 : return -1;
24742 : return 1547; /* *ctzdi2_falsedep */
24743 :
24744 : default:
24745 : return -1;
24746 : }
24747 :
24748 : case AND:
24749 : if (GET_MODE (x3) != E_DImode)
24750 : return -1;
24751 : x6 = XEXP (x3, 0);
24752 : if (GET_CODE (x6) != SUBREG
24753 : || maybe_ne (SUBREG_BYTE (x6), 0)
24754 : || GET_MODE (x6) != E_DImode)
24755 : return -1;
24756 : x14 = XEXP (x3, 1);
24757 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 63])
24758 : return -1;
24759 : x7 = XVECEXP (x1, 0, 1);
24760 : if (GET_CODE (x7) != UNSPEC
24761 : || XVECLEN (x7, 0) != 1
24762 : || XINT (x7, 1) != 39
24763 : || pattern841 (x1) != 0
24764 : || !register_operand (operands[0], E_DImode))
24765 : return -1;
24766 : x9 = XEXP (x6, 0);
24767 : if (GET_MODE (x9) != E_SImode)
24768 : return -1;
24769 : x10 = XVECEXP (x7, 0, 0);
24770 : operands[2] = x10;
24771 : if (!register_operand (operands[2], E_DImode))
24772 : return -1;
24773 : switch (GET_CODE (x9))
24774 : {
24775 : case CTZ:
24776 : x13 = XEXP (x9, 0);
24777 : operands[1] = x13;
24778 : if (!nonimmediate_operand (operands[1], E_SImode)
24779 : || !
24780 : #line 22164 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24781 : (TARGET_BMI && TARGET_64BIT))
24782 : return -1;
24783 : return 1549; /* *ctzsi2_zext_falsedep */
24784 :
24785 : case CLZ:
24786 : x13 = XEXP (x9, 0);
24787 : operands[1] = x13;
24788 : switch (GET_MODE (operands[1]))
24789 : {
24790 : case E_SImode:
24791 : if (!nonimmediate_operand (operands[1], E_SImode)
24792 : || !
24793 : #line 22610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24794 : (TARGET_LZCNT))
24795 : return -1;
24796 : return 1573; /* *clzsi2_lzcnt_zext_falsedep */
24797 :
24798 : case E_DImode:
24799 : if (!nonimmediate_operand (operands[1], E_DImode)
24800 : || !(
24801 : #line 22610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24802 : (TARGET_LZCNT) &&
24803 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24804 : (TARGET_64BIT)))
24805 : return -1;
24806 : return 1574; /* *clzsi2_lzcnt_zext_falsedep */
24807 :
24808 : default:
24809 : return -1;
24810 : }
24811 :
24812 : case POPCOUNT:
24813 : x13 = XEXP (x9, 0);
24814 : operands[1] = x13;
24815 : if (!nonimmediate_operand (operands[1], E_SImode)
24816 : || !
24817 : #line 23443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24818 : (TARGET_POPCNT && TARGET_64BIT))
24819 : return -1;
24820 : return 1665; /* *popcountsi2_zext_falsedep */
24821 :
24822 : default:
24823 : return -1;
24824 : }
24825 :
24826 : case CLZ:
24827 : switch (pattern235 (x1))
24828 : {
24829 : case 0:
24830 : if (!
24831 : #line 22567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24832 : (TARGET_LZCNT))
24833 : return -1;
24834 : return 1570; /* *clzsi2_lzcnt_falsedep */
24835 :
24836 : case 1:
24837 : if (!(
24838 : #line 22567 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24839 : (TARGET_LZCNT) &&
24840 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24841 : (TARGET_64BIT)))
24842 : return -1;
24843 : return 1571; /* *clzdi2_lzcnt_falsedep */
24844 :
24845 : default:
24846 : return -1;
24847 : }
24848 :
24849 : case XOR:
24850 : x6 = XEXP (x3, 0);
24851 : if (GET_CODE (x6) != PLUS)
24852 : return -1;
24853 : x11 = XEXP (x6, 1);
24854 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
24855 : return -1;
24856 : x7 = XVECEXP (x1, 0, 1);
24857 : if (pattern237 (x7,
24858 : E_CCmode,
24859 : 17) != 0)
24860 : return -1;
24861 : x4 = XVECEXP (x1, 0, 2);
24862 : if (GET_CODE (x4) != UNSPEC
24863 : || XVECLEN (x4, 0) != 1
24864 : || XINT (x4, 1) != 39)
24865 : return -1;
24866 : x5 = XEXP (x2, 0);
24867 : operands[0] = x5;
24868 : x9 = XEXP (x6, 0);
24869 : operands[1] = x9;
24870 : x15 = XVECEXP (x4, 0, 0);
24871 : operands[2] = x15;
24872 : x14 = XEXP (x3, 1);
24873 : if (!rtx_equal_p (x14, operands[1]))
24874 : return -1;
24875 : switch (GET_MODE (operands[0]))
24876 : {
24877 : case E_SImode:
24878 : if (pattern1648 (x3,
24879 : E_SImode) != 0
24880 : || !
24881 : #line 22918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24882 : (TARGET_BMI))
24883 : return -1;
24884 : return 1612; /* *bmi_blsmsk_si_falsedep */
24885 :
24886 : case E_DImode:
24887 : if (pattern1648 (x3,
24888 : E_DImode) != 0
24889 : || !(
24890 : #line 22918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24891 : (TARGET_BMI) &&
24892 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24893 : (TARGET_64BIT)))
24894 : return -1;
24895 : return 1613; /* *bmi_blsmsk_di_falsedep */
24896 :
24897 : default:
24898 : return -1;
24899 : }
24900 :
24901 : case POPCOUNT:
24902 : switch (pattern235 (x1))
24903 : {
24904 : case 0:
24905 : if (!
24906 : #line 23388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24907 : (TARGET_POPCNT))
24908 : return -1;
24909 : return 1662; /* *popcountsi2_falsedep */
24910 :
24911 : case 1:
24912 : if (!(
24913 : #line 23388 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24914 : (TARGET_POPCNT) &&
24915 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24916 : (TARGET_64BIT)))
24917 : return -1;
24918 : return 1663; /* *popcountdi2_falsedep */
24919 :
24920 : default:
24921 : return -1;
24922 : }
24923 :
24924 : case MEM:
24925 : return recog_435 (x1, insn, pnum_clobbers);
24926 :
24927 : case REG:
24928 : case SUBREG:
24929 : operands[2] = x3;
24930 : if (pattern236 (x1) != 0)
24931 : return -1;
24932 : x4 = XVECEXP (x1, 0, 2);
24933 : if (pattern387 (x4,
24934 : 37) != 0)
24935 : return -1;
24936 : x5 = XEXP (x2, 0);
24937 : x16 = XEXP (x5, 0);
24938 : operands[1] = x16;
24939 : x7 = XVECEXP (x1, 0, 1);
24940 : x12 = XEXP (x7, 0);
24941 : operands[0] = x12;
24942 : x17 = XEXP (x7, 1);
24943 : x18 = XEXP (x17, 0);
24944 : if (!rtx_equal_p (x18, operands[1]))
24945 : return -1;
24946 : x19 = XEXP (x17, 1);
24947 : switch (XWINT (x19, 0))
24948 : {
24949 : case 8L:
24950 : switch (pattern1588 (x1,
24951 : E_DImode))
24952 : {
24953 : case 0:
24954 : if (!(
24955 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24956 : (TARGET_64BIT
24957 : && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
24958 : && ADDR_SPACE_GENERIC_P
24959 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
24960 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24961 : (Pmode == SImode)))
24962 : return -1;
24963 : return 1807; /* *strsetdi_rex_1 */
24964 :
24965 : case 1:
24966 : if (!(
24967 : #line 26957 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24968 : (TARGET_64BIT
24969 : && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])
24970 : && ADDR_SPACE_GENERIC_P
24971 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
24972 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24973 : (Pmode == DImode)))
24974 : return -1;
24975 : return 1808; /* *strsetdi_rex_1 */
24976 :
24977 : default:
24978 : return -1;
24979 : }
24980 :
24981 : case 4L:
24982 : switch (pattern1588 (x1,
24983 : E_SImode))
24984 : {
24985 : case 0:
24986 : if (!(
24987 : #line 26973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24988 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
24989 : && ADDR_SPACE_GENERIC_P
24990 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
24991 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24992 : (Pmode == SImode)))
24993 : return -1;
24994 : return 1809; /* *strsetsi_1 */
24995 :
24996 : case 1:
24997 : if (!(
24998 : #line 26973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24999 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25000 : && ADDR_SPACE_GENERIC_P
25001 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25002 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25003 : (Pmode == DImode)))
25004 : return -1;
25005 : return 1810; /* *strsetsi_1 */
25006 :
25007 : default:
25008 : return -1;
25009 : }
25010 :
25011 : case 2L:
25012 : switch (pattern1588 (x1,
25013 : E_HImode))
25014 : {
25015 : case 0:
25016 : if (!(
25017 : #line 26988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25018 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25019 : && ADDR_SPACE_GENERIC_P
25020 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25021 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25022 : (Pmode == SImode)))
25023 : return -1;
25024 : return 1811; /* *strsethi_1 */
25025 :
25026 : case 1:
25027 : if (!(
25028 : #line 26988 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25029 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25030 : && ADDR_SPACE_GENERIC_P
25031 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25032 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25033 : (Pmode == DImode)))
25034 : return -1;
25035 : return 1812; /* *strsethi_1 */
25036 :
25037 : default:
25038 : return -1;
25039 : }
25040 :
25041 : case 1L:
25042 : switch (pattern1588 (x1,
25043 : E_QImode))
25044 : {
25045 : case 0:
25046 : if (!(
25047 : #line 27003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25048 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25049 : && ADDR_SPACE_GENERIC_P
25050 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25051 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25052 : (Pmode == SImode)))
25053 : return -1;
25054 : return 1813; /* *strsetqi_1 */
25055 :
25056 : case 1:
25057 : if (!(
25058 : #line 27003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25059 : (!(fixed_regs[AX_REG] || fixed_regs[DI_REG])
25060 : && ADDR_SPACE_GENERIC_P
25061 : (MEM_ADDR_SPACE (SET_DEST (XVECEXP (PATTERN (insn), 0, 0))))) &&
25062 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25063 : (Pmode == DImode)))
25064 : return -1;
25065 : return 1814; /* *strsetqi_1 */
25066 :
25067 : default:
25068 : return -1;
25069 : }
25070 :
25071 : default:
25072 : return -1;
25073 : }
25074 :
25075 : case MINUS:
25076 : x7 = XVECEXP (x1, 0, 1);
25077 : if (pattern237 (x7,
25078 : E_CCmode,
25079 : 17) != 0)
25080 : return -1;
25081 : x4 = XVECEXP (x1, 0, 2);
25082 : if (pattern231 (x4) != 0)
25083 : return -1;
25084 : x5 = XEXP (x2, 0);
25085 : operands[0] = x5;
25086 : x6 = XEXP (x3, 0);
25087 : operands[1] = x6;
25088 : x14 = XEXP (x3, 1);
25089 : operands[2] = x14;
25090 : switch (GET_MODE (operands[0]))
25091 : {
25092 : case E_SImode:
25093 : if (pattern572 (x3,
25094 : E_SImode) != 0
25095 : || !
25096 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25097 : (Pmode == SImode))
25098 : return -1;
25099 : return 1909; /* pro_epilogue_adjust_stack_sub_si */
25100 :
25101 : case E_DImode:
25102 : if (pattern572 (x3,
25103 : E_DImode) != 0
25104 : || !
25105 : #line 1429 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25106 : (Pmode == DImode))
25107 : return -1;
25108 : return 1910; /* pro_epilogue_adjust_stack_sub_di */
25109 :
25110 : default:
25111 : return -1;
25112 : }
25113 :
25114 : case UNSPEC_VOLATILE:
25115 : return recog_432 (x1, insn, pnum_clobbers);
25116 :
25117 : default:
25118 : return -1;
25119 : }
25120 :
25121 : case CALL:
25122 : x5 = XEXP (x2, 0);
25123 : if (GET_CODE (x5) != MEM
25124 : || GET_MODE (x5) != E_QImode
25125 : || pattern388 (x1) != 0)
25126 : return -1;
25127 : x16 = XEXP (x5, 0);
25128 : operands[0] = x16;
25129 : if (!memory_operand (operands[0], E_SImode))
25130 : return -1;
25131 : x3 = XEXP (x2, 1);
25132 : operands[1] = x3;
25133 : x7 = XVECEXP (x1, 0, 1);
25134 : x17 = XEXP (x7, 1);
25135 : x19 = XEXP (x17, 1);
25136 : operands[2] = x19;
25137 : if (!immediate_operand (operands[2], E_SImode)
25138 : || !
25139 : #line 21255 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25140 : (!TARGET_64BIT && !TARGET_INDIRECT_BRANCH_REGISTER))
25141 : return -1;
25142 : return 1504; /* *sibcall_pop_memory */
25143 :
25144 : default:
25145 : return -1;
25146 : }
25147 : }
25148 :
25149 : rtx_insn *
25150 : split_20 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25151 : {
25152 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25153 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25154 : rtx_insn *res ATTRIBUTE_UNUSED;
25155 : x2 = XVECEXP (x1, 0, 0);
25156 : x3 = XEXP (x2, 1);
25157 : x4 = XEXP (x3, 1);
25158 : switch (GET_CODE (x4))
25159 : {
25160 : case CONST_INT:
25161 : case CONST_WIDE_INT:
25162 : case CONST_POLY_INT:
25163 : case CONST_FIXED:
25164 : case CONST_DOUBLE:
25165 : case CONST_VECTOR:
25166 : case CONST:
25167 : case REG:
25168 : case SUBREG:
25169 : case MEM:
25170 : case LABEL_REF:
25171 : case SYMBOL_REF:
25172 : case HIGH:
25173 : operands[2] = x4;
25174 : x5 = XEXP (x2, 0);
25175 : switch (GET_CODE (x5))
25176 : {
25177 : case REG:
25178 : case SUBREG:
25179 : case MEM:
25180 : operands[0] = x5;
25181 : switch (GET_MODE (operands[0]))
25182 : {
25183 : case E_DImode:
25184 : if (pattern568 (x3,
25185 : E_DImode) == 0
25186 : && ((
25187 : #line 8293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25188 : (ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)) &&
25189 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25190 : (!TARGET_64BIT)) &&
25191 : #line 8295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25192 : ( reload_completed)))
25193 : return gen_split_174 (insn, operands);
25194 : break;
25195 :
25196 : case E_TImode:
25197 : if (pattern568 (x3,
25198 : E_TImode) == 0
25199 : && ((
25200 : #line 8293 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25201 : (ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)) &&
25202 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25203 : (TARGET_64BIT)) &&
25204 : #line 8295 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25205 : ( reload_completed)))
25206 : return gen_split_175 (insn, operands);
25207 : break;
25208 :
25209 : default:
25210 : break;
25211 : }
25212 : break;
25213 :
25214 : case STRICT_LOW_PART:
25215 : switch (pattern1335 (x2))
25216 : {
25217 : case 0:
25218 : if ((
25219 : #line 8441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25220 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25221 : #line 8445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25222 : ( reload_completed
25223 : && !(rtx_equal_p (operands[0], operands[1])))))
25224 : return gen_split_178 (insn, operands);
25225 : break;
25226 :
25227 : case 1:
25228 : if ((
25229 : #line 8441 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25230 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25231 : #line 8445 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25232 : ( reload_completed
25233 : && !(rtx_equal_p (operands[0], operands[1])))))
25234 : return gen_split_179 (insn, operands);
25235 : break;
25236 :
25237 : default:
25238 : break;
25239 : }
25240 : break;
25241 :
25242 : default:
25243 : break;
25244 : }
25245 : if (GET_CODE (x4) != SUBREG
25246 : || maybe_ne (SUBREG_BYTE (x4), 0)
25247 : || GET_MODE (x4) != E_QImode)
25248 : return NULL;
25249 : x6 = XEXP (x4, 0);
25250 : switch (GET_CODE (x6))
25251 : {
25252 : case ASHIFTRT:
25253 : case LSHIFTRT:
25254 : case SIGN_EXTRACT:
25255 : case ZERO_EXTRACT:
25256 : operands[3] = x6;
25257 : if (GET_CODE (x5) != STRICT_LOW_PART)
25258 : return NULL;
25259 : x7 = XEXP (x5, 0);
25260 : operands[0] = x7;
25261 : if (!register_operand (operands[0], E_QImode)
25262 : || GET_MODE (x3) != E_QImode
25263 : || !nonimmediate_operand (operands[1], E_QImode))
25264 : return NULL;
25265 : x8 = XEXP (x6, 0);
25266 : operands[2] = x8;
25267 : if (!int248_register_operand (operands[2], E_VOIDmode))
25268 : return NULL;
25269 : switch (pattern1786 ())
25270 : {
25271 : case 0:
25272 : if (!(
25273 : #line 8465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25274 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25275 : #line 8469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25276 : ( reload_completed
25277 : && !rtx_equal_p (operands[0], operands[1]))))
25278 : return NULL;
25279 : return gen_split_180 (insn, operands);
25280 :
25281 : case 1:
25282 : if (!(
25283 : #line 8465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25284 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25285 : #line 8469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25286 : ( reload_completed
25287 : && !rtx_equal_p (operands[0], operands[1]))))
25288 : return NULL;
25289 : return gen_split_181 (insn, operands);
25290 :
25291 : case 2:
25292 : if (!((
25293 : #line 8465 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25294 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25295 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25296 : (TARGET_64BIT)) &&
25297 : #line 8469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25298 : ( reload_completed
25299 : && !rtx_equal_p (operands[0], operands[1]))))
25300 : return NULL;
25301 : return gen_split_182 (insn, operands);
25302 :
25303 : default:
25304 : return NULL;
25305 : }
25306 :
25307 : default:
25308 : return NULL;
25309 : }
25310 :
25311 : case ZERO_EXTEND:
25312 : switch (pattern1177 (x2))
25313 : {
25314 : case 0:
25315 : if (!((
25316 : #line 8331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25317 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
25318 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25319 : (!TARGET_64BIT)) &&
25320 : #line 8333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25321 : ( reload_completed)))
25322 : return NULL;
25323 : return gen_split_176 (insn, operands);
25324 :
25325 : case 1:
25326 : if (!((
25327 : #line 8331 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25328 : (ix86_binary_operator_ok (UNKNOWN, TImode, operands, TARGET_APX_NDD)) &&
25329 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25330 : (TARGET_64BIT)) &&
25331 : #line 8333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25332 : ( reload_completed)))
25333 : return NULL;
25334 : return gen_split_177 (insn, operands);
25335 :
25336 : default:
25337 : return NULL;
25338 : }
25339 :
25340 : case EQ:
25341 : x9 = XEXP (x4, 1);
25342 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25343 : return NULL;
25344 : switch (pattern703 (x2))
25345 : {
25346 : case 0:
25347 : if (!(
25348 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25349 : (ix86_unary_operator_ok (MINUS, QImode, operands)
25350 : && ix86_pre_reload_split ()) &&
25351 : #line 11066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25352 : ( 1)))
25353 : return NULL;
25354 : return gen_split_236 (insn, operands);
25355 :
25356 : case 1:
25357 : if (!(
25358 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25359 : (ix86_unary_operator_ok (MINUS, HImode, operands)
25360 : && ix86_pre_reload_split ()) &&
25361 : #line 11066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25362 : ( 1)))
25363 : return NULL;
25364 : return gen_split_237 (insn, operands);
25365 :
25366 : case 2:
25367 : if (!(
25368 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25369 : (ix86_unary_operator_ok (MINUS, SImode, operands)
25370 : && ix86_pre_reload_split ()) &&
25371 : #line 11066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25372 : ( 1)))
25373 : return NULL;
25374 : return gen_split_238 (insn, operands);
25375 :
25376 : case 3:
25377 : if (!((
25378 : #line 11063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25379 : (ix86_unary_operator_ok (MINUS, DImode, operands)
25380 : && ix86_pre_reload_split ()) &&
25381 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25382 : (TARGET_64BIT)) &&
25383 : #line 11066 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25384 : ( 1)))
25385 : return NULL;
25386 : return gen_split_239 (insn, operands);
25387 :
25388 : default:
25389 : return NULL;
25390 : }
25391 :
25392 : case NE:
25393 : x9 = XEXP (x4, 1);
25394 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25395 : return NULL;
25396 : switch (pattern703 (x2))
25397 : {
25398 : case 0:
25399 : if (!(
25400 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25401 : (ix86_unary_operator_ok (MINUS, QImode, operands)
25402 : && ix86_pre_reload_split ()) &&
25403 : #line 11087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25404 : ( 1)))
25405 : return NULL;
25406 : return gen_split_240 (insn, operands);
25407 :
25408 : case 1:
25409 : if (!(
25410 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25411 : (ix86_unary_operator_ok (MINUS, HImode, operands)
25412 : && ix86_pre_reload_split ()) &&
25413 : #line 11087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25414 : ( 1)))
25415 : return NULL;
25416 : return gen_split_241 (insn, operands);
25417 :
25418 : case 2:
25419 : if (!(
25420 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25421 : (ix86_unary_operator_ok (MINUS, SImode, operands)
25422 : && ix86_pre_reload_split ()) &&
25423 : #line 11087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25424 : ( 1)))
25425 : return NULL;
25426 : return gen_split_242 (insn, operands);
25427 :
25428 : case 3:
25429 : if (!((
25430 : #line 11084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25431 : (ix86_unary_operator_ok (MINUS, DImode, operands)
25432 : && ix86_pre_reload_split ()) &&
25433 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25434 : (TARGET_64BIT)) &&
25435 : #line 11087 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25436 : ( 1)))
25437 : return NULL;
25438 : return gen_split_243 (insn, operands);
25439 :
25440 : default:
25441 : return NULL;
25442 : }
25443 :
25444 : default:
25445 : return NULL;
25446 : }
25447 : }
25448 :
25449 : rtx_insn *
25450 : split_29 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25451 : {
25452 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25453 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
25454 : rtx_insn *res ATTRIBUTE_UNUSED;
25455 : x2 = XVECEXP (x1, 0, 1);
25456 : if (pattern237 (x2,
25457 : E_CCmode,
25458 : 17) != 0)
25459 : return NULL;
25460 : x3 = XVECEXP (x1, 0, 0);
25461 : x4 = XEXP (x3, 1);
25462 : x5 = XEXP (x4, 0);
25463 : switch (GET_CODE (x5))
25464 : {
25465 : case REG:
25466 : case SUBREG:
25467 : case MEM:
25468 : operands[1] = x5;
25469 : res = split_19 (x1, insn);
25470 : if (res != NULL_RTX)
25471 : return res;
25472 : if (GET_CODE (x5) != SUBREG
25473 : || pattern1189 (x4) != 0)
25474 : return NULL;
25475 : x6 = XEXP (x5, 0);
25476 : x7 = XEXP (x6, 0);
25477 : operands[2] = x7;
25478 : switch (pattern1649 (x3))
25479 : {
25480 : case 0:
25481 : if ((
25482 : #line 7182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25483 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25484 : #line 7186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25485 : ( reload_completed
25486 : && !rtx_equal_p (operands[0], operands[1]))))
25487 : return gen_split_122 (insn, operands);
25488 : break;
25489 :
25490 : case 1:
25491 : if ((
25492 : #line 7182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25493 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25494 : #line 7186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25495 : ( reload_completed
25496 : && !rtx_equal_p (operands[0], operands[1]))))
25497 : return gen_split_123 (insn, operands);
25498 : break;
25499 :
25500 : case 2:
25501 : if (((
25502 : #line 7182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25503 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25504 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25505 : (TARGET_64BIT)) &&
25506 : #line 7186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25507 : ( reload_completed
25508 : && !rtx_equal_p (operands[0], operands[1]))))
25509 : return gen_split_124 (insn, operands);
25510 : break;
25511 :
25512 : default:
25513 : break;
25514 : }
25515 : operands[1] = x7;
25516 : switch (pattern1650 (x3))
25517 : {
25518 : case 0:
25519 : if (!(
25520 : #line 7211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25521 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25522 : #line 7213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25523 : ( reload_completed)))
25524 : return NULL;
25525 : return gen_split_125 (insn, operands);
25526 :
25527 : case 1:
25528 : if (!(
25529 : #line 7211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25530 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25531 : #line 7213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25532 : ( reload_completed)))
25533 : return NULL;
25534 : return gen_split_126 (insn, operands);
25535 :
25536 : case 2:
25537 : if (!((
25538 : #line 7211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25539 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25540 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25541 : (TARGET_64BIT)) &&
25542 : #line 7213 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25543 : ( reload_completed)))
25544 : return NULL;
25545 : return gen_split_127 (insn, operands);
25546 :
25547 : case 3:
25548 : if (!
25549 : #line 7685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25550 : ( reload_completed))
25551 : return NULL;
25552 : return gen_split_140 (insn, operands);
25553 :
25554 : case 4:
25555 : if (!
25556 : #line 7685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25557 : ( reload_completed))
25558 : return NULL;
25559 : return gen_split_141 (insn, operands);
25560 :
25561 : case 5:
25562 : if (!(
25563 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25564 : (TARGET_64BIT) &&
25565 : #line 7685 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25566 : ( reload_completed)))
25567 : return NULL;
25568 : return gen_split_142 (insn, operands);
25569 :
25570 : default:
25571 : return NULL;
25572 : }
25573 :
25574 : case ZERO_EXTEND:
25575 : switch (pattern945 (x3))
25576 : {
25577 : case 0:
25578 : if (!((
25579 : #line 6672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25580 : (ix86_binary_operator_ok (UNKNOWN, DImode, operands, TARGET_APX_NDD)) &&
25581 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25582 : (!TARGET_64BIT)) &&
25583 : #line 6674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25584 : ( reload_completed)))
25585 : return NULL;
25586 : return gen_split_106 (insn, operands);
25587 :
25588 : case 1:
25589 : if (!((
25590 : #line 6672 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25591 : (ix86_binary_operator_ok (UNKNOWN, TImode, operands, TARGET_APX_NDD)) &&
25592 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25593 : (TARGET_64BIT)) &&
25594 : #line 6674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25595 : ( reload_completed)))
25596 : return NULL;
25597 : return gen_split_107 (insn, operands);
25598 :
25599 : default:
25600 : return NULL;
25601 : }
25602 :
25603 : case PLUS:
25604 : x8 = XEXP (x3, 0);
25605 : operands[0] = x8;
25606 : x6 = XEXP (x5, 0);
25607 : switch (GET_CODE (x6))
25608 : {
25609 : case ASHIFT:
25610 : switch (pattern1169 (x4))
25611 : {
25612 : case 0:
25613 : if (!((
25614 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25615 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25616 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25617 : (!TARGET_64BIT)) &&
25618 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25619 : ( reload_completed)))
25620 : return NULL;
25621 : return gen_split_108 (insn, operands);
25622 :
25623 : case 1:
25624 : if (!((
25625 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25626 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25627 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25628 : (TARGET_64BIT)) &&
25629 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25630 : ( reload_completed)))
25631 : return NULL;
25632 : return gen_split_111 (insn, operands);
25633 :
25634 : case 2:
25635 : if (!((
25636 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25637 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25638 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25639 : (!TARGET_64BIT)) &&
25640 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25641 : ( reload_completed)))
25642 : return NULL;
25643 : return gen_split_114 (insn, operands);
25644 :
25645 : case 3:
25646 : if (!((
25647 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25648 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25649 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25650 : (TARGET_64BIT)) &&
25651 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25652 : ( reload_completed)))
25653 : return NULL;
25654 : return gen_split_117 (insn, operands);
25655 :
25656 : default:
25657 : return NULL;
25658 : }
25659 :
25660 : case EQ:
25661 : switch (pattern1172 (x4))
25662 : {
25663 : case 0:
25664 : if (!(
25665 : #line 10892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25666 : (ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
25667 : && ix86_pre_reload_split ()) &&
25668 : #line 10895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25669 : ( 1)))
25670 : return NULL;
25671 : return gen_split_208 (insn, operands);
25672 :
25673 : case 1:
25674 : if (!(
25675 : #line 10892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25676 : (ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
25677 : && ix86_pre_reload_split ()) &&
25678 : #line 10895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25679 : ( 1)))
25680 : return NULL;
25681 : return gen_split_209 (insn, operands);
25682 :
25683 : case 2:
25684 : if (!(
25685 : #line 10892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25686 : (ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
25687 : && ix86_pre_reload_split ()) &&
25688 : #line 10895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25689 : ( 1)))
25690 : return NULL;
25691 : return gen_split_210 (insn, operands);
25692 :
25693 : case 3:
25694 : if (!((
25695 : #line 10892 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25696 : (ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
25697 : && ix86_pre_reload_split ()) &&
25698 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25699 : (TARGET_64BIT)) &&
25700 : #line 10895 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25701 : ( 1)))
25702 : return NULL;
25703 : return gen_split_211 (insn, operands);
25704 :
25705 : default:
25706 : return NULL;
25707 : }
25708 :
25709 : case NE:
25710 : switch (pattern1175 (x4))
25711 : {
25712 : case 0:
25713 : if (!(
25714 : #line 10913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25715 : (CONST_INT_P (operands[2])
25716 : && (QImode != DImode
25717 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
25718 : && ix86_binary_operator_ok (PLUS, QImode, operands, TARGET_APX_NDD)
25719 : && ix86_pre_reload_split ()) &&
25720 : #line 10919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25721 : ( 1)))
25722 : return NULL;
25723 : return gen_split_212 (insn, operands);
25724 :
25725 : case 1:
25726 : if (!(
25727 : #line 10913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25728 : (CONST_INT_P (operands[2])
25729 : && (HImode != DImode
25730 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
25731 : && ix86_binary_operator_ok (PLUS, HImode, operands, TARGET_APX_NDD)
25732 : && ix86_pre_reload_split ()) &&
25733 : #line 10919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25734 : ( 1)))
25735 : return NULL;
25736 : return gen_split_213 (insn, operands);
25737 :
25738 : case 2:
25739 : if (!(
25740 : #line 10913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25741 : (CONST_INT_P (operands[2])
25742 : && (SImode != DImode
25743 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
25744 : && ix86_binary_operator_ok (PLUS, SImode, operands, TARGET_APX_NDD)
25745 : && ix86_pre_reload_split ()) &&
25746 : #line 10919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25747 : ( 1)))
25748 : return NULL;
25749 : return gen_split_214 (insn, operands);
25750 :
25751 : case 3:
25752 : if (!((
25753 : #line 10913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25754 : (CONST_INT_P (operands[2])
25755 : && (DImode != DImode
25756 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
25757 : && ix86_binary_operator_ok (PLUS, DImode, operands, TARGET_APX_NDD)
25758 : && ix86_pre_reload_split ()) &&
25759 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25760 : (TARGET_64BIT)) &&
25761 : #line 10919 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25762 : ( 1)))
25763 : return NULL;
25764 : return gen_split_215 (insn, operands);
25765 :
25766 : default:
25767 : return NULL;
25768 : }
25769 :
25770 : default:
25771 : return NULL;
25772 : }
25773 :
25774 : case IOR:
25775 : switch (pattern1069 (x3))
25776 : {
25777 : case 0:
25778 : if (!((
25779 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25780 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25781 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25782 : (!TARGET_64BIT)) &&
25783 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25784 : ( reload_completed)))
25785 : return NULL;
25786 : return gen_split_109 (insn, operands);
25787 :
25788 : case 1:
25789 : if (!((
25790 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25791 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25792 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25793 : (TARGET_64BIT)) &&
25794 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25795 : ( reload_completed)))
25796 : return NULL;
25797 : return gen_split_112 (insn, operands);
25798 :
25799 : case 2:
25800 : if (!((
25801 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25802 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25803 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25804 : (!TARGET_64BIT)) &&
25805 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25806 : ( reload_completed)))
25807 : return NULL;
25808 : return gen_split_115 (insn, operands);
25809 :
25810 : case 3:
25811 : if (!((
25812 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25813 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25814 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25815 : (TARGET_64BIT)) &&
25816 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25817 : ( reload_completed)))
25818 : return NULL;
25819 : return gen_split_118 (insn, operands);
25820 :
25821 : default:
25822 : return NULL;
25823 : }
25824 :
25825 : case XOR:
25826 : switch (pattern1069 (x3))
25827 : {
25828 : case 0:
25829 : if (!((
25830 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25831 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25832 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25833 : (!TARGET_64BIT)) &&
25834 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25835 : ( reload_completed)))
25836 : return NULL;
25837 : return gen_split_110 (insn, operands);
25838 :
25839 : case 1:
25840 : if (!((
25841 : #line 6707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25842 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25843 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25844 : (TARGET_64BIT)) &&
25845 : #line 6709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25846 : ( reload_completed)))
25847 : return NULL;
25848 : return gen_split_113 (insn, operands);
25849 :
25850 : case 2:
25851 : if (!((
25852 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25853 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
25854 : #line 1266 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25855 : (!TARGET_64BIT)) &&
25856 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25857 : ( reload_completed)))
25858 : return NULL;
25859 : return gen_split_116 (insn, operands);
25860 :
25861 : case 3:
25862 : if (!((
25863 : #line 6738 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25864 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
25865 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25866 : (TARGET_64BIT)) &&
25867 : #line 6740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25868 : ( reload_completed)))
25869 : return NULL;
25870 : return gen_split_119 (insn, operands);
25871 :
25872 : default:
25873 : return NULL;
25874 : }
25875 :
25876 : case EQ:
25877 : x9 = XEXP (x5, 1);
25878 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25879 : return NULL;
25880 : switch (pattern365 (x3))
25881 : {
25882 : case 0:
25883 : if (!(
25884 : #line 10939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25885 : (ix86_unary_operator_ok (PLUS, QImode, operands)
25886 : && ix86_pre_reload_split ()) &&
25887 : #line 10942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25888 : ( 1)))
25889 : return NULL;
25890 : return gen_split_216 (insn, operands);
25891 :
25892 : case 1:
25893 : if (!(
25894 : #line 10939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25895 : (ix86_unary_operator_ok (PLUS, HImode, operands)
25896 : && ix86_pre_reload_split ()) &&
25897 : #line 10942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25898 : ( 1)))
25899 : return NULL;
25900 : return gen_split_217 (insn, operands);
25901 :
25902 : case 2:
25903 : if (!(
25904 : #line 10939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25905 : (ix86_unary_operator_ok (PLUS, SImode, operands)
25906 : && ix86_pre_reload_split ()) &&
25907 : #line 10942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25908 : ( 1)))
25909 : return NULL;
25910 : return gen_split_218 (insn, operands);
25911 :
25912 : case 3:
25913 : if (!((
25914 : #line 10939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25915 : (ix86_unary_operator_ok (PLUS, DImode, operands)
25916 : && ix86_pre_reload_split ()) &&
25917 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25918 : (TARGET_64BIT)) &&
25919 : #line 10942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25920 : ( 1)))
25921 : return NULL;
25922 : return gen_split_219 (insn, operands);
25923 :
25924 : default:
25925 : return NULL;
25926 : }
25927 :
25928 : case NE:
25929 : x9 = XEXP (x5, 1);
25930 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
25931 : return NULL;
25932 : switch (pattern365 (x3))
25933 : {
25934 : case 0:
25935 : if (!(
25936 : #line 10960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25937 : (ix86_unary_operator_ok (PLUS, QImode, operands)
25938 : && ix86_pre_reload_split ()) &&
25939 : #line 10963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25940 : ( 1)))
25941 : return NULL;
25942 : return gen_split_220 (insn, operands);
25943 :
25944 : case 1:
25945 : if (!(
25946 : #line 10960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25947 : (ix86_unary_operator_ok (PLUS, HImode, operands)
25948 : && ix86_pre_reload_split ()) &&
25949 : #line 10963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25950 : ( 1)))
25951 : return NULL;
25952 : return gen_split_221 (insn, operands);
25953 :
25954 : case 2:
25955 : if (!(
25956 : #line 10960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25957 : (ix86_unary_operator_ok (PLUS, SImode, operands)
25958 : && ix86_pre_reload_split ()) &&
25959 : #line 10963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25960 : ( 1)))
25961 : return NULL;
25962 : return gen_split_222 (insn, operands);
25963 :
25964 : case 3:
25965 : if (!((
25966 : #line 10960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25967 : (ix86_unary_operator_ok (PLUS, DImode, operands)
25968 : && ix86_pre_reload_split ()) &&
25969 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25970 : (TARGET_64BIT)) &&
25971 : #line 10963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25972 : ( 1)))
25973 : return NULL;
25974 : return gen_split_223 (insn, operands);
25975 :
25976 : default:
25977 : return NULL;
25978 : }
25979 :
25980 : case MINUS:
25981 : switch (pattern949 (x3))
25982 : {
25983 : case 0:
25984 : if (!(
25985 : #line 11008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25986 : (CONST_INT_P (operands[2])
25987 : && (QImode != DImode
25988 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
25989 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
25990 : && ix86_pre_reload_split ()) &&
25991 : #line 11014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25992 : ( 1)))
25993 : return NULL;
25994 : return gen_split_228 (insn, operands);
25995 :
25996 : case 1:
25997 : if (!(
25998 : #line 11008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25999 : (CONST_INT_P (operands[2])
26000 : && (HImode != DImode
26001 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26002 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
26003 : && ix86_pre_reload_split ()) &&
26004 : #line 11014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26005 : ( 1)))
26006 : return NULL;
26007 : return gen_split_229 (insn, operands);
26008 :
26009 : case 2:
26010 : if (!(
26011 : #line 11008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26012 : (CONST_INT_P (operands[2])
26013 : && (SImode != DImode
26014 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26015 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26016 : && ix86_pre_reload_split ()) &&
26017 : #line 11014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26018 : ( 1)))
26019 : return NULL;
26020 : return gen_split_230 (insn, operands);
26021 :
26022 : case 3:
26023 : if (!((
26024 : #line 11008 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26025 : (CONST_INT_P (operands[2])
26026 : && (DImode != DImode
26027 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26028 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26029 : && ix86_pre_reload_split ()) &&
26030 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26031 : (TARGET_64BIT)) &&
26032 : #line 11014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26033 : ( 1)))
26034 : return NULL;
26035 : return gen_split_231 (insn, operands);
26036 :
26037 : case 4:
26038 : if (!(
26039 : #line 11037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26040 : (CONST_INT_P (operands[2])
26041 : && (QImode != DImode
26042 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26043 : && ix86_binary_operator_ok (MINUS, QImode, operands, TARGET_APX_NDD)
26044 : && ix86_pre_reload_split ()) &&
26045 : #line 11043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26046 : ( 1)))
26047 : return NULL;
26048 : return gen_split_232 (insn, operands);
26049 :
26050 : case 5:
26051 : if (!(
26052 : #line 11037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26053 : (CONST_INT_P (operands[2])
26054 : && (HImode != DImode
26055 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26056 : && ix86_binary_operator_ok (MINUS, HImode, operands, TARGET_APX_NDD)
26057 : && ix86_pre_reload_split ()) &&
26058 : #line 11043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26059 : ( 1)))
26060 : return NULL;
26061 : return gen_split_233 (insn, operands);
26062 :
26063 : case 6:
26064 : if (!(
26065 : #line 11037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26066 : (CONST_INT_P (operands[2])
26067 : && (SImode != DImode
26068 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26069 : && ix86_binary_operator_ok (MINUS, SImode, operands, TARGET_APX_NDD)
26070 : && ix86_pre_reload_split ()) &&
26071 : #line 11043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26072 : ( 1)))
26073 : return NULL;
26074 : return gen_split_234 (insn, operands);
26075 :
26076 : case 7:
26077 : if (!((
26078 : #line 11037 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26079 : (CONST_INT_P (operands[2])
26080 : && (DImode != DImode
26081 : || INTVAL (operands[2]) != HOST_WIDE_INT_C (-0x80000000))
26082 : && ix86_binary_operator_ok (MINUS, DImode, operands, TARGET_APX_NDD)
26083 : && ix86_pre_reload_split ()) &&
26084 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26085 : (TARGET_64BIT)) &&
26086 : #line 11043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26087 : ( 1)))
26088 : return NULL;
26089 : return gen_split_235 (insn, operands);
26090 :
26091 : default:
26092 : return NULL;
26093 : }
26094 :
26095 : case UNSPEC:
26096 : switch (pattern953 (x3))
26097 : {
26098 : case 0:
26099 : if (!
26100 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26101 : (ptr_mode == SImode))
26102 : return NULL;
26103 : return gen_split_928 (insn, operands);
26104 :
26105 : case 1:
26106 : if (!
26107 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26108 : (ptr_mode == DImode))
26109 : return NULL;
26110 : return gen_split_929 (insn, operands);
26111 :
26112 : case 2:
26113 : if (!(
26114 : #line 24353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26115 : (!TARGET_64BIT && TARGET_GNU2_TLS) &&
26116 : #line 24355 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26117 : ( 1)))
26118 : return NULL;
26119 : return gen_split_931 (insn, operands);
26120 :
26121 : case 3:
26122 : if (!((
26123 : #line 24416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26124 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
26125 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26126 : (ptr_mode == SImode)) &&
26127 : #line 24418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26128 : ( 1)))
26129 : return NULL;
26130 : return gen_split_932 (insn, operands);
26131 :
26132 : case 4:
26133 : if (!((
26134 : #line 24416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26135 : (TARGET_64BIT && TARGET_GNU2_TLS) &&
26136 : #line 1439 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26137 : (ptr_mode == DImode)) &&
26138 : #line 24418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26139 : ( 1)))
26140 : return NULL;
26141 : return gen_split_933 (insn, operands);
26142 :
26143 : default:
26144 : return NULL;
26145 : }
26146 :
26147 : default:
26148 : return NULL;
26149 : }
26150 : }
26151 :
26152 : rtx_insn *
26153 : split_44 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26154 : {
26155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26156 : rtx x2, x3, x4, x5, x6, x7, x8;
26157 : rtx_insn *res ATTRIBUTE_UNUSED;
26158 : x2 = XEXP (x1, 1);
26159 : switch (XVECLEN (x2, 0))
26160 : {
26161 : case 3:
26162 : x3 = XEXP (x1, 0);
26163 : operands[0] = x3;
26164 : switch (XINT (x2, 1))
26165 : {
26166 : case 52:
26167 : x4 = XVECEXP (x2, 0, 0);
26168 : operands[1] = x4;
26169 : x5 = XVECEXP (x2, 0, 1);
26170 : operands[2] = x5;
26171 : x6 = XVECEXP (x2, 0, 2);
26172 : switch (GET_CODE (x6))
26173 : {
26174 : case LT:
26175 : switch (pattern743 (x2))
26176 : {
26177 : case 0:
26178 : if ((
26179 : #line 27942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26180 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
26181 : && (rtx_equal_p (operands[1], operands[3])
26182 : && rtx_equal_p (operands[2], operands[4]))
26183 : && ix86_pre_reload_split ()) &&
26184 : #line 27947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26185 : ( 1)))
26186 : return gen_split_963 (insn, operands);
26187 : if (!(
26188 : #line 27963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26189 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH
26190 : && (rtx_equal_p (operands[1], operands[4])
26191 : && rtx_equal_p (operands[2], operands[3]))
26192 : && ix86_pre_reload_split ()) &&
26193 : #line 27968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26194 : ( 1)))
26195 : return NULL;
26196 : return gen_split_965 (insn, operands);
26197 :
26198 : case 1:
26199 : if ((
26200 : #line 27942 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26201 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
26202 : && (rtx_equal_p (operands[1], operands[3])
26203 : && rtx_equal_p (operands[2], operands[4]))
26204 : && ix86_pre_reload_split ()) &&
26205 : #line 27947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26206 : ( 1)))
26207 : return gen_split_964 (insn, operands);
26208 : if (!(
26209 : #line 27963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26210 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH
26211 : && (rtx_equal_p (operands[1], operands[4])
26212 : && rtx_equal_p (operands[2], operands[3]))
26213 : && ix86_pre_reload_split ()) &&
26214 : #line 27968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26215 : ( 1)))
26216 : return NULL;
26217 : return gen_split_966 (insn, operands);
26218 :
26219 : default:
26220 : return NULL;
26221 : }
26222 :
26223 : case EQ:
26224 : switch (pattern745 (x2))
26225 : {
26226 : case 0:
26227 : if (!(
26228 : #line 4371 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26229 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
26230 : #line 4373 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26231 : ( 1)))
26232 : return NULL;
26233 : return gen_split_1104 (insn, operands);
26234 :
26235 : case 1:
26236 : if (!(
26237 : #line 4448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26238 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
26239 : #line 4450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26240 : ( 1)))
26241 : return NULL;
26242 : return gen_split_1107 (insn, operands);
26243 :
26244 : case 2:
26245 : if (!(
26246 : #line 4448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26247 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
26248 : #line 4450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26249 : ( 1)))
26250 : return NULL;
26251 : return gen_split_1108 (insn, operands);
26252 :
26253 : case 3:
26254 : if (!(
26255 : #line 4448 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26256 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
26257 : #line 4450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26258 : ( 1)))
26259 : return NULL;
26260 : return gen_split_1109 (insn, operands);
26261 :
26262 : default:
26263 : return NULL;
26264 : }
26265 :
26266 : case SUBREG:
26267 : switch (pattern860 (x2))
26268 : {
26269 : case 0:
26270 : if (!(
26271 : #line 4399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26272 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
26273 : #line 4401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26274 : ( 1)))
26275 : return NULL;
26276 : return gen_split_1105 (insn, operands);
26277 :
26278 : case 1:
26279 : if (!(
26280 : #line 4399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26281 : (TARGET_MMX_WITH_SSE && ix86_pre_reload_split ()) &&
26282 : #line 4401 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26283 : ( 1)))
26284 : return NULL;
26285 : return gen_split_1106 (insn, operands);
26286 :
26287 : case 2:
26288 : if (!(
26289 : #line 4476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26290 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
26291 : #line 4478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26292 : ( 1)))
26293 : return NULL;
26294 : return gen_split_1110 (insn, operands);
26295 :
26296 : default:
26297 : return NULL;
26298 : }
26299 :
26300 : default:
26301 : return NULL;
26302 : }
26303 :
26304 : case 60:
26305 : switch (pattern602 (x2))
26306 : {
26307 : case 0:
26308 : if (!((
26309 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26310 : (TARGET_AVX512F && ix86_pre_reload_split ()
26311 : && rtx_equal_p (operands[1], operands[2])
26312 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26313 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26314 : (TARGET_AVX512BW)) &&
26315 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26316 : ( 1)))
26317 : return NULL;
26318 : return gen_split_1490 (insn, operands);
26319 :
26320 : case 1:
26321 : if (!((
26322 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26323 : (TARGET_AVX512F && ix86_pre_reload_split ()
26324 : && rtx_equal_p (operands[1], operands[2])
26325 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26326 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26327 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26328 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26329 : ( 1)))
26330 : return NULL;
26331 : return gen_split_1492 (insn, operands);
26332 :
26333 : case 2:
26334 : if (!((
26335 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26336 : (TARGET_AVX512F && ix86_pre_reload_split ()
26337 : && rtx_equal_p (operands[1], operands[2])
26338 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26339 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26340 : (TARGET_AVX512BW)) &&
26341 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26342 : ( 1)))
26343 : return NULL;
26344 : return gen_split_1496 (insn, operands);
26345 :
26346 : case 3:
26347 : if (!((
26348 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26349 : (TARGET_AVX512F && ix86_pre_reload_split ()
26350 : && rtx_equal_p (operands[1], operands[2])
26351 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26352 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26353 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26354 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26355 : ( 1)))
26356 : return NULL;
26357 : return gen_split_1494 (insn, operands);
26358 :
26359 : case 4:
26360 : if (!((
26361 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26362 : (TARGET_AVX512F && ix86_pre_reload_split ()
26363 : && rtx_equal_p (operands[1], operands[2])
26364 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26365 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26366 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26367 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26368 : ( 1)))
26369 : return NULL;
26370 : return gen_split_1498 (insn, operands);
26371 :
26372 : case 5:
26373 : if (!(
26374 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26375 : (TARGET_AVX512F && ix86_pre_reload_split ()
26376 : && rtx_equal_p (operands[1], operands[2])
26377 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26378 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26379 : ( 1)))
26380 : return NULL;
26381 : return gen_split_1502 (insn, operands);
26382 :
26383 : case 6:
26384 : if (!((
26385 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26386 : (TARGET_AVX512F && ix86_pre_reload_split ()
26387 : && rtx_equal_p (operands[1], operands[2])
26388 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26389 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26390 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26391 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26392 : ( 1)))
26393 : return NULL;
26394 : return gen_split_1500 (insn, operands);
26395 :
26396 : case 7:
26397 : if (!((
26398 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26399 : (TARGET_AVX512F && ix86_pre_reload_split ()
26400 : && rtx_equal_p (operands[1], operands[2])
26401 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26402 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26403 : (TARGET_AVX512VL)) &&
26404 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26405 : ( 1)))
26406 : return NULL;
26407 : return gen_split_1504 (insn, operands);
26408 :
26409 : case 8:
26410 : if (!((
26411 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26412 : (TARGET_AVX512F && ix86_pre_reload_split ()
26413 : && rtx_equal_p (operands[1], operands[2])
26414 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26415 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26416 : (TARGET_AVX512VL)) &&
26417 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26418 : ( 1)))
26419 : return NULL;
26420 : return gen_split_1506 (insn, operands);
26421 :
26422 : case 9:
26423 : if (!(
26424 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26425 : (TARGET_AVX512F && ix86_pre_reload_split ()
26426 : && rtx_equal_p (operands[1], operands[2])
26427 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26428 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26429 : ( 1)))
26430 : return NULL;
26431 : return gen_split_1508 (insn, operands);
26432 :
26433 : case 10:
26434 : if (!((
26435 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26436 : (TARGET_AVX512F && ix86_pre_reload_split ()
26437 : && rtx_equal_p (operands[1], operands[2])
26438 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26439 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26440 : (TARGET_AVX512VL)) &&
26441 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26442 : ( 1)))
26443 : return NULL;
26444 : return gen_split_1510 (insn, operands);
26445 :
26446 : case 11:
26447 : if (!((
26448 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26449 : (TARGET_AVX512F && ix86_pre_reload_split ()
26450 : && rtx_equal_p (operands[1], operands[2])
26451 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26452 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26453 : (TARGET_AVX512VL)) &&
26454 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26455 : ( 1)))
26456 : return NULL;
26457 : return gen_split_1512 (insn, operands);
26458 :
26459 : case 12:
26460 : if (!(
26461 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26462 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26463 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
26464 : && (INTVAL (operands[4]) & 3) == 0) &&
26465 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26466 : ( 1)))
26467 : return NULL;
26468 : return gen_split_1556 (insn, operands);
26469 :
26470 : case 13:
26471 : if (!((
26472 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26473 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26474 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)
26475 : && (INTVAL (operands[4]) & 3) == 0) &&
26476 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26477 : (TARGET_AVX512VL)) &&
26478 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26479 : ( 1)))
26480 : return NULL;
26481 : return gen_split_1558 (insn, operands);
26482 :
26483 : case 14:
26484 : if (!((
26485 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26486 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26487 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)
26488 : && (INTVAL (operands[4]) & 3) == 0) &&
26489 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26490 : (TARGET_AVX512VL)) &&
26491 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26492 : ( 1)))
26493 : return NULL;
26494 : return gen_split_1564 (insn, operands);
26495 :
26496 : case 15:
26497 : if (!((
26498 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26499 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26500 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
26501 : && (INTVAL (operands[4]) & 3) == 0) &&
26502 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26503 : (TARGET_AVX512VL)) &&
26504 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26505 : ( 1)))
26506 : return NULL;
26507 : return gen_split_1560 (insn, operands);
26508 :
26509 : case 16:
26510 : if (!(
26511 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26512 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26513 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
26514 : && (INTVAL (operands[4]) & 3) == 0) &&
26515 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26516 : ( 1)))
26517 : return NULL;
26518 : return gen_split_1562 (insn, operands);
26519 :
26520 : case 17:
26521 : if (!((
26522 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26523 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26524 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)
26525 : && (INTVAL (operands[4]) & 3) == 0) &&
26526 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26527 : (TARGET_AVX512VL)) &&
26528 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26529 : ( 1)))
26530 : return NULL;
26531 : return gen_split_1566 (insn, operands);
26532 :
26533 : default:
26534 : return NULL;
26535 : }
26536 :
26537 : case 158:
26538 : switch (pattern602 (x2))
26539 : {
26540 : case 0:
26541 : if (!((
26542 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26543 : (TARGET_AVX512F && ix86_pre_reload_split ()
26544 : && rtx_equal_p (operands[1], operands[2])
26545 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26546 : #line 500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26547 : (TARGET_AVX512BW)) &&
26548 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26549 : ( 1)))
26550 : return NULL;
26551 : return gen_split_1491 (insn, operands);
26552 :
26553 : case 1:
26554 : if (!((
26555 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26556 : (TARGET_AVX512F && ix86_pre_reload_split ()
26557 : && rtx_equal_p (operands[1], operands[2])
26558 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26559 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26560 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26561 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26562 : ( 1)))
26563 : return NULL;
26564 : return gen_split_1493 (insn, operands);
26565 :
26566 : case 2:
26567 : if (!((
26568 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26569 : (TARGET_AVX512F && ix86_pre_reload_split ()
26570 : && rtx_equal_p (operands[1], operands[2])
26571 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26572 : #line 503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26573 : (TARGET_AVX512BW)) &&
26574 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26575 : ( 1)))
26576 : return NULL;
26577 : return gen_split_1497 (insn, operands);
26578 :
26579 : case 3:
26580 : if (!((
26581 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26582 : (TARGET_AVX512F && ix86_pre_reload_split ()
26583 : && rtx_equal_p (operands[1], operands[2])
26584 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26585 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26586 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26587 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26588 : ( 1)))
26589 : return NULL;
26590 : return gen_split_1495 (insn, operands);
26591 :
26592 : case 4:
26593 : if (!((
26594 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26595 : (TARGET_AVX512F && ix86_pre_reload_split ()
26596 : && rtx_equal_p (operands[1], operands[2])
26597 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26598 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26599 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26600 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26601 : ( 1)))
26602 : return NULL;
26603 : return gen_split_1499 (insn, operands);
26604 :
26605 : case 5:
26606 : if (!(
26607 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26608 : (TARGET_AVX512F && ix86_pre_reload_split ()
26609 : && rtx_equal_p (operands[1], operands[2])
26610 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26611 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26612 : ( 1)))
26613 : return NULL;
26614 : return gen_split_1503 (insn, operands);
26615 :
26616 : case 6:
26617 : if (!((
26618 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26619 : (TARGET_AVX512F && ix86_pre_reload_split ()
26620 : && rtx_equal_p (operands[1], operands[2])
26621 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26622 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26623 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
26624 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26625 : ( 1)))
26626 : return NULL;
26627 : return gen_split_1501 (insn, operands);
26628 :
26629 : case 7:
26630 : if (!((
26631 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26632 : (TARGET_AVX512F && ix86_pre_reload_split ()
26633 : && rtx_equal_p (operands[1], operands[2])
26634 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26635 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26636 : (TARGET_AVX512VL)) &&
26637 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26638 : ( 1)))
26639 : return NULL;
26640 : return gen_split_1505 (insn, operands);
26641 :
26642 : case 8:
26643 : if (!((
26644 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26645 : (TARGET_AVX512F && ix86_pre_reload_split ()
26646 : && rtx_equal_p (operands[1], operands[2])
26647 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26648 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26649 : (TARGET_AVX512VL)) &&
26650 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26651 : ( 1)))
26652 : return NULL;
26653 : return gen_split_1507 (insn, operands);
26654 :
26655 : case 9:
26656 : if (!(
26657 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26658 : (TARGET_AVX512F && ix86_pre_reload_split ()
26659 : && rtx_equal_p (operands[1], operands[2])
26660 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26661 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26662 : ( 1)))
26663 : return NULL;
26664 : return gen_split_1509 (insn, operands);
26665 :
26666 : case 10:
26667 : if (!((
26668 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26669 : (TARGET_AVX512F && ix86_pre_reload_split ()
26670 : && rtx_equal_p (operands[1], operands[2])
26671 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26672 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26673 : (TARGET_AVX512VL)) &&
26674 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26675 : ( 1)))
26676 : return NULL;
26677 : return gen_split_1511 (insn, operands);
26678 :
26679 : case 11:
26680 : if (!((
26681 : #line 4968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26682 : (TARGET_AVX512F && ix86_pre_reload_split ()
26683 : && rtx_equal_p (operands[1], operands[2])
26684 : && (!MEM_P (operands[1]) || !MEM_VOLATILE_P (operands[1]))) &&
26685 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26686 : (TARGET_AVX512VL)) &&
26687 : #line 4972 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26688 : ( 1)))
26689 : return NULL;
26690 : return gen_split_1513 (insn, operands);
26691 :
26692 : case 12:
26693 : if (!(
26694 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26695 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26696 : && ix86_binary_operator_ok (US_MINUS, V64QImode, operands)
26697 : && (INTVAL (operands[4]) & 1) == 0) &&
26698 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26699 : ( 1)))
26700 : return NULL;
26701 : return gen_split_1557 (insn, operands);
26702 :
26703 : case 13:
26704 : if (!((
26705 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26706 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26707 : && ix86_binary_operator_ok (US_MINUS, V16QImode, operands)
26708 : && (INTVAL (operands[4]) & 1) == 0) &&
26709 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26710 : (TARGET_AVX512VL)) &&
26711 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26712 : ( 1)))
26713 : return NULL;
26714 : return gen_split_1559 (insn, operands);
26715 :
26716 : case 14:
26717 : if (!((
26718 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26719 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26720 : && ix86_binary_operator_ok (US_MINUS, V16HImode, operands)
26721 : && (INTVAL (operands[4]) & 1) == 0) &&
26722 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26723 : (TARGET_AVX512VL)) &&
26724 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26725 : ( 1)))
26726 : return NULL;
26727 : return gen_split_1565 (insn, operands);
26728 :
26729 : case 15:
26730 : if (!((
26731 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26732 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26733 : && ix86_binary_operator_ok (US_MINUS, V32QImode, operands)
26734 : && (INTVAL (operands[4]) & 1) == 0) &&
26735 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26736 : (TARGET_AVX512VL)) &&
26737 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26738 : ( 1)))
26739 : return NULL;
26740 : return gen_split_1561 (insn, operands);
26741 :
26742 : case 16:
26743 : if (!(
26744 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26745 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26746 : && ix86_binary_operator_ok (US_MINUS, V32HImode, operands)
26747 : && (INTVAL (operands[4]) & 1) == 0) &&
26748 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26749 : ( 1)))
26750 : return NULL;
26751 : return gen_split_1563 (insn, operands);
26752 :
26753 : case 17:
26754 : if (!((
26755 : #line 5193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26756 : (TARGET_AVX512BW && ix86_pre_reload_split ()
26757 : && ix86_binary_operator_ok (US_MINUS, V8HImode, operands)
26758 : && (INTVAL (operands[4]) & 1) == 0) &&
26759 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26760 : (TARGET_AVX512VL)) &&
26761 : #line 5197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26762 : ( 1)))
26763 : return NULL;
26764 : return gen_split_1567 (insn, operands);
26765 :
26766 : default:
26767 : return NULL;
26768 : }
26769 :
26770 : case 122:
26771 : if (pattern308 (x2) != 0
26772 : || !
26773 : #line 23819 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26774 : ((TARGET_SSSE3 && reload_completed
26775 : && SSE_REGNO_P (REGNO (operands[0])))
26776 : || operands[3] == const0_rtx
26777 : || INTVAL (operands[3]) == 64))
26778 : return NULL;
26779 : return gen_split_3585 (insn, operands);
26780 :
26781 : default:
26782 : return NULL;
26783 : }
26784 :
26785 : case 2:
26786 : switch (XINT (x2, 1))
26787 : {
26788 : case 58:
26789 : switch (pattern68 (x1))
26790 : {
26791 : case 0:
26792 : if (!(
26793 : #line 4826 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26794 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26795 : #line 4831 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26796 : ( reload_completed
26797 : && SSE_REGNO_P (REGNO (operands[0])))))
26798 : return NULL;
26799 : return gen_split_1145 (insn, operands);
26800 :
26801 : case 1:
26802 : if (!(
26803 : #line 4865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26804 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE) &&
26805 : #line 4867 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26806 : ( reload_completed)))
26807 : return NULL;
26808 : return gen_split_1147 (insn, operands);
26809 :
26810 : default:
26811 : return NULL;
26812 : }
26813 :
26814 : case 131:
26815 : x3 = XEXP (x1, 0);
26816 : if (GET_CODE (x3) != REG
26817 : || REGNO (x3) != 17)
26818 : return NULL;
26819 : x4 = XVECEXP (x2, 0, 0);
26820 : switch (GET_CODE (x4))
26821 : {
26822 : case AND:
26823 : switch (pattern613 (x1))
26824 : {
26825 : case 0:
26826 : if (!(
26827 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26828 : (TARGET_SSE4_1
26829 : && ix86_pre_reload_split ()) &&
26830 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26831 : ( 1)))
26832 : return NULL;
26833 : return gen_split_3693 (insn, operands);
26834 :
26835 : case 1:
26836 : if (!(
26837 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26838 : (TARGET_SSE4_1
26839 : && ix86_pre_reload_split ()) &&
26840 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26841 : ( 1)))
26842 : return NULL;
26843 : return gen_split_3694 (insn, operands);
26844 :
26845 : case 2:
26846 : if (!(
26847 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26848 : (TARGET_SSE4_1
26849 : && ix86_pre_reload_split ()) &&
26850 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26851 : ( 1)))
26852 : return NULL;
26853 : return gen_split_3695 (insn, operands);
26854 :
26855 : case 3:
26856 : if (!(
26857 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26858 : (TARGET_SSE4_1
26859 : && ix86_pre_reload_split ()) &&
26860 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26861 : ( 1)))
26862 : return NULL;
26863 : return gen_split_3696 (insn, operands);
26864 :
26865 : case 4:
26866 : if (!(
26867 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26868 : (TARGET_SSE4_1
26869 : && ix86_pre_reload_split ()) &&
26870 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26871 : ( 1)))
26872 : return NULL;
26873 : return gen_split_3697 (insn, operands);
26874 :
26875 : case 5:
26876 : if (!(
26877 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26878 : (TARGET_SSE4_1
26879 : && ix86_pre_reload_split ()) &&
26880 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26881 : ( 1)))
26882 : return NULL;
26883 : return gen_split_3698 (insn, operands);
26884 :
26885 : case 6:
26886 : if (!(
26887 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26888 : (TARGET_SSE4_1
26889 : && ix86_pre_reload_split ()) &&
26890 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26891 : ( 1)))
26892 : return NULL;
26893 : return gen_split_3699 (insn, operands);
26894 :
26895 : case 7:
26896 : if (!((
26897 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26898 : (TARGET_SSE4_1
26899 : && ix86_pre_reload_split ()) &&
26900 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26901 : (TARGET_AVX)) &&
26902 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26903 : ( 1)))
26904 : return NULL;
26905 : return gen_split_3700 (insn, operands);
26906 :
26907 : case 8:
26908 : if (!((
26909 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26910 : (TARGET_SSE4_1
26911 : && ix86_pre_reload_split ()) &&
26912 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26913 : (TARGET_AVX)) &&
26914 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26915 : ( 1)))
26916 : return NULL;
26917 : return gen_split_3701 (insn, operands);
26918 :
26919 : case 9:
26920 : if (!((
26921 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26922 : (TARGET_SSE4_1
26923 : && ix86_pre_reload_split ()) &&
26924 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26925 : (TARGET_AVX)) &&
26926 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26927 : ( 1)))
26928 : return NULL;
26929 : return gen_split_3702 (insn, operands);
26930 :
26931 : case 10:
26932 : if (!((
26933 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26934 : (TARGET_SSE4_1
26935 : && ix86_pre_reload_split ()) &&
26936 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26937 : (TARGET_AVX)) &&
26938 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26939 : ( 1)))
26940 : return NULL;
26941 : return gen_split_3703 (insn, operands);
26942 :
26943 : case 11:
26944 : if (!((
26945 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26946 : (TARGET_SSE4_1
26947 : && ix86_pre_reload_split ()) &&
26948 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26949 : (TARGET_AVX)) &&
26950 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26951 : ( 1)))
26952 : return NULL;
26953 : return gen_split_3704 (insn, operands);
26954 :
26955 : case 12:
26956 : if (!((
26957 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26958 : (TARGET_SSE4_1
26959 : && ix86_pre_reload_split ()) &&
26960 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26961 : (TARGET_AVX)) &&
26962 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26963 : ( 1)))
26964 : return NULL;
26965 : return gen_split_3705 (insn, operands);
26966 :
26967 : case 13:
26968 : if (!((
26969 : #line 26183 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26970 : (TARGET_SSE4_1
26971 : && ix86_pre_reload_split ()) &&
26972 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26973 : (TARGET_AVX)) &&
26974 : #line 26186 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26975 : ( 1)))
26976 : return NULL;
26977 : return gen_split_3706 (insn, operands);
26978 :
26979 : default:
26980 : return NULL;
26981 : }
26982 :
26983 : case REG:
26984 : case SUBREG:
26985 : operands[0] = x4;
26986 : if (GET_MODE (x3) != E_CCCmode
26987 : || GET_MODE (x2) != E_CCCmode)
26988 : return NULL;
26989 : x5 = XVECEXP (x2, 0, 1);
26990 : operands[1] = x5;
26991 : switch (GET_MODE (operands[0]))
26992 : {
26993 : case E_V16QImode:
26994 : if (!register_operand (operands[0], E_V16QImode)
26995 : || !register_operand (operands[1], E_V16QImode)
26996 : || !
26997 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26998 : (TARGET_SSE4_1
26999 : && rtx_equal_p (operands[0], operands[1])))
27000 : return NULL;
27001 : return gen_split_3707 (insn, operands);
27002 :
27003 : case E_V8HImode:
27004 : if (!register_operand (operands[0], E_V8HImode)
27005 : || !register_operand (operands[1], E_V8HImode)
27006 : || !
27007 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27008 : (TARGET_SSE4_1
27009 : && rtx_equal_p (operands[0], operands[1])))
27010 : return NULL;
27011 : return gen_split_3708 (insn, operands);
27012 :
27013 : case E_V4SImode:
27014 : if (!register_operand (operands[0], E_V4SImode)
27015 : || !register_operand (operands[1], E_V4SImode)
27016 : || !
27017 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27018 : (TARGET_SSE4_1
27019 : && rtx_equal_p (operands[0], operands[1])))
27020 : return NULL;
27021 : return gen_split_3709 (insn, operands);
27022 :
27023 : case E_V2DImode:
27024 : if (!register_operand (operands[0], E_V2DImode)
27025 : || !register_operand (operands[1], E_V2DImode)
27026 : || !
27027 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27028 : (TARGET_SSE4_1
27029 : && rtx_equal_p (operands[0], operands[1])))
27030 : return NULL;
27031 : return gen_split_3710 (insn, operands);
27032 :
27033 : case E_V1TImode:
27034 : if (!register_operand (operands[0], E_V1TImode)
27035 : || !register_operand (operands[1], E_V1TImode)
27036 : || !
27037 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27038 : (TARGET_SSE4_1
27039 : && rtx_equal_p (operands[0], operands[1])))
27040 : return NULL;
27041 : return gen_split_3711 (insn, operands);
27042 :
27043 : case E_V4SFmode:
27044 : if (!register_operand (operands[0], E_V4SFmode)
27045 : || !register_operand (operands[1], E_V4SFmode)
27046 : || !
27047 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27048 : (TARGET_SSE4_1
27049 : && rtx_equal_p (operands[0], operands[1])))
27050 : return NULL;
27051 : return gen_split_3712 (insn, operands);
27052 :
27053 : case E_V2DFmode:
27054 : if (!register_operand (operands[0], E_V2DFmode)
27055 : || !register_operand (operands[1], E_V2DFmode)
27056 : || !
27057 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27058 : (TARGET_SSE4_1
27059 : && rtx_equal_p (operands[0], operands[1])))
27060 : return NULL;
27061 : return gen_split_3713 (insn, operands);
27062 :
27063 : case E_V32QImode:
27064 : if (!register_operand (operands[0], E_V32QImode)
27065 : || !register_operand (operands[1], E_V32QImode)
27066 : || !(
27067 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27068 : (TARGET_SSE4_1
27069 : && rtx_equal_p (operands[0], operands[1])) &&
27070 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27071 : (TARGET_AVX)))
27072 : return NULL;
27073 : return gen_split_3714 (insn, operands);
27074 :
27075 : case E_V16HImode:
27076 : if (!register_operand (operands[0], E_V16HImode)
27077 : || !register_operand (operands[1], E_V16HImode)
27078 : || !(
27079 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27080 : (TARGET_SSE4_1
27081 : && rtx_equal_p (operands[0], operands[1])) &&
27082 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27083 : (TARGET_AVX)))
27084 : return NULL;
27085 : return gen_split_3715 (insn, operands);
27086 :
27087 : case E_V8SImode:
27088 : if (!register_operand (operands[0], E_V8SImode)
27089 : || !register_operand (operands[1], E_V8SImode)
27090 : || !(
27091 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27092 : (TARGET_SSE4_1
27093 : && rtx_equal_p (operands[0], operands[1])) &&
27094 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27095 : (TARGET_AVX)))
27096 : return NULL;
27097 : return gen_split_3716 (insn, operands);
27098 :
27099 : case E_V4DImode:
27100 : if (!register_operand (operands[0], E_V4DImode)
27101 : || !register_operand (operands[1], E_V4DImode)
27102 : || !(
27103 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27104 : (TARGET_SSE4_1
27105 : && rtx_equal_p (operands[0], operands[1])) &&
27106 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27107 : (TARGET_AVX)))
27108 : return NULL;
27109 : return gen_split_3717 (insn, operands);
27110 :
27111 : case E_V2TImode:
27112 : if (!register_operand (operands[0], E_V2TImode)
27113 : || !register_operand (operands[1], E_V2TImode)
27114 : || !(
27115 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27116 : (TARGET_SSE4_1
27117 : && rtx_equal_p (operands[0], operands[1])) &&
27118 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27119 : (TARGET_AVX)))
27120 : return NULL;
27121 : return gen_split_3718 (insn, operands);
27122 :
27123 : case E_V8SFmode:
27124 : if (!register_operand (operands[0], E_V8SFmode)
27125 : || !register_operand (operands[1], E_V8SFmode)
27126 : || !(
27127 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27128 : (TARGET_SSE4_1
27129 : && rtx_equal_p (operands[0], operands[1])) &&
27130 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27131 : (TARGET_AVX)))
27132 : return NULL;
27133 : return gen_split_3719 (insn, operands);
27134 :
27135 : case E_V4DFmode:
27136 : if (!register_operand (operands[0], E_V4DFmode)
27137 : || !register_operand (operands[1], E_V4DFmode)
27138 : || !(
27139 : #line 26196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27140 : (TARGET_SSE4_1
27141 : && rtx_equal_p (operands[0], operands[1])) &&
27142 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27143 : (TARGET_AVX)))
27144 : return NULL;
27145 : return gen_split_3720 (insn, operands);
27146 :
27147 : default:
27148 : return NULL;
27149 : }
27150 :
27151 : case EQ:
27152 : switch (pattern615 (x1))
27153 : {
27154 : case 0:
27155 : if (!((
27156 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27157 : (TARGET_SSE4_1
27158 : && ix86_pre_reload_split ()) &&
27159 : #line 578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27160 : (TARGET_AVX)) &&
27161 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27162 : ( 1)))
27163 : return NULL;
27164 : return gen_split_3805 (insn, operands);
27165 :
27166 : case 1:
27167 : if (!(
27168 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27169 : (TARGET_SSE4_1
27170 : && ix86_pre_reload_split ()) &&
27171 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27172 : ( 1)))
27173 : return NULL;
27174 : return gen_split_3806 (insn, operands);
27175 :
27176 : case 2:
27177 : if (!((
27178 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27179 : (TARGET_SSE4_1
27180 : && ix86_pre_reload_split ()) &&
27181 : #line 579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27182 : (TARGET_AVX)) &&
27183 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27184 : ( 1)))
27185 : return NULL;
27186 : return gen_split_3807 (insn, operands);
27187 :
27188 : case 3:
27189 : if (!(
27190 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27191 : (TARGET_SSE4_1
27192 : && ix86_pre_reload_split ()) &&
27193 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27194 : ( 1)))
27195 : return NULL;
27196 : return gen_split_3808 (insn, operands);
27197 :
27198 : case 4:
27199 : if (!((
27200 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27201 : (TARGET_SSE4_1
27202 : && ix86_pre_reload_split ()) &&
27203 : #line 580 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27204 : (TARGET_AVX)) &&
27205 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27206 : ( 1)))
27207 : return NULL;
27208 : return gen_split_3809 (insn, operands);
27209 :
27210 : case 5:
27211 : if (!(
27212 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27213 : (TARGET_SSE4_1
27214 : && ix86_pre_reload_split ()) &&
27215 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27216 : ( 1)))
27217 : return NULL;
27218 : return gen_split_3810 (insn, operands);
27219 :
27220 : case 6:
27221 : if (!((
27222 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27223 : (TARGET_SSE4_1
27224 : && ix86_pre_reload_split ()) &&
27225 : #line 581 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27226 : (TARGET_AVX)) &&
27227 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27228 : ( 1)))
27229 : return NULL;
27230 : return gen_split_3811 (insn, operands);
27231 :
27232 : case 7:
27233 : if (!(
27234 : #line 26269 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27235 : (TARGET_SSE4_1
27236 : && ix86_pre_reload_split ()) &&
27237 : #line 26272 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27238 : ( 1)))
27239 : return NULL;
27240 : return gen_split_3812 (insn, operands);
27241 :
27242 : default:
27243 : return NULL;
27244 : }
27245 :
27246 : default:
27247 : return NULL;
27248 : }
27249 :
27250 : default:
27251 : return NULL;
27252 : }
27253 :
27254 : case 1:
27255 : x3 = XEXP (x1, 0);
27256 : operands[0] = x3;
27257 : switch (XINT (x2, 1))
27258 : {
27259 : case 50:
27260 : if (GET_MODE (x2) != E_SImode
27261 : || !register_operand (operands[0], E_SImode))
27262 : return NULL;
27263 : x4 = XVECEXP (x2, 0, 0);
27264 : switch (GET_CODE (x4))
27265 : {
27266 : case REG:
27267 : case SUBREG:
27268 : operands[1] = x4;
27269 : if (register_operand (operands[1], E_V8QImode)
27270 : &&
27271 : #line 6887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
27272 : (TARGET_SSE2 && reload_completed
27273 : && SSE_REGNO_P (REGNO (operands[1]))))
27274 : return gen_split_1170 (insn, operands);
27275 : if (GET_CODE (x4) != SUBREG
27276 : || maybe_ne (SUBREG_BYTE (x4), 0))
27277 : return NULL;
27278 : x7 = XEXP (x4, 0);
27279 : switch (GET_CODE (x7))
27280 : {
27281 : case VEC_MERGE:
27282 : switch (pattern1108 (x4))
27283 : {
27284 : case 0:
27285 : if (!((
27286 : #line 22500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27287 : (TARGET_SSE) &&
27288 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27289 : (TARGET_AVX)) &&
27290 : #line 22502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27291 : ( reload_completed)))
27292 : return NULL;
27293 : return gen_split_3521 (insn, operands);
27294 :
27295 : case 1:
27296 : if (!(
27297 : #line 22500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27298 : (TARGET_SSE) &&
27299 : #line 22502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27300 : ( reload_completed)))
27301 : return NULL;
27302 : return gen_split_3522 (insn, operands);
27303 :
27304 : case 2:
27305 : if (!((
27306 : #line 22500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27307 : (TARGET_SSE) &&
27308 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27309 : (TARGET_AVX)) &&
27310 : #line 22502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27311 : ( reload_completed)))
27312 : return NULL;
27313 : return gen_split_3523 (insn, operands);
27314 :
27315 : case 3:
27316 : if (!((
27317 : #line 22500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : (TARGET_SSE) &&
27319 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27320 : (TARGET_SSE2)) &&
27321 : #line 22502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27322 : ( reload_completed)))
27323 : return NULL;
27324 : return gen_split_3524 (insn, operands);
27325 :
27326 : default:
27327 : return NULL;
27328 : }
27329 :
27330 : case ASHIFTRT:
27331 : switch (pattern1109 (x4))
27332 : {
27333 : case 0:
27334 : if (!((
27335 : #line 22563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27336 : (TARGET_SSE) &&
27337 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27338 : (TARGET_AVX)) &&
27339 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27340 : ( reload_completed)))
27341 : return NULL;
27342 : return gen_split_3541 (insn, operands);
27343 :
27344 : case 1:
27345 : if (!(
27346 : #line 22563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27347 : (TARGET_SSE) &&
27348 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27349 : ( reload_completed)))
27350 : return NULL;
27351 : return gen_split_3542 (insn, operands);
27352 :
27353 : case 2:
27354 : if (!((
27355 : #line 22563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27356 : (TARGET_SSE) &&
27357 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27358 : (TARGET_AVX)) &&
27359 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27360 : ( reload_completed)))
27361 : return NULL;
27362 : return gen_split_3543 (insn, operands);
27363 :
27364 : case 3:
27365 : if (!((
27366 : #line 22563 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27367 : (TARGET_SSE) &&
27368 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27369 : (TARGET_SSE2)) &&
27370 : #line 22565 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27371 : ( reload_completed)))
27372 : return NULL;
27373 : return gen_split_3544 (insn, operands);
27374 :
27375 : default:
27376 : return NULL;
27377 : }
27378 :
27379 : case NOT:
27380 : x8 = XEXP (x7, 0);
27381 : operands[1] = x8;
27382 : if (!register_operand (operands[1], E_VOIDmode))
27383 : return NULL;
27384 : switch (GET_MODE (x4))
27385 : {
27386 : case E_V32QImode:
27387 : if (!(
27388 : #line 22705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27389 : (TARGET_SSE2
27390 : && GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_VECTOR_INT
27391 : && GET_MODE_SIZE (GET_MODE (operands[1])) == 32) &&
27392 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27393 : (TARGET_AVX2)))
27394 : return NULL;
27395 : return gen_split_3557 (insn, operands);
27396 :
27397 : case E_V16QImode:
27398 : if (!
27399 : #line 22705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27400 : (TARGET_SSE2
27401 : && GET_MODE_CLASS (GET_MODE (operands[1])) == MODE_VECTOR_INT
27402 : && GET_MODE_SIZE (GET_MODE (operands[1])) == 16))
27403 : return NULL;
27404 : return gen_split_3558 (insn, operands);
27405 :
27406 : default:
27407 : return NULL;
27408 : }
27409 :
27410 : default:
27411 : return NULL;
27412 : }
27413 :
27414 : case LT:
27415 : switch (pattern771 (x4))
27416 : {
27417 : case 0:
27418 : if (!((
27419 : #line 22476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27420 : (TARGET_SSE) &&
27421 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27422 : (TARGET_AVX)) &&
27423 : #line 22478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27424 : ( reload_completed)))
27425 : return NULL;
27426 : return gen_split_3517 (insn, operands);
27427 :
27428 : case 1:
27429 : if (!(
27430 : #line 22476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27431 : (TARGET_SSE) &&
27432 : #line 22478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27433 : ( reload_completed)))
27434 : return NULL;
27435 : return gen_split_3518 (insn, operands);
27436 :
27437 : case 2:
27438 : if (!((
27439 : #line 22476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27440 : (TARGET_SSE) &&
27441 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27442 : (TARGET_AVX)) &&
27443 : #line 22478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27444 : ( reload_completed)))
27445 : return NULL;
27446 : return gen_split_3519 (insn, operands);
27447 :
27448 : case 3:
27449 : if (!((
27450 : #line 22476 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27451 : (TARGET_SSE) &&
27452 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27453 : (TARGET_SSE2)) &&
27454 : #line 22478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27455 : ( reload_completed)))
27456 : return NULL;
27457 : return gen_split_3520 (insn, operands);
27458 :
27459 : case 4:
27460 : if (!((
27461 : #line 22731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27462 : (TARGET_SSE2) &&
27463 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27464 : (TARGET_AVX2)) &&
27465 : #line 22733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27466 : ( 1)))
27467 : return NULL;
27468 : return gen_split_3559 (insn, operands);
27469 :
27470 : case 5:
27471 : if (!(
27472 : #line 22731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27473 : (TARGET_SSE2) &&
27474 : #line 22733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27475 : ( 1)))
27476 : return NULL;
27477 : return gen_split_3560 (insn, operands);
27478 :
27479 : default:
27480 : return NULL;
27481 : }
27482 :
27483 : case NOT:
27484 : x7 = XEXP (x4, 0);
27485 : operands[1] = x7;
27486 : switch (GET_MODE (x4))
27487 : {
27488 : case E_V32QImode:
27489 : if (!register_operand (operands[1], E_V32QImode)
27490 : || !(
27491 : #line 22683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27492 : (TARGET_SSE2) &&
27493 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27494 : (TARGET_AVX2)))
27495 : return NULL;
27496 : return gen_split_3555 (insn, operands);
27497 :
27498 : case E_V16QImode:
27499 : if (!register_operand (operands[1], E_V16QImode)
27500 : || !
27501 : #line 22683 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27502 : (TARGET_SSE2))
27503 : return NULL;
27504 : return gen_split_3556 (insn, operands);
27505 :
27506 : default:
27507 : return NULL;
27508 : }
27509 :
27510 : case VEC_MERGE:
27511 : switch (pattern773 (x4))
27512 : {
27513 : case 0:
27514 : if (!((
27515 : #line 22759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27516 : (TARGET_SSE2) &&
27517 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27518 : (TARGET_AVX2)) &&
27519 : #line 22761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27520 : ( 1)))
27521 : return NULL;
27522 : return gen_split_3561 (insn, operands);
27523 :
27524 : case 1:
27525 : if (!(
27526 : #line 22759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27527 : (TARGET_SSE2) &&
27528 : #line 22761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27529 : ( 1)))
27530 : return NULL;
27531 : return gen_split_3562 (insn, operands);
27532 :
27533 : case 2:
27534 : if (!(
27535 : #line 22887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27536 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27537 : #line 22889 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27538 : ( 1)))
27539 : return NULL;
27540 : return gen_split_3570 (insn, operands);
27541 :
27542 : case 3:
27543 : if (!(
27544 : #line 22901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27545 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
27546 : #line 22903 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27547 : ( 1)))
27548 : return NULL;
27549 : return gen_split_3571 (insn, operands);
27550 :
27551 : default:
27552 : return NULL;
27553 : }
27554 :
27555 : default:
27556 : return NULL;
27557 : }
27558 :
27559 : case 173:
27560 : if (GET_MODE (x2) != E_V2SImode
27561 : || !register_operand (operands[0], E_V2SImode))
27562 : return NULL;
27563 : x4 = XVECEXP (x2, 0, 0);
27564 : operands[1] = x4;
27565 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
27566 : || !
27567 : #line 8845 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27568 : (TARGET_SSE2 && reload_completed
27569 : && SSE_REG_P (operands[0])))
27570 : return NULL;
27571 : return gen_split_1600 (insn, operands);
27572 :
27573 : default:
27574 : return NULL;
27575 : }
27576 :
27577 : default:
27578 : return NULL;
27579 : }
27580 : }
27581 :
27582 : rtx_insn *
27583 : split_71 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27584 : {
27585 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27586 : rtx x2, x3, x4;
27587 : rtx_insn *res ATTRIBUTE_UNUSED;
27588 : x2 = XEXP (x1, 1);
27589 : x3 = XEXP (x2, 0);
27590 : switch (GET_CODE (x3))
27591 : {
27592 : case AND:
27593 : x4 = XEXP (x3, 0);
27594 : switch (GET_CODE (x4))
27595 : {
27596 : case REG:
27597 : case SUBREG:
27598 : case MEM:
27599 : case NOT:
27600 : switch (pattern537 (x2))
27601 : {
27602 : case 0:
27603 : if (!((
27604 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27605 : ((64 == 64 || TARGET_AVX512VL
27606 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27607 : && ix86_pre_reload_split ()
27608 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27609 : STRIP_UNARY (operands[4]))
27610 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27611 : STRIP_UNARY (operands[4]))
27612 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27613 : STRIP_UNARY (operands[3]))
27614 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27615 : STRIP_UNARY (operands[3])))) &&
27616 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27617 : (TARGET_AVX512F)) &&
27618 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27619 : ( 1)))
27620 : return NULL;
27621 : return gen_split_1740 (insn, operands);
27622 :
27623 : case 1:
27624 : if (!((
27625 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27626 : ((32 == 64 || TARGET_AVX512VL
27627 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27628 : && ix86_pre_reload_split ()
27629 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27630 : STRIP_UNARY (operands[4]))
27631 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27632 : STRIP_UNARY (operands[4]))
27633 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27634 : STRIP_UNARY (operands[3]))
27635 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27636 : STRIP_UNARY (operands[3])))) &&
27637 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27638 : (TARGET_AVX)) &&
27639 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27640 : ( 1)))
27641 : return NULL;
27642 : return gen_split_1767 (insn, operands);
27643 :
27644 : case 2:
27645 : if (!(
27646 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27647 : ((16 == 64 || TARGET_AVX512VL
27648 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27649 : && ix86_pre_reload_split ()
27650 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27651 : STRIP_UNARY (operands[4]))
27652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27653 : STRIP_UNARY (operands[4]))
27654 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27655 : STRIP_UNARY (operands[3]))
27656 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27657 : STRIP_UNARY (operands[3])))) &&
27658 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27659 : ( 1)))
27660 : return NULL;
27661 : return gen_split_1794 (insn, operands);
27662 :
27663 : case 3:
27664 : if (!((
27665 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27666 : ((64 == 64 || TARGET_AVX512VL
27667 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27668 : && ix86_pre_reload_split ()
27669 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27670 : STRIP_UNARY (operands[4]))
27671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27672 : STRIP_UNARY (operands[4]))
27673 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27674 : STRIP_UNARY (operands[3]))
27675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27676 : STRIP_UNARY (operands[3])))) &&
27677 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27678 : (TARGET_AVX512F)) &&
27679 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27680 : ( 1)))
27681 : return NULL;
27682 : return gen_split_1821 (insn, operands);
27683 :
27684 : case 4:
27685 : if (!((
27686 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27687 : ((32 == 64 || TARGET_AVX512VL
27688 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27689 : && ix86_pre_reload_split ()
27690 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27691 : STRIP_UNARY (operands[4]))
27692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27693 : STRIP_UNARY (operands[4]))
27694 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27695 : STRIP_UNARY (operands[3]))
27696 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27697 : STRIP_UNARY (operands[3])))) &&
27698 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27699 : (TARGET_AVX)) &&
27700 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27701 : ( 1)))
27702 : return NULL;
27703 : return gen_split_1848 (insn, operands);
27704 :
27705 : case 5:
27706 : if (!(
27707 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27708 : ((16 == 64 || TARGET_AVX512VL
27709 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27710 : && ix86_pre_reload_split ()
27711 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27712 : STRIP_UNARY (operands[4]))
27713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27714 : STRIP_UNARY (operands[4]))
27715 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27716 : STRIP_UNARY (operands[3]))
27717 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27718 : STRIP_UNARY (operands[3])))) &&
27719 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27720 : ( 1)))
27721 : return NULL;
27722 : return gen_split_1875 (insn, operands);
27723 :
27724 : case 6:
27725 : if (!((
27726 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27727 : ((64 == 64 || TARGET_AVX512VL
27728 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27729 : && ix86_pre_reload_split ()
27730 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27731 : STRIP_UNARY (operands[4]))
27732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27733 : STRIP_UNARY (operands[4]))
27734 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27735 : STRIP_UNARY (operands[3]))
27736 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27737 : STRIP_UNARY (operands[3])))) &&
27738 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27739 : (TARGET_AVX512F)) &&
27740 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27741 : ( 1)))
27742 : return NULL;
27743 : return gen_split_1902 (insn, operands);
27744 :
27745 : case 7:
27746 : if (!((
27747 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27748 : ((32 == 64 || TARGET_AVX512VL
27749 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27750 : && ix86_pre_reload_split ()
27751 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27752 : STRIP_UNARY (operands[4]))
27753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27754 : STRIP_UNARY (operands[4]))
27755 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27756 : STRIP_UNARY (operands[3]))
27757 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27758 : STRIP_UNARY (operands[3])))) &&
27759 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27760 : (TARGET_AVX)) &&
27761 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27762 : ( 1)))
27763 : return NULL;
27764 : return gen_split_1929 (insn, operands);
27765 :
27766 : case 8:
27767 : if (!(
27768 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27769 : ((16 == 64 || TARGET_AVX512VL
27770 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27771 : && ix86_pre_reload_split ()
27772 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27773 : STRIP_UNARY (operands[4]))
27774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27775 : STRIP_UNARY (operands[4]))
27776 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27777 : STRIP_UNARY (operands[3]))
27778 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27779 : STRIP_UNARY (operands[3])))) &&
27780 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27781 : ( 1)))
27782 : return NULL;
27783 : return gen_split_1956 (insn, operands);
27784 :
27785 : case 9:
27786 : if (!((
27787 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27788 : ((64 == 64 || TARGET_AVX512VL
27789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27790 : && ix86_pre_reload_split ()
27791 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27792 : STRIP_UNARY (operands[4]))
27793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27794 : STRIP_UNARY (operands[4]))
27795 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27796 : STRIP_UNARY (operands[3]))
27797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27798 : STRIP_UNARY (operands[3])))) &&
27799 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27800 : (TARGET_AVX512F)) &&
27801 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27802 : ( 1)))
27803 : return NULL;
27804 : return gen_split_1983 (insn, operands);
27805 :
27806 : case 10:
27807 : if (!((
27808 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27809 : ((32 == 64 || TARGET_AVX512VL
27810 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27811 : && ix86_pre_reload_split ()
27812 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27813 : STRIP_UNARY (operands[4]))
27814 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27815 : STRIP_UNARY (operands[4]))
27816 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27817 : STRIP_UNARY (operands[3]))
27818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27819 : STRIP_UNARY (operands[3])))) &&
27820 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27821 : (TARGET_AVX)) &&
27822 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27823 : ( 1)))
27824 : return NULL;
27825 : return gen_split_2010 (insn, operands);
27826 :
27827 : case 11:
27828 : if (!(
27829 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27830 : ((16 == 64 || TARGET_AVX512VL
27831 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27832 : && ix86_pre_reload_split ()
27833 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27834 : STRIP_UNARY (operands[4]))
27835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27836 : STRIP_UNARY (operands[4]))
27837 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27838 : STRIP_UNARY (operands[3]))
27839 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27840 : STRIP_UNARY (operands[3])))) &&
27841 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27842 : ( 1)))
27843 : return NULL;
27844 : return gen_split_2037 (insn, operands);
27845 :
27846 : case 12:
27847 : if (!((
27848 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27849 : ((64 == 64 || TARGET_AVX512VL
27850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27851 : && ix86_pre_reload_split ()
27852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27853 : STRIP_UNARY (operands[4]))
27854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27855 : STRIP_UNARY (operands[4]))
27856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27857 : STRIP_UNARY (operands[3]))
27858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27859 : STRIP_UNARY (operands[3])))) &&
27860 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27861 : (TARGET_AVX512F)) &&
27862 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27863 : ( 1)))
27864 : return NULL;
27865 : return gen_split_1743 (insn, operands);
27866 :
27867 : case 13:
27868 : if (!((
27869 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27870 : ((32 == 64 || TARGET_AVX512VL
27871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27872 : && ix86_pre_reload_split ()
27873 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27874 : STRIP_UNARY (operands[4]))
27875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27876 : STRIP_UNARY (operands[4]))
27877 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27878 : STRIP_UNARY (operands[3]))
27879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27880 : STRIP_UNARY (operands[3])))) &&
27881 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27882 : (TARGET_AVX)) &&
27883 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27884 : ( 1)))
27885 : return NULL;
27886 : return gen_split_1770 (insn, operands);
27887 :
27888 : case 14:
27889 : if (!(
27890 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27891 : ((16 == 64 || TARGET_AVX512VL
27892 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27893 : && ix86_pre_reload_split ()
27894 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27895 : STRIP_UNARY (operands[4]))
27896 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27897 : STRIP_UNARY (operands[4]))
27898 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27899 : STRIP_UNARY (operands[3]))
27900 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27901 : STRIP_UNARY (operands[3])))) &&
27902 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27903 : ( 1)))
27904 : return NULL;
27905 : return gen_split_1797 (insn, operands);
27906 :
27907 : case 15:
27908 : if (!((
27909 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27910 : ((64 == 64 || TARGET_AVX512VL
27911 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27912 : && ix86_pre_reload_split ()
27913 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27914 : STRIP_UNARY (operands[4]))
27915 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27916 : STRIP_UNARY (operands[4]))
27917 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27918 : STRIP_UNARY (operands[3]))
27919 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27920 : STRIP_UNARY (operands[3])))) &&
27921 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27922 : (TARGET_AVX512F)) &&
27923 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27924 : ( 1)))
27925 : return NULL;
27926 : return gen_split_1824 (insn, operands);
27927 :
27928 : case 16:
27929 : if (!((
27930 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27931 : ((32 == 64 || TARGET_AVX512VL
27932 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27933 : && ix86_pre_reload_split ()
27934 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27935 : STRIP_UNARY (operands[4]))
27936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27937 : STRIP_UNARY (operands[4]))
27938 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27939 : STRIP_UNARY (operands[3]))
27940 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27941 : STRIP_UNARY (operands[3])))) &&
27942 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27943 : (TARGET_AVX)) &&
27944 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27945 : ( 1)))
27946 : return NULL;
27947 : return gen_split_1851 (insn, operands);
27948 :
27949 : case 17:
27950 : if (!(
27951 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27952 : ((16 == 64 || TARGET_AVX512VL
27953 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27954 : && ix86_pre_reload_split ()
27955 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27956 : STRIP_UNARY (operands[4]))
27957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27958 : STRIP_UNARY (operands[4]))
27959 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27960 : STRIP_UNARY (operands[3]))
27961 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27962 : STRIP_UNARY (operands[3])))) &&
27963 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27964 : ( 1)))
27965 : return NULL;
27966 : return gen_split_1878 (insn, operands);
27967 :
27968 : case 18:
27969 : if (!((
27970 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27971 : ((64 == 64 || TARGET_AVX512VL
27972 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27973 : && ix86_pre_reload_split ()
27974 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27975 : STRIP_UNARY (operands[4]))
27976 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27977 : STRIP_UNARY (operands[4]))
27978 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27979 : STRIP_UNARY (operands[3]))
27980 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27981 : STRIP_UNARY (operands[3])))) &&
27982 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27983 : (TARGET_AVX512F)) &&
27984 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27985 : ( 1)))
27986 : return NULL;
27987 : return gen_split_1905 (insn, operands);
27988 :
27989 : case 19:
27990 : if (!((
27991 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27992 : ((32 == 64 || TARGET_AVX512VL
27993 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27994 : && ix86_pre_reload_split ()
27995 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27996 : STRIP_UNARY (operands[4]))
27997 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27998 : STRIP_UNARY (operands[4]))
27999 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28000 : STRIP_UNARY (operands[3]))
28001 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28002 : STRIP_UNARY (operands[3])))) &&
28003 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28004 : (TARGET_AVX)) &&
28005 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28006 : ( 1)))
28007 : return NULL;
28008 : return gen_split_1932 (insn, operands);
28009 :
28010 : case 20:
28011 : if (!(
28012 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28013 : ((16 == 64 || TARGET_AVX512VL
28014 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28015 : && ix86_pre_reload_split ()
28016 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28017 : STRIP_UNARY (operands[4]))
28018 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28019 : STRIP_UNARY (operands[4]))
28020 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28021 : STRIP_UNARY (operands[3]))
28022 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28023 : STRIP_UNARY (operands[3])))) &&
28024 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28025 : ( 1)))
28026 : return NULL;
28027 : return gen_split_1959 (insn, operands);
28028 :
28029 : case 21:
28030 : if (!((
28031 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28032 : ((64 == 64 || TARGET_AVX512VL
28033 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28034 : && ix86_pre_reload_split ()
28035 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28036 : STRIP_UNARY (operands[4]))
28037 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28038 : STRIP_UNARY (operands[4]))
28039 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28040 : STRIP_UNARY (operands[3]))
28041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28042 : STRIP_UNARY (operands[3])))) &&
28043 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28044 : (TARGET_AVX512F)) &&
28045 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28046 : ( 1)))
28047 : return NULL;
28048 : return gen_split_1986 (insn, operands);
28049 :
28050 : case 22:
28051 : if (!((
28052 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28053 : ((32 == 64 || TARGET_AVX512VL
28054 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28055 : && ix86_pre_reload_split ()
28056 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28057 : STRIP_UNARY (operands[4]))
28058 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28059 : STRIP_UNARY (operands[4]))
28060 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28061 : STRIP_UNARY (operands[3]))
28062 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28063 : STRIP_UNARY (operands[3])))) &&
28064 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28065 : (TARGET_AVX)) &&
28066 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28067 : ( 1)))
28068 : return NULL;
28069 : return gen_split_2013 (insn, operands);
28070 :
28071 : case 23:
28072 : if (!(
28073 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28074 : ((16 == 64 || TARGET_AVX512VL
28075 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28076 : && ix86_pre_reload_split ()
28077 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28078 : STRIP_UNARY (operands[4]))
28079 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28080 : STRIP_UNARY (operands[4]))
28081 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28082 : STRIP_UNARY (operands[3]))
28083 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28084 : STRIP_UNARY (operands[3])))) &&
28085 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28086 : ( 1)))
28087 : return NULL;
28088 : return gen_split_2040 (insn, operands);
28089 :
28090 : case 24:
28091 : if (!((
28092 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28093 : ((64 == 64 || TARGET_AVX512VL
28094 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28095 : && ix86_pre_reload_split ()
28096 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28097 : STRIP_UNARY (operands[4]))
28098 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28099 : STRIP_UNARY (operands[4]))
28100 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28101 : STRIP_UNARY (operands[3]))
28102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28103 : STRIP_UNARY (operands[3])))) &&
28104 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28105 : (TARGET_AVX512F)) &&
28106 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28107 : ( 1)))
28108 : return NULL;
28109 : return gen_split_1746 (insn, operands);
28110 :
28111 : case 25:
28112 : if (!((
28113 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28114 : ((32 == 64 || TARGET_AVX512VL
28115 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28116 : && ix86_pre_reload_split ()
28117 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28118 : STRIP_UNARY (operands[4]))
28119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28120 : STRIP_UNARY (operands[4]))
28121 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28122 : STRIP_UNARY (operands[3]))
28123 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28124 : STRIP_UNARY (operands[3])))) &&
28125 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28126 : (TARGET_AVX)) &&
28127 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28128 : ( 1)))
28129 : return NULL;
28130 : return gen_split_1773 (insn, operands);
28131 :
28132 : case 26:
28133 : if (!(
28134 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28135 : ((16 == 64 || TARGET_AVX512VL
28136 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28137 : && ix86_pre_reload_split ()
28138 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28139 : STRIP_UNARY (operands[4]))
28140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28141 : STRIP_UNARY (operands[4]))
28142 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28143 : STRIP_UNARY (operands[3]))
28144 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28145 : STRIP_UNARY (operands[3])))) &&
28146 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28147 : ( 1)))
28148 : return NULL;
28149 : return gen_split_1800 (insn, operands);
28150 :
28151 : case 27:
28152 : if (!((
28153 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : ((64 == 64 || TARGET_AVX512VL
28155 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28156 : && ix86_pre_reload_split ()
28157 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28158 : STRIP_UNARY (operands[4]))
28159 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28160 : STRIP_UNARY (operands[4]))
28161 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28162 : STRIP_UNARY (operands[3]))
28163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28164 : STRIP_UNARY (operands[3])))) &&
28165 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28166 : (TARGET_AVX512F)) &&
28167 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28168 : ( 1)))
28169 : return NULL;
28170 : return gen_split_1827 (insn, operands);
28171 :
28172 : case 28:
28173 : if (!((
28174 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28175 : ((32 == 64 || TARGET_AVX512VL
28176 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28177 : && ix86_pre_reload_split ()
28178 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28179 : STRIP_UNARY (operands[4]))
28180 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28181 : STRIP_UNARY (operands[4]))
28182 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28183 : STRIP_UNARY (operands[3]))
28184 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28185 : STRIP_UNARY (operands[3])))) &&
28186 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28187 : (TARGET_AVX)) &&
28188 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28189 : ( 1)))
28190 : return NULL;
28191 : return gen_split_1854 (insn, operands);
28192 :
28193 : case 29:
28194 : if (!(
28195 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28196 : ((16 == 64 || TARGET_AVX512VL
28197 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28198 : && ix86_pre_reload_split ()
28199 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28200 : STRIP_UNARY (operands[4]))
28201 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28202 : STRIP_UNARY (operands[4]))
28203 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28204 : STRIP_UNARY (operands[3]))
28205 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28206 : STRIP_UNARY (operands[3])))) &&
28207 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28208 : ( 1)))
28209 : return NULL;
28210 : return gen_split_1881 (insn, operands);
28211 :
28212 : case 30:
28213 : if (!((
28214 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : ((64 == 64 || TARGET_AVX512VL
28216 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28217 : && ix86_pre_reload_split ()
28218 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28219 : STRIP_UNARY (operands[4]))
28220 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28221 : STRIP_UNARY (operands[4]))
28222 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28223 : STRIP_UNARY (operands[3]))
28224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28225 : STRIP_UNARY (operands[3])))) &&
28226 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28227 : (TARGET_AVX512F)) &&
28228 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28229 : ( 1)))
28230 : return NULL;
28231 : return gen_split_1908 (insn, operands);
28232 :
28233 : case 31:
28234 : if (!((
28235 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28236 : ((32 == 64 || TARGET_AVX512VL
28237 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28238 : && ix86_pre_reload_split ()
28239 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28240 : STRIP_UNARY (operands[4]))
28241 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28242 : STRIP_UNARY (operands[4]))
28243 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28244 : STRIP_UNARY (operands[3]))
28245 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28246 : STRIP_UNARY (operands[3])))) &&
28247 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28248 : (TARGET_AVX)) &&
28249 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28250 : ( 1)))
28251 : return NULL;
28252 : return gen_split_1935 (insn, operands);
28253 :
28254 : case 32:
28255 : if (!(
28256 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28257 : ((16 == 64 || TARGET_AVX512VL
28258 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28259 : && ix86_pre_reload_split ()
28260 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28261 : STRIP_UNARY (operands[4]))
28262 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28263 : STRIP_UNARY (operands[4]))
28264 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28265 : STRIP_UNARY (operands[3]))
28266 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28267 : STRIP_UNARY (operands[3])))) &&
28268 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28269 : ( 1)))
28270 : return NULL;
28271 : return gen_split_1962 (insn, operands);
28272 :
28273 : case 33:
28274 : if (!((
28275 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28276 : ((64 == 64 || TARGET_AVX512VL
28277 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28278 : && ix86_pre_reload_split ()
28279 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28280 : STRIP_UNARY (operands[4]))
28281 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28282 : STRIP_UNARY (operands[4]))
28283 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28284 : STRIP_UNARY (operands[3]))
28285 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28286 : STRIP_UNARY (operands[3])))) &&
28287 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28288 : (TARGET_AVX512F)) &&
28289 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28290 : ( 1)))
28291 : return NULL;
28292 : return gen_split_1989 (insn, operands);
28293 :
28294 : case 34:
28295 : if (!((
28296 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28297 : ((32 == 64 || TARGET_AVX512VL
28298 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28299 : && ix86_pre_reload_split ()
28300 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28301 : STRIP_UNARY (operands[4]))
28302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28303 : STRIP_UNARY (operands[4]))
28304 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28305 : STRIP_UNARY (operands[3]))
28306 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28307 : STRIP_UNARY (operands[3])))) &&
28308 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28309 : (TARGET_AVX)) &&
28310 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28311 : ( 1)))
28312 : return NULL;
28313 : return gen_split_2016 (insn, operands);
28314 :
28315 : case 35:
28316 : if (!(
28317 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28318 : ((16 == 64 || TARGET_AVX512VL
28319 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28320 : && ix86_pre_reload_split ()
28321 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28322 : STRIP_UNARY (operands[4]))
28323 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28324 : STRIP_UNARY (operands[4]))
28325 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28326 : STRIP_UNARY (operands[3]))
28327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28328 : STRIP_UNARY (operands[3])))) &&
28329 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28330 : ( 1)))
28331 : return NULL;
28332 : return gen_split_2043 (insn, operands);
28333 :
28334 : case 36:
28335 : if (!((
28336 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28337 : ((64 == 64 || TARGET_AVX512VL
28338 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28339 : && ix86_pre_reload_split ()) &&
28340 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28341 : (TARGET_AVX512F)) &&
28342 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28343 : ( 1)))
28344 : return NULL;
28345 : return gen_split_3036 (insn, operands);
28346 :
28347 : case 37:
28348 : if (!((
28349 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28350 : ((32 == 64 || TARGET_AVX512VL
28351 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28352 : && ix86_pre_reload_split ()) &&
28353 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28354 : (TARGET_AVX)) &&
28355 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28356 : ( 1)))
28357 : return NULL;
28358 : return gen_split_3045 (insn, operands);
28359 :
28360 : case 38:
28361 : if (!(
28362 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28363 : ((16 == 64 || TARGET_AVX512VL
28364 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28365 : && ix86_pre_reload_split ()) &&
28366 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28367 : ( 1)))
28368 : return NULL;
28369 : return gen_split_3054 (insn, operands);
28370 :
28371 : case 39:
28372 : if (!((
28373 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28374 : ((64 == 64 || TARGET_AVX512VL
28375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28376 : && ix86_pre_reload_split ()) &&
28377 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28378 : (TARGET_AVX512F)) &&
28379 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28380 : ( 1)))
28381 : return NULL;
28382 : return gen_split_3063 (insn, operands);
28383 :
28384 : case 40:
28385 : if (!((
28386 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28387 : ((32 == 64 || TARGET_AVX512VL
28388 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28389 : && ix86_pre_reload_split ()) &&
28390 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28391 : (TARGET_AVX)) &&
28392 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28393 : ( 1)))
28394 : return NULL;
28395 : return gen_split_3072 (insn, operands);
28396 :
28397 : case 41:
28398 : if (!(
28399 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28400 : ((16 == 64 || TARGET_AVX512VL
28401 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28402 : && ix86_pre_reload_split ()) &&
28403 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28404 : ( 1)))
28405 : return NULL;
28406 : return gen_split_3081 (insn, operands);
28407 :
28408 : case 42:
28409 : if (!((
28410 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28411 : ((64 == 64 || TARGET_AVX512VL
28412 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28413 : && ix86_pre_reload_split ()) &&
28414 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28415 : (TARGET_AVX512F)) &&
28416 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28417 : ( 1)))
28418 : return NULL;
28419 : return gen_split_3090 (insn, operands);
28420 :
28421 : case 43:
28422 : if (!((
28423 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28424 : ((32 == 64 || TARGET_AVX512VL
28425 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28426 : && ix86_pre_reload_split ()) &&
28427 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28428 : (TARGET_AVX)) &&
28429 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28430 : ( 1)))
28431 : return NULL;
28432 : return gen_split_3099 (insn, operands);
28433 :
28434 : case 44:
28435 : if (!(
28436 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28437 : ((16 == 64 || TARGET_AVX512VL
28438 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28439 : && ix86_pre_reload_split ()) &&
28440 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28441 : ( 1)))
28442 : return NULL;
28443 : return gen_split_3108 (insn, operands);
28444 :
28445 : case 45:
28446 : if (!((
28447 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28448 : ((64 == 64 || TARGET_AVX512VL
28449 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28450 : && ix86_pre_reload_split ()) &&
28451 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28452 : (TARGET_AVX512F)) &&
28453 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28454 : ( 1)))
28455 : return NULL;
28456 : return gen_split_3117 (insn, operands);
28457 :
28458 : case 46:
28459 : if (!((
28460 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28461 : ((32 == 64 || TARGET_AVX512VL
28462 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28463 : && ix86_pre_reload_split ()) &&
28464 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28465 : (TARGET_AVX)) &&
28466 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28467 : ( 1)))
28468 : return NULL;
28469 : return gen_split_3126 (insn, operands);
28470 :
28471 : case 47:
28472 : if (!(
28473 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28474 : ((16 == 64 || TARGET_AVX512VL
28475 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28476 : && ix86_pre_reload_split ()) &&
28477 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28478 : ( 1)))
28479 : return NULL;
28480 : return gen_split_3135 (insn, operands);
28481 :
28482 : default:
28483 : return NULL;
28484 : }
28485 :
28486 : case AND:
28487 : switch (pattern539 (x2))
28488 : {
28489 : case 0:
28490 : if (!((
28491 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28492 : ((64 == 64 || TARGET_AVX512VL
28493 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28494 : && ix86_pre_reload_split ()
28495 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28496 : STRIP_UNARY (operands[4]))
28497 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28498 : STRIP_UNARY (operands[4]))
28499 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28500 : STRIP_UNARY (operands[3]))
28501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28502 : STRIP_UNARY (operands[3])))) &&
28503 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28504 : (TARGET_AVX512F)) &&
28505 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28506 : ( 1)))
28507 : return NULL;
28508 : return gen_split_2388 (insn, operands);
28509 :
28510 : case 1:
28511 : if (!((
28512 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28513 : ((32 == 64 || TARGET_AVX512VL
28514 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28515 : && ix86_pre_reload_split ()
28516 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28517 : STRIP_UNARY (operands[4]))
28518 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28519 : STRIP_UNARY (operands[4]))
28520 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28521 : STRIP_UNARY (operands[3]))
28522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28523 : STRIP_UNARY (operands[3])))) &&
28524 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28525 : (TARGET_AVX)) &&
28526 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28527 : ( 1)))
28528 : return NULL;
28529 : return gen_split_2415 (insn, operands);
28530 :
28531 : case 2:
28532 : if (!(
28533 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28534 : ((16 == 64 || TARGET_AVX512VL
28535 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28536 : && ix86_pre_reload_split ()
28537 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28538 : STRIP_UNARY (operands[4]))
28539 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28540 : STRIP_UNARY (operands[4]))
28541 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28542 : STRIP_UNARY (operands[3]))
28543 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28544 : STRIP_UNARY (operands[3])))) &&
28545 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28546 : ( 1)))
28547 : return NULL;
28548 : return gen_split_2442 (insn, operands);
28549 :
28550 : case 3:
28551 : if (!((
28552 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28553 : ((64 == 64 || TARGET_AVX512VL
28554 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28555 : && ix86_pre_reload_split ()
28556 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28557 : STRIP_UNARY (operands[4]))
28558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28559 : STRIP_UNARY (operands[4]))
28560 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28561 : STRIP_UNARY (operands[3]))
28562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28563 : STRIP_UNARY (operands[3])))) &&
28564 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28565 : (TARGET_AVX512F)) &&
28566 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28567 : ( 1)))
28568 : return NULL;
28569 : return gen_split_2469 (insn, operands);
28570 :
28571 : case 4:
28572 : if (!((
28573 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28574 : ((32 == 64 || TARGET_AVX512VL
28575 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28576 : && ix86_pre_reload_split ()
28577 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28578 : STRIP_UNARY (operands[4]))
28579 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28580 : STRIP_UNARY (operands[4]))
28581 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28582 : STRIP_UNARY (operands[3]))
28583 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28584 : STRIP_UNARY (operands[3])))) &&
28585 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28586 : (TARGET_AVX)) &&
28587 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28588 : ( 1)))
28589 : return NULL;
28590 : return gen_split_2496 (insn, operands);
28591 :
28592 : case 5:
28593 : if (!(
28594 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28595 : ((16 == 64 || TARGET_AVX512VL
28596 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28597 : && ix86_pre_reload_split ()
28598 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28599 : STRIP_UNARY (operands[4]))
28600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28601 : STRIP_UNARY (operands[4]))
28602 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28603 : STRIP_UNARY (operands[3]))
28604 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28605 : STRIP_UNARY (operands[3])))) &&
28606 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28607 : ( 1)))
28608 : return NULL;
28609 : return gen_split_2523 (insn, operands);
28610 :
28611 : case 6:
28612 : if (!((
28613 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28614 : ((64 == 64 || TARGET_AVX512VL
28615 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28616 : && ix86_pre_reload_split ()
28617 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28618 : STRIP_UNARY (operands[4]))
28619 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28620 : STRIP_UNARY (operands[4]))
28621 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28622 : STRIP_UNARY (operands[3]))
28623 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28624 : STRIP_UNARY (operands[3])))) &&
28625 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28626 : (TARGET_AVX512F)) &&
28627 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28628 : ( 1)))
28629 : return NULL;
28630 : return gen_split_2550 (insn, operands);
28631 :
28632 : case 7:
28633 : if (!((
28634 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28635 : ((32 == 64 || TARGET_AVX512VL
28636 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28637 : && ix86_pre_reload_split ()
28638 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28639 : STRIP_UNARY (operands[4]))
28640 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28641 : STRIP_UNARY (operands[4]))
28642 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28643 : STRIP_UNARY (operands[3]))
28644 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28645 : STRIP_UNARY (operands[3])))) &&
28646 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28647 : (TARGET_AVX)) &&
28648 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28649 : ( 1)))
28650 : return NULL;
28651 : return gen_split_2577 (insn, operands);
28652 :
28653 : case 8:
28654 : if (!(
28655 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28656 : ((16 == 64 || TARGET_AVX512VL
28657 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28658 : && ix86_pre_reload_split ()
28659 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28660 : STRIP_UNARY (operands[4]))
28661 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28662 : STRIP_UNARY (operands[4]))
28663 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28664 : STRIP_UNARY (operands[3]))
28665 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28666 : STRIP_UNARY (operands[3])))) &&
28667 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28668 : ( 1)))
28669 : return NULL;
28670 : return gen_split_2604 (insn, operands);
28671 :
28672 : case 9:
28673 : if (!((
28674 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28675 : ((64 == 64 || TARGET_AVX512VL
28676 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28677 : && ix86_pre_reload_split ()
28678 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28679 : STRIP_UNARY (operands[4]))
28680 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28681 : STRIP_UNARY (operands[4]))
28682 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28683 : STRIP_UNARY (operands[3]))
28684 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28685 : STRIP_UNARY (operands[3])))) &&
28686 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28687 : (TARGET_AVX512F)) &&
28688 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28689 : ( 1)))
28690 : return NULL;
28691 : return gen_split_2631 (insn, operands);
28692 :
28693 : case 10:
28694 : if (!((
28695 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28696 : ((32 == 64 || TARGET_AVX512VL
28697 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28698 : && ix86_pre_reload_split ()
28699 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28700 : STRIP_UNARY (operands[4]))
28701 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28702 : STRIP_UNARY (operands[4]))
28703 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28704 : STRIP_UNARY (operands[3]))
28705 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28706 : STRIP_UNARY (operands[3])))) &&
28707 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28708 : (TARGET_AVX)) &&
28709 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28710 : ( 1)))
28711 : return NULL;
28712 : return gen_split_2658 (insn, operands);
28713 :
28714 : case 11:
28715 : if (!(
28716 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28717 : ((16 == 64 || TARGET_AVX512VL
28718 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28719 : && ix86_pre_reload_split ()
28720 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28721 : STRIP_UNARY (operands[4]))
28722 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28723 : STRIP_UNARY (operands[4]))
28724 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28725 : STRIP_UNARY (operands[3]))
28726 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28727 : STRIP_UNARY (operands[3])))) &&
28728 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28729 : ( 1)))
28730 : return NULL;
28731 : return gen_split_2685 (insn, operands);
28732 :
28733 : default:
28734 : return NULL;
28735 : }
28736 :
28737 : case IOR:
28738 : switch (pattern539 (x2))
28739 : {
28740 : case 0:
28741 : if (!((
28742 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28743 : ((64 == 64 || TARGET_AVX512VL
28744 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28745 : && ix86_pre_reload_split ()
28746 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28747 : STRIP_UNARY (operands[4]))
28748 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28749 : STRIP_UNARY (operands[4]))
28750 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28751 : STRIP_UNARY (operands[3]))
28752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28753 : STRIP_UNARY (operands[3])))) &&
28754 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28755 : (TARGET_AVX512F)) &&
28756 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28757 : ( 1)))
28758 : return NULL;
28759 : return gen_split_2391 (insn, operands);
28760 :
28761 : case 1:
28762 : if (!((
28763 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28764 : ((32 == 64 || TARGET_AVX512VL
28765 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28766 : && ix86_pre_reload_split ()
28767 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28768 : STRIP_UNARY (operands[4]))
28769 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28770 : STRIP_UNARY (operands[4]))
28771 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28772 : STRIP_UNARY (operands[3]))
28773 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28774 : STRIP_UNARY (operands[3])))) &&
28775 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28776 : (TARGET_AVX)) &&
28777 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28778 : ( 1)))
28779 : return NULL;
28780 : return gen_split_2418 (insn, operands);
28781 :
28782 : case 2:
28783 : if (!(
28784 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28785 : ((16 == 64 || TARGET_AVX512VL
28786 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28787 : && ix86_pre_reload_split ()
28788 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28789 : STRIP_UNARY (operands[4]))
28790 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28791 : STRIP_UNARY (operands[4]))
28792 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28793 : STRIP_UNARY (operands[3]))
28794 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28795 : STRIP_UNARY (operands[3])))) &&
28796 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28797 : ( 1)))
28798 : return NULL;
28799 : return gen_split_2445 (insn, operands);
28800 :
28801 : case 3:
28802 : if (!((
28803 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28804 : ((64 == 64 || TARGET_AVX512VL
28805 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28806 : && ix86_pre_reload_split ()
28807 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28808 : STRIP_UNARY (operands[4]))
28809 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28810 : STRIP_UNARY (operands[4]))
28811 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28812 : STRIP_UNARY (operands[3]))
28813 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28814 : STRIP_UNARY (operands[3])))) &&
28815 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28816 : (TARGET_AVX512F)) &&
28817 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28818 : ( 1)))
28819 : return NULL;
28820 : return gen_split_2472 (insn, operands);
28821 :
28822 : case 4:
28823 : if (!((
28824 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28825 : ((32 == 64 || TARGET_AVX512VL
28826 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28827 : && ix86_pre_reload_split ()
28828 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28829 : STRIP_UNARY (operands[4]))
28830 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28831 : STRIP_UNARY (operands[4]))
28832 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28833 : STRIP_UNARY (operands[3]))
28834 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28835 : STRIP_UNARY (operands[3])))) &&
28836 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28837 : (TARGET_AVX)) &&
28838 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28839 : ( 1)))
28840 : return NULL;
28841 : return gen_split_2499 (insn, operands);
28842 :
28843 : case 5:
28844 : if (!(
28845 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28846 : ((16 == 64 || TARGET_AVX512VL
28847 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28848 : && ix86_pre_reload_split ()
28849 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28850 : STRIP_UNARY (operands[4]))
28851 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28852 : STRIP_UNARY (operands[4]))
28853 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28854 : STRIP_UNARY (operands[3]))
28855 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28856 : STRIP_UNARY (operands[3])))) &&
28857 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28858 : ( 1)))
28859 : return NULL;
28860 : return gen_split_2526 (insn, operands);
28861 :
28862 : case 6:
28863 : if (!((
28864 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28865 : ((64 == 64 || TARGET_AVX512VL
28866 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28867 : && ix86_pre_reload_split ()
28868 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28869 : STRIP_UNARY (operands[4]))
28870 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28871 : STRIP_UNARY (operands[4]))
28872 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28873 : STRIP_UNARY (operands[3]))
28874 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28875 : STRIP_UNARY (operands[3])))) &&
28876 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28877 : (TARGET_AVX512F)) &&
28878 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28879 : ( 1)))
28880 : return NULL;
28881 : return gen_split_2553 (insn, operands);
28882 :
28883 : case 7:
28884 : if (!((
28885 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28886 : ((32 == 64 || TARGET_AVX512VL
28887 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28888 : && ix86_pre_reload_split ()
28889 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28890 : STRIP_UNARY (operands[4]))
28891 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28892 : STRIP_UNARY (operands[4]))
28893 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28894 : STRIP_UNARY (operands[3]))
28895 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28896 : STRIP_UNARY (operands[3])))) &&
28897 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28898 : (TARGET_AVX)) &&
28899 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28900 : ( 1)))
28901 : return NULL;
28902 : return gen_split_2580 (insn, operands);
28903 :
28904 : case 8:
28905 : if (!(
28906 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28907 : ((16 == 64 || TARGET_AVX512VL
28908 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28909 : && ix86_pre_reload_split ()
28910 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28911 : STRIP_UNARY (operands[4]))
28912 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28913 : STRIP_UNARY (operands[4]))
28914 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28915 : STRIP_UNARY (operands[3]))
28916 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28917 : STRIP_UNARY (operands[3])))) &&
28918 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28919 : ( 1)))
28920 : return NULL;
28921 : return gen_split_2607 (insn, operands);
28922 :
28923 : case 9:
28924 : if (!((
28925 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28926 : ((64 == 64 || TARGET_AVX512VL
28927 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28928 : && ix86_pre_reload_split ()
28929 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28930 : STRIP_UNARY (operands[4]))
28931 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28932 : STRIP_UNARY (operands[4]))
28933 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28934 : STRIP_UNARY (operands[3]))
28935 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28936 : STRIP_UNARY (operands[3])))) &&
28937 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28938 : (TARGET_AVX512F)) &&
28939 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28940 : ( 1)))
28941 : return NULL;
28942 : return gen_split_2634 (insn, operands);
28943 :
28944 : case 10:
28945 : if (!((
28946 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28947 : ((32 == 64 || TARGET_AVX512VL
28948 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28949 : && ix86_pre_reload_split ()
28950 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28951 : STRIP_UNARY (operands[4]))
28952 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28953 : STRIP_UNARY (operands[4]))
28954 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28955 : STRIP_UNARY (operands[3]))
28956 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28957 : STRIP_UNARY (operands[3])))) &&
28958 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28959 : (TARGET_AVX)) &&
28960 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28961 : ( 1)))
28962 : return NULL;
28963 : return gen_split_2661 (insn, operands);
28964 :
28965 : case 11:
28966 : if (!(
28967 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28968 : ((16 == 64 || TARGET_AVX512VL
28969 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28970 : && ix86_pre_reload_split ()
28971 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28972 : STRIP_UNARY (operands[4]))
28973 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28974 : STRIP_UNARY (operands[4]))
28975 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28976 : STRIP_UNARY (operands[3]))
28977 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28978 : STRIP_UNARY (operands[3])))) &&
28979 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28980 : ( 1)))
28981 : return NULL;
28982 : return gen_split_2688 (insn, operands);
28983 :
28984 : default:
28985 : return NULL;
28986 : }
28987 :
28988 : case XOR:
28989 : switch (pattern539 (x2))
28990 : {
28991 : case 0:
28992 : if (!((
28993 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28994 : ((64 == 64 || TARGET_AVX512VL
28995 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28996 : && ix86_pre_reload_split ()
28997 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28998 : STRIP_UNARY (operands[4]))
28999 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29000 : STRIP_UNARY (operands[4]))
29001 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29002 : STRIP_UNARY (operands[3]))
29003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29004 : STRIP_UNARY (operands[3])))) &&
29005 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29006 : (TARGET_AVX512F)) &&
29007 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29008 : ( 1)))
29009 : return NULL;
29010 : return gen_split_2394 (insn, operands);
29011 :
29012 : case 1:
29013 : if (!((
29014 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29015 : ((32 == 64 || TARGET_AVX512VL
29016 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29017 : && ix86_pre_reload_split ()
29018 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29019 : STRIP_UNARY (operands[4]))
29020 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29021 : STRIP_UNARY (operands[4]))
29022 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29023 : STRIP_UNARY (operands[3]))
29024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29025 : STRIP_UNARY (operands[3])))) &&
29026 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29027 : (TARGET_AVX)) &&
29028 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29029 : ( 1)))
29030 : return NULL;
29031 : return gen_split_2421 (insn, operands);
29032 :
29033 : case 2:
29034 : if (!(
29035 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29036 : ((16 == 64 || TARGET_AVX512VL
29037 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29038 : && ix86_pre_reload_split ()
29039 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29040 : STRIP_UNARY (operands[4]))
29041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29042 : STRIP_UNARY (operands[4]))
29043 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29044 : STRIP_UNARY (operands[3]))
29045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29046 : STRIP_UNARY (operands[3])))) &&
29047 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29048 : ( 1)))
29049 : return NULL;
29050 : return gen_split_2448 (insn, operands);
29051 :
29052 : case 3:
29053 : if (!((
29054 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29055 : ((64 == 64 || TARGET_AVX512VL
29056 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29057 : && ix86_pre_reload_split ()
29058 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29059 : STRIP_UNARY (operands[4]))
29060 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29061 : STRIP_UNARY (operands[4]))
29062 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29063 : STRIP_UNARY (operands[3]))
29064 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29065 : STRIP_UNARY (operands[3])))) &&
29066 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29067 : (TARGET_AVX512F)) &&
29068 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29069 : ( 1)))
29070 : return NULL;
29071 : return gen_split_2475 (insn, operands);
29072 :
29073 : case 4:
29074 : if (!((
29075 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29076 : ((32 == 64 || TARGET_AVX512VL
29077 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29078 : && ix86_pre_reload_split ()
29079 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29080 : STRIP_UNARY (operands[4]))
29081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29082 : STRIP_UNARY (operands[4]))
29083 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29084 : STRIP_UNARY (operands[3]))
29085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29086 : STRIP_UNARY (operands[3])))) &&
29087 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29088 : (TARGET_AVX)) &&
29089 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29090 : ( 1)))
29091 : return NULL;
29092 : return gen_split_2502 (insn, operands);
29093 :
29094 : case 5:
29095 : if (!(
29096 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29097 : ((16 == 64 || TARGET_AVX512VL
29098 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29099 : && ix86_pre_reload_split ()
29100 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29101 : STRIP_UNARY (operands[4]))
29102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29103 : STRIP_UNARY (operands[4]))
29104 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29105 : STRIP_UNARY (operands[3]))
29106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29107 : STRIP_UNARY (operands[3])))) &&
29108 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29109 : ( 1)))
29110 : return NULL;
29111 : return gen_split_2529 (insn, operands);
29112 :
29113 : case 6:
29114 : if (!((
29115 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29116 : ((64 == 64 || TARGET_AVX512VL
29117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29118 : && ix86_pre_reload_split ()
29119 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29120 : STRIP_UNARY (operands[4]))
29121 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29122 : STRIP_UNARY (operands[4]))
29123 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29124 : STRIP_UNARY (operands[3]))
29125 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29126 : STRIP_UNARY (operands[3])))) &&
29127 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29128 : (TARGET_AVX512F)) &&
29129 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29130 : ( 1)))
29131 : return NULL;
29132 : return gen_split_2556 (insn, operands);
29133 :
29134 : case 7:
29135 : if (!((
29136 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29137 : ((32 == 64 || TARGET_AVX512VL
29138 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29139 : && ix86_pre_reload_split ()
29140 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29141 : STRIP_UNARY (operands[4]))
29142 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29143 : STRIP_UNARY (operands[4]))
29144 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29145 : STRIP_UNARY (operands[3]))
29146 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29147 : STRIP_UNARY (operands[3])))) &&
29148 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29149 : (TARGET_AVX)) &&
29150 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29151 : ( 1)))
29152 : return NULL;
29153 : return gen_split_2583 (insn, operands);
29154 :
29155 : case 8:
29156 : if (!(
29157 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29158 : ((16 == 64 || TARGET_AVX512VL
29159 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29160 : && ix86_pre_reload_split ()
29161 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29162 : STRIP_UNARY (operands[4]))
29163 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29164 : STRIP_UNARY (operands[4]))
29165 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29166 : STRIP_UNARY (operands[3]))
29167 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29168 : STRIP_UNARY (operands[3])))) &&
29169 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29170 : ( 1)))
29171 : return NULL;
29172 : return gen_split_2610 (insn, operands);
29173 :
29174 : case 9:
29175 : if (!((
29176 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29177 : ((64 == 64 || TARGET_AVX512VL
29178 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29179 : && ix86_pre_reload_split ()
29180 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29181 : STRIP_UNARY (operands[4]))
29182 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29183 : STRIP_UNARY (operands[4]))
29184 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29185 : STRIP_UNARY (operands[3]))
29186 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29187 : STRIP_UNARY (operands[3])))) &&
29188 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29189 : (TARGET_AVX512F)) &&
29190 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29191 : ( 1)))
29192 : return NULL;
29193 : return gen_split_2637 (insn, operands);
29194 :
29195 : case 10:
29196 : if (!((
29197 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29198 : ((32 == 64 || TARGET_AVX512VL
29199 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29200 : && ix86_pre_reload_split ()
29201 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29202 : STRIP_UNARY (operands[4]))
29203 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29204 : STRIP_UNARY (operands[4]))
29205 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29206 : STRIP_UNARY (operands[3]))
29207 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29208 : STRIP_UNARY (operands[3])))) &&
29209 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29210 : (TARGET_AVX)) &&
29211 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29212 : ( 1)))
29213 : return NULL;
29214 : return gen_split_2664 (insn, operands);
29215 :
29216 : case 11:
29217 : if (!(
29218 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29219 : ((16 == 64 || TARGET_AVX512VL
29220 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29221 : && ix86_pre_reload_split ()
29222 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29223 : STRIP_UNARY (operands[4]))
29224 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29225 : STRIP_UNARY (operands[4]))
29226 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29227 : STRIP_UNARY (operands[3]))
29228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29229 : STRIP_UNARY (operands[3])))) &&
29230 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29231 : ( 1)))
29232 : return NULL;
29233 : return gen_split_2691 (insn, operands);
29234 :
29235 : default:
29236 : return NULL;
29237 : }
29238 :
29239 : default:
29240 : return NULL;
29241 : }
29242 :
29243 : case IOR:
29244 : x4 = XEXP (x3, 0);
29245 : switch (GET_CODE (x4))
29246 : {
29247 : case REG:
29248 : case SUBREG:
29249 : case MEM:
29250 : case NOT:
29251 : switch (pattern537 (x2))
29252 : {
29253 : case 0:
29254 : if (!((
29255 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29256 : ((64 == 64 || TARGET_AVX512VL
29257 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29258 : && ix86_pre_reload_split ()
29259 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29260 : STRIP_UNARY (operands[4]))
29261 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29262 : STRIP_UNARY (operands[4]))
29263 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29264 : STRIP_UNARY (operands[3]))
29265 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29266 : STRIP_UNARY (operands[3])))) &&
29267 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29268 : (TARGET_AVX512F)) &&
29269 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29270 : ( 1)))
29271 : return NULL;
29272 : return gen_split_1749 (insn, operands);
29273 :
29274 : case 1:
29275 : if (!((
29276 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29277 : ((32 == 64 || TARGET_AVX512VL
29278 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29279 : && ix86_pre_reload_split ()
29280 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29281 : STRIP_UNARY (operands[4]))
29282 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29283 : STRIP_UNARY (operands[4]))
29284 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29285 : STRIP_UNARY (operands[3]))
29286 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29287 : STRIP_UNARY (operands[3])))) &&
29288 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29289 : (TARGET_AVX)) &&
29290 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29291 : ( 1)))
29292 : return NULL;
29293 : return gen_split_1776 (insn, operands);
29294 :
29295 : case 2:
29296 : if (!(
29297 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29298 : ((16 == 64 || TARGET_AVX512VL
29299 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29300 : && ix86_pre_reload_split ()
29301 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29302 : STRIP_UNARY (operands[4]))
29303 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29304 : STRIP_UNARY (operands[4]))
29305 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29306 : STRIP_UNARY (operands[3]))
29307 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29308 : STRIP_UNARY (operands[3])))) &&
29309 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29310 : ( 1)))
29311 : return NULL;
29312 : return gen_split_1803 (insn, operands);
29313 :
29314 : case 3:
29315 : if (!((
29316 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29317 : ((64 == 64 || TARGET_AVX512VL
29318 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29319 : && ix86_pre_reload_split ()
29320 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29321 : STRIP_UNARY (operands[4]))
29322 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29323 : STRIP_UNARY (operands[4]))
29324 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29325 : STRIP_UNARY (operands[3]))
29326 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29327 : STRIP_UNARY (operands[3])))) &&
29328 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29329 : (TARGET_AVX512F)) &&
29330 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29331 : ( 1)))
29332 : return NULL;
29333 : return gen_split_1830 (insn, operands);
29334 :
29335 : case 4:
29336 : if (!((
29337 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29338 : ((32 == 64 || TARGET_AVX512VL
29339 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29340 : && ix86_pre_reload_split ()
29341 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29342 : STRIP_UNARY (operands[4]))
29343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29344 : STRIP_UNARY (operands[4]))
29345 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29346 : STRIP_UNARY (operands[3]))
29347 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29348 : STRIP_UNARY (operands[3])))) &&
29349 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29350 : (TARGET_AVX)) &&
29351 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29352 : ( 1)))
29353 : return NULL;
29354 : return gen_split_1857 (insn, operands);
29355 :
29356 : case 5:
29357 : if (!(
29358 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29359 : ((16 == 64 || TARGET_AVX512VL
29360 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29361 : && ix86_pre_reload_split ()
29362 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29363 : STRIP_UNARY (operands[4]))
29364 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29365 : STRIP_UNARY (operands[4]))
29366 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29367 : STRIP_UNARY (operands[3]))
29368 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29369 : STRIP_UNARY (operands[3])))) &&
29370 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29371 : ( 1)))
29372 : return NULL;
29373 : return gen_split_1884 (insn, operands);
29374 :
29375 : case 6:
29376 : if (!((
29377 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29378 : ((64 == 64 || TARGET_AVX512VL
29379 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29380 : && ix86_pre_reload_split ()
29381 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29382 : STRIP_UNARY (operands[4]))
29383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29384 : STRIP_UNARY (operands[4]))
29385 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29386 : STRIP_UNARY (operands[3]))
29387 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29388 : STRIP_UNARY (operands[3])))) &&
29389 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29390 : (TARGET_AVX512F)) &&
29391 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29392 : ( 1)))
29393 : return NULL;
29394 : return gen_split_1911 (insn, operands);
29395 :
29396 : case 7:
29397 : if (!((
29398 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29399 : ((32 == 64 || TARGET_AVX512VL
29400 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29401 : && ix86_pre_reload_split ()
29402 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29403 : STRIP_UNARY (operands[4]))
29404 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29405 : STRIP_UNARY (operands[4]))
29406 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29407 : STRIP_UNARY (operands[3]))
29408 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29409 : STRIP_UNARY (operands[3])))) &&
29410 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29411 : (TARGET_AVX)) &&
29412 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29413 : ( 1)))
29414 : return NULL;
29415 : return gen_split_1938 (insn, operands);
29416 :
29417 : case 8:
29418 : if (!(
29419 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29420 : ((16 == 64 || TARGET_AVX512VL
29421 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29422 : && ix86_pre_reload_split ()
29423 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29424 : STRIP_UNARY (operands[4]))
29425 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29426 : STRIP_UNARY (operands[4]))
29427 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29428 : STRIP_UNARY (operands[3]))
29429 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29430 : STRIP_UNARY (operands[3])))) &&
29431 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29432 : ( 1)))
29433 : return NULL;
29434 : return gen_split_1965 (insn, operands);
29435 :
29436 : case 9:
29437 : if (!((
29438 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29439 : ((64 == 64 || TARGET_AVX512VL
29440 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29441 : && ix86_pre_reload_split ()
29442 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29443 : STRIP_UNARY (operands[4]))
29444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29445 : STRIP_UNARY (operands[4]))
29446 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29447 : STRIP_UNARY (operands[3]))
29448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29449 : STRIP_UNARY (operands[3])))) &&
29450 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29451 : (TARGET_AVX512F)) &&
29452 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29453 : ( 1)))
29454 : return NULL;
29455 : return gen_split_1992 (insn, operands);
29456 :
29457 : case 10:
29458 : if (!((
29459 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29460 : ((32 == 64 || TARGET_AVX512VL
29461 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29462 : && ix86_pre_reload_split ()
29463 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29464 : STRIP_UNARY (operands[4]))
29465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29466 : STRIP_UNARY (operands[4]))
29467 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29468 : STRIP_UNARY (operands[3]))
29469 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29470 : STRIP_UNARY (operands[3])))) &&
29471 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29472 : (TARGET_AVX)) &&
29473 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29474 : ( 1)))
29475 : return NULL;
29476 : return gen_split_2019 (insn, operands);
29477 :
29478 : case 11:
29479 : if (!(
29480 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29481 : ((16 == 64 || TARGET_AVX512VL
29482 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29483 : && ix86_pre_reload_split ()
29484 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29485 : STRIP_UNARY (operands[4]))
29486 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29487 : STRIP_UNARY (operands[4]))
29488 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29489 : STRIP_UNARY (operands[3]))
29490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29491 : STRIP_UNARY (operands[3])))) &&
29492 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29493 : ( 1)))
29494 : return NULL;
29495 : return gen_split_2046 (insn, operands);
29496 :
29497 : case 12:
29498 : if (!((
29499 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29500 : ((64 == 64 || TARGET_AVX512VL
29501 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29502 : && ix86_pre_reload_split ()
29503 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29504 : STRIP_UNARY (operands[4]))
29505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29506 : STRIP_UNARY (operands[4]))
29507 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29508 : STRIP_UNARY (operands[3]))
29509 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29510 : STRIP_UNARY (operands[3])))) &&
29511 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29512 : (TARGET_AVX512F)) &&
29513 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29514 : ( 1)))
29515 : return NULL;
29516 : return gen_split_1752 (insn, operands);
29517 :
29518 : case 13:
29519 : if (!((
29520 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29521 : ((32 == 64 || TARGET_AVX512VL
29522 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29523 : && ix86_pre_reload_split ()
29524 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29525 : STRIP_UNARY (operands[4]))
29526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29527 : STRIP_UNARY (operands[4]))
29528 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29529 : STRIP_UNARY (operands[3]))
29530 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29531 : STRIP_UNARY (operands[3])))) &&
29532 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29533 : (TARGET_AVX)) &&
29534 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29535 : ( 1)))
29536 : return NULL;
29537 : return gen_split_1779 (insn, operands);
29538 :
29539 : case 14:
29540 : if (!(
29541 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29542 : ((16 == 64 || TARGET_AVX512VL
29543 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29544 : && ix86_pre_reload_split ()
29545 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29546 : STRIP_UNARY (operands[4]))
29547 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29548 : STRIP_UNARY (operands[4]))
29549 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29550 : STRIP_UNARY (operands[3]))
29551 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29552 : STRIP_UNARY (operands[3])))) &&
29553 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29554 : ( 1)))
29555 : return NULL;
29556 : return gen_split_1806 (insn, operands);
29557 :
29558 : case 15:
29559 : if (!((
29560 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29561 : ((64 == 64 || TARGET_AVX512VL
29562 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29563 : && ix86_pre_reload_split ()
29564 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29565 : STRIP_UNARY (operands[4]))
29566 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29567 : STRIP_UNARY (operands[4]))
29568 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29569 : STRIP_UNARY (operands[3]))
29570 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29571 : STRIP_UNARY (operands[3])))) &&
29572 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29573 : (TARGET_AVX512F)) &&
29574 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29575 : ( 1)))
29576 : return NULL;
29577 : return gen_split_1833 (insn, operands);
29578 :
29579 : case 16:
29580 : if (!((
29581 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29582 : ((32 == 64 || TARGET_AVX512VL
29583 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29584 : && ix86_pre_reload_split ()
29585 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29586 : STRIP_UNARY (operands[4]))
29587 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29588 : STRIP_UNARY (operands[4]))
29589 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29590 : STRIP_UNARY (operands[3]))
29591 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29592 : STRIP_UNARY (operands[3])))) &&
29593 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29594 : (TARGET_AVX)) &&
29595 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29596 : ( 1)))
29597 : return NULL;
29598 : return gen_split_1860 (insn, operands);
29599 :
29600 : case 17:
29601 : if (!(
29602 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29603 : ((16 == 64 || TARGET_AVX512VL
29604 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29605 : && ix86_pre_reload_split ()
29606 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29607 : STRIP_UNARY (operands[4]))
29608 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29609 : STRIP_UNARY (operands[4]))
29610 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29611 : STRIP_UNARY (operands[3]))
29612 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29613 : STRIP_UNARY (operands[3])))) &&
29614 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29615 : ( 1)))
29616 : return NULL;
29617 : return gen_split_1887 (insn, operands);
29618 :
29619 : case 18:
29620 : if (!((
29621 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29622 : ((64 == 64 || TARGET_AVX512VL
29623 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29624 : && ix86_pre_reload_split ()
29625 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29626 : STRIP_UNARY (operands[4]))
29627 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29628 : STRIP_UNARY (operands[4]))
29629 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29630 : STRIP_UNARY (operands[3]))
29631 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29632 : STRIP_UNARY (operands[3])))) &&
29633 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29634 : (TARGET_AVX512F)) &&
29635 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29636 : ( 1)))
29637 : return NULL;
29638 : return gen_split_1914 (insn, operands);
29639 :
29640 : case 19:
29641 : if (!((
29642 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29643 : ((32 == 64 || TARGET_AVX512VL
29644 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29645 : && ix86_pre_reload_split ()
29646 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29647 : STRIP_UNARY (operands[4]))
29648 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29649 : STRIP_UNARY (operands[4]))
29650 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29651 : STRIP_UNARY (operands[3]))
29652 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29653 : STRIP_UNARY (operands[3])))) &&
29654 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29655 : (TARGET_AVX)) &&
29656 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29657 : ( 1)))
29658 : return NULL;
29659 : return gen_split_1941 (insn, operands);
29660 :
29661 : case 20:
29662 : if (!(
29663 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29664 : ((16 == 64 || TARGET_AVX512VL
29665 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29666 : && ix86_pre_reload_split ()
29667 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29668 : STRIP_UNARY (operands[4]))
29669 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29670 : STRIP_UNARY (operands[4]))
29671 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29672 : STRIP_UNARY (operands[3]))
29673 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29674 : STRIP_UNARY (operands[3])))) &&
29675 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29676 : ( 1)))
29677 : return NULL;
29678 : return gen_split_1968 (insn, operands);
29679 :
29680 : case 21:
29681 : if (!((
29682 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29683 : ((64 == 64 || TARGET_AVX512VL
29684 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29685 : && ix86_pre_reload_split ()
29686 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29687 : STRIP_UNARY (operands[4]))
29688 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29689 : STRIP_UNARY (operands[4]))
29690 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29691 : STRIP_UNARY (operands[3]))
29692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29693 : STRIP_UNARY (operands[3])))) &&
29694 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29695 : (TARGET_AVX512F)) &&
29696 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29697 : ( 1)))
29698 : return NULL;
29699 : return gen_split_1995 (insn, operands);
29700 :
29701 : case 22:
29702 : if (!((
29703 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29704 : ((32 == 64 || TARGET_AVX512VL
29705 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29706 : && ix86_pre_reload_split ()
29707 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29708 : STRIP_UNARY (operands[4]))
29709 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29710 : STRIP_UNARY (operands[4]))
29711 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29712 : STRIP_UNARY (operands[3]))
29713 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29714 : STRIP_UNARY (operands[3])))) &&
29715 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29716 : (TARGET_AVX)) &&
29717 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29718 : ( 1)))
29719 : return NULL;
29720 : return gen_split_2022 (insn, operands);
29721 :
29722 : case 23:
29723 : if (!(
29724 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29725 : ((16 == 64 || TARGET_AVX512VL
29726 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29727 : && ix86_pre_reload_split ()
29728 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29729 : STRIP_UNARY (operands[4]))
29730 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29731 : STRIP_UNARY (operands[4]))
29732 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29733 : STRIP_UNARY (operands[3]))
29734 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29735 : STRIP_UNARY (operands[3])))) &&
29736 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29737 : ( 1)))
29738 : return NULL;
29739 : return gen_split_2049 (insn, operands);
29740 :
29741 : case 24:
29742 : if (!((
29743 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29744 : ((64 == 64 || TARGET_AVX512VL
29745 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29746 : && ix86_pre_reload_split ()
29747 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29748 : STRIP_UNARY (operands[4]))
29749 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29750 : STRIP_UNARY (operands[4]))
29751 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29752 : STRIP_UNARY (operands[3]))
29753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29754 : STRIP_UNARY (operands[3])))) &&
29755 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29756 : (TARGET_AVX512F)) &&
29757 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29758 : ( 1)))
29759 : return NULL;
29760 : return gen_split_1755 (insn, operands);
29761 :
29762 : case 25:
29763 : if (!((
29764 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29765 : ((32 == 64 || TARGET_AVX512VL
29766 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29767 : && ix86_pre_reload_split ()
29768 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29769 : STRIP_UNARY (operands[4]))
29770 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29771 : STRIP_UNARY (operands[4]))
29772 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29773 : STRIP_UNARY (operands[3]))
29774 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29775 : STRIP_UNARY (operands[3])))) &&
29776 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29777 : (TARGET_AVX)) &&
29778 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29779 : ( 1)))
29780 : return NULL;
29781 : return gen_split_1782 (insn, operands);
29782 :
29783 : case 26:
29784 : if (!(
29785 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29786 : ((16 == 64 || TARGET_AVX512VL
29787 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29788 : && ix86_pre_reload_split ()
29789 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29790 : STRIP_UNARY (operands[4]))
29791 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29792 : STRIP_UNARY (operands[4]))
29793 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29794 : STRIP_UNARY (operands[3]))
29795 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29796 : STRIP_UNARY (operands[3])))) &&
29797 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29798 : ( 1)))
29799 : return NULL;
29800 : return gen_split_1809 (insn, operands);
29801 :
29802 : case 27:
29803 : if (!((
29804 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29805 : ((64 == 64 || TARGET_AVX512VL
29806 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29807 : && ix86_pre_reload_split ()
29808 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29809 : STRIP_UNARY (operands[4]))
29810 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29811 : STRIP_UNARY (operands[4]))
29812 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29813 : STRIP_UNARY (operands[3]))
29814 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29815 : STRIP_UNARY (operands[3])))) &&
29816 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29817 : (TARGET_AVX512F)) &&
29818 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29819 : ( 1)))
29820 : return NULL;
29821 : return gen_split_1836 (insn, operands);
29822 :
29823 : case 28:
29824 : if (!((
29825 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29826 : ((32 == 64 || TARGET_AVX512VL
29827 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29828 : && ix86_pre_reload_split ()
29829 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29830 : STRIP_UNARY (operands[4]))
29831 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29832 : STRIP_UNARY (operands[4]))
29833 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29834 : STRIP_UNARY (operands[3]))
29835 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29836 : STRIP_UNARY (operands[3])))) &&
29837 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29838 : (TARGET_AVX)) &&
29839 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29840 : ( 1)))
29841 : return NULL;
29842 : return gen_split_1863 (insn, operands);
29843 :
29844 : case 29:
29845 : if (!(
29846 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29847 : ((16 == 64 || TARGET_AVX512VL
29848 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29849 : && ix86_pre_reload_split ()
29850 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29851 : STRIP_UNARY (operands[4]))
29852 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29853 : STRIP_UNARY (operands[4]))
29854 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29855 : STRIP_UNARY (operands[3]))
29856 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29857 : STRIP_UNARY (operands[3])))) &&
29858 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29859 : ( 1)))
29860 : return NULL;
29861 : return gen_split_1890 (insn, operands);
29862 :
29863 : case 30:
29864 : if (!((
29865 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29866 : ((64 == 64 || TARGET_AVX512VL
29867 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29868 : && ix86_pre_reload_split ()
29869 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29870 : STRIP_UNARY (operands[4]))
29871 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29872 : STRIP_UNARY (operands[4]))
29873 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29874 : STRIP_UNARY (operands[3]))
29875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29876 : STRIP_UNARY (operands[3])))) &&
29877 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29878 : (TARGET_AVX512F)) &&
29879 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29880 : ( 1)))
29881 : return NULL;
29882 : return gen_split_1917 (insn, operands);
29883 :
29884 : case 31:
29885 : if (!((
29886 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29887 : ((32 == 64 || TARGET_AVX512VL
29888 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29889 : && ix86_pre_reload_split ()
29890 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29891 : STRIP_UNARY (operands[4]))
29892 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29893 : STRIP_UNARY (operands[4]))
29894 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29895 : STRIP_UNARY (operands[3]))
29896 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29897 : STRIP_UNARY (operands[3])))) &&
29898 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29899 : (TARGET_AVX)) &&
29900 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29901 : ( 1)))
29902 : return NULL;
29903 : return gen_split_1944 (insn, operands);
29904 :
29905 : case 32:
29906 : if (!(
29907 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29908 : ((16 == 64 || TARGET_AVX512VL
29909 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29910 : && ix86_pre_reload_split ()
29911 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29912 : STRIP_UNARY (operands[4]))
29913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29914 : STRIP_UNARY (operands[4]))
29915 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29916 : STRIP_UNARY (operands[3]))
29917 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29918 : STRIP_UNARY (operands[3])))) &&
29919 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29920 : ( 1)))
29921 : return NULL;
29922 : return gen_split_1971 (insn, operands);
29923 :
29924 : case 33:
29925 : if (!((
29926 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29927 : ((64 == 64 || TARGET_AVX512VL
29928 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29929 : && ix86_pre_reload_split ()
29930 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29931 : STRIP_UNARY (operands[4]))
29932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29933 : STRIP_UNARY (operands[4]))
29934 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29935 : STRIP_UNARY (operands[3]))
29936 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29937 : STRIP_UNARY (operands[3])))) &&
29938 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29939 : (TARGET_AVX512F)) &&
29940 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29941 : ( 1)))
29942 : return NULL;
29943 : return gen_split_1998 (insn, operands);
29944 :
29945 : case 34:
29946 : if (!((
29947 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29948 : ((32 == 64 || TARGET_AVX512VL
29949 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29950 : && ix86_pre_reload_split ()
29951 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29952 : STRIP_UNARY (operands[4]))
29953 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29954 : STRIP_UNARY (operands[4]))
29955 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29956 : STRIP_UNARY (operands[3]))
29957 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29958 : STRIP_UNARY (operands[3])))) &&
29959 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29960 : (TARGET_AVX)) &&
29961 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29962 : ( 1)))
29963 : return NULL;
29964 : return gen_split_2025 (insn, operands);
29965 :
29966 : case 35:
29967 : if (!(
29968 : #line 14178 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29969 : ((16 == 64 || TARGET_AVX512VL
29970 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29971 : && ix86_pre_reload_split ()
29972 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29973 : STRIP_UNARY (operands[4]))
29974 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29975 : STRIP_UNARY (operands[4]))
29976 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29977 : STRIP_UNARY (operands[3]))
29978 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29979 : STRIP_UNARY (operands[3])))) &&
29980 : #line 14190 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29981 : ( 1)))
29982 : return NULL;
29983 : return gen_split_2052 (insn, operands);
29984 :
29985 : case 36:
29986 : if (!((
29987 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29988 : ((64 == 64 || TARGET_AVX512VL
29989 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29990 : && ix86_pre_reload_split ()) &&
29991 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29992 : (TARGET_AVX512F)) &&
29993 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29994 : ( 1)))
29995 : return NULL;
29996 : return gen_split_3039 (insn, operands);
29997 :
29998 : case 37:
29999 : if (!((
30000 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30001 : ((32 == 64 || TARGET_AVX512VL
30002 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30003 : && ix86_pre_reload_split ()) &&
30004 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30005 : (TARGET_AVX)) &&
30006 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30007 : ( 1)))
30008 : return NULL;
30009 : return gen_split_3048 (insn, operands);
30010 :
30011 : case 38:
30012 : if (!(
30013 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30014 : ((16 == 64 || TARGET_AVX512VL
30015 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30016 : && ix86_pre_reload_split ()) &&
30017 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30018 : ( 1)))
30019 : return NULL;
30020 : return gen_split_3057 (insn, operands);
30021 :
30022 : case 39:
30023 : if (!((
30024 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30025 : ((64 == 64 || TARGET_AVX512VL
30026 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30027 : && ix86_pre_reload_split ()) &&
30028 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30029 : (TARGET_AVX512F)) &&
30030 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30031 : ( 1)))
30032 : return NULL;
30033 : return gen_split_3066 (insn, operands);
30034 :
30035 : case 40:
30036 : if (!((
30037 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : ((32 == 64 || TARGET_AVX512VL
30039 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30040 : && ix86_pre_reload_split ()) &&
30041 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30042 : (TARGET_AVX)) &&
30043 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30044 : ( 1)))
30045 : return NULL;
30046 : return gen_split_3075 (insn, operands);
30047 :
30048 : case 41:
30049 : if (!(
30050 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30051 : ((16 == 64 || TARGET_AVX512VL
30052 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30053 : && ix86_pre_reload_split ()) &&
30054 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30055 : ( 1)))
30056 : return NULL;
30057 : return gen_split_3084 (insn, operands);
30058 :
30059 : case 42:
30060 : if (!((
30061 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30062 : ((64 == 64 || TARGET_AVX512VL
30063 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30064 : && ix86_pre_reload_split ()) &&
30065 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30066 : (TARGET_AVX512F)) &&
30067 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30068 : ( 1)))
30069 : return NULL;
30070 : return gen_split_3093 (insn, operands);
30071 :
30072 : case 43:
30073 : if (!((
30074 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30075 : ((32 == 64 || TARGET_AVX512VL
30076 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30077 : && ix86_pre_reload_split ()) &&
30078 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30079 : (TARGET_AVX)) &&
30080 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30081 : ( 1)))
30082 : return NULL;
30083 : return gen_split_3102 (insn, operands);
30084 :
30085 : case 44:
30086 : if (!(
30087 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30088 : ((16 == 64 || TARGET_AVX512VL
30089 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30090 : && ix86_pre_reload_split ()) &&
30091 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30092 : ( 1)))
30093 : return NULL;
30094 : return gen_split_3111 (insn, operands);
30095 :
30096 : case 45:
30097 : if (!((
30098 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30099 : ((64 == 64 || TARGET_AVX512VL
30100 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30101 : && ix86_pre_reload_split ()) &&
30102 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30103 : (TARGET_AVX512F)) &&
30104 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30105 : ( 1)))
30106 : return NULL;
30107 : return gen_split_3120 (insn, operands);
30108 :
30109 : case 46:
30110 : if (!((
30111 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30112 : ((32 == 64 || TARGET_AVX512VL
30113 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30114 : && ix86_pre_reload_split ()) &&
30115 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30116 : (TARGET_AVX)) &&
30117 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30118 : ( 1)))
30119 : return NULL;
30120 : return gen_split_3129 (insn, operands);
30121 :
30122 : case 47:
30123 : if (!(
30124 : #line 14347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30125 : ((16 == 64 || TARGET_AVX512VL
30126 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30127 : && ix86_pre_reload_split ()) &&
30128 : #line 14351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30129 : ( 1)))
30130 : return NULL;
30131 : return gen_split_3138 (insn, operands);
30132 :
30133 : default:
30134 : return NULL;
30135 : }
30136 :
30137 : case AND:
30138 : switch (pattern539 (x2))
30139 : {
30140 : case 0:
30141 : if (!((
30142 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30143 : ((64 == 64 || TARGET_AVX512VL
30144 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30145 : && ix86_pre_reload_split ()
30146 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30147 : STRIP_UNARY (operands[4]))
30148 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30149 : STRIP_UNARY (operands[4]))
30150 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30151 : STRIP_UNARY (operands[3]))
30152 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30153 : STRIP_UNARY (operands[3])))) &&
30154 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30155 : (TARGET_AVX512F)) &&
30156 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30157 : ( 1)))
30158 : return NULL;
30159 : return gen_split_2397 (insn, operands);
30160 :
30161 : case 1:
30162 : if (!((
30163 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30164 : ((32 == 64 || TARGET_AVX512VL
30165 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30166 : && ix86_pre_reload_split ()
30167 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30168 : STRIP_UNARY (operands[4]))
30169 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30170 : STRIP_UNARY (operands[4]))
30171 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30172 : STRIP_UNARY (operands[3]))
30173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30174 : STRIP_UNARY (operands[3])))) &&
30175 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30176 : (TARGET_AVX)) &&
30177 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30178 : ( 1)))
30179 : return NULL;
30180 : return gen_split_2424 (insn, operands);
30181 :
30182 : case 2:
30183 : if (!(
30184 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30185 : ((16 == 64 || TARGET_AVX512VL
30186 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30187 : && ix86_pre_reload_split ()
30188 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30189 : STRIP_UNARY (operands[4]))
30190 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30191 : STRIP_UNARY (operands[4]))
30192 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30193 : STRIP_UNARY (operands[3]))
30194 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30195 : STRIP_UNARY (operands[3])))) &&
30196 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30197 : ( 1)))
30198 : return NULL;
30199 : return gen_split_2451 (insn, operands);
30200 :
30201 : case 3:
30202 : if (!((
30203 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30204 : ((64 == 64 || TARGET_AVX512VL
30205 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30206 : && ix86_pre_reload_split ()
30207 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30208 : STRIP_UNARY (operands[4]))
30209 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30210 : STRIP_UNARY (operands[4]))
30211 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30212 : STRIP_UNARY (operands[3]))
30213 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30214 : STRIP_UNARY (operands[3])))) &&
30215 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30216 : (TARGET_AVX512F)) &&
30217 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30218 : ( 1)))
30219 : return NULL;
30220 : return gen_split_2478 (insn, operands);
30221 :
30222 : case 4:
30223 : if (!((
30224 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30225 : ((32 == 64 || TARGET_AVX512VL
30226 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30227 : && ix86_pre_reload_split ()
30228 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30229 : STRIP_UNARY (operands[4]))
30230 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30231 : STRIP_UNARY (operands[4]))
30232 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30233 : STRIP_UNARY (operands[3]))
30234 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30235 : STRIP_UNARY (operands[3])))) &&
30236 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30237 : (TARGET_AVX)) &&
30238 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30239 : ( 1)))
30240 : return NULL;
30241 : return gen_split_2505 (insn, operands);
30242 :
30243 : case 5:
30244 : if (!(
30245 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30246 : ((16 == 64 || TARGET_AVX512VL
30247 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30248 : && ix86_pre_reload_split ()
30249 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30250 : STRIP_UNARY (operands[4]))
30251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30252 : STRIP_UNARY (operands[4]))
30253 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30254 : STRIP_UNARY (operands[3]))
30255 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30256 : STRIP_UNARY (operands[3])))) &&
30257 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30258 : ( 1)))
30259 : return NULL;
30260 : return gen_split_2532 (insn, operands);
30261 :
30262 : case 6:
30263 : if (!((
30264 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30265 : ((64 == 64 || TARGET_AVX512VL
30266 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30267 : && ix86_pre_reload_split ()
30268 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30269 : STRIP_UNARY (operands[4]))
30270 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30271 : STRIP_UNARY (operands[4]))
30272 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30273 : STRIP_UNARY (operands[3]))
30274 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30275 : STRIP_UNARY (operands[3])))) &&
30276 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30277 : (TARGET_AVX512F)) &&
30278 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30279 : ( 1)))
30280 : return NULL;
30281 : return gen_split_2559 (insn, operands);
30282 :
30283 : case 7:
30284 : if (!((
30285 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30286 : ((32 == 64 || TARGET_AVX512VL
30287 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30288 : && ix86_pre_reload_split ()
30289 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30290 : STRIP_UNARY (operands[4]))
30291 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30292 : STRIP_UNARY (operands[4]))
30293 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30294 : STRIP_UNARY (operands[3]))
30295 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30296 : STRIP_UNARY (operands[3])))) &&
30297 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30298 : (TARGET_AVX)) &&
30299 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30300 : ( 1)))
30301 : return NULL;
30302 : return gen_split_2586 (insn, operands);
30303 :
30304 : case 8:
30305 : if (!(
30306 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30307 : ((16 == 64 || TARGET_AVX512VL
30308 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30309 : && ix86_pre_reload_split ()
30310 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30311 : STRIP_UNARY (operands[4]))
30312 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30313 : STRIP_UNARY (operands[4]))
30314 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30315 : STRIP_UNARY (operands[3]))
30316 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30317 : STRIP_UNARY (operands[3])))) &&
30318 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30319 : ( 1)))
30320 : return NULL;
30321 : return gen_split_2613 (insn, operands);
30322 :
30323 : case 9:
30324 : if (!((
30325 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30326 : ((64 == 64 || TARGET_AVX512VL
30327 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30328 : && ix86_pre_reload_split ()
30329 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30330 : STRIP_UNARY (operands[4]))
30331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30332 : STRIP_UNARY (operands[4]))
30333 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30334 : STRIP_UNARY (operands[3]))
30335 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30336 : STRIP_UNARY (operands[3])))) &&
30337 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30338 : (TARGET_AVX512F)) &&
30339 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30340 : ( 1)))
30341 : return NULL;
30342 : return gen_split_2640 (insn, operands);
30343 :
30344 : case 10:
30345 : if (!((
30346 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30347 : ((32 == 64 || TARGET_AVX512VL
30348 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30349 : && ix86_pre_reload_split ()
30350 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30351 : STRIP_UNARY (operands[4]))
30352 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30353 : STRIP_UNARY (operands[4]))
30354 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30355 : STRIP_UNARY (operands[3]))
30356 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30357 : STRIP_UNARY (operands[3])))) &&
30358 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30359 : (TARGET_AVX)) &&
30360 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30361 : ( 1)))
30362 : return NULL;
30363 : return gen_split_2667 (insn, operands);
30364 :
30365 : case 11:
30366 : if (!(
30367 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30368 : ((16 == 64 || TARGET_AVX512VL
30369 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30370 : && ix86_pre_reload_split ()
30371 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30372 : STRIP_UNARY (operands[4]))
30373 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30374 : STRIP_UNARY (operands[4]))
30375 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30376 : STRIP_UNARY (operands[3]))
30377 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30378 : STRIP_UNARY (operands[3])))) &&
30379 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30380 : ( 1)))
30381 : return NULL;
30382 : return gen_split_2694 (insn, operands);
30383 :
30384 : default:
30385 : return NULL;
30386 : }
30387 :
30388 : case IOR:
30389 : switch (pattern539 (x2))
30390 : {
30391 : case 0:
30392 : if (!((
30393 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30394 : ((64 == 64 || TARGET_AVX512VL
30395 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30396 : && ix86_pre_reload_split ()
30397 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30398 : STRIP_UNARY (operands[4]))
30399 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30400 : STRIP_UNARY (operands[4]))
30401 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30402 : STRIP_UNARY (operands[3]))
30403 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30404 : STRIP_UNARY (operands[3])))) &&
30405 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30406 : (TARGET_AVX512F)) &&
30407 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30408 : ( 1)))
30409 : return NULL;
30410 : return gen_split_2400 (insn, operands);
30411 :
30412 : case 1:
30413 : if (!((
30414 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30415 : ((32 == 64 || TARGET_AVX512VL
30416 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30417 : && ix86_pre_reload_split ()
30418 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30419 : STRIP_UNARY (operands[4]))
30420 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30421 : STRIP_UNARY (operands[4]))
30422 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30423 : STRIP_UNARY (operands[3]))
30424 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30425 : STRIP_UNARY (operands[3])))) &&
30426 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30427 : (TARGET_AVX)) &&
30428 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30429 : ( 1)))
30430 : return NULL;
30431 : return gen_split_2427 (insn, operands);
30432 :
30433 : case 2:
30434 : if (!(
30435 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30436 : ((16 == 64 || TARGET_AVX512VL
30437 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30438 : && ix86_pre_reload_split ()
30439 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30440 : STRIP_UNARY (operands[4]))
30441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30442 : STRIP_UNARY (operands[4]))
30443 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30444 : STRIP_UNARY (operands[3]))
30445 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30446 : STRIP_UNARY (operands[3])))) &&
30447 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30448 : ( 1)))
30449 : return NULL;
30450 : return gen_split_2454 (insn, operands);
30451 :
30452 : case 3:
30453 : if (!((
30454 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30455 : ((64 == 64 || TARGET_AVX512VL
30456 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30457 : && ix86_pre_reload_split ()
30458 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30459 : STRIP_UNARY (operands[4]))
30460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30461 : STRIP_UNARY (operands[4]))
30462 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30463 : STRIP_UNARY (operands[3]))
30464 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30465 : STRIP_UNARY (operands[3])))) &&
30466 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30467 : (TARGET_AVX512F)) &&
30468 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30469 : ( 1)))
30470 : return NULL;
30471 : return gen_split_2481 (insn, operands);
30472 :
30473 : case 4:
30474 : if (!((
30475 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30476 : ((32 == 64 || TARGET_AVX512VL
30477 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30478 : && ix86_pre_reload_split ()
30479 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30480 : STRIP_UNARY (operands[4]))
30481 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30482 : STRIP_UNARY (operands[4]))
30483 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30484 : STRIP_UNARY (operands[3]))
30485 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30486 : STRIP_UNARY (operands[3])))) &&
30487 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30488 : (TARGET_AVX)) &&
30489 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30490 : ( 1)))
30491 : return NULL;
30492 : return gen_split_2508 (insn, operands);
30493 :
30494 : case 5:
30495 : if (!(
30496 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30497 : ((16 == 64 || TARGET_AVX512VL
30498 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30499 : && ix86_pre_reload_split ()
30500 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30501 : STRIP_UNARY (operands[4]))
30502 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30503 : STRIP_UNARY (operands[4]))
30504 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30505 : STRIP_UNARY (operands[3]))
30506 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30507 : STRIP_UNARY (operands[3])))) &&
30508 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30509 : ( 1)))
30510 : return NULL;
30511 : return gen_split_2535 (insn, operands);
30512 :
30513 : case 6:
30514 : if (!((
30515 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30516 : ((64 == 64 || TARGET_AVX512VL
30517 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30518 : && ix86_pre_reload_split ()
30519 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30520 : STRIP_UNARY (operands[4]))
30521 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30522 : STRIP_UNARY (operands[4]))
30523 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30524 : STRIP_UNARY (operands[3]))
30525 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30526 : STRIP_UNARY (operands[3])))) &&
30527 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30528 : (TARGET_AVX512F)) &&
30529 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30530 : ( 1)))
30531 : return NULL;
30532 : return gen_split_2562 (insn, operands);
30533 :
30534 : case 7:
30535 : if (!((
30536 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30537 : ((32 == 64 || TARGET_AVX512VL
30538 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30539 : && ix86_pre_reload_split ()
30540 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30541 : STRIP_UNARY (operands[4]))
30542 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30543 : STRIP_UNARY (operands[4]))
30544 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30545 : STRIP_UNARY (operands[3]))
30546 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30547 : STRIP_UNARY (operands[3])))) &&
30548 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30549 : (TARGET_AVX)) &&
30550 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30551 : ( 1)))
30552 : return NULL;
30553 : return gen_split_2589 (insn, operands);
30554 :
30555 : case 8:
30556 : if (!(
30557 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30558 : ((16 == 64 || TARGET_AVX512VL
30559 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30560 : && ix86_pre_reload_split ()
30561 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30562 : STRIP_UNARY (operands[4]))
30563 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30564 : STRIP_UNARY (operands[4]))
30565 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30566 : STRIP_UNARY (operands[3]))
30567 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30568 : STRIP_UNARY (operands[3])))) &&
30569 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30570 : ( 1)))
30571 : return NULL;
30572 : return gen_split_2616 (insn, operands);
30573 :
30574 : case 9:
30575 : if (!((
30576 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30577 : ((64 == 64 || TARGET_AVX512VL
30578 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30579 : && ix86_pre_reload_split ()
30580 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30581 : STRIP_UNARY (operands[4]))
30582 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30583 : STRIP_UNARY (operands[4]))
30584 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30585 : STRIP_UNARY (operands[3]))
30586 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30587 : STRIP_UNARY (operands[3])))) &&
30588 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30589 : (TARGET_AVX512F)) &&
30590 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30591 : ( 1)))
30592 : return NULL;
30593 : return gen_split_2643 (insn, operands);
30594 :
30595 : case 10:
30596 : if (!((
30597 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30598 : ((32 == 64 || TARGET_AVX512VL
30599 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30600 : && ix86_pre_reload_split ()
30601 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30602 : STRIP_UNARY (operands[4]))
30603 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30604 : STRIP_UNARY (operands[4]))
30605 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30606 : STRIP_UNARY (operands[3]))
30607 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30608 : STRIP_UNARY (operands[3])))) &&
30609 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30610 : (TARGET_AVX)) &&
30611 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30612 : ( 1)))
30613 : return NULL;
30614 : return gen_split_2670 (insn, operands);
30615 :
30616 : case 11:
30617 : if (!(
30618 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30619 : ((16 == 64 || TARGET_AVX512VL
30620 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30621 : && ix86_pre_reload_split ()
30622 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30623 : STRIP_UNARY (operands[4]))
30624 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30625 : STRIP_UNARY (operands[4]))
30626 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30627 : STRIP_UNARY (operands[3]))
30628 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30629 : STRIP_UNARY (operands[3])))) &&
30630 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30631 : ( 1)))
30632 : return NULL;
30633 : return gen_split_2697 (insn, operands);
30634 :
30635 : default:
30636 : return NULL;
30637 : }
30638 :
30639 : case XOR:
30640 : switch (pattern539 (x2))
30641 : {
30642 : case 0:
30643 : if (!((
30644 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30645 : ((64 == 64 || TARGET_AVX512VL
30646 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30647 : && ix86_pre_reload_split ()
30648 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30649 : STRIP_UNARY (operands[4]))
30650 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30651 : STRIP_UNARY (operands[4]))
30652 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30653 : STRIP_UNARY (operands[3]))
30654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30655 : STRIP_UNARY (operands[3])))) &&
30656 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30657 : (TARGET_AVX512F)) &&
30658 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30659 : ( 1)))
30660 : return NULL;
30661 : return gen_split_2403 (insn, operands);
30662 :
30663 : case 1:
30664 : if (!((
30665 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30666 : ((32 == 64 || TARGET_AVX512VL
30667 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30668 : && ix86_pre_reload_split ()
30669 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30670 : STRIP_UNARY (operands[4]))
30671 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30672 : STRIP_UNARY (operands[4]))
30673 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30674 : STRIP_UNARY (operands[3]))
30675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30676 : STRIP_UNARY (operands[3])))) &&
30677 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30678 : (TARGET_AVX)) &&
30679 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30680 : ( 1)))
30681 : return NULL;
30682 : return gen_split_2430 (insn, operands);
30683 :
30684 : case 2:
30685 : if (!(
30686 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30687 : ((16 == 64 || TARGET_AVX512VL
30688 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30689 : && ix86_pre_reload_split ()
30690 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30691 : STRIP_UNARY (operands[4]))
30692 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30693 : STRIP_UNARY (operands[4]))
30694 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30695 : STRIP_UNARY (operands[3]))
30696 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30697 : STRIP_UNARY (operands[3])))) &&
30698 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30699 : ( 1)))
30700 : return NULL;
30701 : return gen_split_2457 (insn, operands);
30702 :
30703 : case 3:
30704 : if (!((
30705 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30706 : ((64 == 64 || TARGET_AVX512VL
30707 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30708 : && ix86_pre_reload_split ()
30709 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30710 : STRIP_UNARY (operands[4]))
30711 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30712 : STRIP_UNARY (operands[4]))
30713 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30714 : STRIP_UNARY (operands[3]))
30715 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30716 : STRIP_UNARY (operands[3])))) &&
30717 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30718 : (TARGET_AVX512F)) &&
30719 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30720 : ( 1)))
30721 : return NULL;
30722 : return gen_split_2484 (insn, operands);
30723 :
30724 : case 4:
30725 : if (!((
30726 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30727 : ((32 == 64 || TARGET_AVX512VL
30728 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30729 : && ix86_pre_reload_split ()
30730 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30731 : STRIP_UNARY (operands[4]))
30732 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30733 : STRIP_UNARY (operands[4]))
30734 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30735 : STRIP_UNARY (operands[3]))
30736 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30737 : STRIP_UNARY (operands[3])))) &&
30738 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30739 : (TARGET_AVX)) &&
30740 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30741 : ( 1)))
30742 : return NULL;
30743 : return gen_split_2511 (insn, operands);
30744 :
30745 : case 5:
30746 : if (!(
30747 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30748 : ((16 == 64 || TARGET_AVX512VL
30749 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30750 : && ix86_pre_reload_split ()
30751 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30752 : STRIP_UNARY (operands[4]))
30753 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30754 : STRIP_UNARY (operands[4]))
30755 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30756 : STRIP_UNARY (operands[3]))
30757 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30758 : STRIP_UNARY (operands[3])))) &&
30759 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30760 : ( 1)))
30761 : return NULL;
30762 : return gen_split_2538 (insn, operands);
30763 :
30764 : case 6:
30765 : if (!((
30766 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30767 : ((64 == 64 || TARGET_AVX512VL
30768 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30769 : && ix86_pre_reload_split ()
30770 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30771 : STRIP_UNARY (operands[4]))
30772 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30773 : STRIP_UNARY (operands[4]))
30774 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30775 : STRIP_UNARY (operands[3]))
30776 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30777 : STRIP_UNARY (operands[3])))) &&
30778 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30779 : (TARGET_AVX512F)) &&
30780 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30781 : ( 1)))
30782 : return NULL;
30783 : return gen_split_2565 (insn, operands);
30784 :
30785 : case 7:
30786 : if (!((
30787 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30788 : ((32 == 64 || TARGET_AVX512VL
30789 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30790 : && ix86_pre_reload_split ()
30791 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30792 : STRIP_UNARY (operands[4]))
30793 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30794 : STRIP_UNARY (operands[4]))
30795 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30796 : STRIP_UNARY (operands[3]))
30797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30798 : STRIP_UNARY (operands[3])))) &&
30799 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30800 : (TARGET_AVX)) &&
30801 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30802 : ( 1)))
30803 : return NULL;
30804 : return gen_split_2592 (insn, operands);
30805 :
30806 : case 8:
30807 : if (!(
30808 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30809 : ((16 == 64 || TARGET_AVX512VL
30810 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30811 : && ix86_pre_reload_split ()
30812 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30813 : STRIP_UNARY (operands[4]))
30814 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30815 : STRIP_UNARY (operands[4]))
30816 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30817 : STRIP_UNARY (operands[3]))
30818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30819 : STRIP_UNARY (operands[3])))) &&
30820 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30821 : ( 1)))
30822 : return NULL;
30823 : return gen_split_2619 (insn, operands);
30824 :
30825 : case 9:
30826 : if (!((
30827 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30828 : ((64 == 64 || TARGET_AVX512VL
30829 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30830 : && ix86_pre_reload_split ()
30831 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30832 : STRIP_UNARY (operands[4]))
30833 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30834 : STRIP_UNARY (operands[4]))
30835 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30836 : STRIP_UNARY (operands[3]))
30837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30838 : STRIP_UNARY (operands[3])))) &&
30839 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30840 : (TARGET_AVX512F)) &&
30841 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30842 : ( 1)))
30843 : return NULL;
30844 : return gen_split_2646 (insn, operands);
30845 :
30846 : case 10:
30847 : if (!((
30848 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30849 : ((32 == 64 || TARGET_AVX512VL
30850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30851 : && ix86_pre_reload_split ()
30852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30853 : STRIP_UNARY (operands[4]))
30854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30855 : STRIP_UNARY (operands[4]))
30856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30857 : STRIP_UNARY (operands[3]))
30858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30859 : STRIP_UNARY (operands[3])))) &&
30860 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30861 : (TARGET_AVX)) &&
30862 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30863 : ( 1)))
30864 : return NULL;
30865 : return gen_split_2673 (insn, operands);
30866 :
30867 : case 11:
30868 : if (!(
30869 : #line 14263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30870 : ((16 == 64 || TARGET_AVX512VL
30871 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
30872 : && ix86_pre_reload_split ()
30873 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
30874 : STRIP_UNARY (operands[4]))
30875 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30876 : STRIP_UNARY (operands[4]))
30877 : || rtx_equal_p (STRIP_UNARY (operands[1]),
30878 : STRIP_UNARY (operands[3]))
30879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
30880 : STRIP_UNARY (operands[3])))) &&
30881 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30882 : ( 1)))
30883 : return NULL;
30884 : return gen_split_2700 (insn, operands);
30885 :
30886 : default:
30887 : return NULL;
30888 : }
30889 :
30890 : default:
30891 : return NULL;
30892 : }
30893 :
30894 : case XOR:
30895 : return split_65 (x1, insn);
30896 :
30897 : case VEC_DUPLICATE:
30898 : switch (pattern607 (x2))
30899 : {
30900 : case 0:
30901 : if (!(
30902 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30903 : (64 == 64 || TARGET_AVX512VL
30904 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30905 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30906 : (TARGET_AVX512F)))
30907 : return NULL;
30908 : return gen_split_3472 (insn, operands);
30909 :
30910 : case 1:
30911 : if (!(
30912 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30913 : (64 == 64 || TARGET_AVX512VL
30914 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30915 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30916 : (TARGET_AVX512F)))
30917 : return NULL;
30918 : return gen_split_3473 (insn, operands);
30919 :
30920 : case 2:
30921 : if (!(
30922 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30923 : (64 == 64 || TARGET_AVX512VL
30924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30925 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30926 : (TARGET_AVX512BW)))
30927 : return NULL;
30928 : return gen_split_3474 (insn, operands);
30929 :
30930 : case 3:
30931 : if (!(
30932 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30933 : (32 == 64 || TARGET_AVX512VL
30934 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30935 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30936 : (TARGET_AVX)))
30937 : return NULL;
30938 : return gen_split_3475 (insn, operands);
30939 :
30940 : case 4:
30941 : if (!
30942 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30943 : (16 == 64 || TARGET_AVX512VL
30944 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30945 : return NULL;
30946 : return gen_split_3476 (insn, operands);
30947 :
30948 : case 5:
30949 : if (!(
30950 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30951 : (64 == 64 || TARGET_AVX512VL
30952 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30953 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30954 : (TARGET_AVX512BW)))
30955 : return NULL;
30956 : return gen_split_3477 (insn, operands);
30957 :
30958 : case 6:
30959 : if (!(
30960 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30961 : (32 == 64 || TARGET_AVX512VL
30962 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30963 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30964 : (TARGET_AVX)))
30965 : return NULL;
30966 : return gen_split_3478 (insn, operands);
30967 :
30968 : case 7:
30969 : if (!
30970 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30971 : (16 == 64 || TARGET_AVX512VL
30972 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30973 : return NULL;
30974 : return gen_split_3479 (insn, operands);
30975 :
30976 : case 8:
30977 : if (!(
30978 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30979 : (32 == 64 || TARGET_AVX512VL
30980 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30981 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30982 : (TARGET_AVX)))
30983 : return NULL;
30984 : return gen_split_3480 (insn, operands);
30985 :
30986 : case 9:
30987 : if (!
30988 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30989 : (16 == 64 || TARGET_AVX512VL
30990 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
30991 : return NULL;
30992 : return gen_split_3481 (insn, operands);
30993 :
30994 : case 10:
30995 : if (!(
30996 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30997 : (32 == 64 || TARGET_AVX512VL
30998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)) &&
30999 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31000 : (TARGET_AVX)))
31001 : return NULL;
31002 : return gen_split_3482 (insn, operands);
31003 :
31004 : case 11:
31005 : if (!
31006 : #line 19111 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
31007 : (16 == 64 || TARGET_AVX512VL
31008 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256)))
31009 : return NULL;
31010 : return gen_split_3483 (insn, operands);
31011 :
31012 : default:
31013 : return NULL;
31014 : }
31015 :
31016 : default:
31017 : return NULL;
31018 : }
31019 : }
31020 :
31021 : rtx_insn *
31022 : peephole2_17 (rtx x1 ATTRIBUTE_UNUSED,
31023 : rtx_insn *insn ATTRIBUTE_UNUSED,
31024 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31025 : {
31026 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31027 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31028 : rtx x10, x11, x12, x13;
31029 : rtx_insn *res ATTRIBUTE_UNUSED;
31030 : x2 = XEXP (x1, 1);
31031 : operands[1] = x2;
31032 : if (register_operand (operands[0], E_DImode))
31033 : {
31034 : res = peephole2_16 (x1, insn, pmatch_len_);
31035 : if (res != NULL_RTX)
31036 : return res;
31037 : }
31038 : if (peep2_current_count < 2
31039 : || peep2_current_count < 3
31040 : || !general_reg_operand (operands[0], E_DImode))
31041 : return NULL;
31042 : x3 = PATTERN (peep2_next_insn (1));
31043 : if (GET_CODE (x3) == PARALLEL
31044 : && XVECLEN (x3, 0) == 2)
31045 : {
31046 : x4 = XVECEXP (x3, 0, 0);
31047 : if (GET_CODE (x4) == SET)
31048 : {
31049 : if (memory_operand (operands[1], E_DImode))
31050 : {
31051 : switch (pattern1207 (x3,
31052 : E_DImode,
31053 : E_TImode))
31054 : {
31055 : case 0:
31056 : if ((
31057 : #line 8982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31058 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31059 : && peep2_reg_dead_p (3, operands[0])
31060 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31061 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31062 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31063 : (TARGET_64BIT)))
31064 : {
31065 : *pmatch_len_ = 2;
31066 : res = gen_peephole2_81 (insn, operands);
31067 : if (res != NULL_RTX)
31068 : return res;
31069 : }
31070 : break;
31071 :
31072 : case 1:
31073 : if ((
31074 : #line 9009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31075 : (TARGET_APX_NDD
31076 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31077 : && peep2_reg_dead_p (3, operands[0])
31078 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31079 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31080 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31081 : (TARGET_64BIT)))
31082 : {
31083 : *pmatch_len_ = 2;
31084 : res = gen_peephole2_85 (insn, operands);
31085 : if (res != NULL_RTX)
31086 : return res;
31087 : }
31088 : break;
31089 :
31090 : case 2:
31091 : if ((
31092 : #line 9568 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31093 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31094 : && peep2_reg_dead_p (3, operands[0])
31095 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31096 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31097 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31098 : (TARGET_64BIT)))
31099 : {
31100 : *pmatch_len_ = 2;
31101 : res = gen_peephole2_101 (insn, operands);
31102 : if (res != NULL_RTX)
31103 : return res;
31104 : }
31105 : break;
31106 :
31107 : case 3:
31108 : x5 = PATTERN (peep2_next_insn (2));
31109 : x6 = XEXP (x5, 0);
31110 : if (rtx_equal_p (x6, operands[1])
31111 : && (
31112 : #line 9624 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31113 : (TARGET_APX_NDD
31114 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31115 : && peep2_reg_dead_p (3, operands[0])
31116 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31117 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31118 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31119 : (TARGET_64BIT)))
31120 : {
31121 : *pmatch_len_ = 2;
31122 : res = gen_peephole2_103 (insn, operands);
31123 : if (res != NULL_RTX)
31124 : return res;
31125 : }
31126 : if (rtx_equal_p (x6, operands[2])
31127 : && (
31128 : #line 9679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31129 : (TARGET_APX_NDD
31130 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31131 : && peep2_reg_dead_p (3, operands[0])
31132 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31133 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31134 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31135 : (TARGET_64BIT)))
31136 : {
31137 : *pmatch_len_ = 2;
31138 : res = gen_peephole2_105 (insn, operands);
31139 : if (res != NULL_RTX)
31140 : return res;
31141 : }
31142 : break;
31143 :
31144 : case 4:
31145 : if ((
31146 : #line 10292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31147 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31148 : && peep2_reg_dead_p (3, operands[0])
31149 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31150 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31151 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31152 : (TARGET_64BIT)))
31153 : {
31154 : *pmatch_len_ = 2;
31155 : res = gen_peephole2_117 (insn, operands);
31156 : if (res != NULL_RTX)
31157 : return res;
31158 : }
31159 : break;
31160 :
31161 : case 5:
31162 : if ((
31163 : #line 10337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31164 : (TARGET_APX_NDD
31165 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31166 : && peep2_reg_dead_p (3, operands[0])
31167 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31168 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31169 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31170 : (TARGET_64BIT)))
31171 : {
31172 : *pmatch_len_ = 2;
31173 : res = gen_peephole2_119 (insn, operands);
31174 : if (res != NULL_RTX)
31175 : return res;
31176 : }
31177 : break;
31178 :
31179 : case 6:
31180 : if ((
31181 : #line 10717 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31182 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31183 : && peep2_reg_dead_p (3, operands[0])
31184 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31185 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31186 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31187 : (TARGET_64BIT)))
31188 : {
31189 : *pmatch_len_ = 2;
31190 : res = gen_peephole2_131 (insn, operands);
31191 : if (res != NULL_RTX)
31192 : return res;
31193 : }
31194 : break;
31195 :
31196 : case 7:
31197 : if ((
31198 : #line 9137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31199 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31200 : && peep2_reg_dead_p (3, operands[0])
31201 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31202 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31203 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31204 : (TARGET_64BIT)))
31205 : {
31206 : *pmatch_len_ = 2;
31207 : res = gen_peephole2_93 (insn, operands);
31208 : if (res != NULL_RTX)
31209 : return res;
31210 : }
31211 : break;
31212 :
31213 : case 8:
31214 : if ((
31215 : #line 9163 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31216 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31217 : && peep2_reg_dead_p (3, operands[0])
31218 : && peep2_reg_dead_p (4, operands[5])
31219 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31220 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31221 : && !reg_overlap_mentioned_p (operands[5], operands[1])) &&
31222 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31223 : (TARGET_64BIT)))
31224 : {
31225 : *pmatch_len_ = 3;
31226 : res = gen_peephole2_97 (insn, operands);
31227 : if (res != NULL_RTX)
31228 : return res;
31229 : }
31230 : break;
31231 :
31232 : case 9:
31233 : if ((
31234 : #line 9858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31235 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31236 : && peep2_reg_dead_p (3, operands[0])
31237 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31238 : && !reg_overlap_mentioned_p (operands[0], operands[2])) &&
31239 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31240 : (TARGET_64BIT)))
31241 : {
31242 : *pmatch_len_ = 2;
31243 : res = gen_peephole2_111 (insn, operands);
31244 : if (res != NULL_RTX)
31245 : return res;
31246 : }
31247 : break;
31248 :
31249 : case 10:
31250 : if ((
31251 : #line 9884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31252 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31253 : && peep2_reg_dead_p (3, operands[0])
31254 : && peep2_reg_dead_p (4, operands[5])
31255 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31256 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31257 : && !reg_overlap_mentioned_p (operands[5], operands[1])) &&
31258 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31259 : (TARGET_64BIT)))
31260 : {
31261 : *pmatch_len_ = 3;
31262 : res = gen_peephole2_115 (insn, operands);
31263 : if (res != NULL_RTX)
31264 : return res;
31265 : }
31266 : break;
31267 :
31268 : default:
31269 : break;
31270 : }
31271 : }
31272 : if (peep2_current_count >= 4
31273 : && pattern1209 (x3,
31274 : E_DImode) == 0
31275 : && (
31276 : #line 15174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31277 : (REGNO (operands[0]) != REGNO (operands[2])
31278 : && !reg_mentioned_p (operands[0], operands[1])
31279 : && !reg_mentioned_p (operands[2], operands[1])) &&
31280 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31281 : (TARGET_64BIT)))
31282 : {
31283 : *pmatch_len_ = 3;
31284 : res = gen_peephole2_172 (insn, operands);
31285 : if (res != NULL_RTX)
31286 : return res;
31287 : }
31288 : if (general_reg_operand (operands[1], E_DImode))
31289 : {
31290 : x5 = PATTERN (peep2_next_insn (2));
31291 : if (GET_CODE (x5) == SET)
31292 : {
31293 : x7 = XEXP (x4, 1);
31294 : if (GET_CODE (x7) == NEG
31295 : && pattern1355 (x3,
31296 : E_DImode) == 0
31297 : &&
31298 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31299 : (TARGET_64BIT))
31300 : {
31301 : *pmatch_len_ = 2;
31302 : res = gen_peephole2_178 (insn, operands);
31303 : if (res != NULL_RTX)
31304 : return res;
31305 : }
31306 : if (peep2_current_count >= 4
31307 : && pattern1357 (x3,
31308 : E_DImode) == 0
31309 : && (
31310 : #line 27645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31311 : (TARGET_CMOVE
31312 : && REGNO (operands[2]) != REGNO (operands[0])
31313 : && REGNO (operands[2]) != REGNO (operands[1])
31314 : && peep2_reg_dead_p (1, operands[1])
31315 : && peep2_reg_dead_p (4, operands[2])
31316 : && !reg_overlap_mentioned_p (operands[0], operands[3])) &&
31317 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31318 : (TARGET_64BIT)))
31319 : {
31320 : *pmatch_len_ = 3;
31321 : res = gen_peephole2_229 (insn, operands);
31322 : if (res != NULL_RTX)
31323 : return res;
31324 : }
31325 : }
31326 : }
31327 : }
31328 : }
31329 : if (!immediate_operand (operands[1], E_DImode)
31330 : || GET_CODE (x3) != SET)
31331 : return NULL;
31332 : switch (pattern964 (x3,
31333 : E_TImode,
31334 : E_DImode))
31335 : {
31336 : case 0:
31337 : if (!(
31338 : #line 11861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31339 : (REGNO (operands[3]) != AX_REG
31340 : && REGNO (operands[0]) != REGNO (operands[2])
31341 : && REGNO (operands[0]) != REGNO (operands[3])
31342 : && (REGNO (operands[0]) == REGNO (operands[4])
31343 : || REGNO (operands[0]) == DX_REG
31344 : || peep2_reg_dead_p (3, operands[0]))) &&
31345 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31346 : (TARGET_64BIT)))
31347 : return NULL;
31348 : *pmatch_len_ = 2;
31349 : return gen_peephole2_135 (insn, operands);
31350 :
31351 : case 1:
31352 : if (!(
31353 : #line 11883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31354 : (REGNO (operands[3]) != DX_REG
31355 : && REGNO (operands[0]) != REGNO (operands[2])
31356 : && REGNO (operands[0]) != REGNO (operands[3])
31357 : && (REGNO (operands[0]) == REGNO (operands[4])
31358 : || REGNO (operands[0]) == REGNO (operands[5])
31359 : || peep2_reg_dead_p (3, operands[0]))
31360 : && (REGNO (operands[2]) == REGNO (operands[4])
31361 : || REGNO (operands[2]) == REGNO (operands[5])
31362 : || peep2_reg_dead_p (3, operands[2]))) &&
31363 : #line 1267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31364 : (TARGET_64BIT)))
31365 : return NULL;
31366 : *pmatch_len_ = 2;
31367 : return gen_peephole2_137 (insn, operands);
31368 :
31369 : case 2:
31370 : if (!general_reg_operand (operands[4], E_DImode))
31371 : return NULL;
31372 : x5 = PATTERN (peep2_next_insn (2));
31373 : x8 = XVECEXP (x5, 0, 0);
31374 : x9 = XEXP (x8, 1);
31375 : if (GET_MODE (x9) != E_DImode)
31376 : return NULL;
31377 : x10 = XVECEXP (x5, 0, 1);
31378 : x11 = XEXP (x10, 0);
31379 : if (!rtx_equal_p (x11, operands[2]))
31380 : return NULL;
31381 : switch (GET_CODE (x9))
31382 : {
31383 : case SMUL_HIGHPART:
31384 : x12 = XEXP (x9, 0);
31385 : if (!rtx_equal_p (x12, operands[2]))
31386 : return NULL;
31387 : x13 = XEXP (x9, 1);
31388 : if (!rtx_equal_p (x13, operands[0])
31389 : || !(
31390 : #line 12022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31391 : (REGNO (operands[3]) != AX_REG
31392 : && REGNO (operands[0]) != REGNO (operands[2])
31393 : && REGNO (operands[0]) != REGNO (operands[3])
31394 : && (REGNO (operands[0]) == REGNO (operands[4])
31395 : || peep2_reg_dead_p (3, operands[0]))) &&
31396 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31397 : (TARGET_64BIT)))
31398 : return NULL;
31399 : *pmatch_len_ = 2;
31400 : return gen_peephole2_140 (insn, operands);
31401 :
31402 : case UMUL_HIGHPART:
31403 : x12 = XEXP (x9, 0);
31404 : if (!rtx_equal_p (x12, operands[2]))
31405 : return NULL;
31406 : x13 = XEXP (x9, 1);
31407 : if (!rtx_equal_p (x13, operands[0])
31408 : || !(
31409 : #line 12022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31410 : (REGNO (operands[3]) != AX_REG
31411 : && REGNO (operands[0]) != REGNO (operands[2])
31412 : && REGNO (operands[0]) != REGNO (operands[3])
31413 : && (REGNO (operands[0]) == REGNO (operands[4])
31414 : || peep2_reg_dead_p (3, operands[0]))) &&
31415 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31416 : (TARGET_64BIT)))
31417 : return NULL;
31418 : *pmatch_len_ = 2;
31419 : return gen_peephole2_141 (insn, operands);
31420 :
31421 : default:
31422 : return NULL;
31423 : }
31424 :
31425 : default:
31426 : return NULL;
31427 : }
31428 : }
31429 :
31430 : rtx_insn *
31431 : peephole2_34 (rtx x1 ATTRIBUTE_UNUSED,
31432 : rtx_insn *insn ATTRIBUTE_UNUSED,
31433 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31434 : {
31435 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31436 : rtx x2, x3, x4, x5, x6;
31437 : rtx_insn *res ATTRIBUTE_UNUSED;
31438 : x2 = XEXP (x1, 0);
31439 : if (REGNO (x2) != 17)
31440 : return NULL;
31441 : x3 = XEXP (x1, 1);
31442 : operands[0] = x3;
31443 : x4 = PATTERN (peep2_next_insn (1));
31444 : if (GET_CODE (x4) != SET)
31445 : return NULL;
31446 : x5 = XEXP (x4, 1);
31447 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31448 : return NULL;
31449 : x6 = XEXP (x4, 0);
31450 : operands[1] = x6;
31451 : switch (GET_MODE (operands[1]))
31452 : {
31453 : case E_QImode:
31454 : if (!general_reg_operand (operands[1], E_QImode)
31455 : || !
31456 : #line 28168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31457 : (peep2_regno_dead_p (0, FLAGS_REG)
31458 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31459 : return NULL;
31460 : *pmatch_len_ = 1;
31461 : return gen_peephole2_237 (insn, operands);
31462 :
31463 : case E_HImode:
31464 : if (!general_reg_operand (operands[1], E_HImode)
31465 : || !
31466 : #line 28168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31467 : (peep2_regno_dead_p (0, FLAGS_REG)
31468 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31469 : return NULL;
31470 : *pmatch_len_ = 1;
31471 : return gen_peephole2_238 (insn, operands);
31472 :
31473 : case E_SImode:
31474 : if (!general_reg_operand (operands[1], E_SImode)
31475 : || !
31476 : #line 28168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31477 : (peep2_regno_dead_p (0, FLAGS_REG)
31478 : && !reg_overlap_mentioned_p (operands[1], operands[0])))
31479 : return NULL;
31480 : *pmatch_len_ = 1;
31481 : return gen_peephole2_239 (insn, operands);
31482 :
31483 : case E_DImode:
31484 : if (!general_reg_operand (operands[1], E_DImode)
31485 : || !(
31486 : #line 28168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31487 : (peep2_regno_dead_p (0, FLAGS_REG)
31488 : && !reg_overlap_mentioned_p (operands[1], operands[0])) &&
31489 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31490 : (TARGET_64BIT)))
31491 : return NULL;
31492 : *pmatch_len_ = 1;
31493 : return gen_peephole2_240 (insn, operands);
31494 :
31495 : default:
31496 : return NULL;
31497 : }
31498 : }
31499 :
31500 : rtx_insn *
31501 : peephole2_38 (rtx x1 ATTRIBUTE_UNUSED,
31502 : rtx_insn *insn ATTRIBUTE_UNUSED,
31503 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31504 : {
31505 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31506 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31507 : rtx x10, x11;
31508 : rtx_insn *res ATTRIBUTE_UNUSED;
31509 : x2 = XEXP (x1, 1);
31510 : if (XWINT (x2, 0) == -1L)
31511 : {
31512 : switch (GET_MODE (operands[0]))
31513 : {
31514 : case E_HImode:
31515 : if (general_reg_operand (operands[0], E_HImode)
31516 : &&
31517 : #line 29897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31518 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31519 : && peep2_regno_dead_p (0, FLAGS_REG)))
31520 : {
31521 : *pmatch_len_ = 0;
31522 : res = gen_peephole2_371 (insn, operands);
31523 : if (res != NULL_RTX)
31524 : return res;
31525 : }
31526 : break;
31527 :
31528 : case E_SImode:
31529 : if (general_reg_operand (operands[0], E_SImode)
31530 : &&
31531 : #line 29897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31532 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31533 : && peep2_regno_dead_p (0, FLAGS_REG)))
31534 : {
31535 : *pmatch_len_ = 0;
31536 : res = gen_peephole2_372 (insn, operands);
31537 : if (res != NULL_RTX)
31538 : return res;
31539 : }
31540 : break;
31541 :
31542 : case E_DImode:
31543 : if (general_reg_operand (operands[0], E_DImode)
31544 : && (
31545 : #line 29897 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31546 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31547 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
31548 : #line 1195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31549 : (TARGET_64BIT)))
31550 : {
31551 : *pmatch_len_ = 0;
31552 : res = gen_peephole2_373 (insn, operands);
31553 : if (res != NULL_RTX)
31554 : return res;
31555 : }
31556 : break;
31557 :
31558 : default:
31559 : break;
31560 : }
31561 : }
31562 : if (peep2_current_count < 2
31563 : || peep2_current_count < 3)
31564 : return NULL;
31565 : operands[2] = x2;
31566 : x3 = PATTERN (peep2_next_insn (1));
31567 : if (pattern610 (x3,
31568 : 2) != 0)
31569 : return NULL;
31570 : x4 = XVECEXP (x3, 0, 0);
31571 : x5 = XEXP (x4, 1);
31572 : if (XINT (x5, 1) != 110)
31573 : return NULL;
31574 : x6 = XVECEXP (x3, 0, 1);
31575 : if (GET_CODE (x6) != SET)
31576 : return NULL;
31577 : x7 = XEXP (x6, 1);
31578 : if (GET_CODE (x7) != PLUS
31579 : || pattern1518 (x3) != 0
31580 : || pattern1714 (x3) != 0)
31581 : return NULL;
31582 : x8 = PATTERN (peep2_next_insn (2));
31583 : x9 = XEXP (x8, 1);
31584 : x10 = XEXP (x9, 1);
31585 : operands[3] = x10;
31586 : x11 = XEXP (x9, 0);
31587 : if (!rtx_equal_p (x11, operands[0]))
31588 : return NULL;
31589 : switch (GET_MODE (operands[0]))
31590 : {
31591 : case E_HImode:
31592 : if (pattern1890 (x3,
31593 : E_HImode) != 0
31594 : || !
31595 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31596 : (peep2_reg_dead_p (3, operands[0])
31597 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31598 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31599 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31600 : return NULL;
31601 : *pmatch_len_ = 2;
31602 : return gen_peephole2_452 (insn, operands);
31603 :
31604 : case E_SImode:
31605 : if (pattern1890 (x3,
31606 : E_SImode) != 0
31607 : || !
31608 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31609 : (peep2_reg_dead_p (3, operands[0])
31610 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31611 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31612 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31613 : return NULL;
31614 : *pmatch_len_ = 2;
31615 : return gen_peephole2_453 (insn, operands);
31616 :
31617 : case E_DImode:
31618 : if (pattern1890 (x3,
31619 : E_DImode) != 0
31620 : || !(
31621 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
31622 : (peep2_reg_dead_p (3, operands[0])
31623 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
31624 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
31625 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
31626 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31627 : (TARGET_64BIT)))
31628 : return NULL;
31629 : *pmatch_len_ = 2;
31630 : return gen_peephole2_454 (insn, operands);
31631 :
31632 : default:
31633 : return NULL;
31634 : }
31635 : }
31636 :
31637 : rtx_insn *
31638 : peephole2_45 (rtx x1 ATTRIBUTE_UNUSED,
31639 : rtx_insn *insn ATTRIBUTE_UNUSED,
31640 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31641 : {
31642 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31643 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31644 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
31645 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
31646 : rtx x26;
31647 : rtx_insn *res ATTRIBUTE_UNUSED;
31648 : x2 = XVECEXP (x1, 0, 0);
31649 : x3 = XEXP (x2, 0);
31650 : if (GET_CODE (x3) != REG
31651 : || REGNO (x3) != 17)
31652 : return NULL;
31653 : x4 = XVECEXP (x1, 0, 1);
31654 : if (GET_CODE (x4) != SET)
31655 : return NULL;
31656 : x5 = XEXP (x2, 1);
31657 : x6 = XEXP (x5, 0);
31658 : switch (GET_CODE (x6))
31659 : {
31660 : case REG:
31661 : operands[0] = x6;
31662 : x7 = XEXP (x4, 1);
31663 : if (GET_CODE (x7) != MINUS
31664 : || GET_MODE (x3) != E_CCmode
31665 : || GET_MODE (x5) != E_CCmode)
31666 : return NULL;
31667 : x8 = XEXP (x5, 1);
31668 : operands[1] = x8;
31669 : x9 = XEXP (x7, 0);
31670 : if (!rtx_equal_p (x9, operands[0]))
31671 : return NULL;
31672 : x10 = XEXP (x7, 1);
31673 : if (!rtx_equal_p (x10, operands[1]))
31674 : return NULL;
31675 : x11 = XEXP (x4, 0);
31676 : if (!rtx_equal_p (x11, operands[0]))
31677 : return NULL;
31678 : switch (GET_MODE (operands[0]))
31679 : {
31680 : case E_QImode:
31681 : if (!general_reg_operand (operands[0], E_QImode)
31682 : || !general_gr_operand (operands[1], E_QImode)
31683 : || GET_MODE (x7) != E_QImode
31684 : || !
31685 : #line 8969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31686 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31687 : return NULL;
31688 : *pmatch_len_ = 0;
31689 : return gen_peephole2_74 (insn, operands);
31690 :
31691 : case E_HImode:
31692 : if (!general_reg_operand (operands[0], E_HImode)
31693 : || !general_gr_operand (operands[1], E_HImode)
31694 : || GET_MODE (x7) != E_HImode
31695 : || !
31696 : #line 8969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31697 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31698 : return NULL;
31699 : *pmatch_len_ = 0;
31700 : return gen_peephole2_75 (insn, operands);
31701 :
31702 : case E_SImode:
31703 : if (!general_reg_operand (operands[0], E_SImode)
31704 : || !general_gr_operand (operands[1], E_SImode)
31705 : || GET_MODE (x7) != E_SImode
31706 : || !
31707 : #line 8969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31708 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
31709 : return NULL;
31710 : *pmatch_len_ = 0;
31711 : return gen_peephole2_76 (insn, operands);
31712 :
31713 : case E_DImode:
31714 : if (!general_reg_operand (operands[0], E_DImode)
31715 : || !general_gr_operand (operands[1], E_DImode)
31716 : || GET_MODE (x7) != E_DImode
31717 : || !(
31718 : #line 8969 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31719 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0) &&
31720 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31721 : (TARGET_64BIT)))
31722 : return NULL;
31723 : *pmatch_len_ = 0;
31724 : return gen_peephole2_77 (insn, operands);
31725 :
31726 : default:
31727 : return NULL;
31728 : }
31729 :
31730 : case ZERO_EXTEND:
31731 : if (peep2_current_count < 2)
31732 : return NULL;
31733 : x12 = XEXP (x6, 0);
31734 : if (GET_CODE (x12) != PLUS)
31735 : return NULL;
31736 : x13 = XEXP (x12, 0);
31737 : if (GET_CODE (x13) != PLUS)
31738 : return NULL;
31739 : x14 = XEXP (x13, 0);
31740 : switch (GET_CODE (x14))
31741 : {
31742 : case LTU:
31743 : case UNLT:
31744 : operands[4] = x14;
31745 : x15 = XEXP (x14, 1);
31746 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31747 : return NULL;
31748 : x8 = XEXP (x5, 1);
31749 : if (GET_CODE (x8) != PLUS)
31750 : return NULL;
31751 : x16 = XEXP (x8, 0);
31752 : switch (GET_CODE (x16))
31753 : {
31754 : case LTU:
31755 : case UNLT:
31756 : operands[3] = x16;
31757 : x17 = XEXP (x16, 1);
31758 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31759 : return NULL;
31760 : x18 = XEXP (x8, 1);
31761 : if (GET_CODE (x18) != ZERO_EXTEND)
31762 : return NULL;
31763 : x7 = XEXP (x4, 1);
31764 : if (pattern1329 (x7) != 0
31765 : || GET_MODE (x3) != E_CCCmode
31766 : || GET_MODE (x5) != E_CCCmode)
31767 : return NULL;
31768 : x19 = XEXP (x14, 0);
31769 : operands[2] = x19;
31770 : if (!flags_reg_operand (operands[2], E_VOIDmode))
31771 : return NULL;
31772 : x20 = XEXP (x13, 1);
31773 : operands[0] = x20;
31774 : x21 = XEXP (x12, 1);
31775 : operands[1] = x21;
31776 : x22 = XEXP (x16, 0);
31777 : if (!rtx_equal_p (x22, operands[2]))
31778 : return NULL;
31779 : x23 = XEXP (x18, 0);
31780 : if (!rtx_equal_p (x23, operands[1]))
31781 : return NULL;
31782 : x9 = XEXP (x7, 0);
31783 : x24 = XEXP (x9, 1);
31784 : if (!rtx_equal_p (x24, operands[0]))
31785 : return NULL;
31786 : x10 = XEXP (x7, 1);
31787 : if (!rtx_equal_p (x10, operands[1]))
31788 : return NULL;
31789 : x11 = XEXP (x4, 0);
31790 : if (!rtx_equal_p (x11, operands[0]))
31791 : return NULL;
31792 : x25 = PATTERN (peep2_next_insn (1));
31793 : if (GET_CODE (x25) != SET)
31794 : return NULL;
31795 : switch (GET_MODE (x6))
31796 : {
31797 : case E_DImode:
31798 : switch (pattern1894 (x1,
31799 : E_SImode,
31800 : E_DImode))
31801 : {
31802 : case 0:
31803 : if (!
31804 : #line 9523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31805 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31806 : && peep2_reg_dead_p (2, operands[0])
31807 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
31808 : return NULL;
31809 : *pmatch_len_ = 1;
31810 : return gen_peephole2_98 (insn, operands);
31811 :
31812 : case 1:
31813 : if (!
31814 : #line 9729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31815 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31816 : && peep2_reg_dead_p (4, operands[0])
31817 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31818 : && !reg_overlap_mentioned_p (operands[0], operands[5])
31819 : && !reg_overlap_mentioned_p (operands[5], operands[1])
31820 : && !reg_overlap_mentioned_p (operands[0], operands[6])
31821 : && !reg_overlap_mentioned_p (operands[6], operands[1])))
31822 : return NULL;
31823 : *pmatch_len_ = 3;
31824 : return gen_peephole2_106 (insn, operands);
31825 :
31826 : default:
31827 : return NULL;
31828 : }
31829 :
31830 : case E_TImode:
31831 : switch (pattern1894 (x1,
31832 : E_DImode,
31833 : E_TImode))
31834 : {
31835 : case 0:
31836 : if (!(
31837 : #line 9523 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31838 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31839 : && peep2_reg_dead_p (2, operands[0])
31840 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
31841 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31842 : (TARGET_64BIT)))
31843 : return NULL;
31844 : *pmatch_len_ = 1;
31845 : return gen_peephole2_99 (insn, operands);
31846 :
31847 : case 1:
31848 : if (!(
31849 : #line 9729 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31850 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31851 : && peep2_reg_dead_p (4, operands[0])
31852 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31853 : && !reg_overlap_mentioned_p (operands[0], operands[5])
31854 : && !reg_overlap_mentioned_p (operands[5], operands[1])
31855 : && !reg_overlap_mentioned_p (operands[0], operands[6])
31856 : && !reg_overlap_mentioned_p (operands[6], operands[1])) &&
31857 : #line 1198 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31858 : (TARGET_64BIT)))
31859 : return NULL;
31860 : *pmatch_len_ = 3;
31861 : return gen_peephole2_107 (insn, operands);
31862 :
31863 : default:
31864 : return NULL;
31865 : }
31866 :
31867 : default:
31868 : return NULL;
31869 : }
31870 :
31871 : default:
31872 : return NULL;
31873 : }
31874 :
31875 : default:
31876 : return NULL;
31877 : }
31878 :
31879 : case PLUS:
31880 : case MINUS:
31881 : case AND:
31882 : case IOR:
31883 : case XOR:
31884 : if (peep2_current_count < 2)
31885 : return NULL;
31886 : x12 = XEXP (x6, 0);
31887 : operands[0] = x12;
31888 : x26 = XEXP (x6, 1);
31889 : operands[1] = x26;
31890 : x25 = PATTERN (peep2_next_insn (1));
31891 : if (GET_CODE (x25) != SET)
31892 : return NULL;
31893 : if (GET_CODE (x6) == PLUS)
31894 : {
31895 : res = peephole2_44 (x1, insn, pmatch_len_);
31896 : if (res != NULL_RTX)
31897 : return res;
31898 : }
31899 : x8 = XEXP (x5, 1);
31900 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
31901 : return NULL;
31902 : operands[2] = x6;
31903 : x7 = XEXP (x4, 1);
31904 : if (!rtx_equal_p (x7, operands[2]))
31905 : return NULL;
31906 : switch (GET_MODE (operands[2]))
31907 : {
31908 : case E_QImode:
31909 : if (!plusminuslogic_operator (operands[2], E_QImode))
31910 : return NULL;
31911 : if (memory_operand (operands[0], E_QImode))
31912 : {
31913 : x11 = XEXP (x4, 0);
31914 : if (pattern1653 (x11,
31915 : E_QImode) == 0
31916 : &&
31917 : #line 29406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31918 : (TARGET_APX_NDD
31919 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31920 : && peep2_reg_dead_p (2, operands[3])
31921 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31922 : && ix86_match_ccmode (peep2_next_insn (0),
31923 : (GET_CODE (operands[2]) == PLUS
31924 : || GET_CODE (operands[2]) == MINUS)
31925 : ? CCGOCmode : CCNOmode)))
31926 : {
31927 : *pmatch_len_ = 1;
31928 : res = gen_peephole2_327 (insn, operands);
31929 : if (res != NULL_RTX)
31930 : return res;
31931 : }
31932 : }
31933 : if (!register_operand (operands[0], E_QImode))
31934 : return NULL;
31935 : x11 = XEXP (x4, 0);
31936 : if (pattern1654 (x11,
31937 : E_QImode) != 0
31938 : || !
31939 : #line 29500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31940 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31941 : && COMMUTATIVE_ARITH_P (operands[2])
31942 : && peep2_reg_dead_p (2, operands[0])
31943 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31944 : && ix86_match_ccmode (peep2_next_insn (0),
31945 : GET_CODE (operands[2]) == PLUS
31946 : ? CCGOCmode : CCNOmode)))
31947 : return NULL;
31948 : *pmatch_len_ = 1;
31949 : return gen_peephole2_339 (insn, operands);
31950 :
31951 : case E_HImode:
31952 : if (!plusminuslogic_operator (operands[2], E_HImode))
31953 : return NULL;
31954 : if (memory_operand (operands[0], E_HImode))
31955 : {
31956 : x11 = XEXP (x4, 0);
31957 : if (pattern1653 (x11,
31958 : E_HImode) == 0
31959 : &&
31960 : #line 29406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31961 : (TARGET_APX_NDD
31962 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31963 : && peep2_reg_dead_p (2, operands[3])
31964 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31965 : && ix86_match_ccmode (peep2_next_insn (0),
31966 : (GET_CODE (operands[2]) == PLUS
31967 : || GET_CODE (operands[2]) == MINUS)
31968 : ? CCGOCmode : CCNOmode)))
31969 : {
31970 : *pmatch_len_ = 1;
31971 : res = gen_peephole2_328 (insn, operands);
31972 : if (res != NULL_RTX)
31973 : return res;
31974 : }
31975 : }
31976 : if (!register_operand (operands[0], E_HImode))
31977 : return NULL;
31978 : x11 = XEXP (x4, 0);
31979 : if (pattern1654 (x11,
31980 : E_HImode) != 0
31981 : || !
31982 : #line 29500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31983 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31984 : && COMMUTATIVE_ARITH_P (operands[2])
31985 : && peep2_reg_dead_p (2, operands[0])
31986 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31987 : && ix86_match_ccmode (peep2_next_insn (0),
31988 : GET_CODE (operands[2]) == PLUS
31989 : ? CCGOCmode : CCNOmode)))
31990 : return NULL;
31991 : *pmatch_len_ = 1;
31992 : return gen_peephole2_340 (insn, operands);
31993 :
31994 : case E_SImode:
31995 : if (!plusminuslogic_operator (operands[2], E_SImode))
31996 : return NULL;
31997 : if (memory_operand (operands[0], E_SImode))
31998 : {
31999 : x11 = XEXP (x4, 0);
32000 : if (pattern1655 (x11,
32001 : E_SImode) == 0
32002 : &&
32003 : #line 29406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32004 : (TARGET_APX_NDD
32005 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32006 : && peep2_reg_dead_p (2, operands[3])
32007 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32008 : && ix86_match_ccmode (peep2_next_insn (0),
32009 : (GET_CODE (operands[2]) == PLUS
32010 : || GET_CODE (operands[2]) == MINUS)
32011 : ? CCGOCmode : CCNOmode)))
32012 : {
32013 : *pmatch_len_ = 1;
32014 : res = gen_peephole2_329 (insn, operands);
32015 : if (res != NULL_RTX)
32016 : return res;
32017 : }
32018 : }
32019 : if (!register_operand (operands[0], E_SImode))
32020 : return NULL;
32021 : x11 = XEXP (x4, 0);
32022 : if (pattern1654 (x11,
32023 : E_SImode) != 0
32024 : || !
32025 : #line 29500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32026 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32027 : && COMMUTATIVE_ARITH_P (operands[2])
32028 : && peep2_reg_dead_p (2, operands[0])
32029 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32030 : && ix86_match_ccmode (peep2_next_insn (0),
32031 : GET_CODE (operands[2]) == PLUS
32032 : ? CCGOCmode : CCNOmode)))
32033 : return NULL;
32034 : *pmatch_len_ = 1;
32035 : return gen_peephole2_341 (insn, operands);
32036 :
32037 : case E_DImode:
32038 : if (!plusminuslogic_operator (operands[2], E_DImode))
32039 : return NULL;
32040 : if (memory_operand (operands[0], E_DImode))
32041 : {
32042 : x11 = XEXP (x4, 0);
32043 : if (pattern1655 (x11,
32044 : E_DImode) == 0
32045 : && (
32046 : #line 29406 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32047 : (TARGET_APX_NDD
32048 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32049 : && peep2_reg_dead_p (2, operands[3])
32050 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32051 : && ix86_match_ccmode (peep2_next_insn (0),
32052 : (GET_CODE (operands[2]) == PLUS
32053 : || GET_CODE (operands[2]) == MINUS)
32054 : ? CCGOCmode : CCNOmode)) &&
32055 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32056 : (TARGET_64BIT)))
32057 : {
32058 : *pmatch_len_ = 1;
32059 : res = gen_peephole2_330 (insn, operands);
32060 : if (res != NULL_RTX)
32061 : return res;
32062 : }
32063 : }
32064 : if (!register_operand (operands[0], E_DImode))
32065 : return NULL;
32066 : x11 = XEXP (x4, 0);
32067 : if (pattern1654 (x11,
32068 : E_DImode) != 0
32069 : || !(
32070 : #line 29500 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32071 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32072 : && COMMUTATIVE_ARITH_P (operands[2])
32073 : && peep2_reg_dead_p (2, operands[0])
32074 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32075 : && ix86_match_ccmode (peep2_next_insn (0),
32076 : GET_CODE (operands[2]) == PLUS
32077 : ? CCGOCmode : CCNOmode)) &&
32078 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32079 : (TARGET_64BIT)))
32080 : return NULL;
32081 : *pmatch_len_ = 1;
32082 : return gen_peephole2_342 (insn, operands);
32083 :
32084 : default:
32085 : return NULL;
32086 : }
32087 :
32088 : default:
32089 : return NULL;
32090 : }
32091 : }
|