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 78400 : pattern5 (rtx x1, machine_mode i1)
57 : {
58 78400 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
59 78400 : int res ATTRIBUTE_UNUSED;
60 78400 : if (!register_operand (operands[0], i1)
61 76501 : || GET_MODE (x1) != i1
62 76501 : || !register_operand (operands[1], i1)
63 149194 : || !register_operand (operands[2], i1))
64 14883 : return -1;
65 : return 0;
66 : }
67 :
68 : int
69 231679 : pattern12 (rtx x1, machine_mode i1)
70 : {
71 231679 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
72 231679 : int res ATTRIBUTE_UNUSED;
73 231679 : if (!register_operand (operands[0], i1)
74 231510 : || GET_MODE (x1) != i1
75 231510 : || !register_operand (operands[1], i1)
76 411103 : || !nonimmediate_operand (operands[2], i1))
77 180816 : return -1;
78 : return 0;
79 : }
80 :
81 : int
82 16580 : pattern17 (rtx x1, int *pnum_clobbers)
83 : {
84 16580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
85 16580 : rtx x2;
86 16580 : int res ATTRIBUTE_UNUSED;
87 16580 : if (pnum_clobbers == NULL)
88 : return -1;
89 16580 : x2 = XEXP (x1, 1);
90 16580 : if (GET_MODE (x2) != E_QImode)
91 : return -1;
92 16556 : return pattern16 (x1); /* [-1, 1] */
93 : }
94 :
95 : int
96 105 : pattern23 (rtx x1, machine_mode i1)
97 : {
98 105 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
99 105 : rtx x2;
100 105 : int res ATTRIBUTE_UNUSED;
101 105 : if (!register_operand (operands[0], i1)
102 105 : || GET_MODE (x1) != i1)
103 : return -1;
104 105 : x2 = XEXP (x1, 0);
105 105 : switch (GET_MODE (x2))
106 : {
107 0 : case E_HFmode:
108 0 : if (!register_operand (operands[1], E_V8HFmode))
109 : return -1;
110 : return 0;
111 :
112 74 : case E_SFmode:
113 74 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
114 : return -1;
115 : return 1;
116 :
117 31 : case E_DFmode:
118 31 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
119 : return -1;
120 : return 2;
121 :
122 : default:
123 : return -1;
124 : }
125 : }
126 :
127 : int
128 210387 : pattern27 (rtx x1)
129 : {
130 210387 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
131 210387 : rtx x2, x3, x4, x5;
132 210387 : int res ATTRIBUTE_UNUSED;
133 210387 : x2 = XEXP (x1, 0);
134 210387 : operands[0] = x2;
135 210387 : x3 = XEXP (x1, 1);
136 210387 : x4 = XEXP (x3, 0);
137 210387 : operands[1] = x4;
138 210387 : x5 = XEXP (x3, 1);
139 210387 : operands[2] = x5;
140 210387 : switch (GET_MODE (operands[0]))
141 : {
142 74 : case E_V32HFmode:
143 74 : return pattern26 (x3,
144 74 : E_V32HFmode); /* [-1, 0] */
145 :
146 132 : case E_V16HFmode:
147 132 : if (pattern26 (x3,
148 : E_V16HFmode) != 0)
149 : return -1;
150 : return 1;
151 :
152 914 : case E_V8HFmode:
153 914 : if (pattern26 (x3,
154 : E_V8HFmode) != 0)
155 : return -1;
156 : return 2;
157 :
158 0 : case E_V16SFmode:
159 0 : if (pattern26 (x3,
160 : E_V16SFmode) != 0)
161 : return -1;
162 : return 3;
163 :
164 1497 : case E_V8SFmode:
165 1497 : if (pattern26 (x3,
166 : E_V8SFmode) != 0)
167 : return -1;
168 : return 4;
169 :
170 719 : case E_V4SFmode:
171 719 : if (pattern26 (x3,
172 : E_V4SFmode) != 0)
173 : return -1;
174 : return 5;
175 :
176 22 : case E_V8DFmode:
177 22 : if (pattern26 (x3,
178 : E_V8DFmode) != 0)
179 : return -1;
180 : return 6;
181 :
182 38 : case E_V4DFmode:
183 38 : if (pattern26 (x3,
184 : E_V4DFmode) != 0)
185 : return -1;
186 : return 7;
187 :
188 720 : case E_V2DFmode:
189 720 : if (pattern26 (x3,
190 : E_V2DFmode) != 0)
191 : return -1;
192 : return 8;
193 :
194 403 : case E_V32QImode:
195 403 : if (pattern3 (x3,
196 : E_V32QImode) != 0)
197 : return -1;
198 : return 9;
199 :
200 754 : case E_V16HImode:
201 754 : if (pattern3 (x3,
202 : E_V16HImode) != 0)
203 : return -1;
204 : return 10;
205 :
206 924 : case E_V8SImode:
207 924 : if (pattern3 (x3,
208 : E_V8SImode) != 0)
209 : return -1;
210 : return 11;
211 :
212 202 : case E_V16SImode:
213 202 : if (pattern3 (x3,
214 : E_V16SImode) != 0)
215 : return -1;
216 : return 12;
217 :
218 3208 : case E_V4SImode:
219 3208 : if (!register_operand (operands[0], E_V4SImode)
220 3208 : || GET_MODE (x3) != E_V4SImode)
221 : return -1;
222 : return 13;
223 :
224 1442 : case E_V8DImode:
225 1442 : if (pattern3 (x3,
226 : E_V8DImode) != 0)
227 : return -1;
228 : return 14;
229 :
230 585 : case E_V4DImode:
231 585 : if (pattern3 (x3,
232 : E_V4DImode) != 0)
233 : return -1;
234 : return 15;
235 :
236 180 : case E_V2DImode:
237 180 : if (pattern3 (x3,
238 : E_V2DImode) != 0)
239 : return -1;
240 : return 16;
241 :
242 207 : case E_V64QImode:
243 207 : if (pattern3 (x3,
244 : E_V64QImode) != 0)
245 : return -1;
246 : return 17;
247 :
248 6126 : case E_V16QImode:
249 6126 : if (!register_operand (operands[0], E_V16QImode)
250 6126 : || GET_MODE (x3) != E_V16QImode)
251 : return -1;
252 : return 18;
253 :
254 142 : case E_V32HImode:
255 142 : if (pattern3 (x3,
256 : E_V32HImode) != 0)
257 : return -1;
258 : return 19;
259 :
260 7968 : case E_V8HImode:
261 7968 : if (!register_operand (operands[0], E_V8HImode)
262 7968 : || GET_MODE (x3) != E_V8HImode)
263 : return -1;
264 : return 20;
265 :
266 222 : case E_V32BFmode:
267 222 : if (pattern12 (x3,
268 : E_V32BFmode) != 0)
269 : return -1;
270 : return 21;
271 :
272 258 : case E_V16BFmode:
273 258 : if (pattern12 (x3,
274 : E_V16BFmode) != 0)
275 : return -1;
276 : return 22;
277 :
278 218 : case E_V8BFmode:
279 218 : if (pattern12 (x3,
280 : E_V8BFmode) != 0)
281 : return -1;
282 : return 23;
283 :
284 : default:
285 : return -1;
286 : }
287 : }
288 :
289 : int
290 134204 : pattern51 (rtx x1, int *pnum_clobbers)
291 : {
292 134204 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
293 134204 : rtx x2, x3, x4, x5;
294 134204 : int res ATTRIBUTE_UNUSED;
295 134204 : if (pnum_clobbers == NULL)
296 : return -1;
297 134198 : x2 = XEXP (x1, 1);
298 134198 : x3 = XEXP (x2, 1);
299 134198 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
300 : return -1;
301 116116 : x4 = XEXP (x1, 0);
302 116116 : if (GET_CODE (x4) != REG
303 116116 : || REGNO (x4) != 17)
304 : return -1;
305 116116 : x5 = XEXP (x2, 0);
306 116116 : return pattern50 (x5); /* [-1, 3] */
307 : }
308 :
309 : int
310 298 : pattern56 (rtx x1)
311 : {
312 298 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
313 298 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
314 298 : int res ATTRIBUTE_UNUSED;
315 298 : x2 = XEXP (x1, 0);
316 298 : x3 = XEXP (x2, 0);
317 298 : x4 = XEXP (x3, 0);
318 298 : operands[1] = x4;
319 298 : if (!register_operand (operands[1], E_V4HImode))
320 : return -1;
321 298 : x5 = XEXP (x3, 1);
322 298 : operands[2] = x5;
323 298 : if (!register_mmxmem_operand (operands[2], E_V4HImode))
324 : return -1;
325 290 : x6 = XEXP (x1, 1);
326 290 : x7 = XEXP (x6, 0);
327 290 : x8 = XEXP (x7, 0);
328 290 : if (!rtx_equal_p (x8, operands[1]))
329 : return -1;
330 290 : x9 = XEXP (x7, 1);
331 290 : if (!rtx_equal_p (x9, operands[2]))
332 : return -1;
333 : return 0;
334 : }
335 :
336 : int
337 3256 : pattern61 (rtx x1)
338 : {
339 3256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
340 3256 : rtx x2, x3, x4;
341 3256 : int res ATTRIBUTE_UNUSED;
342 3256 : x2 = XEXP (x1, 0);
343 3256 : operands[0] = x2;
344 3256 : x3 = XEXP (x1, 1);
345 3256 : x4 = XVECEXP (x3, 0, 0);
346 3256 : operands[1] = x4;
347 3256 : switch (GET_MODE (operands[0]))
348 : {
349 221 : case E_SFmode:
350 221 : if (!register_operand (operands[0], E_SFmode)
351 221 : || GET_MODE (x3) != E_SFmode
352 442 : || !nonimmediate_operand (operands[1], E_SFmode))
353 31 : return -1;
354 : return 0;
355 :
356 620 : case E_HFmode:
357 620 : if (!register_operand (operands[0], E_HFmode)
358 620 : || GET_MODE (x3) != E_HFmode
359 1240 : || !nonimmediate_operand (operands[1], E_HFmode))
360 0 : return -1;
361 : return 1;
362 :
363 : default:
364 : return -1;
365 : }
366 : }
367 :
368 : int
369 14002 : pattern70 (rtx x1)
370 : {
371 14002 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
372 14002 : int res ATTRIBUTE_UNUSED;
373 14002 : switch (GET_MODE (operands[0]))
374 : {
375 3501 : case E_HImode:
376 3501 : if (!register_operand (operands[0], E_HImode)
377 3501 : || GET_MODE (x1) != E_HImode)
378 : return -1;
379 3447 : switch (GET_MODE (operands[1]))
380 : {
381 856 : case E_V16QImode:
382 856 : if (!register_operand (operands[1], E_V16QImode)
383 856 : || !nonimmediate_operand (operands[2], E_V16QImode))
384 87 : return -1;
385 : return 0;
386 :
387 1398 : case E_V16HImode:
388 1398 : if (!register_operand (operands[1], E_V16HImode)
389 1398 : || !nonimmediate_operand (operands[2], E_V16HImode))
390 151 : return -1;
391 : return 1;
392 :
393 1193 : case E_V16SImode:
394 1193 : if (!register_operand (operands[1], E_V16SImode)
395 1193 : || !nonimmediate_operand (operands[2], E_V16SImode))
396 165 : return -1;
397 : return 2;
398 :
399 : default:
400 : return -1;
401 : }
402 :
403 6909 : case E_QImode:
404 6909 : if (!register_operand (operands[0], E_QImode)
405 6909 : || GET_MODE (x1) != E_QImode)
406 : return -1;
407 6712 : switch (GET_MODE (operands[1]))
408 : {
409 1559 : case E_V8HImode:
410 1559 : if (!register_operand (operands[1], E_V8HImode)
411 1559 : || !nonimmediate_operand (operands[2], E_V8HImode))
412 83 : return -1;
413 : return 3;
414 :
415 1303 : case E_V8SImode:
416 1303 : if (!register_operand (operands[1], E_V8SImode)
417 1303 : || !nonimmediate_operand (operands[2], E_V8SImode))
418 112 : return -1;
419 : return 4;
420 :
421 931 : case E_V4SImode:
422 931 : if (!register_operand (operands[1], E_V4SImode)
423 931 : || !nonimmediate_operand (operands[2], E_V4SImode))
424 87 : return -1;
425 : return 5;
426 :
427 1160 : case E_V8DImode:
428 1160 : if (!register_operand (operands[1], E_V8DImode)
429 1160 : || !nonimmediate_operand (operands[2], E_V8DImode))
430 120 : return -1;
431 : return 6;
432 :
433 1039 : case E_V4DImode:
434 1039 : if (!register_operand (operands[1], E_V4DImode)
435 1039 : || !nonimmediate_operand (operands[2], E_V4DImode))
436 98 : return -1;
437 : return 7;
438 :
439 720 : case E_V2DImode:
440 720 : if (!register_operand (operands[1], E_V2DImode)
441 720 : || !nonimmediate_operand (operands[2], E_V2DImode))
442 68 : return -1;
443 : return 8;
444 :
445 : default:
446 : return -1;
447 : }
448 :
449 : default:
450 : return -1;
451 : }
452 : }
453 :
454 : int
455 168 : pattern100 (rtx x1)
456 : {
457 168 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
458 168 : rtx x2, x3, x4, x5;
459 168 : int res ATTRIBUTE_UNUSED;
460 168 : x2 = XEXP (x1, 1);
461 168 : if (GET_MODE (x2) != E_CCZmode)
462 : return -1;
463 168 : x3 = XEXP (x1, 0);
464 168 : if (GET_CODE (x3) != REG
465 168 : || REGNO (x3) != 17
466 336 : || GET_MODE (x3) != E_CCZmode)
467 : return -1;
468 168 : x4 = XVECEXP (x2, 0, 0);
469 168 : operands[0] = x4;
470 168 : x5 = XVECEXP (x2, 0, 1);
471 168 : operands[1] = x5;
472 168 : if (!memory_operand (operands[1], E_XImode))
473 : return -1;
474 168 : switch (GET_MODE (operands[0]))
475 : {
476 0 : case E_SImode:
477 0 : if (!register_operand (operands[0], E_SImode))
478 : return -1;
479 : return 0;
480 :
481 168 : case E_DImode:
482 168 : if (!register_operand (operands[0], E_DImode))
483 : return -1;
484 : return 1;
485 :
486 : default:
487 : return -1;
488 : }
489 : }
490 :
491 : int
492 1525 : pattern111 (rtx x1, machine_mode i1)
493 : {
494 1525 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
495 1525 : rtx x2;
496 1525 : int res ATTRIBUTE_UNUSED;
497 1525 : if (!nonimmediate_operand (operands[0], i1)
498 1525 : || GET_MODE (x1) != i1)
499 : return -1;
500 1525 : x2 = XEXP (x1, 0);
501 1525 : if (GET_MODE (x2) != i1
502 1525 : || !x86_64_general_operand (operands[1], i1))
503 203 : return -1;
504 : return 0;
505 : }
506 :
507 : int
508 48250 : pattern116 (rtx x1)
509 : {
510 48250 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
511 48250 : rtx x2, x3, x4;
512 48250 : int res ATTRIBUTE_UNUSED;
513 48250 : x2 = XEXP (x1, 0);
514 48250 : x3 = XEXP (x2, 0);
515 48250 : operands[1] = x3;
516 48250 : x4 = XEXP (x2, 1);
517 48250 : operands[2] = x4;
518 48250 : switch (GET_MODE (operands[0]))
519 : {
520 39648 : case E_DImode:
521 39648 : if (!register_operand (operands[0], E_DImode)
522 39648 : || GET_MODE (x1) != E_DImode)
523 : return -1;
524 39549 : switch (GET_MODE (x2))
525 : {
526 36474 : case E_SImode:
527 36474 : if (!nonimmediate_operand (operands[1], E_SImode))
528 : return -1;
529 : return 0;
530 :
531 2111 : case E_QImode:
532 2111 : if (!nonimmediate_operand (operands[1], E_QImode)
533 2111 : || !nonmemory_operand (operands[2], E_QImode))
534 40 : return -1;
535 : return 1;
536 :
537 964 : case E_HImode:
538 964 : if (!nonimmediate_operand (operands[1], E_HImode)
539 964 : || !nonmemory_operand (operands[2], E_QImode))
540 4 : return -1;
541 : return 2;
542 :
543 : default:
544 : return -1;
545 : }
546 :
547 7921 : case E_SImode:
548 7921 : if (!register_operand (operands[0], E_SImode)
549 7921 : || GET_MODE (x1) != E_SImode
550 15842 : || !nonmemory_operand (operands[2], E_QImode))
551 132 : return -1;
552 7789 : switch (GET_MODE (x2))
553 : {
554 6025 : case E_QImode:
555 6025 : if (!nonimmediate_operand (operands[1], E_QImode))
556 : return -1;
557 : return 3;
558 :
559 1764 : case E_HImode:
560 1764 : if (!nonimmediate_operand (operands[1], E_HImode))
561 : return -1;
562 : return 4;
563 :
564 : default:
565 : return -1;
566 : }
567 :
568 : default:
569 : return -1;
570 : }
571 : }
572 :
573 : int
574 9327 : pattern133 (rtx x1, machine_mode i1, machine_mode i2)
575 : {
576 9327 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
577 9327 : rtx x2;
578 9327 : int res ATTRIBUTE_UNUSED;
579 9327 : if (!register_operand (operands[0], i1)
580 9327 : || GET_MODE (x1) != i1)
581 : return -1;
582 8924 : x2 = XEXP (x1, 0);
583 8924 : if (GET_MODE (x2) != i1
584 8924 : || !vector_operand (operands[1], i1)
585 8826 : || !vector_operand (operands[2], i1)
586 8348 : || !nonimm_or_0_operand (operands[3], i1)
587 16986 : || !register_operand (operands[4], i2))
588 1300 : return -1;
589 : return 0;
590 : }
591 :
592 : int
593 3646 : pattern145 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
594 : {
595 3646 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
596 3646 : rtx x2;
597 3646 : int res ATTRIBUTE_UNUSED;
598 3646 : if (!nonimmediate_operand (operands[0], i1)
599 3646 : || GET_MODE (x1) != i1)
600 : return -1;
601 3646 : x2 = XEXP (x1, 0);
602 3646 : if (GET_MODE (x2) != i1
603 3646 : || !register_operand (operands[1], i3)
604 3645 : || !nonimm_or_0_operand (operands[2], i1)
605 7279 : || !register_operand (operands[3], i2))
606 229 : return -1;
607 : return 0;
608 : }
609 :
610 : int
611 7124 : pattern152 (rtx x1, machine_mode i1, machine_mode i2)
612 : {
613 7124 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
614 7124 : rtx x2;
615 7124 : int res ATTRIBUTE_UNUSED;
616 7124 : if (!register_operand (operands[0], i1)
617 7124 : || GET_MODE (x1) != i1)
618 : return -1;
619 6798 : x2 = XEXP (x1, 0);
620 6798 : if (GET_MODE (x2) != i1
621 6798 : || !nonimmediate_operand (operands[1], i1)
622 6747 : || !nonimm_or_0_operand (operands[2], i1)
623 13403 : || !register_operand (operands[3], i2))
624 642 : return -1;
625 : return 0;
626 : }
627 :
628 : int
629 5587 : pattern154 (rtx x1)
630 : {
631 5587 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
632 5587 : rtx x2, x3, x4, x5;
633 5587 : int res ATTRIBUTE_UNUSED;
634 5587 : x2 = XEXP (x1, 0);
635 5587 : x3 = XEXP (x2, 0);
636 5587 : operands[1] = x3;
637 5587 : x4 = XEXP (x1, 1);
638 5587 : operands[2] = x4;
639 5587 : x5 = XEXP (x1, 2);
640 5587 : operands[3] = x5;
641 5587 : switch (GET_MODE (operands[0]))
642 : {
643 457 : case E_V16SImode:
644 457 : return pattern152 (x1,
645 : E_V16SImode,
646 457 : E_HImode); /* [-1, 0] */
647 :
648 446 : case E_V8SImode:
649 446 : if (pattern152 (x1,
650 : E_V8SImode,
651 : E_QImode) != 0)
652 : return -1;
653 : return 1;
654 :
655 398 : case E_V4SImode:
656 398 : if (pattern152 (x1,
657 : E_V4SImode,
658 : E_QImode) != 0)
659 : return -1;
660 : return 2;
661 :
662 534 : case E_V8DImode:
663 534 : if (pattern152 (x1,
664 : E_V8DImode,
665 : E_QImode) != 0)
666 : return -1;
667 : return 3;
668 :
669 500 : case E_V4DImode:
670 500 : if (pattern152 (x1,
671 : E_V4DImode,
672 : E_QImode) != 0)
673 : return -1;
674 : return 4;
675 :
676 406 : case E_V2DImode:
677 406 : if (pattern152 (x1,
678 : E_V2DImode,
679 : E_QImode) != 0)
680 : return -1;
681 : return 5;
682 :
683 484 : case E_V64QImode:
684 484 : if (pattern152 (x1,
685 : E_V64QImode,
686 : E_DImode) != 0)
687 : return -1;
688 : return 6;
689 :
690 486 : case E_V16QImode:
691 486 : if (pattern152 (x1,
692 : E_V16QImode,
693 : E_HImode) != 0)
694 : return -1;
695 : return 7;
696 :
697 558 : case E_V32QImode:
698 558 : if (pattern152 (x1,
699 : E_V32QImode,
700 : E_SImode) != 0)
701 : return -1;
702 : return 8;
703 :
704 449 : case E_V32HImode:
705 449 : if (pattern152 (x1,
706 : E_V32HImode,
707 : E_SImode) != 0)
708 : return -1;
709 : return 9;
710 :
711 500 : case E_V16HImode:
712 500 : if (pattern153 (x1,
713 : E_V16HImode) != 0)
714 : return -1;
715 : return 10;
716 :
717 369 : case E_V8HImode:
718 369 : if (pattern152 (x1,
719 : E_V8HImode,
720 : E_QImode) != 0)
721 : return -1;
722 : return 11;
723 :
724 : default:
725 : return -1;
726 : }
727 : }
728 :
729 : int
730 564 : pattern168 (rtx x1)
731 : {
732 564 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
733 564 : rtx x2, x3, x4, x5;
734 564 : int res ATTRIBUTE_UNUSED;
735 564 : x2 = XEXP (x1, 0);
736 564 : operands[0] = x2;
737 564 : x3 = XEXP (x1, 1);
738 564 : x4 = XVECEXP (x3, 0, 0);
739 564 : operands[1] = x4;
740 564 : x5 = XVECEXP (x3, 0, 1);
741 564 : operands[2] = x5;
742 564 : switch (GET_MODE (operands[0]))
743 : {
744 308 : case E_V32QImode:
745 308 : return pattern158 (x3,
746 308 : E_V32QImode); /* [-1, 0] */
747 :
748 0 : case E_V16QImode:
749 0 : if (pattern158 (x3,
750 : E_V16QImode) != 0)
751 : return -1;
752 : return 1;
753 :
754 256 : case E_V64QImode:
755 256 : if (pattern158 (x3,
756 : E_V64QImode) != 0)
757 : return -1;
758 : return 2;
759 :
760 : default:
761 : return -1;
762 : }
763 : }
764 :
765 : int
766 199 : pattern177 (rtx x1)
767 : {
768 199 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
769 199 : rtx x2, x3;
770 199 : int res ATTRIBUTE_UNUSED;
771 199 : x2 = XEXP (x1, 1);
772 199 : if (GET_MODE (x2) != E_V4SImode)
773 : return -1;
774 199 : x3 = XEXP (x1, 0);
775 199 : operands[0] = x3;
776 199 : return pattern176 (x2); /* [-1, 0] */
777 : }
778 :
779 : int
780 1442 : pattern181 (rtx x1)
781 : {
782 1442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
783 1442 : rtx x2, x3, x4, x5, x6;
784 1442 : int res ATTRIBUTE_UNUSED;
785 1442 : x2 = XEXP (x1, 0);
786 1442 : operands[0] = x2;
787 1442 : x3 = XEXP (x1, 1);
788 1442 : x4 = XVECEXP (x3, 0, 0);
789 1442 : operands[1] = x4;
790 1442 : x5 = XVECEXP (x3, 0, 1);
791 1442 : operands[2] = x5;
792 1442 : x6 = XVECEXP (x3, 0, 2);
793 1442 : operands[3] = x6;
794 1442 : if (!const_0_to_255_operand (operands[3], E_SImode))
795 : return -1;
796 1442 : switch (GET_MODE (operands[0]))
797 : {
798 150 : case E_V32HImode:
799 150 : return pattern64 (x3,
800 150 : E_V32HImode); /* [-1, 0] */
801 :
802 168 : case E_V16SImode:
803 168 : if (pattern64 (x3,
804 : E_V16SImode) != 0)
805 : return -1;
806 : return 1;
807 :
808 183 : case E_V8DImode:
809 183 : if (pattern64 (x3,
810 : E_V8DImode) != 0)
811 : return -1;
812 : return 2;
813 :
814 144 : case E_V16HImode:
815 144 : if (pattern64 (x3,
816 : E_V16HImode) != 0)
817 : return -1;
818 : return 3;
819 :
820 162 : case E_V8SImode:
821 162 : if (pattern64 (x3,
822 : E_V8SImode) != 0)
823 : return -1;
824 : return 4;
825 :
826 172 : case E_V4DImode:
827 172 : if (pattern64 (x3,
828 : E_V4DImode) != 0)
829 : return -1;
830 : return 5;
831 :
832 141 : case E_V8HImode:
833 141 : if (pattern64 (x3,
834 : E_V8HImode) != 0)
835 : return -1;
836 : return 6;
837 :
838 156 : case E_V4SImode:
839 156 : if (pattern64 (x3,
840 : E_V4SImode) != 0)
841 : return -1;
842 : return 7;
843 :
844 166 : case E_V2DImode:
845 166 : if (pattern64 (x3,
846 : E_V2DImode) != 0)
847 : return -1;
848 : return 8;
849 :
850 : default:
851 : return -1;
852 : }
853 : }
854 :
855 : int
856 386 : pattern195 (rtx x1)
857 : {
858 386 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
859 386 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
860 386 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
861 386 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
862 386 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
863 386 : rtx x34, x35, x36, x37;
864 386 : int res ATTRIBUTE_UNUSED;
865 386 : x2 = XEXP (x1, 0);
866 386 : x3 = XEXP (x2, 1);
867 386 : x4 = XVECEXP (x3, 0, 0);
868 386 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
869 : return -1;
870 386 : x5 = XVECEXP (x3, 0, 1);
871 386 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
872 : return -1;
873 386 : x6 = XVECEXP (x3, 0, 2);
874 386 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
875 : return -1;
876 386 : x7 = XVECEXP (x3, 0, 3);
877 386 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
878 : return -1;
879 386 : x8 = XVECEXP (x3, 0, 4);
880 386 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
881 : return -1;
882 386 : x9 = XVECEXP (x3, 0, 5);
883 386 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 18])
884 : return -1;
885 386 : x10 = XVECEXP (x3, 0, 6);
886 386 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 20])
887 : return -1;
888 386 : x11 = XVECEXP (x3, 0, 7);
889 386 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 22])
890 : return -1;
891 386 : x12 = XVECEXP (x3, 0, 8);
892 386 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
893 : return -1;
894 386 : x13 = XVECEXP (x3, 0, 9);
895 386 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
896 : return -1;
897 386 : x14 = XVECEXP (x3, 0, 10);
898 386 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
899 : return -1;
900 386 : x15 = XVECEXP (x3, 0, 11);
901 386 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
902 : return -1;
903 386 : x16 = XVECEXP (x3, 0, 12);
904 386 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 24])
905 : return -1;
906 386 : x17 = XVECEXP (x3, 0, 13);
907 386 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 26])
908 : return -1;
909 386 : x18 = XVECEXP (x3, 0, 14);
910 386 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 28])
911 : return -1;
912 386 : x19 = XVECEXP (x3, 0, 15);
913 386 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 30])
914 : return -1;
915 386 : x20 = XEXP (x1, 1);
916 386 : x21 = XEXP (x20, 1);
917 386 : if (XVECLEN (x21, 0) != 16)
918 : return -1;
919 386 : x22 = XVECEXP (x21, 0, 0);
920 386 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
921 : return -1;
922 386 : x23 = XVECEXP (x21, 0, 1);
923 386 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
924 : return -1;
925 386 : x24 = XVECEXP (x21, 0, 2);
926 386 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
927 : return -1;
928 386 : x25 = XVECEXP (x21, 0, 3);
929 386 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
930 : return -1;
931 386 : x26 = XVECEXP (x21, 0, 4);
932 386 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 17])
933 : return -1;
934 386 : x27 = XVECEXP (x21, 0, 5);
935 386 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 19])
936 : return -1;
937 386 : x28 = XVECEXP (x21, 0, 6);
938 386 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 21])
939 : return -1;
940 386 : x29 = XVECEXP (x21, 0, 7);
941 386 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 23])
942 : return -1;
943 386 : x30 = XVECEXP (x21, 0, 8);
944 386 : if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
945 : return -1;
946 386 : x31 = XVECEXP (x21, 0, 9);
947 386 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
948 : return -1;
949 386 : x32 = XVECEXP (x21, 0, 10);
950 386 : if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
951 : return -1;
952 386 : x33 = XVECEXP (x21, 0, 11);
953 386 : if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
954 : return -1;
955 386 : x34 = XVECEXP (x21, 0, 12);
956 386 : if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 25])
957 : return -1;
958 386 : x35 = XVECEXP (x21, 0, 13);
959 386 : if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 27])
960 : return -1;
961 386 : x36 = XVECEXP (x21, 0, 14);
962 386 : if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 29])
963 : return -1;
964 386 : x37 = XVECEXP (x21, 0, 15);
965 386 : if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 31]
966 386 : || pattern194 (x1,
967 : E_V32HImode,
968 : E_V16HImode) != 0)
969 24 : return -1;
970 : return 0;
971 : }
972 :
973 : int
974 42411 : pattern219 (rtx x1)
975 : {
976 42411 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
977 42411 : int res ATTRIBUTE_UNUSED;
978 42411 : switch (GET_MODE (operands[0]))
979 : {
980 19 : case E_HImode:
981 19 : if (!register_operand (operands[0], E_HImode)
982 19 : || pattern217 (x1,
983 : E_HImode) != 0)
984 0 : return -1;
985 : return 0;
986 :
987 4900 : case E_SImode:
988 4900 : if (!register_operand (operands[0], E_SImode)
989 4900 : || pattern218 (x1,
990 : E_SImode) != 0)
991 74 : return -1;
992 : return 1;
993 :
994 37472 : case E_DImode:
995 37472 : if (!register_operand (operands[0], E_DImode)
996 37472 : || pattern218 (x1,
997 : E_DImode) != 0)
998 12967 : return -1;
999 : return 2;
1000 :
1001 : default:
1002 : return -1;
1003 : }
1004 : }
1005 :
1006 : int
1007 799000 : pattern225 (rtx x1)
1008 : {
1009 799000 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1010 799000 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1011 799000 : rtx x10, x11;
1012 799000 : int res ATTRIBUTE_UNUSED;
1013 799000 : x2 = XVECEXP (x1, 0, 1);
1014 799000 : if (GET_CODE (x2) != SET)
1015 : return -1;
1016 798927 : x3 = XEXP (x2, 1);
1017 798927 : if (GET_CODE (x3) != UMOD)
1018 : return -1;
1019 720847 : x4 = XVECEXP (x1, 0, 0);
1020 720847 : x5 = XEXP (x4, 0);
1021 720847 : operands[0] = x5;
1022 720847 : x6 = XEXP (x4, 1);
1023 720847 : x7 = XEXP (x6, 0);
1024 720847 : operands[2] = x7;
1025 720847 : x8 = XEXP (x6, 1);
1026 720847 : operands[3] = x8;
1027 720847 : x9 = XEXP (x2, 0);
1028 720847 : operands[1] = x9;
1029 720847 : x10 = XEXP (x3, 0);
1030 720847 : if (!rtx_equal_p (x10, operands[2]))
1031 : return -1;
1032 644357 : x11 = XEXP (x3, 1);
1033 644357 : if (!rtx_equal_p (x11, operands[3]))
1034 : return -1;
1035 632901 : switch (GET_CODE (operands[3]))
1036 : {
1037 : case REG:
1038 : case SUBREG:
1039 : case MEM:
1040 : return 0;
1041 :
1042 68778 : case CONST_INT:
1043 68778 : return 1;
1044 :
1045 : default:
1046 : return -1;
1047 : }
1048 : }
1049 :
1050 : int
1051 140467 : pattern235 (rtx x1)
1052 : {
1053 140467 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1054 140467 : rtx x2, x3, x4, x5, x6;
1055 140467 : int res ATTRIBUTE_UNUSED;
1056 140467 : x2 = XVECEXP (x1, 0, 0);
1057 140467 : x3 = XEXP (x2, 0);
1058 140467 : if (GET_CODE (x3) != MEM)
1059 : return -1;
1060 37370 : x4 = XVECEXP (x1, 0, 1);
1061 37370 : if (GET_CODE (x4) != SET)
1062 : return -1;
1063 37370 : x5 = XEXP (x4, 1);
1064 37370 : if (GET_CODE (x5) != PLUS)
1065 : return -1;
1066 17682 : x6 = XEXP (x5, 1);
1067 17682 : if (GET_CODE (x6) != CONST_INT)
1068 5590 : return -1;
1069 : return 0;
1070 : }
1071 :
1072 : int
1073 497013 : pattern244 (rtx x1)
1074 : {
1075 497013 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1076 497013 : rtx x2, x3;
1077 497013 : int res ATTRIBUTE_UNUSED;
1078 497013 : x2 = XEXP (x1, 0);
1079 497013 : operands[1] = x2;
1080 497013 : x3 = XEXP (x1, 1);
1081 497013 : operands[2] = x3;
1082 497013 : switch (GET_CODE (operands[2]))
1083 : {
1084 106 : case CONST_VECTOR:
1085 106 : switch (GET_MODE (operands[0]))
1086 : {
1087 2 : case E_V32HImode:
1088 2 : return pattern243 (x1,
1089 2 : E_V32HImode); /* [-1, 0] */
1090 :
1091 69 : case E_V16SImode:
1092 69 : if (pattern243 (x1,
1093 : E_V16SImode) != 0)
1094 : return -1;
1095 : return 1;
1096 :
1097 0 : case E_V8DImode:
1098 0 : if (pattern243 (x1,
1099 : E_V8DImode) != 0)
1100 : return -1;
1101 : return 2;
1102 :
1103 : default:
1104 : return -1;
1105 : }
1106 :
1107 477293 : case CONST_INT:
1108 477293 : if (!const_0_to_255_not_mul_8_operand (operands[2], E_SImode)
1109 218745 : || !register_operand (operands[0], E_V1TImode)
1110 36 : || GET_MODE (x1) != E_V1TImode
1111 477329 : || !register_operand (operands[1], E_V1TImode))
1112 477257 : return -1;
1113 : return 3;
1114 :
1115 : default:
1116 : return -1;
1117 : }
1118 : }
1119 :
1120 : int
1121 299744 : pattern262 ()
1122 : {
1123 299744 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1124 299744 : int res ATTRIBUTE_UNUSED;
1125 299744 : switch (GET_MODE (operands[1]))
1126 : {
1127 177 : case E_HFmode:
1128 177 : if (!nonimmediate_operand (operands[1], E_HFmode))
1129 : return -1;
1130 : return 0;
1131 :
1132 76280 : case E_SFmode:
1133 76280 : if (!nonimmediate_operand (operands[1], E_SFmode))
1134 : return -1;
1135 : return 1;
1136 :
1137 214344 : case E_DFmode:
1138 214344 : if (!nonimmediate_operand (operands[1], E_DFmode))
1139 : return -1;
1140 : return 2;
1141 :
1142 : default:
1143 : return -1;
1144 : }
1145 : }
1146 :
1147 : int
1148 38829 : pattern269 (rtx x1, int *pnum_clobbers)
1149 : {
1150 38829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1151 38829 : rtx x2, x3;
1152 38829 : int res ATTRIBUTE_UNUSED;
1153 38829 : if (!nonmemory_operand (operands[2], E_QImode))
1154 : return -1;
1155 36875 : x2 = XEXP (x1, 0);
1156 36875 : switch (GET_CODE (x2))
1157 : {
1158 36871 : case REG:
1159 36871 : case SUBREG:
1160 36871 : case MEM:
1161 36871 : operands[0] = x2;
1162 36871 : x3 = XEXP (x1, 1);
1163 36871 : return pattern0 (x3); /* [-1, 1] */
1164 :
1165 4 : case STRICT_LOW_PART:
1166 4 : res = pattern265 (x1, pnum_clobbers);
1167 4 : if (res >= 0)
1168 4 : return res + 2; /* [2, 3] */
1169 : return -1;
1170 :
1171 : default:
1172 : return -1;
1173 : }
1174 : }
1175 :
1176 : int
1177 7083 : pattern282 (rtx x1, int *pnum_clobbers)
1178 : {
1179 7083 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1180 7083 : rtx x2;
1181 7083 : int res ATTRIBUTE_UNUSED;
1182 7083 : switch (GET_MODE (operands[0]))
1183 : {
1184 618 : case E_SImode:
1185 618 : return pattern281 (x1); /* [-1, 1] */
1186 :
1187 6268 : case E_DImode:
1188 6268 : if (!register_operand (operands[0], E_DImode)
1189 6268 : || GET_MODE (x1) != E_DImode)
1190 : return -1;
1191 6257 : x2 = XEXP (x1, 0);
1192 6257 : switch (GET_MODE (x2))
1193 : {
1194 40 : case E_QImode:
1195 40 : if (!nonimmediate_operand (operands[1], E_QImode))
1196 : return -1;
1197 : return 2;
1198 :
1199 26 : case E_HImode:
1200 26 : if (!nonimmediate_operand (operands[1], E_HImode))
1201 : return -1;
1202 : return 3;
1203 :
1204 6191 : case E_SImode:
1205 6191 : if (pnum_clobbers == NULL
1206 6191 : || !nonimmediate_operand (operands[1], E_SImode))
1207 1505 : return -1;
1208 : return 4;
1209 :
1210 : default:
1211 : return -1;
1212 : }
1213 :
1214 : default:
1215 : return -1;
1216 : }
1217 : }
1218 :
1219 : int
1220 111875 : pattern295 (rtx x1)
1221 : {
1222 111875 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1223 111875 : rtx x2, x3, x4;
1224 111875 : int res ATTRIBUTE_UNUSED;
1225 111875 : x2 = XEXP (x1, 0);
1226 111875 : x3 = XEXP (x2, 0);
1227 111875 : operands[1] = x3;
1228 111875 : x4 = XEXP (x2, 1);
1229 111875 : operands[2] = x4;
1230 111875 : if (!const_int_operand (operands[2], E_QImode))
1231 : return -1;
1232 109431 : switch (GET_MODE (operands[0]))
1233 : {
1234 28197 : case E_SImode:
1235 28197 : return pattern294 (x1,
1236 : E_DImode,
1237 28197 : E_SImode); /* [-1, 0] */
1238 :
1239 866 : case E_DImode:
1240 866 : if (pattern294 (x1,
1241 : E_TImode,
1242 : E_DImode) != 0)
1243 : return -1;
1244 : return 1;
1245 :
1246 : default:
1247 : return -1;
1248 : }
1249 : }
1250 :
1251 : int
1252 589 : pattern302 (rtx x1)
1253 : {
1254 589 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1255 589 : rtx x2, x3;
1256 589 : int res ATTRIBUTE_UNUSED;
1257 589 : x2 = XVECEXP (x1, 0, 0);
1258 589 : operands[1] = x2;
1259 589 : x3 = XVECEXP (x1, 0, 1);
1260 589 : operands[2] = x3;
1261 589 : return pattern301 (x1); /* [-1, 2] */
1262 : }
1263 :
1264 : int
1265 39192 : pattern306 (rtx x1)
1266 : {
1267 39192 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1268 39192 : rtx x2, x3, x4;
1269 39192 : int res ATTRIBUTE_UNUSED;
1270 39192 : if (GET_MODE (x1) != E_DImode
1271 39192 : || !register_operand (operands[0], E_DImode))
1272 38762 : return -1;
1273 430 : x2 = XVECEXP (x1, 0, 0);
1274 430 : operands[1] = x2;
1275 430 : if (!register_operand (operands[1], E_DImode))
1276 : return -1;
1277 415 : x3 = XVECEXP (x1, 0, 1);
1278 415 : operands[2] = x3;
1279 415 : if (!register_mmxmem_operand (operands[2], E_DImode))
1280 : return -1;
1281 406 : x4 = XVECEXP (x1, 0, 2);
1282 406 : operands[3] = x4;
1283 406 : if (!const_0_to_255_mul_8_operand (operands[3], E_SImode))
1284 : return -1;
1285 : return 0;
1286 : }
1287 :
1288 : int
1289 8 : pattern314 (rtx x1, machine_mode i1)
1290 : {
1291 8 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1292 8 : rtx x2, x3;
1293 8 : int res ATTRIBUTE_UNUSED;
1294 8 : if (!register_operand (operands[0], i1)
1295 8 : || GET_MODE (x1) != i1)
1296 : return -1;
1297 8 : x2 = XEXP (x1, 0);
1298 8 : if (GET_MODE (x2) != i1)
1299 : return -1;
1300 8 : x3 = XEXP (x2, 0);
1301 8 : if (GET_MODE (x3) != E_DImode
1302 8 : || !const0_operand (operands[2], i1))
1303 0 : return -1;
1304 8 : switch (GET_MODE (operands[1]))
1305 : {
1306 4 : case E_HImode:
1307 4 : if (!nonimmediate_operand (operands[1], E_HImode))
1308 : return -1;
1309 : return 0;
1310 :
1311 4 : case E_SImode:
1312 4 : if (!nonimmediate_operand (operands[1], E_SImode))
1313 : return -1;
1314 : return 1;
1315 :
1316 : default:
1317 : return -1;
1318 : }
1319 : }
1320 :
1321 : int
1322 0 : pattern322 (rtx x1, machine_mode i1)
1323 : {
1324 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1325 0 : int res ATTRIBUTE_UNUSED;
1326 0 : if (!register_operand (operands[0], i1)
1327 0 : || GET_MODE (x1) != i1
1328 0 : || !float_vector_all_ones_operand (operands[1], i1)
1329 0 : || !const0_operand (operands[2], i1)
1330 0 : || !register_operand (operands[3], i1)
1331 0 : || !nonimmediate_operand (operands[4], i1))
1332 0 : return -1;
1333 : return 0;
1334 : }
1335 :
1336 : int
1337 748 : pattern329 (rtx x1)
1338 : {
1339 748 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1340 748 : rtx x2;
1341 748 : int res ATTRIBUTE_UNUSED;
1342 748 : x2 = XVECEXP (x1, 0, 0);
1343 748 : operands[1] = x2;
1344 748 : switch (GET_MODE (operands[0]))
1345 : {
1346 272 : case E_V16SImode:
1347 272 : if (!register_operand (operands[0], E_V16SImode)
1348 256 : || GET_MODE (x1) != E_V16SImode
1349 528 : || !vector_operand (operands[1], E_V16SFmode))
1350 24 : return -1;
1351 : return 0;
1352 :
1353 244 : case E_V8SImode:
1354 244 : if (!register_operand (operands[0], E_V8SImode)
1355 228 : || GET_MODE (x1) != E_V8SImode
1356 472 : || !vector_operand (operands[1], E_V8SFmode))
1357 20 : return -1;
1358 : return 1;
1359 :
1360 232 : case E_V4SImode:
1361 232 : if (!register_operand (operands[0], E_V4SImode)
1362 228 : || GET_MODE (x1) != E_V4SImode
1363 460 : || !vector_operand (operands[1], E_V4SFmode))
1364 8 : return -1;
1365 : return 2;
1366 :
1367 : default:
1368 : return -1;
1369 : }
1370 : }
1371 :
1372 : int
1373 18950 : pattern332 (rtx x1)
1374 : {
1375 18950 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1376 18950 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1377 18950 : int res ATTRIBUTE_UNUSED;
1378 18950 : x2 = XEXP (x1, 0);
1379 18950 : x3 = XEXP (x2, 0);
1380 18950 : if (GET_CODE (x3) != VEC_SELECT)
1381 : return -1;
1382 6845 : x4 = XEXP (x3, 1);
1383 6845 : if (GET_CODE (x4) != PARALLEL)
1384 : return -1;
1385 6845 : x5 = XEXP (x1, 1);
1386 6845 : if (GET_CODE (x5) != SIGN_EXTEND)
1387 : return -1;
1388 6679 : x6 = XEXP (x5, 0);
1389 6679 : if (GET_CODE (x6) != VEC_SELECT)
1390 : return -1;
1391 6679 : x7 = XEXP (x6, 1);
1392 6679 : if (GET_CODE (x7) != PARALLEL)
1393 : return -1;
1394 6679 : x8 = XEXP (x3, 0);
1395 6679 : operands[1] = x8;
1396 6679 : x9 = XEXP (x6, 0);
1397 6679 : operands[2] = x9;
1398 6679 : return 0;
1399 : }
1400 :
1401 : int
1402 190 : pattern337 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1403 : {
1404 190 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1405 190 : rtx x2, x3, x4, x5, x6, x7;
1406 190 : int res ATTRIBUTE_UNUSED;
1407 190 : if (!register_operand (operands[0], i2)
1408 190 : || GET_MODE (x1) != i2)
1409 : return -1;
1410 182 : x2 = XEXP (x1, 0);
1411 182 : if (GET_MODE (x2) != i2)
1412 : return -1;
1413 182 : x3 = XEXP (x2, 0);
1414 182 : if (GET_MODE (x3) != i2)
1415 : return -1;
1416 182 : x4 = XEXP (x3, 0);
1417 182 : if (GET_MODE (x4) != i1
1418 182 : || !nonimmediate_operand (operands[1], i3))
1419 0 : return -1;
1420 182 : x5 = XEXP (x2, 1);
1421 182 : if (GET_MODE (x5) != i2)
1422 : return -1;
1423 182 : x6 = XEXP (x5, 0);
1424 182 : if (GET_MODE (x6) != i1)
1425 : return -1;
1426 182 : x7 = XEXP (x1, 1);
1427 182 : return pattern336 (x7,
1428 : i1,
1429 182 : i2); /* [-1, 0] */
1430 : }
1431 :
1432 : int
1433 22256 : pattern341 (rtx x1)
1434 : {
1435 22256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1436 22256 : rtx x2, x3, x4, x5, x6;
1437 22256 : int res ATTRIBUTE_UNUSED;
1438 22256 : x2 = XEXP (x1, 0);
1439 22256 : operands[0] = x2;
1440 22256 : x3 = XEXP (x1, 1);
1441 22256 : x4 = XEXP (x3, 1);
1442 22256 : x5 = XEXP (x4, 0);
1443 22256 : operands[2] = x5;
1444 22256 : if (!register_operand (operands[2], E_QImode))
1445 : return -1;
1446 19345 : x6 = XEXP (x4, 1);
1447 19345 : operands[3] = x6;
1448 19345 : if (!const_int_operand (operands[3], E_QImode))
1449 : return -1;
1450 18578 : return pattern340 (x3); /* [-1, 1] */
1451 : }
1452 :
1453 : int
1454 30207241 : pattern344 (rtx x1)
1455 : {
1456 30207241 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1457 30207241 : rtx x2, x3, x4, x5;
1458 30207241 : int res ATTRIBUTE_UNUSED;
1459 30207241 : x2 = XVECEXP (x1, 0, 1);
1460 30207241 : if (GET_CODE (x2) != CLOBBER)
1461 : return -1;
1462 29296391 : x3 = XEXP (x2, 0);
1463 29296391 : if (GET_CODE (x3) != REG
1464 29291249 : || REGNO (x3) != 17
1465 56021134 : || GET_MODE (x3) != E_CCmode)
1466 : return -1;
1467 26709983 : x4 = XVECEXP (x1, 0, 0);
1468 26709983 : x5 = XEXP (x4, 0);
1469 26709983 : operands[0] = x5;
1470 26709983 : return 0;
1471 : }
1472 :
1473 : int
1474 3196 : pattern348 (rtx x1)
1475 : {
1476 3196 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1477 3196 : rtx x2, x3, x4, x5;
1478 3196 : int res ATTRIBUTE_UNUSED;
1479 3196 : x2 = XVECEXP (x1, 0, 1);
1480 3196 : if (GET_CODE (x2) != CLOBBER)
1481 : return -1;
1482 2516 : x3 = XEXP (x2, 0);
1483 2516 : if (GET_CODE (x3) != REG
1484 2516 : || REGNO (x3) != 17
1485 5032 : || GET_MODE (x3) != E_CCmode)
1486 : return -1;
1487 2516 : x4 = XVECEXP (x1, 0, 0);
1488 2516 : x5 = XEXP (x4, 0);
1489 2516 : operands[0] = x5;
1490 2516 : return 0;
1491 : }
1492 :
1493 : int
1494 22193 : pattern351 (rtx x1)
1495 : {
1496 22193 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1497 22193 : rtx x2;
1498 22193 : int res ATTRIBUTE_UNUSED;
1499 22193 : switch (GET_MODE (operands[0]))
1500 : {
1501 73 : case E_HImode:
1502 73 : return pattern350 (x1,
1503 : E_QImode,
1504 73 : E_HImode); /* [-1, 0] */
1505 :
1506 1389 : case E_SImode:
1507 1389 : if (!register_operand (operands[0], E_SImode)
1508 1389 : || GET_MODE (x1) != E_SImode)
1509 : return -1;
1510 1389 : x2 = XEXP (x1, 0);
1511 1389 : switch (GET_MODE (x2))
1512 : {
1513 1023 : case E_QImode:
1514 1023 : if (!nonimmediate_operand (operands[1], E_QImode))
1515 : return -1;
1516 : return 1;
1517 :
1518 366 : case E_HImode:
1519 366 : if (!nonimmediate_operand (operands[1], E_HImode))
1520 : return -1;
1521 : return 2;
1522 :
1523 : default:
1524 : return -1;
1525 : }
1526 :
1527 20731 : case E_DImode:
1528 20731 : if (!register_operand (operands[0], E_DImode)
1529 20731 : || GET_MODE (x1) != E_DImode)
1530 : return -1;
1531 20731 : x2 = XEXP (x1, 0);
1532 20731 : switch (GET_MODE (x2))
1533 : {
1534 458 : case E_QImode:
1535 458 : if (!nonimmediate_operand (operands[1], E_QImode))
1536 : return -1;
1537 : return 3;
1538 :
1539 49 : case E_HImode:
1540 49 : if (!nonimmediate_operand (operands[1], E_HImode))
1541 : return -1;
1542 : return 4;
1543 :
1544 20224 : case E_SImode:
1545 20224 : if (!nonimmediate_operand (operands[1], E_SImode))
1546 : return -1;
1547 : return 5;
1548 :
1549 : default:
1550 : return -1;
1551 : }
1552 :
1553 : default:
1554 : return -1;
1555 : }
1556 : }
1557 :
1558 : int
1559 27456 : pattern364 (rtx x1)
1560 : {
1561 27456 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1562 27456 : rtx x2, x3, x4, x5, x6, x7;
1563 27456 : int res ATTRIBUTE_UNUSED;
1564 27456 : x2 = XVECEXP (x1, 0, 0);
1565 27456 : x3 = XEXP (x2, 1);
1566 27456 : x4 = XEXP (x3, 0);
1567 27456 : x5 = XEXP (x4, 1);
1568 27456 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1569 : return -1;
1570 21233 : x6 = XVECEXP (x1, 0, 1);
1571 21233 : if (GET_CODE (x6) != CLOBBER)
1572 : return -1;
1573 20368 : x7 = XEXP (x6, 0);
1574 20368 : if (GET_CODE (x7) != REG
1575 20368 : || REGNO (x7) != 17
1576 40736 : || GET_MODE (x7) != E_CCmode)
1577 : return -1;
1578 20368 : return pattern363 (x2); /* [-1, 3] */
1579 : }
1580 :
1581 : int
1582 68580 : pattern370 (rtx x1)
1583 : {
1584 68580 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1585 68580 : rtx x2, x3, x4, x5, x6, x7, x8;
1586 68580 : int res ATTRIBUTE_UNUSED;
1587 68580 : x2 = XVECEXP (x1, 0, 0);
1588 68580 : x3 = XEXP (x2, 1);
1589 68580 : if (GET_MODE (x3) != E_V2SImode)
1590 : return -1;
1591 494 : x4 = XVECEXP (x1, 0, 1);
1592 494 : if (GET_CODE (x4) != UNSPEC
1593 140 : || XVECLEN (x4, 0) != 1
1594 140 : || XINT (x4, 1) != 111)
1595 : return -1;
1596 140 : x5 = XVECEXP (x4, 0, 0);
1597 140 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1598 : return -1;
1599 140 : x6 = XEXP (x2, 0);
1600 140 : operands[0] = x6;
1601 140 : if (!register_operand (operands[0], E_V2SImode))
1602 : return -1;
1603 140 : x7 = XEXP (x3, 0);
1604 140 : operands[1] = x7;
1605 140 : if (!register_operand (operands[1], E_V2SFmode))
1606 : return -1;
1607 140 : x8 = XEXP (x3, 1);
1608 140 : operands[2] = x8;
1609 140 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
1610 : return -1;
1611 : return 0;
1612 : }
1613 :
1614 : int
1615 525163 : pattern378 (rtx x1)
1616 : {
1617 525163 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1618 525163 : rtx x2, x3, x4, x5, x6, x7, x8;
1619 525163 : int res ATTRIBUTE_UNUSED;
1620 525163 : x2 = XVECEXP (x1, 0, 0);
1621 525163 : x3 = XEXP (x2, 1);
1622 525163 : x4 = XEXP (x3, 0);
1623 525163 : operands[1] = x4;
1624 525163 : x5 = XEXP (x2, 0);
1625 525163 : switch (GET_CODE (x5))
1626 : {
1627 525154 : case REG:
1628 525154 : case SUBREG:
1629 525154 : case MEM:
1630 525154 : operands[0] = x5;
1631 525154 : x6 = XVECEXP (x1, 0, 1);
1632 525154 : switch (GET_CODE (x6))
1633 : {
1634 : case CLOBBER:
1635 : return 0;
1636 :
1637 40961 : case USE:
1638 40961 : return 1;
1639 :
1640 : default:
1641 : return -1;
1642 : }
1643 :
1644 9 : case STRICT_LOW_PART:
1645 9 : x6 = XVECEXP (x1, 0, 1);
1646 9 : if (GET_CODE (x6) != CLOBBER)
1647 : return -1;
1648 9 : x7 = XEXP (x6, 0);
1649 9 : if (GET_CODE (x7) != REG
1650 9 : || REGNO (x7) != 17
1651 18 : || GET_MODE (x7) != E_CCmode)
1652 : return -1;
1653 9 : x8 = XEXP (x5, 0);
1654 9 : operands[0] = x8;
1655 9 : res = pattern377 (x3);
1656 9 : if (res >= 0)
1657 9 : return res + 2; /* [2, 3] */
1658 : return -1;
1659 :
1660 : default:
1661 : return -1;
1662 : }
1663 : }
1664 :
1665 : int
1666 87058 : pattern395 (rtx x1, rtx_code i1)
1667 : {
1668 87058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1669 87058 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
1670 87058 : rtx x10, x11, x12, x13, x14;
1671 87058 : int res ATTRIBUTE_UNUSED;
1672 87058 : x2 = XVECEXP (x1, 0, 1);
1673 87058 : if (GET_CODE (x2) != SET)
1674 : return -1;
1675 87058 : x3 = XEXP (x2, 1);
1676 87058 : if (GET_CODE (x3) != i1)
1677 : return -1;
1678 87058 : x4 = XVECEXP (x1, 0, 3);
1679 87058 : x5 = XEXP (x4, 0);
1680 87058 : if (GET_CODE (x5) != REG
1681 87058 : || REGNO (x5) != 17
1682 174116 : || GET_MODE (x5) != E_CCmode)
1683 : return -1;
1684 87058 : x6 = XVECEXP (x1, 0, 0);
1685 87058 : x7 = XEXP (x6, 0);
1686 87058 : operands[0] = x7;
1687 87058 : x8 = XEXP (x6, 1);
1688 87058 : x9 = XEXP (x8, 0);
1689 87058 : operands[2] = x9;
1690 87058 : x10 = XEXP (x8, 1);
1691 87058 : operands[3] = x10;
1692 87058 : x11 = XEXP (x2, 0);
1693 87058 : operands[1] = x11;
1694 87058 : x12 = XEXP (x3, 0);
1695 87058 : if (!rtx_equal_p (x12, operands[2]))
1696 : return -1;
1697 87058 : x13 = XEXP (x3, 1);
1698 87058 : if (!rtx_equal_p (x13, operands[3]))
1699 : return -1;
1700 87058 : x14 = XVECEXP (x1, 0, 2);
1701 87058 : switch (GET_CODE (x14))
1702 : {
1703 39 : case UNSPEC:
1704 39 : return pattern392 (x1); /* [-1, 1] */
1705 :
1706 87019 : case USE:
1707 87019 : res = pattern394 (x1);
1708 87019 : if (res >= 0)
1709 87019 : return res + 2; /* [2, 4] */
1710 : return -1;
1711 :
1712 : default:
1713 : return -1;
1714 : }
1715 : }
1716 :
1717 : int
1718 6322 : pattern411 (rtx x1)
1719 : {
1720 6322 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1721 6322 : rtx x2, x3, x4;
1722 6322 : int res ATTRIBUTE_UNUSED;
1723 6322 : x2 = XEXP (x1, 0);
1724 6322 : x3 = XEXP (x2, 1);
1725 6322 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
1726 : return -1;
1727 5563 : x4 = XEXP (x2, 0);
1728 5563 : operands[1] = x4;
1729 5563 : if (!int_nonimmediate_operand (operands[1], E_VOIDmode))
1730 : return -1;
1731 3974 : switch (GET_MODE (operands[0]))
1732 : {
1733 203 : case E_QImode:
1734 203 : if (!register_operand (operands[0], E_QImode)
1735 203 : || GET_MODE (x1) != E_QImode
1736 406 : || GET_MODE (x2) != E_QImode)
1737 : return -1;
1738 : return 0;
1739 :
1740 132 : case E_HImode:
1741 132 : if (!register_operand (operands[0], E_HImode)
1742 128 : || GET_MODE (x1) != E_HImode
1743 260 : || GET_MODE (x2) != E_HImode)
1744 : return -1;
1745 : return 1;
1746 :
1747 3431 : case E_SImode:
1748 3431 : if (!register_operand (operands[0], E_SImode)
1749 2272 : || GET_MODE (x1) != E_SImode
1750 5703 : || GET_MODE (x2) != E_SImode)
1751 : return -1;
1752 : return 2;
1753 :
1754 208 : case E_DImode:
1755 208 : if (!register_operand (operands[0], E_DImode)
1756 204 : || GET_MODE (x1) != E_DImode
1757 412 : || GET_MODE (x2) != E_DImode)
1758 : return -1;
1759 : return 3;
1760 :
1761 : default:
1762 : return -1;
1763 : }
1764 : }
1765 :
1766 : int
1767 3745458 : pattern422 (rtx x1)
1768 : {
1769 3745458 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1770 3745458 : rtx x2, x3, x4;
1771 3745458 : int res ATTRIBUTE_UNUSED;
1772 3745458 : x2 = XEXP (x1, 1);
1773 3745458 : x3 = XEXP (x2, 0);
1774 3745458 : if (GET_CODE (x3) != REG
1775 3745458 : || REGNO (x3) != 7)
1776 : return -1;
1777 2211775 : x4 = XEXP (x1, 0);
1778 2211775 : if (GET_CODE (x4) != REG
1779 2211775 : || REGNO (x4) != 7)
1780 11 : return -1;
1781 : return 0;
1782 : }
1783 :
1784 : int
1785 68606 : pattern427 (rtx x1)
1786 : {
1787 68606 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1788 68606 : rtx x2, x3, x4, x5;
1789 68606 : int res ATTRIBUTE_UNUSED;
1790 68606 : x2 = XEXP (x1, 0);
1791 68606 : x3 = XEXP (x2, 0);
1792 68606 : if (GET_MODE (x3) != E_TImode
1793 109 : || !nonimmediate_operand (operands[0], E_TImode)
1794 109 : || GET_MODE (x1) != E_TImode
1795 68715 : || GET_MODE (x2) != E_TImode)
1796 68497 : return -1;
1797 109 : x4 = XEXP (x3, 0);
1798 109 : operands[1] = x4;
1799 109 : if (!nonimmediate_operand (operands[1], E_DImode)
1800 109 : || !const_int_operand (operands[2], E_QImode))
1801 14 : return -1;
1802 95 : x5 = XEXP (x1, 1);
1803 95 : return pattern259 (x5,
1804 : E_DImode,
1805 95 : E_TImode); /* [-1, 1] */
1806 : }
1807 :
1808 : int
1809 173970 : pattern434 (rtx x1)
1810 : {
1811 173970 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1812 173970 : rtx x2, x3, x4, x5;
1813 173970 : int res ATTRIBUTE_UNUSED;
1814 173970 : x2 = XEXP (x1, 0);
1815 173970 : x3 = XEXP (x2, 0);
1816 173970 : x4 = XEXP (x3, 0);
1817 173970 : operands[1] = x4;
1818 173970 : x5 = XEXP (x3, 1);
1819 173970 : operands[2] = x5;
1820 173970 : if (!const248_operand (operands[2], E_VOIDmode))
1821 : return -1;
1822 24013 : return pattern433 (x1); /* [-1, 1] */
1823 : }
1824 :
1825 : int
1826 96 : pattern442 (rtx x1)
1827 : {
1828 96 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1829 96 : rtx x2, x3, x4, x5;
1830 96 : int res ATTRIBUTE_UNUSED;
1831 96 : x2 = XEXP (x1, 0);
1832 96 : if (GET_MODE (x2) != E_SImode)
1833 : return -1;
1834 94 : x3 = XEXP (x2, 0);
1835 94 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
1836 : return -1;
1837 65 : x4 = XEXP (x2, 1);
1838 65 : if (GET_CODE (x4) != CLZ
1839 65 : || GET_MODE (x4) != E_SImode)
1840 : return -1;
1841 65 : x5 = XEXP (x1, 1);
1842 65 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 31])
1843 0 : return -1;
1844 : return 0;
1845 : }
1846 :
1847 : int
1848 3732 : pattern449 (rtx x1, machine_mode i1)
1849 : {
1850 3732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1851 3732 : rtx x2;
1852 3732 : int res ATTRIBUTE_UNUSED;
1853 3732 : if (!nonimmediate_operand (operands[0], i1)
1854 3728 : || GET_MODE (x1) != i1
1855 7460 : || !x86_64_general_operand (operands[1], i1))
1856 10 : return -1;
1857 3722 : x2 = XEXP (x1, 1);
1858 3722 : if (GET_MODE (x2) != i1)
1859 : return -1;
1860 : return 0;
1861 : }
1862 :
1863 : int
1864 6054 : pattern454 (rtx x1, int *pnum_clobbers)
1865 : {
1866 6054 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1867 6054 : rtx x2, x3, x4, x5;
1868 6054 : int res ATTRIBUTE_UNUSED;
1869 6054 : if (pnum_clobbers == NULL)
1870 : return -1;
1871 6052 : x2 = XEXP (x1, 1);
1872 6052 : if (maybe_ne (SUBREG_BYTE (x2), 0)
1873 6052 : || GET_MODE (x2) != E_QImode)
1874 : return -1;
1875 5728 : x3 = XEXP (x2, 0);
1876 5728 : switch (GET_CODE (x3))
1877 : {
1878 907 : case AND:
1879 907 : return pattern453 (x1); /* [-1, 1] */
1880 :
1881 0 : case PLUS:
1882 0 : x4 = XEXP (x3, 0);
1883 0 : operands[2] = x4;
1884 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1885 : return -1;
1886 0 : res = pattern452 (x1);
1887 0 : if (res >= 0)
1888 0 : return res + 2; /* [2, 3] */
1889 : return -1;
1890 :
1891 0 : case MINUS:
1892 0 : x4 = XEXP (x3, 0);
1893 0 : operands[3] = x4;
1894 0 : if (!const_int_operand (operands[3], E_VOIDmode))
1895 : return -1;
1896 0 : x5 = XEXP (x3, 1);
1897 0 : operands[2] = x5;
1898 0 : if (!int_nonimmediate_operand (operands[2], E_VOIDmode))
1899 : return -1;
1900 0 : res = pattern14 (x1);
1901 0 : if (res >= 0)
1902 0 : return res + 4; /* [4, 5] */
1903 : return -1;
1904 :
1905 : default:
1906 : return -1;
1907 : }
1908 : }
1909 :
1910 : int
1911 4187 : pattern466 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
1912 : {
1913 4187 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1914 4187 : rtx x2;
1915 4187 : int res ATTRIBUTE_UNUSED;
1916 4187 : if (!register_operand (operands[0], i2)
1917 4187 : || GET_MODE (x1) != i2)
1918 : return -1;
1919 4026 : x2 = XEXP (x1, 0);
1920 4026 : if (GET_MODE (x2) != i2
1921 4026 : || !register_operand (operands[1], i3)
1922 4022 : || !nonimmediate_operand (operands[2], i3)
1923 4021 : || !nonimm_or_0_operand (operands[3], i2)
1924 7920 : || !register_operand (operands[4], i1))
1925 354 : return -1;
1926 : return 0;
1927 : }
1928 :
1929 : int
1930 1896 : pattern474 (rtx x1)
1931 : {
1932 1896 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
1933 1896 : rtx x2, x3, x4, x5, x6, x7, x8;
1934 1896 : int res ATTRIBUTE_UNUSED;
1935 1896 : x2 = XEXP (x1, 0);
1936 1896 : x3 = XVECEXP (x2, 0, 0);
1937 1896 : operands[1] = x3;
1938 1896 : x4 = XVECEXP (x2, 0, 1);
1939 1896 : operands[2] = x4;
1940 1896 : x5 = XVECEXP (x2, 0, 2);
1941 1896 : operands[3] = x5;
1942 1896 : x6 = XEXP (x1, 1);
1943 1896 : switch (GET_CODE (x6))
1944 : {
1945 628 : case CONST_INT:
1946 628 : case CONST_DOUBLE:
1947 628 : case CONST_VECTOR:
1948 628 : operands[4] = x6;
1949 628 : x7 = XEXP (x1, 2);
1950 628 : if (GET_CODE (x7) != UNSPEC
1951 628 : || XVECLEN (x7, 0) != 1
1952 628 : || XINT (x7, 1) != 224)
1953 : return -1;
1954 628 : x8 = XVECEXP (x7, 0, 0);
1955 628 : operands[5] = x8;
1956 628 : switch (GET_MODE (operands[0]))
1957 : {
1958 94 : case E_V32HFmode:
1959 94 : if (!register_operand (operands[0], E_V32HFmode)
1960 80 : || GET_MODE (x1) != E_V32HFmode
1961 80 : || GET_MODE (x2) != E_V32HFmode
1962 80 : || !vector_operand (operands[1], E_V32HFmode)
1963 80 : || !vector_operand (operands[2], E_V32HFmode)
1964 80 : || !vector_operand (operands[3], E_V32HFmode)
1965 80 : || !const0_operand (operands[4], E_V32HFmode)
1966 80 : || GET_MODE (x7) != E_SImode
1967 174 : || !register_operand (operands[5], E_HImode))
1968 40 : return -1;
1969 : return 0;
1970 :
1971 266 : case E_V16HFmode:
1972 266 : if (pattern472 (x1,
1973 : E_HImode,
1974 : E_V16HFmode) != 0)
1975 : return -1;
1976 : return 1;
1977 :
1978 268 : case E_V8HFmode:
1979 268 : if (pattern472 (x1,
1980 : E_QImode,
1981 : E_V8HFmode) != 0)
1982 : return -1;
1983 : return 2;
1984 :
1985 : default:
1986 : return -1;
1987 : }
1988 :
1989 1268 : case REG:
1990 1268 : case SUBREG:
1991 1268 : case MEM:
1992 1268 : x7 = XEXP (x1, 2);
1993 1268 : switch (GET_CODE (x7))
1994 : {
1995 1222 : case UNSPEC:
1996 1222 : if (XVECLEN (x7, 0) != 1
1997 1222 : || XINT (x7, 1) != 224)
1998 : return -1;
1999 1222 : x8 = XVECEXP (x7, 0, 0);
2000 1222 : operands[4] = x8;
2001 1222 : if (!rtx_equal_p (x6, operands[1]))
2002 : return -1;
2003 1222 : switch (GET_MODE (operands[0]))
2004 : {
2005 174 : case E_V32HFmode:
2006 174 : if (!register_operand (operands[0], E_V32HFmode)
2007 160 : || GET_MODE (x1) != E_V32HFmode
2008 160 : || GET_MODE (x2) != E_V32HFmode
2009 160 : || !vector_operand (operands[1], E_V32HFmode)
2010 158 : || !vector_operand (operands[2], E_V32HFmode)
2011 158 : || !vector_operand (operands[3], E_V32HFmode)
2012 158 : || GET_MODE (x7) != E_SImode
2013 332 : || !register_operand (operands[4], E_HImode))
2014 66 : return -1;
2015 : return 3;
2016 :
2017 522 : case E_V16HFmode:
2018 522 : if (pattern473 (x1,
2019 : E_HImode,
2020 : E_V16HFmode) != 0)
2021 : return -1;
2022 : return 4;
2023 :
2024 526 : case E_V8HFmode:
2025 526 : if (pattern473 (x1,
2026 : E_QImode,
2027 : E_V8HFmode) != 0)
2028 : return -1;
2029 : return 5;
2030 :
2031 : default:
2032 : return -1;
2033 : }
2034 :
2035 46 : case CONST_INT:
2036 46 : if (XWINT (x7, 0) != 3L
2037 46 : || !register_operand (operands[0], E_V8HFmode)
2038 35 : || GET_MODE (x1) != E_V8HFmode
2039 35 : || GET_MODE (x2) != E_V8HFmode
2040 35 : || !vector_operand (operands[1], E_V8HFmode)
2041 35 : || !vector_operand (operands[2], E_V8HFmode)
2042 35 : || !vector_operand (operands[3], E_V8HFmode)
2043 81 : || !rtx_equal_p (x6, operands[2]))
2044 11 : return -1;
2045 : return 6;
2046 :
2047 : default:
2048 : return -1;
2049 : }
2050 :
2051 : default:
2052 : return -1;
2053 : }
2054 : }
2055 :
2056 : int
2057 1662 : pattern507 (rtx x1, machine_mode i1, machine_mode i2)
2058 : {
2059 1662 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2060 1662 : rtx x2, x3, x4;
2061 1662 : int res ATTRIBUTE_UNUSED;
2062 1662 : if (!register_operand (operands[0], i1)
2063 1662 : || GET_MODE (x1) != i1)
2064 : return -1;
2065 1648 : x2 = XEXP (x1, 0);
2066 1648 : if (GET_MODE (x2) != i2)
2067 : return -1;
2068 1648 : x3 = XEXP (x2, 0);
2069 1648 : if (GET_MODE (x3) != i2)
2070 : return -1;
2071 1648 : x4 = XEXP (x2, 1);
2072 1648 : if (GET_MODE (x4) != i2
2073 1648 : || !nonimm_or_0_operand (operands[2], i1))
2074 20 : return -1;
2075 1628 : switch (GET_MODE (operands[1]))
2076 : {
2077 803 : case E_V4SImode:
2078 803 : if (!register_operand (operands[1], E_V4SImode))
2079 : return -1;
2080 : return 0;
2081 :
2082 825 : case E_V4DImode:
2083 825 : if (!register_operand (operands[1], E_V4DImode))
2084 : return -1;
2085 : return 1;
2086 :
2087 : default:
2088 : return -1;
2089 : }
2090 : }
2091 :
2092 : int
2093 755 : pattern513 (machine_mode i1)
2094 : {
2095 755 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2096 755 : int res ATTRIBUTE_UNUSED;
2097 755 : if (!const0_operand (operands[2], i1))
2098 : return -1;
2099 753 : switch (GET_MODE (operands[1]))
2100 : {
2101 357 : case E_V4DImode:
2102 357 : if (!register_operand (operands[1], E_V4DImode))
2103 : return -1;
2104 : return 0;
2105 :
2106 396 : case E_V4SImode:
2107 396 : if (!register_operand (operands[1], E_V4SImode))
2108 : return -1;
2109 : return 1;
2110 :
2111 : default:
2112 : return -1;
2113 : }
2114 : }
2115 :
2116 : int
2117 991 : pattern519 (rtx x1)
2118 : {
2119 991 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2120 991 : int res ATTRIBUTE_UNUSED;
2121 991 : if (!register_operand (operands[0], E_V2DFmode)
2122 991 : || GET_MODE (x1) != E_V2DFmode)
2123 : return -1;
2124 828 : switch (GET_MODE (operands[1]))
2125 : {
2126 620 : case E_V2SImode:
2127 620 : if (!nonimmediate_operand (operands[1], E_V2SImode))
2128 : return -1;
2129 : return 0;
2130 :
2131 200 : case E_V2DImode:
2132 200 : if (!nonimmediate_operand (operands[1], E_V2DImode))
2133 : return -1;
2134 : return 1;
2135 :
2136 : default:
2137 : return -1;
2138 : }
2139 : }
2140 :
2141 : int
2142 6 : pattern524 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
2143 : {
2144 6 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2145 6 : rtx x2, x3;
2146 6 : int res ATTRIBUTE_UNUSED;
2147 6 : if (!nonimmediate_operand (operands[0], i3)
2148 6 : || GET_MODE (x1) != i3)
2149 : return -1;
2150 6 : x2 = XEXP (x1, 0);
2151 6 : if (GET_MODE (x2) != i2)
2152 : return -1;
2153 6 : x3 = XEXP (x2, 0);
2154 6 : if (GET_MODE (x3) != i1
2155 6 : || !register_operand (operands[1], i1)
2156 12 : || !permvar_truncate_operand (operands[2], i1))
2157 2 : return -1;
2158 : return 0;
2159 : }
2160 :
2161 : int
2162 16883 : pattern532 (rtx x1, machine_mode i1)
2163 : {
2164 16883 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2165 16883 : rtx x2, x3;
2166 16883 : int res ATTRIBUTE_UNUSED;
2167 16883 : if (!register_operand (operands[0], i1)
2168 16883 : || GET_MODE (x1) != i1)
2169 : return -1;
2170 16874 : x2 = XEXP (x1, 0);
2171 16874 : if (GET_MODE (x2) != i1
2172 16874 : || !regmem_or_bitnot_regmem_operand (operands[1], i1)
2173 33701 : || !regmem_or_bitnot_regmem_operand (operands[2], i1))
2174 65 : return -1;
2175 16809 : x3 = XEXP (x1, 1);
2176 16809 : if (GET_MODE (x3) != i1
2177 16809 : || !regmem_or_bitnot_regmem_operand (operands[3], i1)
2178 33618 : || !regmem_or_bitnot_regmem_operand (operands[4], i1))
2179 12 : return -1;
2180 : return 0;
2181 : }
2182 :
2183 : int
2184 149898 : pattern537 (rtx x1)
2185 : {
2186 149898 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2187 149898 : rtx x2, x3, x4, x5, x6, x7;
2188 149898 : int res ATTRIBUTE_UNUSED;
2189 149898 : x2 = XEXP (x1, 0);
2190 149898 : x3 = XEXP (x2, 0);
2191 149898 : x4 = XEXP (x3, 0);
2192 149898 : operands[1] = x4;
2193 149898 : x5 = XEXP (x3, 1);
2194 149898 : operands[2] = x5;
2195 149898 : x6 = XEXP (x2, 1);
2196 149898 : operands[3] = x6;
2197 149898 : x7 = XEXP (x1, 1);
2198 149898 : operands[4] = x7;
2199 149898 : switch (GET_MODE (operands[0]))
2200 : {
2201 0 : case E_V64QImode:
2202 0 : return pattern536 (x1,
2203 0 : E_V64QImode); /* [-1, 0] */
2204 :
2205 224 : case E_V32QImode:
2206 224 : if (pattern536 (x1,
2207 : E_V32QImode) != 0)
2208 : return -1;
2209 : return 1;
2210 :
2211 230 : case E_V16QImode:
2212 230 : if (pattern536 (x1,
2213 : E_V16QImode) != 0)
2214 : return -1;
2215 : return 2;
2216 :
2217 0 : case E_V32HImode:
2218 0 : if (pattern536 (x1,
2219 : E_V32HImode) != 0)
2220 : return -1;
2221 : return 3;
2222 :
2223 12 : case E_V16HImode:
2224 12 : if (pattern536 (x1,
2225 : E_V16HImode) != 0)
2226 : return -1;
2227 : return 4;
2228 :
2229 621 : case E_V8HImode:
2230 621 : if (pattern536 (x1,
2231 : E_V8HImode) != 0)
2232 : return -1;
2233 : return 5;
2234 :
2235 125 : case E_V16SImode:
2236 125 : if (pattern536 (x1,
2237 : E_V16SImode) != 0)
2238 : return -1;
2239 : return 6;
2240 :
2241 1436 : case E_V8SImode:
2242 1436 : if (pattern536 (x1,
2243 : E_V8SImode) != 0)
2244 : return -1;
2245 : return 7;
2246 :
2247 5975 : case E_V4SImode:
2248 5975 : if (pattern536 (x1,
2249 : E_V4SImode) != 0)
2250 : return -1;
2251 : return 8;
2252 :
2253 0 : case E_V8DImode:
2254 0 : if (pattern536 (x1,
2255 : E_V8DImode) != 0)
2256 : return -1;
2257 : return 9;
2258 :
2259 230 : case E_V4DImode:
2260 230 : if (pattern536 (x1,
2261 : E_V4DImode) != 0)
2262 : return -1;
2263 : return 10;
2264 :
2265 1176 : case E_V2DImode:
2266 1176 : if (pattern536 (x1,
2267 : E_V2DImode) != 0)
2268 : return -1;
2269 : return 11;
2270 :
2271 : default:
2272 : return -1;
2273 : }
2274 : }
2275 :
2276 : int
2277 12085 : pattern544 (rtx x1, machine_mode i1)
2278 : {
2279 12085 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2280 12085 : rtx x2;
2281 12085 : int res ATTRIBUTE_UNUSED;
2282 12085 : if (!register_operand (operands[0], i1)
2283 12085 : || GET_MODE (x1) != i1)
2284 : return -1;
2285 11825 : x2 = XEXP (x1, 0);
2286 11825 : switch (GET_MODE (x2))
2287 : {
2288 551 : case E_V4QImode:
2289 551 : if (!register_operand (operands[1], E_V16QImode))
2290 : return -1;
2291 : return 0;
2292 :
2293 10314 : case E_V4HImode:
2294 10314 : if (!register_operand (operands[1], E_V8HImode))
2295 : return -1;
2296 : return 1;
2297 :
2298 : default:
2299 : return -1;
2300 : }
2301 : }
2302 :
2303 : int
2304 55 : pattern548 (rtx x1)
2305 : {
2306 55 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2307 55 : rtx x2, x3, x4, x5;
2308 55 : int res ATTRIBUTE_UNUSED;
2309 55 : x2 = XVECEXP (x1, 0, 1);
2310 55 : x3 = XVECEXP (x2, 0, 0);
2311 55 : operands[2] = x3;
2312 55 : switch (GET_MODE (operands[0]))
2313 : {
2314 28 : case E_SImode:
2315 28 : x4 = XVECEXP (x1, 0, 0);
2316 28 : x5 = XEXP (x4, 1);
2317 28 : return pattern547 (x5,
2318 28 : E_SImode); /* [-1, 0] */
2319 :
2320 27 : case E_DImode:
2321 27 : x4 = XVECEXP (x1, 0, 0);
2322 27 : x5 = XEXP (x4, 1);
2323 27 : if (pattern547 (x5,
2324 : E_DImode) != 0)
2325 : return -1;
2326 : return 1;
2327 :
2328 : default:
2329 : return -1;
2330 : }
2331 : }
2332 :
2333 : int
2334 1200 : pattern555 (rtx x1)
2335 : {
2336 1200 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2337 1200 : rtx x2, x3, x4, x5, x6, x7, x8;
2338 1200 : int res ATTRIBUTE_UNUSED;
2339 1200 : x2 = XVECEXP (x1, 0, 0);
2340 1200 : x3 = XEXP (x2, 1);
2341 1200 : if (GET_MODE (x3) != E_V2SFmode)
2342 : return -1;
2343 140 : x4 = XVECEXP (x1, 0, 1);
2344 140 : if (GET_CODE (x4) != UNSPEC
2345 140 : || XVECLEN (x4, 0) != 1
2346 140 : || XINT (x4, 1) != 111)
2347 : return -1;
2348 140 : x5 = XVECEXP (x4, 0, 0);
2349 140 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2350 : return -1;
2351 140 : x6 = XEXP (x2, 0);
2352 140 : operands[0] = x6;
2353 140 : if (!register_operand (operands[0], E_V2SFmode))
2354 : return -1;
2355 140 : x7 = XVECEXP (x3, 0, 0);
2356 140 : operands[1] = x7;
2357 140 : if (!register_operand (operands[1], E_V2SFmode))
2358 : return -1;
2359 126 : x8 = XVECEXP (x3, 0, 1);
2360 126 : operands[2] = x8;
2361 126 : if (!nonimmediate_operand (operands[2], E_V2SFmode))
2362 : return -1;
2363 : return 0;
2364 : }
2365 :
2366 : int
2367 308362 : pattern563 (rtx x1, machine_mode i1, machine_mode i2)
2368 : {
2369 308362 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2370 308362 : rtx x2, x3;
2371 308362 : int res ATTRIBUTE_UNUSED;
2372 308362 : x2 = XEXP (x1, 0);
2373 308362 : if (GET_MODE (x2) != i2
2374 308362 : || !register_operand (operands[1], i1))
2375 14341 : return -1;
2376 294021 : x3 = XEXP (x1, 1);
2377 294021 : if (GET_MODE (x3) != i2
2378 294021 : || !nonimmediate_operand (operands[2], i1))
2379 985 : return -1;
2380 : return 0;
2381 : }
2382 :
2383 : int
2384 3436 : pattern569 (rtx x1, machine_mode i1)
2385 : {
2386 3436 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2387 3436 : int res ATTRIBUTE_UNUSED;
2388 3436 : if (!nonimmediate_operand (operands[0], i1)
2389 3436 : || GET_MODE (x1) != i1
2390 3436 : || !nonimmediate_operand (operands[1], i1)
2391 6845 : || !nonimmediate_or_x86_64_const_vector_operand (operands[2], i1))
2392 27 : return -1;
2393 : return 0;
2394 : }
2395 :
2396 : int
2397 42723 : pattern574 (rtx x1)
2398 : {
2399 42723 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2400 42723 : rtx x2, x3, x4, x5, x6;
2401 42723 : int res ATTRIBUTE_UNUSED;
2402 42723 : x2 = XVECEXP (x1, 0, 1);
2403 42723 : if (GET_CODE (x2) != CLOBBER)
2404 : return -1;
2405 40916 : x3 = XEXP (x2, 0);
2406 40916 : if (GET_CODE (x3) != REG
2407 40916 : || REGNO (x3) != 17
2408 81832 : || GET_MODE (x3) != E_CCmode)
2409 : return -1;
2410 40916 : x4 = XVECEXP (x1, 0, 0);
2411 40916 : x5 = XEXP (x4, 0);
2412 40916 : operands[0] = x5;
2413 40916 : if (!register_operand (operands[0], E_DImode))
2414 : return -1;
2415 40914 : x6 = XEXP (x4, 1);
2416 40914 : if (GET_MODE (x6) != E_DImode)
2417 : return -1;
2418 : return 0;
2419 : }
2420 :
2421 : int
2422 119 : pattern581 (rtx x1)
2423 : {
2424 119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2425 119 : int res ATTRIBUTE_UNUSED;
2426 119 : switch (GET_MODE (operands[0]))
2427 : {
2428 24 : case E_QImode:
2429 24 : if (!register_operand (operands[0], E_QImode)
2430 24 : || GET_MODE (x1) != E_QImode
2431 48 : || !const_int_operand (operands[1], E_QImode))
2432 0 : return -1;
2433 : return 0;
2434 :
2435 0 : case E_HImode:
2436 0 : if (!register_operand (operands[0], E_HImode)
2437 0 : || GET_MODE (x1) != E_HImode
2438 0 : || !const_int_operand (operands[1], E_HImode))
2439 0 : return -1;
2440 : return 1;
2441 :
2442 42 : case E_SImode:
2443 42 : if (!register_operand (operands[0], E_SImode)
2444 39 : || GET_MODE (x1) != E_SImode
2445 81 : || !const_int_operand (operands[1], E_SImode))
2446 3 : return -1;
2447 : return 2;
2448 :
2449 53 : case E_DImode:
2450 53 : if (!register_operand (operands[0], E_DImode)
2451 53 : || GET_MODE (x1) != E_DImode
2452 106 : || !const_int_operand (operands[1], E_DImode))
2453 0 : return -1;
2454 : return 3;
2455 :
2456 : default:
2457 : return -1;
2458 : }
2459 : }
2460 :
2461 : int
2462 53918 : pattern592 (rtx x1)
2463 : {
2464 53918 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2465 53918 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2466 53918 : int res ATTRIBUTE_UNUSED;
2467 53918 : x2 = XVECEXP (x1, 0, 1);
2468 53918 : if (GET_CODE (x2) != USE)
2469 : return -1;
2470 53916 : x3 = XVECEXP (x1, 0, 2);
2471 53916 : x4 = XEXP (x3, 0);
2472 53916 : if (GET_CODE (x4) != REG
2473 53916 : || REGNO (x4) != 17
2474 107832 : || GET_MODE (x4) != E_CCmode)
2475 : return -1;
2476 53916 : x5 = XVECEXP (x1, 0, 0);
2477 53916 : x6 = XEXP (x5, 0);
2478 53916 : operands[0] = x6;
2479 53916 : x7 = XEXP (x5, 1);
2480 53916 : x8 = XEXP (x7, 0);
2481 53916 : operands[1] = x8;
2482 53916 : x9 = XEXP (x2, 0);
2483 53916 : operands[2] = x9;
2484 53916 : switch (GET_MODE (operands[0]))
2485 : {
2486 258 : case E_HFmode:
2487 258 : return pattern226 (x7,
2488 : E_V8HFmode,
2489 258 : E_HFmode); /* [-1, 0] */
2490 :
2491 20426 : case E_SFmode:
2492 20426 : if (GET_MODE (x7) != E_SFmode)
2493 : return -1;
2494 : return 1;
2495 :
2496 33232 : case E_DFmode:
2497 33232 : if (GET_MODE (x7) != E_DFmode)
2498 : return -1;
2499 : return 2;
2500 :
2501 : default:
2502 : return -1;
2503 : }
2504 : }
2505 :
2506 : int
2507 31829 : pattern600 (rtx x1)
2508 : {
2509 31829 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2510 31829 : rtx x2, x3, x4, x5, x6;
2511 31829 : int res ATTRIBUTE_UNUSED;
2512 31829 : x2 = XVECEXP (x1, 0, 2);
2513 31829 : if (!const_0_to_7_operand (x2, E_SImode))
2514 : return -1;
2515 30041 : x3 = XVECEXP (x1, 0, 0);
2516 30041 : switch (GET_CODE (x3))
2517 : {
2518 28065 : case CONST_INT:
2519 28065 : case CONST_WIDE_INT:
2520 28065 : case CONST_POLY_INT:
2521 28065 : case CONST_FIXED:
2522 28065 : case CONST_DOUBLE:
2523 28065 : case CONST_VECTOR:
2524 28065 : case CONST:
2525 28065 : case REG:
2526 28065 : case SUBREG:
2527 28065 : case MEM:
2528 28065 : case LABEL_REF:
2529 28065 : case SYMBOL_REF:
2530 28065 : case HIGH:
2531 28065 : operands[1] = x3;
2532 28065 : x4 = XVECEXP (x1, 0, 1);
2533 28065 : operands[2] = x4;
2534 28065 : operands[3] = x2;
2535 28065 : switch (GET_MODE (operands[0]))
2536 : {
2537 1110 : case E_DImode:
2538 1110 : return pattern596 (x1); /* [-1, 0] */
2539 :
2540 2363 : case E_SImode:
2541 2363 : res = pattern597 (x1);
2542 2363 : if (res >= 0)
2543 2154 : return res + 1; /* [1, 2] */
2544 : return -1;
2545 :
2546 12039 : case E_HImode:
2547 12039 : res = pattern598 (x1);
2548 12039 : if (res >= 0)
2549 11100 : return res + 3; /* [3, 5] */
2550 : return -1;
2551 :
2552 12158 : case E_QImode:
2553 12158 : res = pattern599 (x1);
2554 12158 : if (res >= 0)
2555 10269 : return res + 6; /* [6, 11] */
2556 : return -1;
2557 :
2558 : default:
2559 : return -1;
2560 : }
2561 :
2562 36 : case US_MINUS:
2563 36 : x5 = XEXP (x3, 0);
2564 36 : operands[1] = x5;
2565 36 : x6 = XEXP (x3, 1);
2566 36 : operands[2] = x6;
2567 36 : x4 = XVECEXP (x1, 0, 1);
2568 36 : operands[3] = x4;
2569 36 : operands[4] = x2;
2570 36 : switch (GET_MODE (operands[0]))
2571 : {
2572 6 : case E_DImode:
2573 6 : if (pattern73 (x1,
2574 : E_V64QImode,
2575 : E_DImode) != 0)
2576 : return -1;
2577 : return 12;
2578 :
2579 12 : case E_HImode:
2580 12 : res = pattern72 (x1);
2581 12 : if (res >= 0)
2582 12 : return res + 13; /* [13, 14] */
2583 : return -1;
2584 :
2585 12 : case E_SImode:
2586 12 : res = pattern304 (x1);
2587 12 : if (res >= 0)
2588 12 : return res + 15; /* [15, 16] */
2589 : return -1;
2590 :
2591 6 : case E_QImode:
2592 6 : if (pattern73 (x1,
2593 : E_V8HImode,
2594 : E_QImode) != 0)
2595 : return -1;
2596 : return 17;
2597 :
2598 : default:
2599 : return -1;
2600 : }
2601 :
2602 : default:
2603 : return -1;
2604 : }
2605 : }
2606 :
2607 : int
2608 1583 : pattern624 (rtx x1, int *pnum_clobbers, machine_mode i1)
2609 : {
2610 1583 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2611 1583 : int res ATTRIBUTE_UNUSED;
2612 1583 : if (pnum_clobbers == NULL
2613 1561 : || !register_operand (operands[0], i1)
2614 1316 : || GET_MODE (x1) != i1
2615 2899 : || !register_operand (operands[1], i1))
2616 1097 : return -1;
2617 : return 0;
2618 : }
2619 :
2620 : int
2621 584444 : pattern630 (rtx x1, machine_mode i1)
2622 : {
2623 584444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2624 584444 : int res ATTRIBUTE_UNUSED;
2625 584444 : if (!register_operand (operands[0], i1)
2626 558760 : || GET_MODE (x1) != i1
2627 558760 : || !nonimmediate_operand (operands[1], i1)
2628 1119693 : || !x86_64_general_operand (operands[2], i1))
2629 173407 : return -1;
2630 : return 0;
2631 : }
2632 :
2633 : int
2634 656953 : pattern634 (rtx x1)
2635 : {
2636 656953 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2637 656953 : rtx x2, x3, x4, x5;
2638 656953 : int res ATTRIBUTE_UNUSED;
2639 656953 : x2 = XEXP (x1, 1);
2640 656953 : if (GET_CODE (x2) != SUBREG
2641 256633 : || maybe_ne (SUBREG_BYTE (x2), 0)
2642 913586 : || GET_MODE (x2) != E_QImode)
2643 : return -1;
2644 254646 : x3 = XEXP (x2, 0);
2645 254646 : switch (GET_CODE (x3))
2646 : {
2647 18112 : case AND:
2648 18112 : return pattern453 (x1); /* [-1, 1] */
2649 :
2650 0 : case PLUS:
2651 0 : res = pattern453 (x1);
2652 0 : if (res >= 0)
2653 0 : return res + 2; /* [2, 3] */
2654 : return -1;
2655 :
2656 0 : case MINUS:
2657 0 : x4 = XEXP (x3, 0);
2658 0 : operands[3] = x4;
2659 0 : if (!const_int_operand (operands[3], E_VOIDmode))
2660 : return -1;
2661 0 : x5 = XEXP (x3, 1);
2662 0 : operands[2] = x5;
2663 0 : if (!int248_register_operand (operands[2], E_VOIDmode))
2664 : return -1;
2665 0 : res = pattern14 (x1);
2666 0 : if (res >= 0)
2667 0 : return res + 4; /* [4, 5] */
2668 : return -1;
2669 :
2670 : default:
2671 : return -1;
2672 : }
2673 : }
2674 :
2675 : int
2676 13646 : pattern648 (rtx x1)
2677 : {
2678 13646 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2679 13646 : rtx x2, x3;
2680 13646 : int res ATTRIBUTE_UNUSED;
2681 13646 : x2 = XEXP (x1, 2);
2682 13646 : switch (GET_CODE (x2))
2683 : {
2684 11254 : case REG:
2685 11254 : case SUBREG:
2686 11254 : operands[4] = x2;
2687 11254 : switch (GET_MODE (operands[0]))
2688 : {
2689 : case E_V32HFmode:
2690 : return 0;
2691 :
2692 1524 : case E_V16HFmode:
2693 1524 : return 1;
2694 :
2695 996 : case E_V8HFmode:
2696 996 : return 2;
2697 :
2698 695 : case E_V16SFmode:
2699 695 : return 3;
2700 :
2701 1086 : case E_V8SFmode:
2702 1086 : return 4;
2703 :
2704 868 : case E_V4SFmode:
2705 868 : return 5;
2706 :
2707 519 : case E_V8DFmode:
2708 519 : return 6;
2709 :
2710 1146 : case E_V4DFmode:
2711 1146 : return 7;
2712 :
2713 868 : case E_V2DFmode:
2714 868 : return 8;
2715 :
2716 1044 : case E_V32BFmode:
2717 1044 : return 9;
2718 :
2719 1060 : case E_V16BFmode:
2720 1060 : return 10;
2721 :
2722 1044 : case E_V8BFmode:
2723 1044 : return 11;
2724 :
2725 : default:
2726 : return -1;
2727 : }
2728 :
2729 1894 : case CONST_INT:
2730 1894 : if (XWINT (x2, 0) != 1L)
2731 : return -1;
2732 1362 : x3 = XEXP (x1, 1);
2733 1362 : if (!rtx_equal_p (x3, operands[1]))
2734 : return -1;
2735 1270 : switch (GET_MODE (operands[0]))
2736 : {
2737 : case E_V8HFmode:
2738 : return 12;
2739 :
2740 : case E_V4SFmode:
2741 : return 13;
2742 :
2743 : case E_V2DFmode:
2744 : return 14;
2745 :
2746 : default:
2747 : return -1;
2748 : }
2749 :
2750 : default:
2751 : return -1;
2752 : }
2753 : }
2754 :
2755 : int
2756 4875 : pattern660 (rtx x1)
2757 : {
2758 4875 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2759 4875 : rtx x2, x3, x4, x5, x6, x7, x8;
2760 4875 : int res ATTRIBUTE_UNUSED;
2761 4875 : x2 = XVECEXP (x1, 0, 0);
2762 4875 : x3 = XEXP (x2, 0);
2763 4875 : x4 = XEXP (x3, 0);
2764 4875 : operands[1] = x4;
2765 4875 : x5 = XEXP (x3, 1);
2766 4875 : operands[2] = x5;
2767 4875 : x6 = XVECEXP (x1, 0, 1);
2768 4875 : if (!const_4_or_8_to_11_operand (x6, E_SImode))
2769 : return -1;
2770 4875 : x7 = XEXP (x2, 2);
2771 4875 : switch (GET_CODE (x7))
2772 : {
2773 3023 : case REG:
2774 3023 : case SUBREG:
2775 3023 : operands[4] = x7;
2776 3023 : x8 = XEXP (x2, 1);
2777 3023 : operands[3] = x8;
2778 3023 : operands[5] = x6;
2779 3023 : switch (GET_MODE (operands[0]))
2780 : {
2781 881 : case E_V32HFmode:
2782 881 : return pattern657 (x1,
2783 : E_V32HFmode,
2784 881 : E_SImode); /* [-1, 0] */
2785 :
2786 0 : case E_V16HFmode:
2787 0 : if (pattern657 (x1,
2788 : E_V16HFmode,
2789 : E_HImode) != 0)
2790 : return -1;
2791 : return 1;
2792 :
2793 0 : case E_V8HFmode:
2794 0 : if (pattern657 (x1,
2795 : E_V8HFmode,
2796 : E_QImode) != 0)
2797 : return -1;
2798 : return 2;
2799 :
2800 1074 : case E_V16SFmode:
2801 1074 : if (pattern657 (x1,
2802 : E_V16SFmode,
2803 : E_HImode) != 0)
2804 : return -1;
2805 : return 3;
2806 :
2807 0 : case E_V8SFmode:
2808 0 : if (pattern657 (x1,
2809 : E_V8SFmode,
2810 : E_QImode) != 0)
2811 : return -1;
2812 : return 4;
2813 :
2814 0 : case E_V4SFmode:
2815 0 : if (pattern657 (x1,
2816 : E_V4SFmode,
2817 : E_QImode) != 0)
2818 : return -1;
2819 : return 5;
2820 :
2821 1068 : case E_V8DFmode:
2822 1068 : if (pattern657 (x1,
2823 : E_V8DFmode,
2824 : E_QImode) != 0)
2825 : return -1;
2826 : return 6;
2827 :
2828 0 : case E_V4DFmode:
2829 0 : if (pattern657 (x1,
2830 : E_V4DFmode,
2831 : E_QImode) != 0)
2832 : return -1;
2833 : return 7;
2834 :
2835 0 : case E_V2DFmode:
2836 0 : if (pattern657 (x1,
2837 : E_V2DFmode,
2838 : E_QImode) != 0)
2839 : return -1;
2840 : return 8;
2841 :
2842 : default:
2843 : return -1;
2844 : }
2845 :
2846 1824 : case CONST_INT:
2847 1824 : res = pattern659 (x1);
2848 1824 : if (res >= 0)
2849 1667 : return res + 9; /* [9, 11] */
2850 : return -1;
2851 :
2852 : default:
2853 : return -1;
2854 : }
2855 : }
2856 :
2857 : int
2858 163053 : pattern680 (rtx x1, machine_mode i1)
2859 : {
2860 163053 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2861 163053 : int res ATTRIBUTE_UNUSED;
2862 163053 : if (!register_operand (operands[0], i1)
2863 161771 : || GET_MODE (x1) != i1
2864 161765 : || !register_operand (operands[1], i1)
2865 284799 : || !vector_operand (operands[2], i1))
2866 68798 : return -1;
2867 : return 0;
2868 : }
2869 :
2870 : int
2871 181 : pattern685 (rtx x1, machine_mode i1)
2872 : {
2873 181 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2874 181 : rtx x2;
2875 181 : int res ATTRIBUTE_UNUSED;
2876 181 : if (!register_operand (operands[0], i1)
2877 181 : || GET_MODE (x1) != i1)
2878 : return -1;
2879 163 : x2 = XEXP (x1, 0);
2880 163 : if (GET_MODE (x2) != i1
2881 163 : || !ieee_maxmin_comparison_operator (operands[1], i1)
2882 163 : || !nonimmediate_operand (operands[2], i1)
2883 146 : || !const0_operand (operands[3], i1)
2884 205 : || !nonimmediate_operand (operands[4], i1))
2885 121 : return -1;
2886 : return 0;
2887 : }
2888 :
2889 : int
2890 26 : pattern690 (rtx x1)
2891 : {
2892 26 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2893 26 : rtx x2, x3, x4, x5, x6, x7;
2894 26 : int res ATTRIBUTE_UNUSED;
2895 26 : x2 = XEXP (x1, 0);
2896 26 : x3 = XEXP (x2, 0);
2897 26 : x4 = XEXP (x3, 0);
2898 26 : x5 = XEXP (x4, 0);
2899 26 : x6 = XEXP (x5, 0);
2900 26 : operands[1] = x6;
2901 26 : if (!memory_operand (operands[1], E_SImode))
2902 : return -1;
2903 16 : x7 = XEXP (x2, 1);
2904 16 : switch (XVECLEN (x7, 0))
2905 : {
2906 10 : case 4:
2907 10 : return pattern687 (x1,
2908 : E_V16QImode,
2909 10 : E_V4QImode); /* [-1, 1] */
2910 :
2911 6 : case 2:
2912 6 : if (pattern688 (x1,
2913 : E_V2HImode,
2914 : E_V8HImode) != 0)
2915 : return -1;
2916 : return 2;
2917 :
2918 : default:
2919 : return -1;
2920 : }
2921 : }
2922 :
2923 : int
2924 1410 : pattern697 (rtx x1)
2925 : {
2926 1410 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2927 1410 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
2928 1410 : rtx x10, x11;
2929 1410 : int res ATTRIBUTE_UNUSED;
2930 1410 : x2 = XVECEXP (x1, 0, 0);
2931 1410 : x3 = XEXP (x2, 1);
2932 1410 : x4 = XEXP (x3, 0);
2933 1410 : x5 = XEXP (x4, 1);
2934 1410 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
2935 : return -1;
2936 1259 : x6 = XEXP (x3, 1);
2937 1259 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
2938 : return -1;
2939 1259 : x7 = XVECEXP (x1, 0, 1);
2940 1259 : if (GET_CODE (x7) != CLOBBER)
2941 : return -1;
2942 755 : x8 = XEXP (x7, 0);
2943 755 : if (GET_CODE (x8) != REG
2944 755 : || REGNO (x8) != 17
2945 1259 : || GET_MODE (x8) != E_CCmode)
2946 : return -1;
2947 472 : x9 = XEXP (x2, 0);
2948 472 : operands[0] = x9;
2949 472 : if (!register_operand (operands[0], E_QImode)
2950 472 : || GET_MODE (x3) != E_QImode)
2951 : return -1;
2952 468 : x10 = XEXP (x4, 0);
2953 468 : operands[1] = x10;
2954 468 : x11 = XEXP (x4, 2);
2955 468 : operands[2] = x11;
2956 468 : if (!register_operand (operands[2], E_QImode))
2957 : return -1;
2958 412 : switch (GET_MODE (x4))
2959 : {
2960 127 : case E_SImode:
2961 127 : if (!register_operand (operands[1], E_SImode))
2962 : return -1;
2963 : return 0;
2964 :
2965 285 : case E_DImode:
2966 285 : if (!register_operand (operands[1], E_DImode))
2967 : return -1;
2968 : return 1;
2969 :
2970 : default:
2971 : return -1;
2972 : }
2973 : }
2974 :
2975 : int
2976 195 : pattern708 (rtx x1, machine_mode i1)
2977 : {
2978 195 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2979 195 : int res ATTRIBUTE_UNUSED;
2980 195 : if (!register_operand (operands[0], i1)
2981 179 : || GET_MODE (x1) != i1
2982 179 : || !register_operand (operands[1], i1)
2983 310 : || !register_operand (operands[2], i1))
2984 136 : return -1;
2985 : return 0;
2986 : }
2987 :
2988 : int
2989 7961 : pattern717 (rtx x1, int i1, int i2)
2990 : {
2991 7961 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
2992 7961 : rtx x2, x3, x4, x5, x6, x7, x8;
2993 7961 : int res ATTRIBUTE_UNUSED;
2994 7961 : x2 = XVECEXP (x1, 0, 1);
2995 7961 : if (GET_CODE (x2) != SET)
2996 : return -1;
2997 7961 : x3 = XEXP (x2, 1);
2998 7961 : if (GET_CODE (x3) != UNSPEC
2999 6415 : || XVECLEN (x3, 0) != i2
3000 6415 : || XINT (x3, 1) != i1
3001 6415 : || GET_MODE (x3) != E_V16QImode)
3002 : return -1;
3003 6415 : x4 = XVECEXP (x1, 0, 2);
3004 6415 : if (GET_CODE (x4) != SET)
3005 : return -1;
3006 6415 : x5 = XEXP (x4, 1);
3007 6415 : if (GET_CODE (x5) != UNSPEC
3008 5909 : || XVECLEN (x5, 0) != i2
3009 5909 : || XINT (x5, 1) != i1
3010 5909 : || GET_MODE (x5) != E_CCmode)
3011 : return -1;
3012 5909 : x6 = XEXP (x4, 0);
3013 5909 : if (GET_CODE (x6) != REG
3014 5909 : || REGNO (x6) != 17
3015 11818 : || GET_MODE (x6) != E_CCmode)
3016 : return -1;
3017 5909 : x7 = XVECEXP (x1, 0, 0);
3018 5909 : x8 = XEXP (x7, 0);
3019 5909 : operands[0] = x8;
3020 5909 : return 0;
3021 : }
3022 :
3023 : int
3024 124140 : pattern725 (rtx x1, machine_mode i1, machine_mode i2)
3025 : {
3026 124140 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3027 124140 : rtx x2, x3, x4, x5, x6, x7;
3028 124140 : int res ATTRIBUTE_UNUSED;
3029 124140 : x2 = XVECEXP (x1, 0, 0);
3030 124140 : x3 = XEXP (x2, 1);
3031 124140 : x4 = XEXP (x3, 1);
3032 124140 : if (GET_MODE (x4) != i2)
3033 : return -1;
3034 124140 : x5 = XEXP (x4, 0);
3035 124140 : if (GET_MODE (x5) != i1
3036 124140 : || !nonimmediate_operand (operands[0], i1))
3037 0 : return -1;
3038 124140 : x6 = XVECEXP (x1, 0, 1);
3039 124140 : x7 = XEXP (x6, 1);
3040 124140 : if (GET_MODE (x7) != i1)
3041 : return -1;
3042 : return 0;
3043 : }
3044 :
3045 : int
3046 133806 : pattern733 (rtx x1, machine_mode i1)
3047 : {
3048 133806 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3049 133806 : rtx x2;
3050 133806 : int res ATTRIBUTE_UNUSED;
3051 133806 : if (peep2_current_count < 2
3052 133806 : || peep2_current_count < 3
3053 123206 : || !general_reg_operand (operands[0], i1)
3054 228060 : || !general_reg_operand (operands[1], i1))
3055 45025 : return -1;
3056 88781 : x2 = PATTERN (peep2_next_insn (2));
3057 88781 : if (GET_CODE (x2) != SET)
3058 : return -1;
3059 59549 : switch (GET_CODE (x1))
3060 : {
3061 : case SET:
3062 : return 0;
3063 :
3064 25156 : case PARALLEL:
3065 25156 : return 1;
3066 :
3067 : default:
3068 : return -1;
3069 : }
3070 : }
3071 :
3072 : int
3073 3815283 : pattern737 (rtx x1, machine_mode i1)
3074 : {
3075 3815283 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3076 3815283 : rtx x2, x3, x4, x5, x6;
3077 3815283 : int res ATTRIBUTE_UNUSED;
3078 3815283 : if (!register_operand (operands[0], i1)
3079 3815283 : || GET_CODE (x1) != SET)
3080 : return -1;
3081 3019898 : x2 = XEXP (x1, 1);
3082 3019898 : if (GET_CODE (x2) != PLUS
3083 272268 : || GET_MODE (x2) != i1)
3084 : return -1;
3085 264706 : x3 = XEXP (x1, 0);
3086 264706 : operands[3] = x3;
3087 264706 : if (!register_operand (operands[3], i1))
3088 : return -1;
3089 264706 : x4 = XEXP (x2, 0);
3090 264706 : operands[4] = x4;
3091 264706 : if (!register_operand (operands[4], i1))
3092 : return -1;
3093 216402 : x5 = XEXP (x2, 1);
3094 216402 : operands[2] = x5;
3095 216402 : if (!x86_64_nonmemory_operand (operands[2], i1))
3096 : return -1;
3097 207729 : x6 = PATTERN (peep2_next_insn (2));
3098 207729 : return pattern735 (x6,
3099 207729 : i1); /* [-1, 0] */
3100 : }
3101 :
3102 : int
3103 720 : pattern749 (rtx x1, machine_mode i1)
3104 : {
3105 720 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3106 720 : rtx x2;
3107 720 : int res ATTRIBUTE_UNUSED;
3108 720 : if (!nonimmediate_operand (operands[0], i1)
3109 720 : || GET_MODE (x1) != i1)
3110 : return -1;
3111 720 : x2 = XEXP (x1, 0);
3112 720 : if (GET_MODE (x2) != i1
3113 720 : || !nonimmediate_operand (operands[1], i1)
3114 1103 : || !general_operand (operands[2], i1))
3115 337 : return -1;
3116 : return 0;
3117 : }
3118 :
3119 : int
3120 67600 : pattern752 ()
3121 : {
3122 67600 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3123 67600 : int res ATTRIBUTE_UNUSED;
3124 67600 : switch (GET_MODE (operands[0]))
3125 : {
3126 55067 : case E_XFmode:
3127 55067 : if (!register_operand (operands[0], E_XFmode)
3128 55067 : || !binary_fp_operator (operands[3], E_XFmode))
3129 1004 : return -1;
3130 : return 0;
3131 :
3132 10804 : case E_DFmode:
3133 10804 : if (!register_operand (operands[0], E_DFmode)
3134 10804 : || !binary_fp_operator (operands[3], E_DFmode))
3135 50 : return -1;
3136 : return 1;
3137 :
3138 : default:
3139 : return -1;
3140 : }
3141 : }
3142 :
3143 : int
3144 5347 : pattern761 (rtx x1)
3145 : {
3146 5347 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3147 5347 : rtx x2, x3, x4;
3148 5347 : int res ATTRIBUTE_UNUSED;
3149 5347 : x2 = XEXP (x1, 0);
3150 5347 : x3 = XEXP (x2, 0);
3151 5347 : operands[1] = x3;
3152 5347 : x4 = XEXP (x1, 1);
3153 5347 : if (!rtx_equal_p (x4, operands[1]))
3154 : return -1;
3155 2643 : switch (GET_MODE (x1))
3156 : {
3157 1104 : case E_SImode:
3158 1104 : if (GET_MODE (x2) != E_SImode
3159 1104 : || !nonimmediate_operand (operands[1], E_SImode))
3160 21 : return -1;
3161 : return 0;
3162 :
3163 1533 : case E_DImode:
3164 1533 : if (GET_MODE (x2) != E_DImode
3165 1533 : || !nonimmediate_operand (operands[1], E_DImode))
3166 16 : return -1;
3167 : return 1;
3168 :
3169 : default:
3170 : return -1;
3171 : }
3172 : }
3173 :
3174 : int
3175 2998 : pattern773 (rtx x1, machine_mode i1)
3176 : {
3177 2998 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3178 2998 : rtx x2, x3;
3179 2998 : int res ATTRIBUTE_UNUSED;
3180 2998 : if (!register_operand (operands[0], i1)
3181 2998 : || GET_MODE (x1) != i1)
3182 : return -1;
3183 2926 : x2 = XEXP (x1, 0);
3184 2926 : if (GET_MODE (x2) != i1)
3185 : return -1;
3186 2926 : x3 = XEXP (x2, 0);
3187 2926 : if (GET_MODE (x3) != i1
3188 2926 : || !register_operand (operands[1], i1)
3189 2926 : || !nonimmediate_operand (operands[2], i1)
3190 5852 : || !nonimm_or_0_operand (operands[3], i1))
3191 0 : return -1;
3192 : return 0;
3193 : }
3194 :
3195 : int
3196 213 : pattern779 (rtx x1, machine_mode i1)
3197 : {
3198 213 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3199 213 : int res ATTRIBUTE_UNUSED;
3200 213 : if (!register_operand (operands[0], i1)
3201 213 : || GET_MODE (x1) != i1)
3202 : return -1;
3203 182 : switch (GET_MODE (operands[1]))
3204 : {
3205 77 : case E_V8HFmode:
3206 77 : if (!vector_operand (operands[1], E_V8HFmode))
3207 : return -1;
3208 : return 0;
3209 :
3210 73 : case E_V8SFmode:
3211 73 : if (!nonimmediate_operand (operands[1], E_V8SFmode))
3212 : return -1;
3213 : return 1;
3214 :
3215 32 : case E_V8DFmode:
3216 32 : if (!nonimmediate_operand (operands[1], E_V8DFmode))
3217 : return -1;
3218 : return 2;
3219 :
3220 : default:
3221 : return -1;
3222 : }
3223 : }
3224 :
3225 : int
3226 40260 : pattern786 (rtx x1, machine_mode i1, machine_mode i2)
3227 : {
3228 40260 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3229 40260 : int res ATTRIBUTE_UNUSED;
3230 40260 : if (!register_operand (operands[0], i2)
3231 40253 : || GET_MODE (x1) != i2
3232 40253 : || !vector_operand (operands[1], i1)
3233 75996 : || !vector_operand (operands[2], i1))
3234 18813 : return -1;
3235 : return 0;
3236 : }
3237 :
3238 : int
3239 3105 : pattern793 (rtx x1, machine_mode i1, machine_mode i2)
3240 : {
3241 3105 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3242 3105 : int res ATTRIBUTE_UNUSED;
3243 3105 : if (!memory_operand (operands[0], i1)
3244 3093 : || GET_MODE (x1) != i1
3245 3093 : || !register_operand (operands[1], i1)
3246 5982 : || !const0_or_m1_operand (operands[2], i2))
3247 3099 : return -1;
3248 : return 0;
3249 : }
3250 :
3251 : int
3252 308 : pattern802 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
3253 : {
3254 308 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3255 308 : rtx x2, x3;
3256 308 : int res ATTRIBUTE_UNUSED;
3257 308 : if (!register_operand (operands[0], i3)
3258 308 : || GET_MODE (x1) != i3)
3259 : return -1;
3260 308 : x2 = XEXP (x1, 0);
3261 308 : if (GET_MODE (x2) != i2
3262 308 : || !register_operand (operands[1], i1))
3263 0 : return -1;
3264 308 : x3 = XEXP (x1, 1);
3265 308 : if (GET_MODE (x3) != i2
3266 308 : || !vector_operand (operands[2], i1))
3267 0 : return -1;
3268 : return 0;
3269 : }
3270 :
3271 : int
3272 95 : pattern811 (rtx x1, machine_mode i1, machine_mode i2)
3273 : {
3274 95 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3275 95 : rtx x2;
3276 95 : int res ATTRIBUTE_UNUSED;
3277 95 : if (!register_operand (operands[0], i2)
3278 95 : || GET_MODE (x1) != i2)
3279 : return -1;
3280 95 : x2 = XEXP (x1, 0);
3281 95 : if (GET_MODE (x2) != i2
3282 45 : || !memory_operand (operands[1], i1)
3283 133 : || !general_operand (operands[2], i1))
3284 57 : return -1;
3285 : return 0;
3286 : }
3287 :
3288 : int
3289 40376 : pattern819 (rtx x1)
3290 : {
3291 40376 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3292 40376 : rtx x2, x3, x4, x5;
3293 40376 : int res ATTRIBUTE_UNUSED;
3294 40376 : x2 = XEXP (x1, 1);
3295 40376 : x3 = XEXP (x2, 0);
3296 40376 : x4 = XEXP (x3, 0);
3297 40376 : operands[2] = x4;
3298 40376 : if (!int248_register_operand (operands[2], E_VOIDmode))
3299 : return -1;
3300 35694 : x5 = XEXP (x3, 1);
3301 35694 : operands[3] = x5;
3302 35694 : if (!const_int_operand (operands[3], E_VOIDmode))
3303 : return -1;
3304 35680 : return pattern249 (x1); /* [-1, 1] */
3305 : }
3306 :
3307 : int
3308 40908 : pattern823 (rtx x1, machine_mode i1)
3309 : {
3310 40908 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3311 40908 : rtx x2, x3, x4, x5;
3312 40908 : int res ATTRIBUTE_UNUSED;
3313 40908 : x2 = XVECEXP (x1, 0, 1);
3314 40908 : x3 = XEXP (x2, 0);
3315 40908 : if (GET_CODE (x3) != REG
3316 40908 : || REGNO (x3) != 17
3317 81816 : || GET_MODE (x3) != E_CCmode)
3318 : return -1;
3319 40908 : x4 = XVECEXP (x1, 0, 0);
3320 40908 : x5 = XEXP (x4, 0);
3321 40908 : operands[0] = x5;
3322 40908 : if (!register_operand (operands[0], i1))
3323 : return -1;
3324 : return 0;
3325 : }
3326 :
3327 : int
3328 364096 : pattern827 (rtx x1, machine_mode i1)
3329 : {
3330 364096 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3331 364096 : rtx x2, x3;
3332 364096 : int res ATTRIBUTE_UNUSED;
3333 364096 : x2 = XEXP (x1, 0);
3334 364096 : if (GET_CODE (x2) != REG
3335 364096 : || REGNO (x2) != 17
3336 728192 : || GET_MODE (x2) != i1)
3337 : return -1;
3338 364065 : x3 = XEXP (x1, 1);
3339 364065 : if (GET_MODE (x3) != i1)
3340 0 : return -1;
3341 : return 0;
3342 : }
3343 :
3344 : int
3345 57 : pattern832 (rtx x1)
3346 : {
3347 57 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3348 57 : rtx x2, x3, x4;
3349 57 : int res ATTRIBUTE_UNUSED;
3350 57 : x2 = XVECEXP (x1, 0, 1);
3351 57 : if (GET_CODE (x2) != UNSPEC
3352 55 : || XVECLEN (x2, 0) != 1
3353 55 : || XINT (x2, 1) != 39)
3354 : return -1;
3355 55 : x3 = XVECEXP (x1, 0, 2);
3356 55 : if (GET_CODE (x3) != CLOBBER)
3357 : return -1;
3358 55 : x4 = XEXP (x3, 0);
3359 55 : if (GET_CODE (x4) != REG
3360 55 : || REGNO (x4) != 17
3361 110 : || GET_MODE (x4) != E_CCmode)
3362 : return -1;
3363 55 : return pattern548 (x1); /* [-1, 1] */
3364 : }
3365 :
3366 : int
3367 39 : pattern837 (rtx x1)
3368 : {
3369 39 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3370 39 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3371 39 : rtx x10;
3372 39 : int res ATTRIBUTE_UNUSED;
3373 39 : x2 = XVECEXP (x1, 0, 1);
3374 39 : if (GET_CODE (x2) != UNSPEC
3375 26 : || XVECLEN (x2, 0) != 1
3376 26 : || XINT (x2, 1) != 39)
3377 : return -1;
3378 26 : x3 = XVECEXP (x1, 0, 2);
3379 26 : if (GET_CODE (x3) != CLOBBER)
3380 : return -1;
3381 26 : x4 = XEXP (x3, 0);
3382 26 : if (GET_CODE (x4) != REG
3383 26 : || REGNO (x4) != 17
3384 52 : || GET_MODE (x4) != E_CCmode)
3385 : return -1;
3386 26 : x5 = XVECEXP (x1, 0, 0);
3387 26 : x6 = XEXP (x5, 0);
3388 26 : operands[0] = x6;
3389 26 : x7 = XEXP (x5, 1);
3390 26 : x8 = XEXP (x7, 0);
3391 26 : x9 = XEXP (x8, 0);
3392 26 : operands[1] = x9;
3393 26 : if (!nonimmediate_operand (operands[1], E_SImode))
3394 : return -1;
3395 26 : x10 = XVECEXP (x2, 0, 0);
3396 26 : operands[2] = x10;
3397 26 : if (!register_operand (operands[2], E_DImode))
3398 : return -1;
3399 : return 0;
3400 : }
3401 :
3402 : int
3403 2938 : pattern846 (rtx x1, int i1, int i2, int i3)
3404 : {
3405 2938 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3406 2938 : rtx x2, x3, x4, x5, x6, x7, x8;
3407 2938 : int res ATTRIBUTE_UNUSED;
3408 2938 : x2 = XVECEXP (x1, 0, 0);
3409 2938 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3410 : return -1;
3411 1139 : x3 = XVECEXP (x1, 0, 1);
3412 1139 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3413 : return -1;
3414 1103 : x4 = XVECEXP (x1, 0, 2);
3415 1103 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3416 : return -1;
3417 1103 : x5 = XVECEXP (x1, 0, 3);
3418 1103 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3419 : return -1;
3420 1103 : x6 = XVECEXP (x1, 0, 4);
3421 1103 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
3422 : return -1;
3423 1075 : x7 = XVECEXP (x1, 0, 5);
3424 1075 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
3425 : return -1;
3426 1066 : x8 = XVECEXP (x1, 0, 6);
3427 1066 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
3428 0 : return -1;
3429 : return 0;
3430 : }
3431 :
3432 : int
3433 144 : pattern856 (rtx x1, machine_mode i1)
3434 : {
3435 144 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3436 144 : int res ATTRIBUTE_UNUSED;
3437 144 : if (GET_MODE (x1) != i1
3438 144 : || !register_operand (operands[3], i1)
3439 120 : || !nonmemory_operand (operands[4], i1)
3440 264 : || !const0_operand (operands[5], i1))
3441 72 : return -1;
3442 : return 0;
3443 : }
3444 :
3445 : int
3446 25425 : pattern860 (machine_mode i1)
3447 : {
3448 25425 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3449 25425 : int res ATTRIBUTE_UNUSED;
3450 25425 : if (!register_operand (operands[0], i1)
3451 25276 : || !ix86_comparison_int_operator (operands[1], i1)
3452 25145 : || !register_operand (operands[2], i1)
3453 38489 : || !register_operand (operands[3], i1))
3454 25290 : return -1;
3455 : return 0;
3456 : }
3457 :
3458 : int
3459 3413 : pattern864 (rtx x1)
3460 : {
3461 3413 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3462 3413 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3463 3413 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
3464 3413 : rtx x18, x19;
3465 3413 : int res ATTRIBUTE_UNUSED;
3466 3413 : x2 = XEXP (x1, 1);
3467 3413 : x3 = XEXP (x2, 0);
3468 3413 : if (GET_CODE (x3) != VEC_CONCAT)
3469 : return -1;
3470 3383 : x4 = XEXP (x1, 0);
3471 3383 : x5 = XEXP (x4, 0);
3472 3383 : x6 = XEXP (x5, 0);
3473 3383 : operands[1] = x6;
3474 3383 : x7 = XEXP (x5, 1);
3475 3383 : operands[2] = x7;
3476 3383 : x8 = XEXP (x3, 0);
3477 3383 : if (!rtx_equal_p (x8, operands[1]))
3478 : return -1;
3479 2773 : x9 = XEXP (x3, 1);
3480 2773 : if (!rtx_equal_p (x9, operands[2]))
3481 : return -1;
3482 2763 : x10 = XEXP (x4, 1);
3483 2763 : switch (XVECLEN (x10, 0))
3484 : {
3485 1300 : case 4:
3486 1300 : x11 = XVECEXP (x10, 0, 0);
3487 1300 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3488 : return -1;
3489 675 : x12 = XVECEXP (x10, 0, 1);
3490 675 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3491 : return -1;
3492 675 : x13 = XVECEXP (x10, 0, 2);
3493 675 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
3494 : return -1;
3495 675 : x14 = XVECEXP (x10, 0, 3);
3496 675 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
3497 : return -1;
3498 675 : x15 = XEXP (x2, 1);
3499 675 : if (XVECLEN (x15, 0) != 4)
3500 : return -1;
3501 675 : x16 = XVECEXP (x15, 0, 0);
3502 675 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3503 : return -1;
3504 675 : x17 = XVECEXP (x15, 0, 1);
3505 675 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
3506 : return -1;
3507 675 : x18 = XVECEXP (x15, 0, 2);
3508 675 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
3509 : return -1;
3510 675 : x19 = XVECEXP (x15, 0, 3);
3511 675 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
3512 675 : || pattern863 (x1,
3513 : E_V8HImode,
3514 : E_V4HImode) != 0)
3515 385 : return -1;
3516 : return 0;
3517 :
3518 460 : case 2:
3519 460 : x11 = XVECEXP (x10, 0, 0);
3520 460 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3521 : return -1;
3522 376 : x12 = XVECEXP (x10, 0, 1);
3523 376 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
3524 : return -1;
3525 376 : x15 = XEXP (x2, 1);
3526 376 : if (XVECLEN (x15, 0) != 2)
3527 : return -1;
3528 376 : x16 = XVECEXP (x15, 0, 0);
3529 376 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
3530 : return -1;
3531 376 : x17 = XVECEXP (x15, 0, 1);
3532 376 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
3533 376 : || pattern863 (x1,
3534 : E_V4SImode,
3535 : E_V2SImode) != 0)
3536 72 : return -1;
3537 : return 1;
3538 :
3539 : default:
3540 : return -1;
3541 : }
3542 : }
3543 :
3544 : int
3545 56091 : pattern896 (rtx x1, machine_mode i1, machine_mode i2)
3546 : {
3547 56091 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3548 56091 : rtx x2, x3, x4;
3549 56091 : int res ATTRIBUTE_UNUSED;
3550 56091 : if (!register_operand (operands[0], i1)
3551 56091 : || GET_MODE (x1) != i1)
3552 : return -1;
3553 55417 : x2 = XEXP (x1, 0);
3554 55417 : if (GET_MODE (x2) != i1)
3555 : return -1;
3556 55417 : x3 = XEXP (x2, 0);
3557 55417 : operands[2] = x3;
3558 55417 : if (!nonimmediate_operand (operands[2], i2))
3559 : return -1;
3560 45611 : x4 = XEXP (x1, 1);
3561 45611 : operands[1] = x4;
3562 45611 : if (!register_operand (operands[1], i1))
3563 : return -1;
3564 : return 0;
3565 : }
3566 :
3567 : int
3568 1707 : pattern906 (rtx x1, machine_mode i1)
3569 : {
3570 1707 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3571 1707 : rtx x2, x3;
3572 1707 : int res ATTRIBUTE_UNUSED;
3573 1707 : if (!register_operand (operands[0], i1)
3574 1707 : || GET_MODE (x1) != i1)
3575 : return -1;
3576 1630 : x2 = XEXP (x1, 0);
3577 1630 : if (GET_MODE (x2) != i1
3578 1630 : || !nonimm_or_0_operand (operands[2], i1))
3579 33 : return -1;
3580 1597 : x3 = XEXP (x2, 0);
3581 1597 : switch (GET_MODE (x3))
3582 : {
3583 767 : case E_V4QImode:
3584 767 : if (!register_operand (operands[1], E_V16QImode))
3585 : return -1;
3586 : return 0;
3587 :
3588 830 : case E_V4HImode:
3589 830 : if (!register_operand (operands[1], E_V8HImode))
3590 : return -1;
3591 : return 1;
3592 :
3593 : default:
3594 : return -1;
3595 : }
3596 : }
3597 :
3598 : int
3599 9634 : pattern916 (rtx x1, machine_mode i1, machine_mode i2)
3600 : {
3601 9634 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3602 9634 : int res ATTRIBUTE_UNUSED;
3603 9634 : if (!memory_operand (operands[0], i2)
3604 9536 : || GET_MODE (x1) != i2
3605 9536 : || !register_operand (operands[1], i2)
3606 17087 : || !register_operand (operands[2], i1))
3607 2334 : return -1;
3608 : return 0;
3609 : }
3610 :
3611 : int
3612 5165 : pattern918 (rtx x1)
3613 : {
3614 5165 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3615 5165 : int res ATTRIBUTE_UNUSED;
3616 5165 : if (!const_int_operand (operands[3], E_VOIDmode))
3617 : return -1;
3618 2759 : switch (GET_MODE (operands[0]))
3619 : {
3620 151 : case E_V16SImode:
3621 151 : return pattern917 (x1,
3622 151 : E_V16SImode); /* [-1, 0] */
3623 :
3624 171 : case E_V16SFmode:
3625 171 : if (pattern917 (x1,
3626 : E_V16SFmode) != 0)
3627 : return -1;
3628 : return 1;
3629 :
3630 188 : case E_V8DImode:
3631 188 : if (pattern917 (x1,
3632 : E_V8DImode) != 0)
3633 : return -1;
3634 : return 2;
3635 :
3636 182 : case E_V8DFmode:
3637 182 : if (pattern917 (x1,
3638 : E_V8DFmode) != 0)
3639 : return -1;
3640 : return 3;
3641 :
3642 149 : case E_V8SImode:
3643 149 : if (pattern917 (x1,
3644 : E_V8SImode) != 0)
3645 : return -1;
3646 : return 4;
3647 :
3648 171 : case E_V8SFmode:
3649 171 : if (pattern917 (x1,
3650 : E_V8SFmode) != 0)
3651 : return -1;
3652 : return 5;
3653 :
3654 186 : case E_V4DImode:
3655 186 : if (pattern917 (x1,
3656 : E_V4DImode) != 0)
3657 : return -1;
3658 : return 6;
3659 :
3660 172 : case E_V4DFmode:
3661 172 : if (pattern917 (x1,
3662 : E_V4DFmode) != 0)
3663 : return -1;
3664 : return 7;
3665 :
3666 131 : case E_V4SImode:
3667 131 : if (pattern917 (x1,
3668 : E_V4SImode) != 0)
3669 : return -1;
3670 : return 8;
3671 :
3672 152 : case E_V4SFmode:
3673 152 : if (pattern917 (x1,
3674 : E_V4SFmode) != 0)
3675 : return -1;
3676 : return 9;
3677 :
3678 160 : case E_V2DImode:
3679 160 : if (pattern917 (x1,
3680 : E_V2DImode) != 0)
3681 : return -1;
3682 : return 10;
3683 :
3684 148 : case E_V2DFmode:
3685 148 : if (pattern917 (x1,
3686 : E_V2DFmode) != 0)
3687 : return -1;
3688 : return 11;
3689 :
3690 121 : case E_V64QImode:
3691 121 : if (pattern917 (x1,
3692 : E_V64QImode) != 0)
3693 : return -1;
3694 : return 12;
3695 :
3696 126 : case E_V16QImode:
3697 126 : if (pattern917 (x1,
3698 : E_V16QImode) != 0)
3699 : return -1;
3700 : return 13;
3701 :
3702 141 : case E_V32QImode:
3703 141 : if (pattern917 (x1,
3704 : E_V32QImode) != 0)
3705 : return -1;
3706 : return 14;
3707 :
3708 143 : case E_V32HImode:
3709 143 : if (pattern917 (x1,
3710 : E_V32HImode) != 0)
3711 : return -1;
3712 : return 15;
3713 :
3714 141 : case E_V16HImode:
3715 141 : if (pattern917 (x1,
3716 : E_V16HImode) != 0)
3717 : return -1;
3718 : return 16;
3719 :
3720 126 : case E_V8HImode:
3721 126 : if (pattern917 (x1,
3722 : E_V8HImode) != 0)
3723 : return -1;
3724 : return 17;
3725 :
3726 : default:
3727 : return -1;
3728 : }
3729 : }
3730 :
3731 : int
3732 0 : pattern943 (rtx x1, machine_mode i1)
3733 : {
3734 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3735 0 : rtx x2, x3;
3736 0 : int res ATTRIBUTE_UNUSED;
3737 0 : if (!nonimmediate_operand (operands[0], i1)
3738 0 : || GET_MODE (x1) != i1)
3739 : return -1;
3740 0 : x2 = XEXP (x1, 0);
3741 0 : if (GET_MODE (x2) != i1
3742 0 : || !nonimmediate_operand (operands[1], i1))
3743 0 : return -1;
3744 0 : x3 = XEXP (x2, 1);
3745 0 : if (GET_MODE (x3) != i1
3746 0 : || !immediate_operand (operands[2], i1))
3747 0 : return -1;
3748 : return 0;
3749 : }
3750 :
3751 : int
3752 7690 : pattern950 (rtx x1)
3753 : {
3754 7690 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3755 7690 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
3756 7690 : rtx x10, x11;
3757 7690 : int res ATTRIBUTE_UNUSED;
3758 7690 : x2 = XEXP (x1, 0);
3759 7690 : operands[0] = x2;
3760 7690 : x3 = XEXP (x1, 1);
3761 7690 : x4 = XEXP (x3, 0);
3762 7690 : switch (XVECLEN (x4, 0))
3763 : {
3764 7260 : case 1:
3765 7260 : if (XINT (x4, 1) != 20)
3766 : return -1;
3767 7195 : x5 = XVECEXP (x4, 0, 0);
3768 7195 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
3769 : return -1;
3770 7195 : return pattern948 (x3); /* [-1, 1] */
3771 :
3772 27 : case 4:
3773 27 : if (XINT (x4, 1) != 23
3774 0 : || GET_MODE (x4) != E_SImode)
3775 : return -1;
3776 0 : x6 = XVECEXP (x4, 0, 3);
3777 0 : if (GET_CODE (x6) != REG
3778 0 : || REGNO (x6) != 7
3779 0 : || GET_MODE (x6) != E_SImode)
3780 : return -1;
3781 0 : x7 = XEXP (x3, 1);
3782 0 : if (GET_CODE (x7) != CONST
3783 0 : || GET_MODE (x7) != E_SImode)
3784 : return -1;
3785 0 : x8 = XEXP (x7, 0);
3786 0 : if (GET_CODE (x8) != UNSPEC
3787 0 : || XVECLEN (x8, 0) != 1
3788 0 : || XINT (x8, 1) != 6
3789 0 : || GET_MODE (x8) != E_SImode
3790 0 : || !register_operand (operands[0], E_SImode)
3791 0 : || GET_MODE (x3) != E_SImode)
3792 0 : return -1;
3793 0 : x5 = XVECEXP (x4, 0, 0);
3794 0 : operands[3] = x5;
3795 0 : if (!tls_modbase_operand (operands[3], E_VOIDmode))
3796 : return -1;
3797 0 : x9 = XVECEXP (x4, 0, 1);
3798 0 : operands[4] = x9;
3799 0 : x10 = XVECEXP (x4, 0, 2);
3800 0 : operands[2] = x10;
3801 0 : if (!register_operand (operands[2], E_SImode))
3802 : return -1;
3803 0 : x11 = XVECEXP (x8, 0, 0);
3804 0 : operands[1] = x11;
3805 0 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
3806 : return -1;
3807 : return 2;
3808 :
3809 403 : case 3:
3810 403 : if (XINT (x4, 1) != 23)
3811 : return -1;
3812 138 : x10 = XVECEXP (x4, 0, 2);
3813 138 : if (GET_CODE (x10) != REG
3814 138 : || REGNO (x10) != 7)
3815 : return -1;
3816 138 : x7 = XEXP (x3, 1);
3817 138 : if (GET_CODE (x7) != CONST)
3818 : return -1;
3819 55 : x8 = XEXP (x7, 0);
3820 55 : if (GET_CODE (x8) != UNSPEC
3821 55 : || XVECLEN (x8, 0) != 1
3822 55 : || XINT (x8, 1) != 6)
3823 : return -1;
3824 55 : x5 = XVECEXP (x4, 0, 0);
3825 55 : operands[2] = x5;
3826 55 : if (!tls_modbase_operand (operands[2], E_VOIDmode))
3827 : return -1;
3828 55 : x9 = XVECEXP (x4, 0, 1);
3829 55 : operands[3] = x9;
3830 55 : x11 = XVECEXP (x8, 0, 0);
3831 55 : operands[1] = x11;
3832 55 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
3833 : return -1;
3834 55 : switch (GET_MODE (operands[0]))
3835 : {
3836 8 : case E_SImode:
3837 8 : if (pattern949 (x3,
3838 : E_SImode) != 0)
3839 : return -1;
3840 : return 3;
3841 :
3842 47 : case E_DImode:
3843 47 : if (pattern949 (x3,
3844 : E_DImode) != 0)
3845 : return -1;
3846 : return 4;
3847 :
3848 : default:
3849 : return -1;
3850 : }
3851 :
3852 : default:
3853 : return -1;
3854 : }
3855 : }
3856 :
3857 : int
3858 2543 : pattern978 (rtx x1)
3859 : {
3860 2543 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3861 2543 : int res ATTRIBUTE_UNUSED;
3862 2543 : if (!nonimmediate_operand (operands[0], E_HFmode)
3863 2543 : || GET_MODE (x1) != E_HFmode)
3864 : return -1;
3865 2543 : switch (GET_MODE (operands[1]))
3866 : {
3867 46 : case E_V32HFmode:
3868 46 : if (!nonimmediate_operand (operands[1], E_V32HFmode))
3869 : return -1;
3870 : return 0;
3871 :
3872 81 : case E_V16HFmode:
3873 81 : if (!nonimmediate_operand (operands[1], E_V16HFmode))
3874 : return -1;
3875 : return 1;
3876 :
3877 2368 : case E_V8HFmode:
3878 2368 : if (!nonimmediate_operand (operands[1], E_V8HFmode))
3879 : return -1;
3880 : return 2;
3881 :
3882 : default:
3883 : return -1;
3884 : }
3885 : }
3886 :
3887 : int
3888 264528 : pattern981 (rtx x1)
3889 : {
3890 264528 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3891 264528 : rtx x2, x3;
3892 264528 : int res ATTRIBUTE_UNUSED;
3893 264528 : if (!const_0_to_3_operand (operands[3], E_VOIDmode))
3894 : return -1;
3895 264528 : x2 = XEXP (x1, 1);
3896 264528 : x3 = XVECEXP (x2, 0, 1);
3897 264528 : operands[4] = x3;
3898 264528 : if (!const_0_to_3_operand (operands[4], E_VOIDmode))
3899 : return -1;
3900 264528 : switch (GET_MODE (operands[0]))
3901 : {
3902 0 : case E_V2HFmode:
3903 0 : return pattern272 (x1,
3904 : E_V2HFmode,
3905 0 : E_V4HFmode); /* [-1, 0] */
3906 :
3907 0 : case E_V2BFmode:
3908 0 : if (pattern272 (x1,
3909 : E_V2BFmode,
3910 : E_V4BFmode) != 0)
3911 : return -1;
3912 : return 1;
3913 :
3914 2963 : case E_V2HImode:
3915 2963 : if (pattern272 (x1,
3916 : E_V2HImode,
3917 : E_V4HImode) != 0)
3918 : return -1;
3919 : return 2;
3920 :
3921 : default:
3922 : return -1;
3923 : }
3924 : }
3925 :
3926 : int
3927 0 : pattern990 (rtx x1, machine_mode i1)
3928 : {
3929 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3930 0 : rtx x2, x3;
3931 0 : int res ATTRIBUTE_UNUSED;
3932 0 : if (!register_operand (operands[0], i1)
3933 0 : || GET_MODE (x1) != i1)
3934 : return -1;
3935 0 : x2 = XEXP (x1, 0);
3936 0 : if (GET_MODE (x2) != i1)
3937 : return -1;
3938 0 : x3 = XEXP (x2, 0);
3939 0 : if (GET_MODE (x3) != i1
3940 0 : || !nonimmediate_operand (operands[1], i1))
3941 0 : return -1;
3942 : return 0;
3943 : }
3944 :
3945 : int
3946 1752 : pattern993 (rtx x1)
3947 : {
3948 1752 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3949 1752 : rtx x2;
3950 1752 : int res ATTRIBUTE_UNUSED;
3951 1752 : if (!register_operand (operands[0], E_DImode)
3952 1752 : || GET_MODE (x1) != E_DImode)
3953 : return -1;
3954 1726 : x2 = XEXP (x1, 0);
3955 1726 : if (GET_MODE (x2) != E_DImode
3956 1726 : || !register_operand (operands[1], E_V64QImode)
3957 1577 : || !nonimmediate_operand (operands[2], E_V64QImode)
3958 3297 : || !const_0_to_7_operand (operands[3], E_SImode))
3959 155 : return -1;
3960 : return 0;
3961 : }
3962 :
3963 : int
3964 517 : pattern997 (rtx x1)
3965 : {
3966 517 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3967 517 : rtx x2;
3968 517 : int res ATTRIBUTE_UNUSED;
3969 517 : if (!register_operand (operands[0], E_V16SImode)
3970 517 : || GET_MODE (x1) != E_V16SImode)
3971 : return -1;
3972 462 : x2 = XEXP (x1, 0);
3973 462 : if (GET_MODE (x2) != E_V16SImode
3974 462 : || !nonimm_or_0_operand (operands[2], E_V16SImode)
3975 897 : || !register_operand (operands[3], E_HImode))
3976 96 : return -1;
3977 366 : switch (GET_MODE (operands[1]))
3978 : {
3979 198 : case E_V16HFmode:
3980 198 : if (!vector_operand (operands[1], E_V16HFmode))
3981 : return -1;
3982 : return 0;
3983 :
3984 168 : case E_V16SFmode:
3985 168 : if (!vector_operand (operands[1], E_V16SFmode))
3986 : return -1;
3987 : return 1;
3988 :
3989 : default:
3990 : return -1;
3991 : }
3992 : }
3993 :
3994 : int
3995 199 : pattern1002 (rtx x1, machine_mode i1)
3996 : {
3997 199 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
3998 199 : rtx x2;
3999 199 : int res ATTRIBUTE_UNUSED;
4000 199 : if (!register_operand (operands[0], i1)
4001 199 : || GET_MODE (x1) != i1)
4002 : return -1;
4003 199 : x2 = XEXP (x1, 0);
4004 199 : if (GET_MODE (x2) != i1
4005 199 : || !nonimmediate_operand (operands[1], i1)
4006 398 : || !const0_operand (operands[2], i1))
4007 66 : return -1;
4008 : return 0;
4009 : }
4010 :
4011 : int
4012 4079 : pattern1010 (rtx x1, machine_mode i1, machine_mode i2)
4013 : {
4014 4079 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4015 4079 : rtx x2;
4016 4079 : int res ATTRIBUTE_UNUSED;
4017 4079 : if (!register_operand (operands[0], i1)
4018 4079 : || GET_MODE (x1) != i1)
4019 : return -1;
4020 3902 : x2 = XEXP (x1, 0);
4021 3902 : if (GET_MODE (x2) != i1
4022 3902 : || !nonimmediate_operand (operands[2], i2)
4023 7781 : || !reg_or_0_operand (operands[1], i1))
4024 431 : return -1;
4025 : return 0;
4026 : }
4027 :
4028 : int
4029 8768 : pattern1017 (rtx x1)
4030 : {
4031 8768 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4032 8768 : rtx x2, x3, x4, x5, x6, x7;
4033 8768 : int res ATTRIBUTE_UNUSED;
4034 8768 : x2 = XEXP (x1, 1);
4035 8768 : operands[2] = x2;
4036 8768 : x3 = XEXP (x1, 2);
4037 8768 : x4 = XVECEXP (x3, 0, 1);
4038 8768 : operands[4] = x4;
4039 8768 : x5 = XVECEXP (x3, 0, 2);
4040 8768 : operands[5] = x5;
4041 8768 : x6 = XVECEXP (x3, 0, 0);
4042 8768 : switch (GET_CODE (x6))
4043 : {
4044 : case REG:
4045 : case SUBREG:
4046 : case MEM:
4047 : return 0;
4048 :
4049 0 : case NOT:
4050 0 : x7 = XEXP (x6, 0);
4051 0 : operands[3] = x7;
4052 0 : if (!const_0_to_7_operand (operands[5], E_SImode))
4053 : return -1;
4054 0 : switch (GET_MODE (operands[0]))
4055 : {
4056 0 : case E_V32QImode:
4057 0 : if (pattern1016 (x1,
4058 : E_V32QImode,
4059 : E_SImode) != 0)
4060 : return -1;
4061 : return 1;
4062 :
4063 0 : case E_V16QImode:
4064 0 : if (pattern1016 (x1,
4065 : E_V16QImode,
4066 : E_HImode) != 0)
4067 : return -1;
4068 : return 2;
4069 :
4070 : default:
4071 : return -1;
4072 : }
4073 :
4074 : default:
4075 : return -1;
4076 : }
4077 : }
4078 :
4079 : int
4080 217 : pattern1034 (rtx x1, machine_mode i1, machine_mode i2)
4081 : {
4082 217 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4083 217 : rtx x2;
4084 217 : int res ATTRIBUTE_UNUSED;
4085 217 : if (!register_operand (operands[0], i2)
4086 217 : || GET_MODE (x1) != i2)
4087 : return -1;
4088 209 : x2 = XVECEXP (x1, 0, 0);
4089 209 : if (GET_MODE (x2) != i2
4090 209 : || !nonimmediate_operand (operands[1], i1))
4091 3 : return -1;
4092 : return 0;
4093 : }
4094 :
4095 : int
4096 450 : pattern1039 (rtx x1, machine_mode i1)
4097 : {
4098 450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4099 450 : int res ATTRIBUTE_UNUSED;
4100 450 : if (!register_operand (operands[0], i1)
4101 396 : || GET_MODE (x1) != i1
4102 396 : || !register_operand (operands[1], i1)
4103 789 : || !bcst_vector_operand (operands[2], i1))
4104 111 : return -1;
4105 : return 0;
4106 : }
4107 :
4108 : int
4109 22331 : pattern1044 (rtx x1)
4110 : {
4111 22331 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4112 22331 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4113 22331 : rtx x10;
4114 22331 : int res ATTRIBUTE_UNUSED;
4115 22331 : x2 = XEXP (x1, 1);
4116 22331 : x3 = XEXP (x2, 0);
4117 22331 : if (GET_MODE (x3) != E_QImode)
4118 : return -1;
4119 21991 : x4 = XEXP (x3, 0);
4120 21991 : if (GET_CODE (x4) != SUBREG
4121 21985 : || maybe_ne (SUBREG_BYTE (x4), 0)
4122 43976 : || GET_MODE (x4) != E_QImode)
4123 : return -1;
4124 21985 : x5 = XEXP (x4, 0);
4125 21985 : switch (GET_CODE (x5))
4126 : {
4127 21985 : case ASHIFTRT:
4128 21985 : case LSHIFTRT:
4129 21985 : case SIGN_EXTRACT:
4130 21985 : case ZERO_EXTRACT:
4131 21985 : operands[3] = x5;
4132 21985 : x6 = XEXP (x1, 0);
4133 21985 : if (GET_CODE (x6) != ZERO_EXTRACT)
4134 : return -1;
4135 21985 : x7 = XEXP (x6, 1);
4136 21985 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4137 : return -1;
4138 21985 : x8 = XEXP (x6, 2);
4139 21985 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
4140 : return -1;
4141 21985 : x9 = XEXP (x6, 0);
4142 21985 : operands[0] = x9;
4143 21985 : if (!int248_register_operand (operands[0], E_VOIDmode))
4144 : return -1;
4145 21985 : x10 = XEXP (x5, 0);
4146 21985 : operands[1] = x10;
4147 21985 : if (!int248_register_operand (operands[1], E_VOIDmode))
4148 : return -1;
4149 : return 0;
4150 :
4151 : default:
4152 : return -1;
4153 : }
4154 : }
4155 :
4156 : int
4157 595 : pattern1054 (rtx x1)
4158 : {
4159 595 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4160 595 : rtx x2, x3, x4, x5, x6, x7;
4161 595 : int res ATTRIBUTE_UNUSED;
4162 595 : x2 = XEXP (x1, 1);
4163 595 : x3 = XEXP (x2, 1);
4164 595 : x4 = XEXP (x3, 0);
4165 595 : x5 = XEXP (x4, 0);
4166 595 : operands[2] = x5;
4167 595 : if (!int248_register_operand (operands[2], E_VOIDmode))
4168 : return -1;
4169 407 : x6 = XEXP (x1, 0);
4170 407 : switch (GET_CODE (x6))
4171 : {
4172 65 : case STRICT_LOW_PART:
4173 65 : x7 = XEXP (x6, 0);
4174 65 : operands[0] = x7;
4175 65 : if (!register_operand (operands[0], E_QImode))
4176 : return -1;
4177 65 : return pattern1053 (); /* [-1, 2] */
4178 :
4179 342 : case REG:
4180 342 : case SUBREG:
4181 342 : operands[0] = x6;
4182 342 : if (!register_operand (operands[0], E_QImode))
4183 : return -1;
4184 342 : res = pattern1053 ();
4185 342 : if (res >= 0)
4186 194 : return res + 3; /* [3, 5] */
4187 : return -1;
4188 :
4189 : default:
4190 : return -1;
4191 : }
4192 : }
4193 :
4194 : int
4195 1207 : pattern1060 (rtx x1)
4196 : {
4197 1207 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4198 1207 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4199 1207 : int res ATTRIBUTE_UNUSED;
4200 1207 : x2 = XEXP (x1, 0);
4201 1207 : operands[0] = x2;
4202 1207 : x3 = XEXP (x1, 1);
4203 1207 : x4 = XEXP (x3, 0);
4204 1207 : x5 = XEXP (x4, 0);
4205 1207 : x6 = XEXP (x5, 0);
4206 1207 : operands[1] = x6;
4207 1207 : x7 = XEXP (x5, 1);
4208 1207 : operands[2] = x7;
4209 1207 : x8 = XEXP (x4, 1);
4210 1207 : operands[3] = x8;
4211 1207 : x9 = XEXP (x3, 1);
4212 1207 : if (!rtx_equal_p (x9, operands[1]))
4213 : return -1;
4214 845 : switch (GET_MODE (operands[0]))
4215 : {
4216 84 : case E_HImode:
4217 84 : return pattern1059 (x3,
4218 84 : E_HImode); /* [-1, 0] */
4219 :
4220 761 : case E_SImode:
4221 761 : if (pattern1059 (x3,
4222 : E_SImode) != 0)
4223 : return -1;
4224 : return 1;
4225 :
4226 0 : case E_DImode:
4227 0 : if (pattern1059 (x3,
4228 : E_DImode) != 0)
4229 : return -1;
4230 : return 2;
4231 :
4232 : default:
4233 : return -1;
4234 : }
4235 : }
4236 :
4237 : int
4238 4257 : pattern1068 (rtx x1, int i1)
4239 : {
4240 4257 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4241 4257 : rtx x2, x3, x4, x5;
4242 4257 : int res ATTRIBUTE_UNUSED;
4243 4257 : x2 = XEXP (x1, 1);
4244 4257 : x3 = XEXP (x2, 0);
4245 4257 : x4 = XEXP (x3, 0);
4246 4257 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4247 : return -1;
4248 567 : x5 = XEXP (x1, 0);
4249 567 : operands[0] = x5;
4250 567 : return pattern1067 (x2); /* [-1, 3] */
4251 : }
4252 :
4253 : int
4254 4 : pattern1073 (rtx x1, machine_mode i1, machine_mode i2)
4255 : {
4256 4 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4257 4 : rtx x2, x3;
4258 4 : int res ATTRIBUTE_UNUSED;
4259 4 : if (!register_operand (operands[0], i1)
4260 4 : || GET_MODE (x1) != i1)
4261 : return -1;
4262 4 : x2 = XEXP (x1, 0);
4263 4 : if (GET_MODE (x2) != i1)
4264 : return -1;
4265 4 : x3 = XEXP (x2, 0);
4266 4 : if (GET_MODE (x3) != i2
4267 4 : || !vector_operand (operands[2], i1))
4268 0 : return -1;
4269 : return 0;
4270 : }
4271 :
4272 : int
4273 16406 : pattern1079 ()
4274 : {
4275 16406 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4276 16406 : int res ATTRIBUTE_UNUSED;
4277 16406 : switch (GET_MODE (operands[3]))
4278 : {
4279 699 : case E_HImode:
4280 699 : if (!extract_high_operator (operands[3], E_HImode))
4281 : return -1;
4282 : return 0;
4283 :
4284 10709 : case E_SImode:
4285 10709 : if (!extract_high_operator (operands[3], E_SImode))
4286 : return -1;
4287 : return 1;
4288 :
4289 4998 : case E_DImode:
4290 4998 : if (!extract_high_operator (operands[3], E_DImode))
4291 : return -1;
4292 : return 2;
4293 :
4294 : default:
4295 : return -1;
4296 : }
4297 : }
4298 :
4299 : int
4300 2 : pattern1084 (rtx x1)
4301 : {
4302 2 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4303 2 : rtx x2, x3, x4, x5;
4304 2 : int res ATTRIBUTE_UNUSED;
4305 2 : x2 = XEXP (x1, 0);
4306 2 : x3 = XEXP (x2, 0);
4307 2 : if (GET_CODE (x3) != REG
4308 2 : || REGNO (x3) != 17)
4309 : return -1;
4310 2 : x4 = XEXP (x2, 1);
4311 2 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4312 : return -1;
4313 2 : x5 = XEXP (x1, 1);
4314 2 : operands[1] = x5;
4315 2 : if (!nonimmediate_operand (operands[1], E_QImode))
4316 : return -1;
4317 : return 0;
4318 : }
4319 :
4320 : int
4321 309 : pattern1092 (rtx x1, int i1, int i2, int i3, int i4)
4322 : {
4323 309 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4324 309 : rtx x2, x3, x4, x5;
4325 309 : int res ATTRIBUTE_UNUSED;
4326 309 : x2 = XVECEXP (x1, 0, 0);
4327 309 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i4])
4328 : return -1;
4329 309 : x3 = XVECEXP (x1, 0, 1);
4330 309 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i3])
4331 : return -1;
4332 309 : x4 = XVECEXP (x1, 0, 2);
4333 309 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
4334 : return -1;
4335 309 : x5 = XVECEXP (x1, 0, 3);
4336 309 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
4337 0 : return -1;
4338 : return 0;
4339 : }
4340 :
4341 : int
4342 0 : pattern1104 (rtx x1)
4343 : {
4344 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4345 0 : rtx x2;
4346 0 : int res ATTRIBUTE_UNUSED;
4347 0 : if (!register_operand (operands[0], E_SImode)
4348 0 : || GET_MODE (x1) != E_SImode)
4349 : return -1;
4350 0 : x2 = XEXP (x1, 0);
4351 0 : if (GET_MODE (x2) != E_SImode)
4352 : return -1;
4353 0 : return pattern879 (); /* [-1, 1] */
4354 : }
4355 :
4356 : int
4357 827 : pattern1109 (rtx x1, machine_mode i1)
4358 : {
4359 827 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4360 827 : rtx x2;
4361 827 : int res ATTRIBUTE_UNUSED;
4362 827 : if (!register_operand (operands[0], i1)
4363 827 : || GET_MODE (x1) != i1)
4364 : return -1;
4365 803 : x2 = XVECEXP (x1, 0, 0);
4366 803 : switch (GET_MODE (x2))
4367 : {
4368 22 : case E_HFmode:
4369 22 : if (!register_operand (operands[1], E_V8HFmode))
4370 : return -1;
4371 : return 0;
4372 :
4373 433 : case E_SFmode:
4374 433 : if (!nonimmediate_operand (operands[1], E_V4SFmode))
4375 : return -1;
4376 : return 1;
4377 :
4378 348 : case E_DFmode:
4379 348 : if (!nonimmediate_operand (operands[1], E_V2DFmode))
4380 : return -1;
4381 : return 2;
4382 :
4383 : default:
4384 : return -1;
4385 : }
4386 : }
4387 :
4388 : int
4389 936 : pattern1114 (rtx x1)
4390 : {
4391 936 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4392 936 : rtx x2;
4393 936 : int res ATTRIBUTE_UNUSED;
4394 936 : if (!register_operand (operands[0], E_V2DImode)
4395 936 : || GET_MODE (x1) != E_V2DImode)
4396 : return -1;
4397 899 : x2 = XEXP (x1, 0);
4398 899 : if (GET_MODE (x2) != E_V2DImode
4399 899 : || !nonimm_or_0_operand (operands[2], E_V2DImode)
4400 1786 : || !register_operand (operands[3], E_QImode))
4401 38 : return -1;
4402 861 : switch (GET_MODE (operands[1]))
4403 : {
4404 : case E_V8HFmode:
4405 : return 0;
4406 :
4407 444 : case E_V2DFmode:
4408 444 : return 1;
4409 :
4410 : default:
4411 : return -1;
4412 : }
4413 : }
4414 :
4415 : int
4416 3233 : pattern1117 (rtx x1, machine_mode i1, machine_mode i2)
4417 : {
4418 3233 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4419 3233 : rtx x2;
4420 3233 : int res ATTRIBUTE_UNUSED;
4421 3233 : if (!register_operand (operands[0], i2)
4422 3233 : || GET_MODE (x1) != i2)
4423 : return -1;
4424 3064 : x2 = XEXP (x1, 0);
4425 3064 : if (GET_MODE (x2) != i2
4426 3064 : || !nonimmediate_operand (operands[1], i2)
4427 3016 : || !register_operand (operands[2], i2)
4428 2997 : || !nonimm_or_0_operand (operands[3], i2)
4429 5963 : || !register_operand (operands[4], i1))
4430 676 : return -1;
4431 : return 0;
4432 : }
4433 :
4434 : int
4435 1642 : pattern1124 (rtx x1)
4436 : {
4437 1642 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4438 1642 : rtx x2;
4439 1642 : int res ATTRIBUTE_UNUSED;
4440 1642 : x2 = XEXP (x1, 2);
4441 1642 : if (XWINT (x2, 0) != 1L
4442 1642 : || !const_0_to_255_operand (operands[3], E_SImode))
4443 0 : return -1;
4444 1642 : return pattern1123 (x1); /* [-1, 2] */
4445 : }
4446 :
4447 : int
4448 14582 : pattern1131 (rtx x1, machine_mode i1)
4449 : {
4450 14582 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4451 14582 : int res ATTRIBUTE_UNUSED;
4452 14582 : if (!register_operand (operands[0], i1)
4453 14202 : || GET_MODE (x1) != i1
4454 14202 : || !nonimmediate_operand (operands[2], i1)
4455 10270 : || !register_operand (operands[1], i1)
4456 22595 : || !const_0_to_255_operand (operands[3], E_SImode))
4457 6987 : return -1;
4458 : return 0;
4459 : }
4460 :
4461 : int
4462 940 : pattern1139 (rtx x1, machine_mode i1)
4463 : {
4464 940 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4465 940 : rtx x2, x3, x4;
4466 940 : int res ATTRIBUTE_UNUSED;
4467 940 : if (!register_operand (operands[0], i1)
4468 940 : || GET_MODE (x1) != i1)
4469 : return -1;
4470 892 : x2 = XVECEXP (x1, 0, 0);
4471 892 : if (GET_MODE (x2) != i1)
4472 : return -1;
4473 892 : x3 = XEXP (x2, 0);
4474 892 : if (GET_MODE (x3) != i1)
4475 : return -1;
4476 892 : x4 = XEXP (x3, 0);
4477 892 : if (GET_MODE (x4) != i1
4478 892 : || !register_operand (operands[1], i1)
4479 868 : || !nonimmediate_operand (operands[2], i1)
4480 1756 : || !nonimm_or_0_operand (operands[3], i1))
4481 56 : return -1;
4482 : return 0;
4483 : }
4484 :
4485 : int
4486 350 : pattern1145 (rtx x1)
4487 : {
4488 350 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4489 350 : rtx x2;
4490 350 : int res ATTRIBUTE_UNUSED;
4491 350 : x2 = XVECEXP (x1, 0, 0);
4492 350 : if (GET_MODE (x2) != E_V32HFmode
4493 350 : || !register_operand (operands[0], E_V32HFmode)
4494 324 : || GET_MODE (x1) != E_V32HFmode
4495 324 : || !register_operand (operands[1], E_V32HFmode)
4496 308 : || !register_operand (operands[2], E_V32HFmode)
4497 650 : || !const_4_or_8_to_11_operand (operands[3], E_SImode))
4498 50 : return -1;
4499 : return 0;
4500 : }
4501 :
4502 : int
4503 5598 : pattern1152 (rtx x1, machine_mode i1, machine_mode i2)
4504 : {
4505 5598 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4506 5598 : rtx x2;
4507 5598 : int res ATTRIBUTE_UNUSED;
4508 5598 : if (!register_operand (operands[0], i2)
4509 5598 : || GET_MODE (x1) != i2)
4510 : return -1;
4511 4687 : x2 = XEXP (x1, 0);
4512 4687 : if (GET_MODE (x2) != i1
4513 4687 : || !register_operand (operands[1], i2)
4514 8439 : || !nonimmediate_operand (operands[2], i1))
4515 1871 : return -1;
4516 : return 0;
4517 : }
4518 :
4519 : int
4520 0 : pattern1161 (rtx x1)
4521 : {
4522 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4523 0 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4524 0 : rtx x10;
4525 0 : int res ATTRIBUTE_UNUSED;
4526 0 : x2 = XVECEXP (x1, 0, 0);
4527 0 : x3 = XEXP (x2, 1);
4528 0 : x4 = XVECEXP (x3, 0, 0);
4529 0 : x5 = XEXP (x4, 0);
4530 0 : operands[5] = x5;
4531 0 : x6 = XVECEXP (x3, 0, 1);
4532 0 : operands[2] = x6;
4533 0 : if (!register_operand (operands[2], E_QImode))
4534 : return -1;
4535 0 : x7 = XVECEXP (x3, 0, 2);
4536 0 : operands[3] = x7;
4537 0 : x8 = XVECEXP (x3, 0, 3);
4538 0 : operands[4] = x8;
4539 0 : x9 = XVECEXP (x1, 0, 1);
4540 0 : x10 = XEXP (x9, 0);
4541 0 : operands[1] = x10;
4542 0 : switch (GET_MODE (operands[0]))
4543 : {
4544 0 : case E_SImode:
4545 0 : return pattern1160 (x3,
4546 0 : E_SImode); /* [-1, 0] */
4547 :
4548 0 : case E_DImode:
4549 0 : if (pattern1160 (x3,
4550 : E_DImode) != 0)
4551 : return -1;
4552 : return 1;
4553 :
4554 : default:
4555 : return -1;
4556 : }
4557 : }
4558 :
4559 : int
4560 803 : pattern1173 (rtx x1)
4561 : {
4562 803 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4563 803 : rtx x2, x3, x4, x5, x6, x7;
4564 803 : int res ATTRIBUTE_UNUSED;
4565 803 : x2 = XEXP (x1, 0);
4566 803 : x3 = XEXP (x2, 0);
4567 803 : x4 = XEXP (x3, 1);
4568 803 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4569 : return -1;
4570 741 : x5 = XEXP (x3, 0);
4571 741 : operands[3] = x5;
4572 741 : if (!int_nonimmediate_operand (operands[3], E_VOIDmode))
4573 : return -1;
4574 590 : x6 = XEXP (x2, 1);
4575 590 : operands[1] = x6;
4576 590 : x7 = XEXP (x1, 1);
4577 590 : operands[2] = x7;
4578 590 : switch (GET_MODE (operands[0]))
4579 : {
4580 0 : case E_QImode:
4581 0 : return pattern1171 (x1,
4582 0 : E_QImode); /* [-1, 0] */
4583 :
4584 0 : case E_HImode:
4585 0 : if (pattern1171 (x1,
4586 : E_HImode) != 0)
4587 : return -1;
4588 : return 1;
4589 :
4590 226 : case E_SImode:
4591 226 : if (pattern1172 (x1,
4592 : E_SImode) != 0)
4593 : return -1;
4594 : return 2;
4595 :
4596 364 : case E_DImode:
4597 364 : if (pattern1172 (x1,
4598 : E_DImode) != 0)
4599 : return -1;
4600 : return 3;
4601 :
4602 : default:
4603 : return -1;
4604 : }
4605 : }
4606 :
4607 : int
4608 85058 : pattern1187 (rtx x1)
4609 : {
4610 85058 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4611 85058 : rtx x2, x3, x4;
4612 85058 : int res ATTRIBUTE_UNUSED;
4613 85058 : x2 = XEXP (x1, 0);
4614 85058 : if (maybe_ne (SUBREG_BYTE (x2), 0)
4615 85058 : || GET_MODE (x2) != E_QImode)
4616 : return -1;
4617 18981 : x3 = XEXP (x2, 0);
4618 18981 : switch (GET_CODE (x3))
4619 : {
4620 2391 : case ASHIFTRT:
4621 2391 : case LSHIFTRT:
4622 2391 : case SIGN_EXTRACT:
4623 2391 : case ZERO_EXTRACT:
4624 2391 : operands[3] = x3;
4625 2391 : if (GET_MODE (x1) != E_QImode)
4626 : return -1;
4627 2391 : x4 = XEXP (x3, 0);
4628 2391 : if (!int248_register_operand (x4, E_VOIDmode))
4629 : return -1;
4630 : return 0;
4631 :
4632 : default:
4633 : return -1;
4634 : }
4635 : }
4636 :
4637 : int
4638 0 : pattern1198 (rtx x1, machine_mode i1)
4639 : {
4640 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4641 0 : rtx x2, x3;
4642 0 : int res ATTRIBUTE_UNUSED;
4643 0 : if (!register_operand (operands[0], i1)
4644 0 : || GET_MODE (x1) != i1)
4645 : return -1;
4646 0 : x2 = XEXP (x1, 0);
4647 0 : if (GET_MODE (x2) != i1)
4648 : return -1;
4649 0 : x3 = XEXP (x2, 0);
4650 0 : if (GET_MODE (x3) != i1
4651 0 : || !register_operand (operands[1], i1)
4652 0 : || !register_operand (operands[2], i1)
4653 0 : || !nonimmediate_operand (operands[3], i1))
4654 0 : return -1;
4655 : return 0;
4656 : }
4657 :
4658 : int
4659 440644 : pattern1205 (rtx x1, machine_mode i1, machine_mode i2)
4660 : {
4661 440644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4662 440644 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
4663 440644 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
4664 440644 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
4665 440644 : rtx x26, x27, x28, x29, x30;
4666 440644 : int res ATTRIBUTE_UNUSED;
4667 440644 : x2 = PATTERN (peep2_next_insn (2));
4668 440644 : if (GET_CODE (x2) != SET)
4669 : return -1;
4670 320454 : x3 = XEXP (x2, 1);
4671 320454 : if (!rtx_equal_p (x3, operands[0]))
4672 : return -1;
4673 65201 : x4 = XVECEXP (x1, 0, 0);
4674 65201 : x5 = XEXP (x4, 1);
4675 65201 : switch (GET_CODE (x5))
4676 : {
4677 2516 : case COMPARE:
4678 2516 : x6 = XEXP (x4, 0);
4679 2516 : if (GET_CODE (x6) != REG
4680 2516 : || REGNO (x6) != 17)
4681 : return -1;
4682 2516 : x7 = XVECEXP (x1, 0, 1);
4683 2516 : if (GET_CODE (x7) != SET)
4684 : return -1;
4685 2496 : x8 = XEXP (x7, 1);
4686 2496 : if (GET_MODE (x8) != i1)
4687 : return -1;
4688 2490 : x9 = XEXP (x7, 0);
4689 2490 : if (!rtx_equal_p (x9, operands[0]))
4690 : return -1;
4691 2485 : x10 = XEXP (x5, 0);
4692 2485 : switch (GET_CODE (x10))
4693 : {
4694 185 : case REG:
4695 185 : return pattern1199 (x1,
4696 185 : i1); /* [-1, 0] */
4697 :
4698 4 : case SUBREG:
4699 4 : case MEM:
4700 4 : if (pattern1200 (x1,
4701 : i1) != 0)
4702 : return -1;
4703 : return 1;
4704 :
4705 516 : case ZERO_EXTEND:
4706 516 : if (GET_MODE (x10) != i2)
4707 : return -1;
4708 516 : x11 = XEXP (x5, 1);
4709 516 : if (GET_CODE (x11) != PLUS
4710 516 : || GET_MODE (x11) != i2)
4711 : return -1;
4712 516 : x12 = XEXP (x11, 0);
4713 516 : if (!ix86_carry_flag_operator (x12, i2))
4714 : return -1;
4715 516 : operands[4] = x12;
4716 516 : x13 = XEXP (x12, 1);
4717 516 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4718 : return -1;
4719 516 : x14 = XEXP (x11, 1);
4720 516 : if (GET_CODE (x14) != ZERO_EXTEND
4721 516 : || GET_MODE (x14) != i2
4722 516 : || GET_MODE (x6) != E_CCCmode
4723 516 : || GET_MODE (x5) != E_CCCmode)
4724 : return -1;
4725 516 : x15 = XEXP (x10, 0);
4726 516 : switch (GET_CODE (x15))
4727 : {
4728 200 : case PLUS:
4729 200 : if (GET_MODE (x15) != i1)
4730 : return -1;
4731 200 : x16 = XEXP (x15, 0);
4732 200 : if (GET_CODE (x16) != PLUS
4733 200 : || GET_MODE (x16) != i1)
4734 : return -1;
4735 200 : x17 = XEXP (x16, 0);
4736 200 : if (!ix86_carry_flag_operator (x17, i1))
4737 : return -1;
4738 200 : operands[5] = x17;
4739 200 : x18 = XEXP (x17, 1);
4740 200 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
4741 200 : || GET_CODE (x8) != PLUS)
4742 : return -1;
4743 200 : x19 = XEXP (x8, 0);
4744 200 : if (GET_CODE (x19) != PLUS
4745 200 : || GET_MODE (x19) != i1)
4746 : return -1;
4747 200 : x20 = XEXP (x19, 0);
4748 200 : switch (GET_CODE (x20))
4749 : {
4750 200 : case LTU:
4751 200 : case UNLT:
4752 200 : if (!rtx_equal_p (x20, operands[5]))
4753 : return -1;
4754 200 : x21 = XEXP (x17, 0);
4755 200 : operands[3] = x21;
4756 200 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4757 : return -1;
4758 200 : x22 = XEXP (x12, 0);
4759 200 : if (!rtx_equal_p (x22, operands[3]))
4760 : return -1;
4761 200 : x23 = XEXP (x16, 1);
4762 200 : switch (GET_CODE (x23))
4763 : {
4764 188 : case REG:
4765 188 : if (!rtx_equal_p (x23, operands[0]))
4766 : return -1;
4767 188 : x24 = XEXP (x15, 1);
4768 188 : operands[2] = x24;
4769 188 : if (!memory_operand (operands[2], i1))
4770 : return -1;
4771 177 : x25 = XEXP (x14, 0);
4772 177 : if (!rtx_equal_p (x25, operands[2]))
4773 : return -1;
4774 177 : x26 = XEXP (x19, 1);
4775 177 : if (!rtx_equal_p (x26, operands[0]))
4776 : return -1;
4777 177 : x27 = XEXP (x8, 1);
4778 177 : if (!rtx_equal_p (x27, operands[2]))
4779 : return -1;
4780 177 : x28 = XEXP (x2, 0);
4781 177 : if (!rtx_equal_p (x28, operands[1]))
4782 : return -1;
4783 : return 2;
4784 :
4785 12 : case SUBREG:
4786 12 : case MEM:
4787 12 : operands[2] = x23;
4788 12 : if (!memory_operand (operands[2], i1))
4789 : return -1;
4790 12 : x24 = XEXP (x15, 1);
4791 12 : if (!rtx_equal_p (x24, operands[0]))
4792 : return -1;
4793 12 : x25 = XEXP (x14, 0);
4794 12 : if (!rtx_equal_p (x25, operands[0]))
4795 : return -1;
4796 12 : x26 = XEXP (x19, 1);
4797 12 : if (!rtx_equal_p (x26, operands[2]))
4798 : return -1;
4799 12 : x27 = XEXP (x8, 1);
4800 12 : if (!rtx_equal_p (x27, operands[0]))
4801 : return -1;
4802 : return 3;
4803 :
4804 : default:
4805 : return -1;
4806 : }
4807 :
4808 : default:
4809 : return -1;
4810 : }
4811 :
4812 306 : case REG:
4813 306 : if (!rtx_equal_p (x15, operands[0])
4814 306 : || GET_CODE (x8) != MINUS)
4815 : return -1;
4816 306 : x19 = XEXP (x8, 0);
4817 306 : if (GET_CODE (x19) != MINUS
4818 306 : || GET_MODE (x19) != i1)
4819 : return -1;
4820 306 : x26 = XEXP (x19, 1);
4821 306 : if (!ix86_carry_flag_operator (x26, i1))
4822 : return -1;
4823 306 : operands[5] = x26;
4824 306 : x29 = XEXP (x26, 1);
4825 306 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4826 : return -1;
4827 306 : x22 = XEXP (x12, 0);
4828 306 : operands[3] = x22;
4829 306 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4830 : return -1;
4831 306 : x25 = XEXP (x14, 0);
4832 306 : operands[2] = x25;
4833 306 : if (!memory_operand (operands[2], i1))
4834 : return -1;
4835 153 : x20 = XEXP (x19, 0);
4836 153 : if (!rtx_equal_p (x20, operands[0]))
4837 : return -1;
4838 153 : x30 = XEXP (x26, 0);
4839 153 : if (!rtx_equal_p (x30, operands[3]))
4840 : return -1;
4841 153 : x27 = XEXP (x8, 1);
4842 153 : if (!rtx_equal_p (x27, operands[2]))
4843 : return -1;
4844 153 : x28 = XEXP (x2, 0);
4845 153 : if (!rtx_equal_p (x28, operands[1]))
4846 : return -1;
4847 : return 4;
4848 :
4849 10 : case SUBREG:
4850 10 : case MEM:
4851 10 : operands[2] = x15;
4852 10 : if (!memory_operand (operands[2], i1)
4853 10 : || GET_CODE (x8) != MINUS)
4854 : return -1;
4855 10 : x19 = XEXP (x8, 0);
4856 10 : if (GET_CODE (x19) != MINUS
4857 10 : || GET_MODE (x19) != i1)
4858 : return -1;
4859 10 : x26 = XEXP (x19, 1);
4860 10 : if (!ix86_carry_flag_operator (x26, i1))
4861 : return -1;
4862 10 : operands[5] = x26;
4863 10 : x29 = XEXP (x26, 1);
4864 10 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
4865 : return -1;
4866 10 : x22 = XEXP (x12, 0);
4867 10 : operands[3] = x22;
4868 10 : if (!flags_reg_operand (operands[3], E_VOIDmode))
4869 : return -1;
4870 10 : x25 = XEXP (x14, 0);
4871 10 : if (!rtx_equal_p (x25, operands[0]))
4872 : return -1;
4873 10 : x20 = XEXP (x19, 0);
4874 10 : if (!rtx_equal_p (x20, operands[2]))
4875 : return -1;
4876 10 : x30 = XEXP (x26, 0);
4877 10 : if (!rtx_equal_p (x30, operands[3]))
4878 : return -1;
4879 10 : x27 = XEXP (x8, 1);
4880 10 : if (!rtx_equal_p (x27, operands[0]))
4881 : return -1;
4882 10 : x28 = XEXP (x2, 0);
4883 10 : if (!rtx_equal_p (x28, operands[2]))
4884 : return -1;
4885 : return 5;
4886 :
4887 : default:
4888 : return -1;
4889 : }
4890 :
4891 873 : case PLUS:
4892 873 : if (pattern1201 (x1,
4893 : i1) != 0)
4894 : return -1;
4895 : return 6;
4896 :
4897 : default:
4898 : return -1;
4899 : }
4900 :
4901 36074 : case PLUS:
4902 36074 : res = pattern1203 (x1,
4903 : i1);
4904 36074 : if (res >= 0)
4905 4 : return res + 7; /* [7, 8] */
4906 : return -1;
4907 :
4908 9211 : case MINUS:
4909 9211 : res = pattern1204 (x1,
4910 : i1);
4911 9211 : if (res >= 0)
4912 8 : return res + 9; /* [9, 10] */
4913 : return -1;
4914 :
4915 : default:
4916 : return -1;
4917 : }
4918 : }
4919 :
4920 : int
4921 2130 : pattern1314 (rtx x1)
4922 : {
4923 2130 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4924 2130 : rtx x2, x3;
4925 2130 : int res ATTRIBUTE_UNUSED;
4926 2130 : if (!const48_operand (operands[4], E_SImode))
4927 : return -1;
4928 2130 : switch (GET_MODE (operands[0]))
4929 : {
4930 530 : case E_V16SImode:
4931 530 : return pattern1308 (x1,
4932 : E_HImode,
4933 : E_V16SImode,
4934 530 : E_V16SFmode); /* [-1, 0] */
4935 :
4936 560 : case E_V8SImode:
4937 560 : if (pattern1308 (x1,
4938 : E_QImode,
4939 : E_V8SImode,
4940 : E_V8DFmode) != 0)
4941 : return -1;
4942 : return 1;
4943 :
4944 1040 : case E_V8DImode:
4945 1040 : if (!register_operand (operands[0], E_V8DImode)
4946 1040 : || GET_MODE (x1) != E_V8DImode)
4947 : return -1;
4948 960 : x2 = XVECEXP (x1, 0, 0);
4949 960 : if (GET_MODE (x2) != E_V8DImode)
4950 : return -1;
4951 960 : x3 = XEXP (x2, 0);
4952 960 : if (GET_MODE (x3) != E_V8DImode
4953 960 : || !nonimm_or_0_operand (operands[2], E_V8DImode)
4954 1884 : || !register_operand (operands[3], E_QImode))
4955 80 : return -1;
4956 880 : switch (GET_MODE (operands[1]))
4957 : {
4958 440 : case E_V8DFmode:
4959 440 : if (!register_operand (operands[1], E_V8DFmode))
4960 : return -1;
4961 : return 2;
4962 :
4963 440 : case E_V8SFmode:
4964 440 : if (!register_operand (operands[1], E_V8SFmode))
4965 : return -1;
4966 : return 3;
4967 :
4968 : default:
4969 : return -1;
4970 : }
4971 :
4972 : default:
4973 : return -1;
4974 : }
4975 : }
4976 :
4977 : int
4978 5394 : pattern1330 (rtx x1, machine_mode i1)
4979 : {
4980 5394 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4981 5394 : int res ATTRIBUTE_UNUSED;
4982 5394 : if (!nonimmediate_operand (operands[1], i1)
4983 3105 : || !const_1_to_31_operand (operands[2], E_QImode)
4984 1947 : || !nonimmediate_operand (operands[0], i1)
4985 7341 : || GET_MODE (x1) != i1)
4986 3447 : return -1;
4987 : return 0;
4988 : }
4989 :
4990 : int
4991 224 : pattern1336 (rtx x1, machine_mode i1)
4992 : {
4993 224 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
4994 224 : rtx x2, x3;
4995 224 : int res ATTRIBUTE_UNUSED;
4996 224 : if (!register_operand (operands[0], i1)
4997 224 : || GET_MODE (x1) != i1)
4998 : return -1;
4999 224 : x2 = XEXP (x1, 0);
5000 224 : if (GET_MODE (x2) != i1
5001 224 : || !nonimmediate_operand (operands[1], i1))
5002 0 : return -1;
5003 224 : x3 = XEXP (x1, 1);
5004 224 : if (GET_MODE (x3) != i1)
5005 : return -1;
5006 : return 0;
5007 : }
5008 :
5009 : int
5010 844631 : pattern1342 (rtx x1, int *pnum_clobbers)
5011 : {
5012 844631 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5013 844631 : rtx x2, x3;
5014 844631 : int res ATTRIBUTE_UNUSED;
5015 844631 : x2 = XVECEXP (x1, 0, 2);
5016 844631 : switch (GET_CODE (x2))
5017 : {
5018 18 : case UNSPEC:
5019 18 : if (pnum_clobbers == NULL)
5020 : return -1;
5021 18 : return pattern392 (x1); /* [-1, 1] */
5022 :
5023 822266 : case CLOBBER:
5024 822266 : x3 = XEXP (x2, 0);
5025 822266 : if (GET_CODE (x3) != REG
5026 822266 : || REGNO (x3) != 17
5027 1644532 : || GET_MODE (x3) != E_CCmode)
5028 : return -1;
5029 822266 : switch (GET_MODE (operands[0]))
5030 : {
5031 6827 : case E_HImode:
5032 6827 : if (pattern391 (x1,
5033 : E_HImode) != 0)
5034 : return -1;
5035 : return 2;
5036 :
5037 239269 : case E_SImode:
5038 239269 : if (pattern391 (x1,
5039 : E_SImode) != 0)
5040 : return -1;
5041 : return 3;
5042 :
5043 576170 : case E_DImode:
5044 576170 : if (pattern391 (x1,
5045 : E_DImode) != 0)
5046 : return -1;
5047 : return 4;
5048 :
5049 : default:
5050 : return -1;
5051 : }
5052 :
5053 0 : case USE:
5054 0 : res = pattern394 (x1);
5055 0 : if (res >= 0)
5056 0 : return res + 5; /* [5, 7] */
5057 : return -1;
5058 :
5059 : default:
5060 : return -1;
5061 : }
5062 : }
5063 :
5064 : int
5065 278774 : pattern1361 (rtx x1, machine_mode i1)
5066 : {
5067 278774 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5068 278774 : rtx x2, x3, x4, x5, x6;
5069 278774 : int res ATTRIBUTE_UNUSED;
5070 278774 : if (!plusminuslogic_operator (operands[3], i1))
5071 : return -1;
5072 272336 : x2 = XVECEXP (x1, 0, 1);
5073 272336 : if (GET_CODE (x2) != CLOBBER)
5074 : return -1;
5075 272336 : x3 = XEXP (x2, 0);
5076 272336 : if (GET_CODE (x3) != REG
5077 272336 : || REGNO (x3) != 17
5078 544672 : || GET_MODE (x3) != E_CCmode)
5079 : return -1;
5080 272336 : x4 = XVECEXP (x1, 0, 0);
5081 272336 : x5 = XEXP (x4, 1);
5082 272336 : x6 = XEXP (x5, 1);
5083 272336 : operands[2] = x6;
5084 272336 : if (!x86_64_nonmemory_operand (operands[2], i1))
5085 : return -1;
5086 : return 0;
5087 : }
5088 :
5089 : int
5090 21 : pattern1369 (rtx x1, machine_mode i1)
5091 : {
5092 21 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5093 21 : rtx x2;
5094 21 : int res ATTRIBUTE_UNUSED;
5095 21 : if (!nonimmediate_operand (operands[0], i1)
5096 21 : || GET_MODE (x1) != i1)
5097 : return -1;
5098 21 : x2 = XEXP (x1, 0);
5099 21 : if (GET_MODE (x2) != i1
5100 21 : || !nonimmediate_operand (operands[1], i1)
5101 21 : || !ix86_carry_flag_operator (operands[4], i1)
5102 42 : || !general_operand (operands[2], i1))
5103 0 : return -1;
5104 : return 0;
5105 : }
5106 :
5107 : int
5108 5599 : pattern1375 ()
5109 : {
5110 5599 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5111 5599 : int res ATTRIBUTE_UNUSED;
5112 5599 : switch (GET_MODE (operands[4]))
5113 : {
5114 176 : case E_QImode:
5115 176 : if (!register_operand (operands[4], E_QImode))
5116 : return -1;
5117 : return 0;
5118 :
5119 54 : case E_HImode:
5120 54 : if (!register_operand (operands[4], E_HImode))
5121 : return -1;
5122 : return 1;
5123 :
5124 1398 : case E_SImode:
5125 1398 : if (!register_operand (operands[4], E_SImode))
5126 : return -1;
5127 : return 2;
5128 :
5129 3971 : case E_DImode:
5130 3971 : if (!register_operand (operands[4], E_DImode))
5131 : return -1;
5132 : return 3;
5133 :
5134 : default:
5135 : return -1;
5136 : }
5137 : }
5138 :
5139 : int
5140 972 : pattern1384 (rtx x1, machine_mode i1, machine_mode i2)
5141 : {
5142 972 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5143 972 : rtx x2;
5144 972 : int res ATTRIBUTE_UNUSED;
5145 972 : if (!register_operand (operands[0], i1)
5146 972 : || GET_MODE (x1) != i1)
5147 : return -1;
5148 925 : x2 = XEXP (x1, 0);
5149 925 : if (GET_MODE (x2) != i1
5150 925 : || !bcst_vector_operand (operands[1], i1)
5151 1850 : || pattern1383 (
5152 : i1,
5153 : i2) != 0)
5154 4 : return -1;
5155 : return 0;
5156 : }
5157 :
5158 : int
5159 546 : pattern1391 (rtx x1, machine_mode i1, machine_mode i2)
5160 : {
5161 546 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5162 546 : int res ATTRIBUTE_UNUSED;
5163 546 : if (!nonimmediate_operand (operands[2], i2)
5164 546 : || GET_MODE (x1) != i2
5165 546 : || !nonimmediate_operand (operands[3], i2)
5166 546 : || !const0_operand (operands[4], i2)
5167 1092 : || !register_operand (operands[5], i1))
5168 0 : return -1;
5169 : return 0;
5170 : }
5171 :
5172 : int
5173 40 : pattern1398 (rtx x1, machine_mode i1)
5174 : {
5175 40 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5176 40 : rtx x2, x3;
5177 40 : int res ATTRIBUTE_UNUSED;
5178 40 : if (!register_operand (operands[0], i1)
5179 40 : || GET_MODE (x1) != i1)
5180 : return -1;
5181 40 : x2 = XEXP (x1, 0);
5182 40 : if (GET_MODE (x2) != i1)
5183 : return -1;
5184 40 : x3 = XEXP (x2, 0);
5185 40 : if (GET_MODE (x3) != i1
5186 40 : || !nonimmediate_operand (operands[1], i1)
5187 40 : || !nonimmediate_operand (operands[2], i1)
5188 40 : || !nonimmediate_operand (operands[3], i1)
5189 80 : || !const0_operand (operands[4], i1))
5190 0 : return -1;
5191 : return 0;
5192 : }
5193 :
5194 : int
5195 1126 : pattern1410 (rtx x1, machine_mode i1)
5196 : {
5197 1126 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5198 1126 : rtx x2, x3, x4, x5, x6;
5199 1126 : int res ATTRIBUTE_UNUSED;
5200 1126 : if (!register_operand (operands[0], i1)
5201 1126 : || GET_MODE (x1) != i1)
5202 : return -1;
5203 1075 : x2 = XVECEXP (x1, 0, 0);
5204 1075 : if (GET_MODE (x2) != i1)
5205 : return -1;
5206 1075 : x3 = XEXP (x2, 0);
5207 1075 : if (GET_MODE (x3) != i1)
5208 : return -1;
5209 1075 : x4 = XEXP (x3, 0);
5210 1075 : if (GET_MODE (x4) != i1)
5211 : return -1;
5212 1075 : x5 = XEXP (x4, 0);
5213 1075 : if (GET_MODE (x5) != i1)
5214 : return -1;
5215 1075 : x6 = XEXP (x4, 1);
5216 1075 : if (!register_operand (x6, i1))
5217 : return -1;
5218 : return 0;
5219 : }
5220 :
5221 : int
5222 1833 : pattern1417 (rtx x1)
5223 : {
5224 1833 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5225 1833 : rtx x2, x3;
5226 1833 : int res ATTRIBUTE_UNUSED;
5227 1833 : x2 = XVECEXP (x1, 0, 0);
5228 1833 : x3 = XEXP (x2, 1);
5229 1833 : if (!rtx_equal_p (x3, operands[1]))
5230 : return -1;
5231 1833 : switch (GET_MODE (operands[0]))
5232 : {
5233 379 : case E_V8HFmode:
5234 379 : return pattern1416 (x1,
5235 379 : E_V8HFmode); /* [-1, 0] */
5236 :
5237 235 : case E_V4SFmode:
5238 235 : if (pattern1416 (x1,
5239 : E_V4SFmode) != 0)
5240 : return -1;
5241 : return 1;
5242 :
5243 1219 : case E_V2DFmode:
5244 1219 : if (pattern1416 (x1,
5245 : E_V2DFmode) != 0)
5246 : return -1;
5247 : return 2;
5248 :
5249 : default:
5250 : return -1;
5251 : }
5252 : }
5253 :
5254 : int
5255 3681 : pattern1426 (rtx x1)
5256 : {
5257 3681 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5258 3681 : rtx x2, x3, x4, x5;
5259 3681 : int res ATTRIBUTE_UNUSED;
5260 3681 : x2 = XVECEXP (x1, 0, 12);
5261 3681 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
5262 : return -1;
5263 3676 : x3 = XVECEXP (x1, 0, 13);
5264 3676 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
5265 : return -1;
5266 3676 : x4 = XVECEXP (x1, 0, 14);
5267 3676 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
5268 : return -1;
5269 3676 : x5 = XVECEXP (x1, 0, 15);
5270 3676 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
5271 0 : return -1;
5272 : return 0;
5273 : }
5274 :
5275 : int
5276 599 : pattern1436 (rtx x1, rtx_code i1)
5277 : {
5278 599 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5279 599 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5280 599 : int res ATTRIBUTE_UNUSED;
5281 599 : x2 = XVECEXP (x1, 0, 1);
5282 599 : x3 = XEXP (x2, 1);
5283 599 : if (GET_MODE (x3) != E_DImode)
5284 : return -1;
5285 531 : x4 = XEXP (x3, 0);
5286 531 : if (GET_CODE (x4) != i1
5287 86 : || GET_MODE (x4) != E_SImode)
5288 : return -1;
5289 62 : x5 = XVECEXP (x1, 0, 0);
5290 62 : x6 = XEXP (x5, 1);
5291 62 : x7 = XEXP (x6, 0);
5292 62 : if (GET_MODE (x7) != E_SImode
5293 62 : || !nonimmediate_operand (operands[1], E_SImode)
5294 62 : || !x86_64_general_operand (operands[2], E_SImode)
5295 124 : || !register_operand (operands[0], E_DImode))
5296 0 : return -1;
5297 62 : x8 = XEXP (x4, 0);
5298 62 : if (!rtx_equal_p (x8, operands[1]))
5299 : return -1;
5300 62 : x9 = XEXP (x4, 1);
5301 62 : if (!rtx_equal_p (x9, operands[2]))
5302 : return -1;
5303 : return 0;
5304 : }
5305 :
5306 : int
5307 54362 : pattern1451 (rtx x1, machine_mode i1, machine_mode i2)
5308 : {
5309 54362 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5310 54362 : int res ATTRIBUTE_UNUSED;
5311 54362 : if (!nonimmediate_operand (operands[0], i2)
5312 54275 : || GET_MODE (x1) != i2
5313 54275 : || !register_operand (operands[1], i1)
5314 108132 : || !scratch_operand (operands[2], i1))
5315 592 : return -1;
5316 : return 0;
5317 : }
5318 :
5319 : int
5320 1157 : pattern1458 (rtx x1, int i1)
5321 : {
5322 1157 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5323 1157 : rtx x2, x3, x4;
5324 1157 : int res ATTRIBUTE_UNUSED;
5325 1157 : x2 = XEXP (x1, 1);
5326 1157 : x3 = XEXP (x2, 1);
5327 1157 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
5328 : return -1;
5329 720 : x4 = XEXP (x1, 0);
5330 720 : if (GET_CODE (x4) != REG
5331 720 : || REGNO (x4) != 17
5332 1440 : || GET_MODE (x4) != E_CCZmode)
5333 0 : return -1;
5334 : return 0;
5335 : }
5336 :
5337 : int
5338 0 : pattern1464 (rtx x1, machine_mode i1)
5339 : {
5340 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5341 0 : rtx x2, x3, x4;
5342 0 : int res ATTRIBUTE_UNUSED;
5343 0 : if (!register_operand (operands[0], i1)
5344 0 : || GET_MODE (x1) != i1)
5345 : return -1;
5346 0 : x2 = XEXP (x1, 0);
5347 0 : if (GET_MODE (x2) != i1
5348 0 : || !nonimmediate_operand (operands[1], i1))
5349 0 : return -1;
5350 0 : x3 = XEXP (x1, 1);
5351 0 : if (GET_MODE (x3) != i1)
5352 : return -1;
5353 0 : x4 = XEXP (x3, 0);
5354 0 : if (GET_MODE (x4) != i1)
5355 : return -1;
5356 : return 0;
5357 : }
5358 :
5359 : int
5360 284 : pattern1472 (rtx x1, machine_mode i1)
5361 : {
5362 284 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5363 284 : rtx x2, x3, x4;
5364 284 : int res ATTRIBUTE_UNUSED;
5365 284 : if (!register_operand (operands[0], i1)
5366 284 : || GET_MODE (x1) != i1)
5367 : return -1;
5368 256 : x2 = XEXP (x1, 0);
5369 256 : if (GET_MODE (x2) != i1)
5370 : return -1;
5371 256 : x3 = XEXP (x2, 0);
5372 256 : if (GET_MODE (x3) != i1
5373 256 : || !nonimmediate_operand (operands[1], i1)
5374 512 : || !nonimmediate_operand (operands[2], i1))
5375 4 : return -1;
5376 252 : x4 = XEXP (x3, 2);
5377 252 : if (GET_MODE (x4) != i1
5378 252 : || !nonimmediate_operand (operands[3], i1))
5379 0 : return -1;
5380 : return 0;
5381 : }
5382 :
5383 : int
5384 446 : pattern1482 (rtx x1)
5385 : {
5386 446 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5387 446 : rtx x2, x3, x4, x5;
5388 446 : int res ATTRIBUTE_UNUSED;
5389 446 : x2 = XVECEXP (x1, 0, 12);
5390 446 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
5391 : return -1;
5392 446 : x3 = XVECEXP (x1, 0, 13);
5393 446 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
5394 : return -1;
5395 446 : x4 = XVECEXP (x1, 0, 14);
5396 446 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
5397 : return -1;
5398 446 : x5 = XVECEXP (x1, 0, 15);
5399 446 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 15])
5400 0 : return -1;
5401 : return 0;
5402 : }
5403 :
5404 : int
5405 217 : pattern1489 (rtx x1, machine_mode i1)
5406 : {
5407 217 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5408 217 : rtx x2, x3;
5409 217 : int res ATTRIBUTE_UNUSED;
5410 217 : if (!register_operand (operands[0], i1)
5411 217 : || GET_MODE (x1) != i1)
5412 : return -1;
5413 198 : x2 = XVECEXP (x1, 0, 0);
5414 198 : if (GET_MODE (x2) != i1
5415 198 : || !register_operand (operands[1], i1)
5416 385 : || !register_operand (operands[2], i1))
5417 15 : return -1;
5418 183 : x3 = XVECEXP (x2, 0, 2);
5419 183 : if (GET_MODE (x3) != i1
5420 183 : || !register_operand (operands[3], i1))
5421 0 : return -1;
5422 : return 0;
5423 : }
5424 :
5425 : int
5426 348813 : pattern1495 (machine_mode i1)
5427 : {
5428 348813 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5429 348813 : int res ATTRIBUTE_UNUSED;
5430 348813 : if (!register_operand (operands[1], i1)
5431 331 : || !const_0_to_15_operand (operands[2], E_VOIDmode)
5432 331 : || !const_0_to_15_operand (operands[3], E_VOIDmode)
5433 331 : || !const_0_to_15_operand (operands[4], E_VOIDmode)
5434 349144 : || !const_0_to_15_operand (operands[5], E_VOIDmode))
5435 348482 : return -1;
5436 : return 0;
5437 : }
5438 :
5439 : int
5440 33211 : pattern1504 (rtx x1)
5441 : {
5442 33211 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5443 33211 : rtx x2, x3, x4, x5;
5444 33211 : int res ATTRIBUTE_UNUSED;
5445 33211 : if (!register_operand (operands[0], E_SImode))
5446 : return -1;
5447 26542 : x2 = XVECEXP (x1, 0, 0);
5448 26542 : x3 = XEXP (x2, 1);
5449 26542 : if (GET_MODE (x3) != E_SImode
5450 26542 : || !nonimmediate_operand (operands[3], E_SImode)
5451 52632 : || !register_operand (operands[1], E_SImode))
5452 484 : return -1;
5453 26058 : x4 = XVECEXP (x1, 0, 1);
5454 26058 : x5 = XEXP (x4, 1);
5455 26058 : if (GET_MODE (x5) != E_SImode)
5456 : return -1;
5457 : return 0;
5458 : }
5459 :
5460 : int
5461 9 : pattern1512 (rtx x1)
5462 : {
5463 9 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5464 9 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5465 9 : int res ATTRIBUTE_UNUSED;
5466 9 : x2 = XVECEXP (x1, 0, 0);
5467 9 : x3 = XEXP (x2, 1);
5468 9 : x4 = XEXP (x3, 0);
5469 9 : x5 = XEXP (x4, 0);
5470 9 : x6 = XEXP (x5, 0);
5471 9 : operands[1] = x6;
5472 9 : x7 = XVECEXP (x1, 0, 1);
5473 9 : x8 = XEXP (x7, 0);
5474 9 : operands[0] = x8;
5475 9 : x9 = XEXP (x4, 1);
5476 9 : if (!rtx_equal_p (x9, operands[1]))
5477 : return -1;
5478 9 : return pattern1503 (x1); /* [-1, 1] */
5479 : }
5480 :
5481 : int
5482 402123 : pattern1519 (rtx x1, machine_mode i1)
5483 : {
5484 402123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5485 402123 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5486 402123 : rtx x10, x11;
5487 402123 : int res ATTRIBUTE_UNUSED;
5488 402123 : if (!register_operand (operands[0], i1)
5489 402123 : || GET_MODE (x1) != i1)
5490 : return -1;
5491 378180 : x2 = PATTERN (peep2_next_insn (1));
5492 378180 : switch (GET_CODE (x2))
5493 : {
5494 122875 : case PARALLEL:
5495 122875 : if (XVECLEN (x2, 0) != 2)
5496 : return -1;
5497 122849 : x3 = XVECEXP (x2, 0, 0);
5498 122849 : if (GET_CODE (x3) != SET)
5499 : return -1;
5500 122833 : x4 = XEXP (x3, 1);
5501 122833 : if (GET_CODE (x4) != PLUS
5502 83667 : || GET_MODE (x4) != i1)
5503 : return -1;
5504 80151 : x5 = XVECEXP (x2, 0, 1);
5505 80151 : if (GET_CODE (x5) != CLOBBER)
5506 : return -1;
5507 80151 : x6 = XEXP (x5, 0);
5508 80151 : if (GET_CODE (x6) != REG
5509 80151 : || REGNO (x6) != 17
5510 160302 : || GET_MODE (x6) != E_CCmode)
5511 : return -1;
5512 80151 : x7 = XEXP (x4, 1);
5513 80151 : operands[2] = x7;
5514 80151 : if (!x86_64_immediate_operand (operands[2], E_VOIDmode))
5515 : return -1;
5516 13718 : x8 = XEXP (x4, 0);
5517 13718 : if (!rtx_equal_p (x8, operands[0]))
5518 : return -1;
5519 : return 0;
5520 :
5521 249431 : case SET:
5522 249431 : x9 = XEXP (x2, 1);
5523 249431 : if (GET_CODE (x9) != PLUS
5524 25246 : || GET_MODE (x9) != i1)
5525 : return -1;
5526 23556 : x10 = XEXP (x9, 1);
5527 23556 : operands[2] = x10;
5528 23556 : if (!x86_64_immediate_operand (operands[2], E_VOIDmode))
5529 : return -1;
5530 11145 : x11 = XEXP (x9, 0);
5531 11145 : if (!rtx_equal_p (x11, operands[0]))
5532 : return -1;
5533 : return 1;
5534 :
5535 : default:
5536 : return -1;
5537 : }
5538 : }
5539 :
5540 : int
5541 37 : pattern1543 (rtx x1, rtx_code i1)
5542 : {
5543 37 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5544 37 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5545 37 : rtx x10, x11, x12;
5546 37 : int res ATTRIBUTE_UNUSED;
5547 37 : x2 = XVECEXP (x1, 0, 1);
5548 37 : x3 = XEXP (x2, 1);
5549 37 : if (GET_CODE (x3) != i1)
5550 : return -1;
5551 37 : x4 = XVECEXP (x1, 0, 0);
5552 37 : x5 = XEXP (x4, 0);
5553 37 : operands[1] = x5;
5554 37 : x6 = XEXP (x4, 1);
5555 37 : x7 = XEXP (x6, 0);
5556 37 : x8 = XEXP (x7, 0);
5557 37 : operands[2] = x8;
5558 37 : if (!register_operand (operands[2], E_SImode))
5559 : return -1;
5560 37 : x9 = XEXP (x7, 1);
5561 37 : operands[3] = x9;
5562 37 : if (!nonimmediate_operand (operands[3], E_SImode))
5563 : return -1;
5564 37 : x10 = XEXP (x2, 0);
5565 37 : operands[0] = x10;
5566 37 : x11 = XEXP (x3, 0);
5567 37 : if (!rtx_equal_p (x11, operands[2]))
5568 : return -1;
5569 37 : x12 = XEXP (x3, 1);
5570 37 : if (!rtx_equal_p (x12, operands[3]))
5571 : return -1;
5572 : return 0;
5573 : }
5574 :
5575 : int
5576 366 : pattern1558 (rtx x1)
5577 : {
5578 366 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5579 366 : rtx x2, x3, x4, x5;
5580 366 : int res ATTRIBUTE_UNUSED;
5581 366 : x2 = XVECEXP (x1, 0, 4);
5582 366 : operands[2] = x2;
5583 366 : if (!const_4_to_7_operand (operands[2], E_VOIDmode))
5584 : return -1;
5585 366 : x3 = XVECEXP (x1, 0, 5);
5586 366 : operands[3] = x3;
5587 366 : if (!const_4_to_7_operand (operands[3], E_VOIDmode))
5588 : return -1;
5589 366 : x4 = XVECEXP (x1, 0, 6);
5590 366 : operands[4] = x4;
5591 366 : if (!const_4_to_7_operand (operands[4], E_VOIDmode))
5592 : return -1;
5593 366 : x5 = XVECEXP (x1, 0, 7);
5594 366 : operands[5] = x5;
5595 366 : if (!const_4_to_7_operand (operands[5], E_VOIDmode))
5596 : return -1;
5597 : return 0;
5598 : }
5599 :
5600 : int
5601 66437 : pattern1568 (rtx x1)
5602 : {
5603 66437 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5604 66437 : rtx x2, x3;
5605 66437 : int res ATTRIBUTE_UNUSED;
5606 66437 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
5607 66437 : || GET_MODE (x1) != E_V4SFmode)
5608 : return -1;
5609 56577 : x2 = XEXP (x1, 0);
5610 56577 : if (GET_MODE (x2) != E_V8SFmode
5611 56577 : || !nonimmediate_operand (operands[1], E_V4SFmode))
5612 33 : return -1;
5613 56544 : x3 = XEXP (x2, 1);
5614 56544 : operands[2] = x3;
5615 56544 : if (!nonimmediate_operand (operands[2], E_V4SFmode))
5616 : return -1;
5617 : return 0;
5618 : }
5619 :
5620 : int
5621 12974 : pattern1575 (rtx x1, machine_mode i1)
5622 : {
5623 12974 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5624 12974 : int res ATTRIBUTE_UNUSED;
5625 12974 : if (!nonimmediate_operand (operands[0], i1)
5626 12974 : || GET_MODE (x1) != i1
5627 12974 : || !nonimmediate_operand (operands[1], i1)
5628 24946 : || !ix86_carry_flag_operator (operands[2], i1))
5629 1002 : return -1;
5630 : return 0;
5631 : }
5632 :
5633 : int
5634 137 : pattern1582 (rtx x1, int *pnum_clobbers)
5635 : {
5636 137 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5637 137 : rtx x2, x3;
5638 137 : int res ATTRIBUTE_UNUSED;
5639 137 : switch (GET_CODE (x1))
5640 : {
5641 6 : case UNSPEC:
5642 6 : if (pnum_clobbers == NULL
5643 6 : || XVECLEN (x1, 0) != 1
5644 6 : || XINT (x1, 1) != 33)
5645 : return -1;
5646 6 : x2 = XVECEXP (x1, 0, 0);
5647 6 : if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
5648 : return -1;
5649 : return 0;
5650 :
5651 95 : case CLOBBER:
5652 95 : x3 = XEXP (x1, 0);
5653 95 : if (GET_CODE (x3) != REG
5654 95 : || REGNO (x3) != 17
5655 190 : || GET_MODE (x3) != E_CCmode)
5656 : return -1;
5657 : return 1;
5658 :
5659 0 : case USE:
5660 0 : if (pnum_clobbers == NULL)
5661 : return -1;
5662 0 : x3 = XEXP (x1, 0);
5663 0 : operands[4] = x3;
5664 0 : if (!register_operand (operands[4], E_SImode))
5665 : return -1;
5666 : return 2;
5667 :
5668 : default:
5669 : return -1;
5670 : }
5671 : }
5672 :
5673 : int
5674 4476 : pattern1593 (rtx x1, machine_mode i1, machine_mode i2)
5675 : {
5676 4476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5677 4476 : rtx x2, x3;
5678 4476 : int res ATTRIBUTE_UNUSED;
5679 4476 : if (!register_operand (operands[0], i1)
5680 4476 : || GET_MODE (x1) != i1)
5681 : return -1;
5682 4256 : x2 = XEXP (x1, 0);
5683 4256 : if (GET_MODE (x2) != i1)
5684 : return -1;
5685 4256 : x3 = XEXP (x2, 0);
5686 4256 : if (GET_MODE (x3) != i2
5687 4256 : || !register_operand (operands[1], i1)
5688 4250 : || !nonimmediate_operand (operands[2], i1)
5689 8426 : || !nonimm_or_0_operand (operands[3], i1))
5690 196 : return -1;
5691 : return 0;
5692 : }
5693 :
5694 : int
5695 507 : pattern1601 (rtx x1, machine_mode i1, machine_mode i2)
5696 : {
5697 507 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5698 507 : rtx x2, x3;
5699 507 : int res ATTRIBUTE_UNUSED;
5700 507 : if (!register_operand (operands[0], i2)
5701 507 : || GET_MODE (x1) != i2)
5702 : return -1;
5703 493 : x2 = XVECEXP (x1, 0, 0);
5704 493 : if (GET_MODE (x2) != i2)
5705 : return -1;
5706 493 : x3 = XEXP (x2, 0);
5707 493 : if (GET_MODE (x3) != i2
5708 493 : || !register_operand (operands[1], i2)
5709 981 : || pattern1600 (
5710 : i1,
5711 : i2) != 0)
5712 17 : return -1;
5713 : return 0;
5714 : }
5715 :
5716 : int
5717 0 : pattern1610 (rtx x1, machine_mode i1)
5718 : {
5719 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5720 0 : rtx x2, x3, x4, x5;
5721 0 : int res ATTRIBUTE_UNUSED;
5722 0 : if (!register_operand (operands[0], i1)
5723 0 : || GET_MODE (x1) != i1)
5724 : return -1;
5725 0 : x2 = XVECEXP (x1, 0, 0);
5726 0 : if (GET_MODE (x2) != i1)
5727 : return -1;
5728 0 : x3 = XEXP (x2, 0);
5729 0 : if (GET_MODE (x3) != i1)
5730 : return -1;
5731 0 : x4 = XEXP (x3, 0);
5732 0 : if (GET_MODE (x4) != i1
5733 0 : || !nonimmediate_operand (operands[1], i1)
5734 0 : || !nonimmediate_operand (operands[2], i1))
5735 0 : return -1;
5736 0 : x5 = XEXP (x3, 2);
5737 0 : if (GET_MODE (x5) != i1
5738 0 : || !nonimmediate_operand (operands[3], i1)
5739 0 : || !const0_operand (operands[4], i1)
5740 0 : || !register_operand (operands[5], E_QImode))
5741 0 : return -1;
5742 : return 0;
5743 : }
5744 :
5745 : int
5746 218 : pattern1623 (machine_mode i1)
5747 : {
5748 218 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5749 218 : int res ATTRIBUTE_UNUSED;
5750 218 : if (!vsib_address_operand (operands[3], i1))
5751 : return -1;
5752 208 : switch (GET_MODE (operands[2]))
5753 : {
5754 128 : case E_V8SImode:
5755 128 : if (!register_operand (operands[2], E_V8SImode))
5756 : return -1;
5757 : return 0;
5758 :
5759 80 : case E_V8DImode:
5760 80 : if (!register_operand (operands[2], E_V8DImode))
5761 : return -1;
5762 : return 1;
5763 :
5764 : default:
5765 : return -1;
5766 : }
5767 : }
5768 :
5769 : int
5770 4454 : pattern1631 (rtx x1, machine_mode i1, machine_mode i2)
5771 : {
5772 4454 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5773 4454 : rtx x2, x3;
5774 4454 : int res ATTRIBUTE_UNUSED;
5775 4454 : if (!register_operand (operands[0], i1)
5776 4454 : || GET_MODE (x1) != i1)
5777 : return -1;
5778 4424 : x2 = XEXP (x1, 0);
5779 4424 : if (GET_MODE (x2) != i2
5780 4424 : || !register_operand (operands[1], i1))
5781 909 : return -1;
5782 3515 : x3 = XEXP (x2, 1);
5783 3515 : operands[2] = x3;
5784 3515 : if (!nonimmediate_operand (operands[2], i1))
5785 : return -1;
5786 : return 0;
5787 : }
5788 :
5789 : int
5790 71744 : pattern1639 (rtx x1, machine_mode i1)
5791 : {
5792 71744 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5793 71744 : rtx x2;
5794 71744 : int res ATTRIBUTE_UNUSED;
5795 71744 : if (!nonimmediate_operand (operands[1], i1)
5796 71732 : || !register_operand (operands[0], i1)
5797 143476 : || GET_MODE (x1) != i1)
5798 12 : return -1;
5799 71732 : x2 = XEXP (x1, 1);
5800 71732 : if (GET_MODE (x2) != i1)
5801 : return -1;
5802 : return 0;
5803 : }
5804 :
5805 : int
5806 18824 : pattern1646 (rtx x1)
5807 : {
5808 18824 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5809 18824 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
5810 18824 : rtx x10, x11;
5811 18824 : int res ATTRIBUTE_UNUSED;
5812 18824 : if (!plusminuslogic_operator (operands[3], E_SImode))
5813 : return -1;
5814 12409 : x2 = XVECEXP (x1, 0, 1);
5815 12409 : if (GET_CODE (x2) != CLOBBER)
5816 : return -1;
5817 12409 : x3 = XEXP (x2, 0);
5818 12409 : if (GET_CODE (x3) != REG
5819 12409 : || REGNO (x3) != 17
5820 24818 : || GET_MODE (x3) != E_CCmode)
5821 : return -1;
5822 12409 : x4 = XVECEXP (x1, 0, 0);
5823 12409 : x5 = XEXP (x4, 0);
5824 12409 : operands[4] = x5;
5825 12409 : if (!register_operand (operands[4], E_SImode))
5826 : return -1;
5827 12400 : x6 = XEXP (x4, 1);
5828 12400 : x7 = XEXP (x6, 1);
5829 12400 : operands[2] = x7;
5830 12400 : if (!nonmemory_operand (operands[2], E_SImode))
5831 : return -1;
5832 12359 : x8 = XEXP (x6, 0);
5833 12359 : if (!rtx_equal_p (x8, operands[4]))
5834 : return -1;
5835 12305 : x9 = PATTERN (peep2_next_insn (2));
5836 12305 : x10 = XEXP (x9, 1);
5837 12305 : if (!rtx_equal_p (x10, operands[0]))
5838 : return -1;
5839 1522 : x11 = PATTERN (peep2_next_insn (3));
5840 1522 : if (GET_CODE (x11) != SET)
5841 : return -1;
5842 : return 0;
5843 : }
5844 :
5845 : int
5846 1084 : pattern1661 (rtx x1, machine_mode i1)
5847 : {
5848 1084 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5849 1084 : rtx x2, x3, x4;
5850 1084 : int res ATTRIBUTE_UNUSED;
5851 1084 : if (!register_operand (operands[0], i1)
5852 1084 : || GET_MODE (x1) != i1)
5853 : return -1;
5854 1041 : x2 = XVECEXP (x1, 0, 0);
5855 1041 : if (GET_MODE (x2) != i1)
5856 : return -1;
5857 1041 : x3 = XEXP (x2, 0);
5858 1041 : if (GET_MODE (x3) != i1)
5859 : return -1;
5860 1041 : x4 = XEXP (x3, 0);
5861 1041 : if (GET_MODE (x4) != i1
5862 1041 : || !register_operand (operands[1], i1)
5863 1041 : || !register_operand (operands[2], i1)
5864 2082 : || !nonimm_or_0_operand (operands[3], i1))
5865 0 : return -1;
5866 : return 0;
5867 : }
5868 :
5869 : int
5870 54 : pattern1669 (rtx x1, machine_mode i1)
5871 : {
5872 54 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5873 54 : rtx x2, x3, x4, x5;
5874 54 : int res ATTRIBUTE_UNUSED;
5875 54 : if (!register_operand (operands[0], i1)
5876 54 : || GET_MODE (x1) != i1)
5877 : return -1;
5878 39 : x2 = XVECEXP (x1, 0, 0);
5879 39 : if (GET_MODE (x2) != i1)
5880 : return -1;
5881 39 : x3 = XEXP (x2, 0);
5882 39 : if (GET_MODE (x3) != i1)
5883 : return -1;
5884 39 : x4 = XEXP (x3, 0);
5885 39 : if (GET_MODE (x4) != i1
5886 39 : || !nonimmediate_operand (operands[1], i1)
5887 78 : || !register_operand (operands[2], i1))
5888 6 : return -1;
5889 33 : x5 = XEXP (x3, 2);
5890 33 : if (GET_MODE (x5) != i1
5891 33 : || !register_operand (operands[3], i1))
5892 0 : return -1;
5893 : return 0;
5894 : }
5895 :
5896 : int
5897 49476 : pattern1682 (rtx x1, machine_mode i1)
5898 : {
5899 49476 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5900 49476 : int res ATTRIBUTE_UNUSED;
5901 49476 : if (!nonimmediate_operand (operands[1], i1)
5902 49476 : || !x86_64_hilo_general_operand (operands[2], i1)
5903 49399 : || !nonimmediate_operand (operands[0], i1)
5904 98875 : || GET_MODE (x1) != i1)
5905 77 : return -1;
5906 : return 0;
5907 : }
5908 :
5909 : int
5910 502 : pattern1690 (rtx x1, machine_mode i1)
5911 : {
5912 502 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5913 502 : rtx x2;
5914 502 : int res ATTRIBUTE_UNUSED;
5915 502 : if (!register_operand (operands[0], i1)
5916 502 : || GET_MODE (x1) != i1)
5917 : return -1;
5918 451 : x2 = XEXP (x1, 0);
5919 451 : if (GET_MODE (x2) != i1
5920 451 : || !nonimmediate_operand (operands[1], i1)
5921 880 : || !nonimm_or_0_operand (operands[6], i1))
5922 39 : return -1;
5923 : return 0;
5924 : }
5925 :
5926 : int
5927 39644 : pattern1697 (rtx x1, machine_mode i1)
5928 : {
5929 39644 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5930 39644 : int res ATTRIBUTE_UNUSED;
5931 39644 : if (!register_operand (operands[1], i1)
5932 39027 : || !x86_64_general_operand (operands[2], i1)
5933 38686 : || GET_MODE (x1) != i1
5934 78330 : || !scratch_operand (operands[0], i1))
5935 1061 : return -1;
5936 : return 0;
5937 : }
5938 :
5939 : int
5940 52 : pattern1703 (rtx x1)
5941 : {
5942 52 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5943 52 : rtx x2, x3, x4, x5, x6, x7, x8;
5944 52 : int res ATTRIBUTE_UNUSED;
5945 52 : if (!register_operand (operands[0], E_SImode))
5946 : return -1;
5947 52 : x2 = XEXP (x1, 0);
5948 52 : x3 = XEXP (x2, 0);
5949 52 : operands[1] = x3;
5950 52 : if (!nonimmediate_operand (operands[1], E_SImode))
5951 : return -1;
5952 52 : x4 = XEXP (x1, 1);
5953 52 : if (GET_MODE (x4) != E_SImode)
5954 : return -1;
5955 52 : x5 = XEXP (x4, 0);
5956 52 : if (GET_MODE (x5) != E_DImode)
5957 : return -1;
5958 52 : x6 = XEXP (x5, 0);
5959 52 : if (GET_MODE (x6) != E_DImode)
5960 : return -1;
5961 52 : x7 = XEXP (x6, 0);
5962 52 : operands[2] = x7;
5963 52 : if (!register_operand (operands[2], E_SImode))
5964 : return -1;
5965 52 : x8 = XEXP (x5, 1);
5966 52 : operands[4] = x8;
5967 52 : if (!const_0_to_63_operand (operands[4], E_QImode))
5968 : return -1;
5969 : return 0;
5970 : }
5971 :
5972 : int
5973 24 : pattern1717 (rtx x1, machine_mode i1)
5974 : {
5975 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
5976 24 : rtx x2, x3, x4, x5, x6, x7, x8;
5977 24 : int res ATTRIBUTE_UNUSED;
5978 24 : x2 = XEXP (x1, 0);
5979 24 : x3 = XEXP (x2, 0);
5980 24 : x4 = XEXP (x3, 0);
5981 24 : x5 = XEXP (x4, 0);
5982 24 : operands[2] = x5;
5983 24 : x6 = XEXP (x3, 2);
5984 24 : if (GET_MODE (x6) != i1
5985 24 : || !nonimmediate_operand (operands[3], i1))
5986 0 : return -1;
5987 24 : x7 = XEXP (x2, 1);
5988 24 : if (!rtx_equal_p (x7, operands[3]))
5989 : return -1;
5990 24 : x8 = XEXP (x1, 1);
5991 24 : if (!rtx_equal_p (x8, operands[3]))
5992 : return -1;
5993 : return 0;
5994 : }
5995 :
5996 : int
5997 863 : pattern1723 (rtx x1, machine_mode i1, machine_mode i2)
5998 : {
5999 863 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6000 863 : rtx x2, x3;
6001 863 : int res ATTRIBUTE_UNUSED;
6002 863 : if (!register_operand (operands[0], i1)
6003 801 : || GET_MODE (x1) != i1
6004 801 : || !vsib_mem_operator (operands[6], i2)
6005 1664 : || !register_operand (operands[4], i1))
6006 648 : return -1;
6007 215 : x2 = XVECEXP (x1, 0, 1);
6008 215 : x3 = XEXP (x2, 0);
6009 215 : switch (GET_MODE (x3))
6010 : {
6011 28 : case E_SImode:
6012 28 : return pattern1722 (
6013 28 : E_SImode); /* [-1, 1] */
6014 :
6015 187 : case E_DImode:
6016 187 : res = pattern1722 (
6017 : E_DImode);
6018 187 : if (res >= 0)
6019 65 : return res + 2; /* [2, 3] */
6020 : return -1;
6021 :
6022 : default:
6023 : return -1;
6024 : }
6025 : }
6026 :
6027 : int
6028 688 : pattern1732 (machine_mode i1)
6029 : {
6030 688 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6031 688 : int res ATTRIBUTE_UNUSED;
6032 688 : if (!vsib_address_operand (operands[0], i1))
6033 : return -1;
6034 662 : switch (GET_MODE (operands[2]))
6035 : {
6036 358 : case E_V4SImode:
6037 358 : if (!register_operand (operands[2], E_V4SImode))
6038 : return -1;
6039 : return 0;
6040 :
6041 304 : case E_V4DImode:
6042 304 : if (!register_operand (operands[2], E_V4DImode))
6043 : return -1;
6044 : return 1;
6045 :
6046 : default:
6047 : return -1;
6048 : }
6049 : }
6050 :
6051 : int
6052 124 : pattern1740 (machine_mode i1)
6053 : {
6054 124 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6055 124 : int res ATTRIBUTE_UNUSED;
6056 124 : if (!vsib_address_operand (operands[3], i1))
6057 : return -1;
6058 120 : switch (GET_MODE (operands[2]))
6059 : {
6060 34 : case E_V8SImode:
6061 34 : if (!register_operand (operands[2], E_V8SImode))
6062 : return -1;
6063 : return 0;
6064 :
6065 86 : case E_V4DImode:
6066 86 : if (!register_operand (operands[2], E_V4DImode))
6067 : return -1;
6068 : return 1;
6069 :
6070 : default:
6071 : return -1;
6072 : }
6073 : }
6074 :
6075 : int
6076 3444 : pattern1749 (rtx x1)
6077 : {
6078 3444 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6079 3444 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6080 3444 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6081 3444 : int res ATTRIBUTE_UNUSED;
6082 3444 : if (!register_operand (operands[0], E_SImode))
6083 : return -1;
6084 3436 : x2 = XVECEXP (x1, 0, 0);
6085 3436 : x3 = XEXP (x2, 1);
6086 3436 : x4 = XVECEXP (x3, 0, 0);
6087 3436 : operands[2] = x4;
6088 3436 : if (!register_operand (operands[2], E_V16QImode))
6089 : return -1;
6090 3344 : x5 = XVECEXP (x3, 0, 1);
6091 3344 : operands[3] = x5;
6092 3344 : if (!nonimmediate_operand (operands[3], E_V16QImode))
6093 : return -1;
6094 3324 : x6 = XVECEXP (x3, 0, 2);
6095 3324 : operands[4] = x6;
6096 3324 : if (!const_0_to_255_operand (operands[4], E_SImode))
6097 : return -1;
6098 3324 : x7 = XVECEXP (x1, 0, 1);
6099 3324 : x8 = XEXP (x7, 0);
6100 3324 : operands[1] = x8;
6101 3324 : if (!register_operand (operands[1], E_V16QImode))
6102 : return -1;
6103 3284 : x9 = XEXP (x7, 1);
6104 3284 : x10 = XVECEXP (x9, 0, 0);
6105 3284 : if (!rtx_equal_p (x10, operands[2]))
6106 : return -1;
6107 3284 : x11 = XVECEXP (x9, 0, 1);
6108 3284 : if (!rtx_equal_p (x11, operands[3]))
6109 : return -1;
6110 3284 : x12 = XVECEXP (x9, 0, 2);
6111 3284 : if (!rtx_equal_p (x12, operands[4]))
6112 : return -1;
6113 3284 : x13 = XVECEXP (x1, 0, 2);
6114 3284 : x14 = XEXP (x13, 1);
6115 3284 : x15 = XVECEXP (x14, 0, 0);
6116 3284 : if (!rtx_equal_p (x15, operands[2]))
6117 : return -1;
6118 3174 : x16 = XVECEXP (x14, 0, 1);
6119 3174 : if (!rtx_equal_p (x16, operands[3]))
6120 : return -1;
6121 3064 : x17 = XVECEXP (x14, 0, 2);
6122 3064 : if (!rtx_equal_p (x17, operands[4]))
6123 : return -1;
6124 : return 0;
6125 : }
6126 :
6127 : int
6128 510 : pattern1769 (rtx x1, machine_mode i1, machine_mode i2)
6129 : {
6130 510 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6131 510 : rtx x2, x3;
6132 510 : int res ATTRIBUTE_UNUSED;
6133 510 : if (!register_operand (operands[0], i2)
6134 510 : || GET_MODE (x1) != i2
6135 510 : || !register_operand (operands[1], i2)
6136 510 : || !register_operand (operands[7], E_QImode)
6137 506 : || !vsib_mem_operator (operands[6], i1)
6138 1016 : || !scratch_operand (operands[2], E_QImode))
6139 4 : return -1;
6140 506 : x2 = XVECEXP (x1, 0, 2);
6141 506 : x3 = XEXP (x2, 0);
6142 506 : switch (GET_MODE (x3))
6143 : {
6144 0 : case E_SImode:
6145 0 : return pattern1768 (
6146 0 : E_SImode); /* [-1, 1] */
6147 :
6148 506 : case E_DImode:
6149 506 : res = pattern1768 (
6150 : E_DImode);
6151 506 : if (res >= 0)
6152 476 : return res + 2; /* [2, 3] */
6153 : return -1;
6154 :
6155 : default:
6156 : return -1;
6157 : }
6158 : }
6159 :
6160 : int
6161 2614 : pattern1783 (rtx x1)
6162 : {
6163 2614 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6164 2614 : rtx x2, x3, x4, x5, x6;
6165 2614 : int res ATTRIBUTE_UNUSED;
6166 2614 : x2 = XVECEXP (x1, 0, 0);
6167 2614 : x3 = XEXP (x2, 1);
6168 2614 : x4 = XEXP (x3, 0);
6169 2614 : switch (GET_MODE (x4))
6170 : {
6171 354 : case E_HImode:
6172 354 : if (!memory_operand (operands[0], E_HImode))
6173 : return -1;
6174 354 : x5 = XVECEXP (x1, 0, 1);
6175 354 : x6 = XEXP (x5, 0);
6176 354 : if (GET_MODE (x6) != E_HImode
6177 354 : || !nonmemory_operand (operands[1], E_HImode))
6178 0 : return -1;
6179 : return 0;
6180 :
6181 1709 : case E_SImode:
6182 1709 : if (!memory_operand (operands[0], E_SImode))
6183 : return -1;
6184 1709 : x5 = XVECEXP (x1, 0, 1);
6185 1709 : x6 = XEXP (x5, 0);
6186 1709 : if (GET_MODE (x6) != E_SImode
6187 1709 : || !nonmemory_operand (operands[1], E_SImode))
6188 0 : return -1;
6189 : return 1;
6190 :
6191 551 : case E_DImode:
6192 551 : if (!memory_operand (operands[0], E_DImode))
6193 : return -1;
6194 551 : x5 = XVECEXP (x1, 0, 1);
6195 551 : x6 = XEXP (x5, 0);
6196 551 : if (GET_MODE (x6) != E_DImode
6197 551 : || !nonmemory_operand (operands[1], E_DImode))
6198 31 : return -1;
6199 : return 2;
6200 :
6201 : default:
6202 : return -1;
6203 : }
6204 : }
6205 :
6206 : int
6207 952 : pattern1801 (rtx x1, machine_mode i1, machine_mode i2)
6208 : {
6209 952 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6210 952 : rtx x2, x3;
6211 952 : int res ATTRIBUTE_UNUSED;
6212 952 : if (!register_operand (operands[0], i1)
6213 945 : || GET_MODE (x1) != i1
6214 945 : || !vsib_mem_operator (operands[6], i2)
6215 1897 : || !scratch_operand (operands[1], i1))
6216 7 : return -1;
6217 945 : x2 = XVECEXP (x1, 0, 1);
6218 945 : x3 = XEXP (x2, 0);
6219 945 : switch (GET_MODE (x3))
6220 : {
6221 : case E_SImode:
6222 : return 0;
6223 :
6224 754 : case E_DImode:
6225 754 : return 1;
6226 :
6227 : default:
6228 : return -1;
6229 : }
6230 : }
6231 :
6232 : int
6233 5 : pattern1807 (rtx x1)
6234 : {
6235 5 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6236 5 : rtx x2;
6237 5 : int res ATTRIBUTE_UNUSED;
6238 5 : if (GET_MODE (x1) != E_DImode)
6239 : return -1;
6240 5 : switch (GET_CODE (x1))
6241 : {
6242 4 : case SIGN_EXTEND:
6243 4 : x2 = XEXP (x1, 0);
6244 4 : operands[4] = x2;
6245 4 : if (!nonimmediate_gr_operand (operands[4], E_SImode))
6246 : return -1;
6247 : return 0;
6248 :
6249 0 : case ZERO_EXTEND:
6250 0 : x2 = XEXP (x1, 0);
6251 0 : operands[4] = x2;
6252 0 : if (!nonimmediate_gr_operand (operands[4], E_SImode))
6253 : return -1;
6254 : return 1;
6255 :
6256 : default:
6257 : return -1;
6258 : }
6259 : }
6260 :
6261 : int
6262 762 : pattern1817 (machine_mode i1)
6263 : {
6264 762 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6265 762 : int res ATTRIBUTE_UNUSED;
6266 762 : if (!vsib_address_operand (operands[3], i1))
6267 : return -1;
6268 746 : switch (GET_MODE (operands[4]))
6269 : {
6270 376 : case E_V4SImode:
6271 376 : if (!register_operand (operands[4], E_V4SImode))
6272 : return -1;
6273 : return 0;
6274 :
6275 370 : case E_V4DImode:
6276 370 : if (!register_operand (operands[4], E_V4DImode))
6277 : return -1;
6278 : return 1;
6279 :
6280 : default:
6281 : return -1;
6282 : }
6283 : }
6284 :
6285 : int
6286 292 : pattern1825 (rtx x1, machine_mode i1)
6287 : {
6288 292 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6289 292 : rtx x2, x3, x4, x5, x6, x7;
6290 292 : int res ATTRIBUTE_UNUSED;
6291 292 : x2 = XVECEXP (x1, 0, 0);
6292 292 : x3 = XEXP (x2, 1);
6293 292 : x4 = XEXP (x3, 0);
6294 292 : x5 = XEXP (x4, 0);
6295 292 : if (GET_MODE (x5) != i1
6296 292 : || !nonimmediate_operand (operands[1], i1)
6297 570 : || !ix86_carry_flag_operator (operands[4], i1))
6298 14 : return -1;
6299 278 : x6 = XVECEXP (x1, 0, 1);
6300 278 : x7 = XEXP (x6, 1);
6301 278 : return pattern1822 (x7,
6302 278 : i1); /* [-1, 0] */
6303 : }
6304 :
6305 : int
6306 442 : pattern1833 (rtx x1, machine_mode i1)
6307 : {
6308 442 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6309 442 : rtx x2, x3, x4;
6310 442 : int res ATTRIBUTE_UNUSED;
6311 442 : operands[4] = x1;
6312 442 : if (!register_operand (operands[4], i1))
6313 : return -1;
6314 172 : x2 = PATTERN (peep2_next_insn (3));
6315 172 : if (GET_CODE (x2) != SET)
6316 : return -1;
6317 172 : x3 = XEXP (x2, 1);
6318 172 : if (!rtx_equal_p (x3, operands[4]))
6319 : return -1;
6320 0 : x4 = XEXP (x2, 0);
6321 0 : if (!rtx_equal_p (x4, operands[1]))
6322 : return -1;
6323 : return 0;
6324 : }
6325 :
6326 : int
6327 418 : pattern1839 (rtx x1, machine_mode i1)
6328 : {
6329 418 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6330 418 : rtx x2, x3, x4, x5, x6, x7;
6331 418 : int res ATTRIBUTE_UNUSED;
6332 418 : x2 = XEXP (x1, 0);
6333 418 : x3 = XEXP (x2, 0);
6334 418 : x4 = XEXP (x3, 0);
6335 418 : x5 = XEXP (x4, 0);
6336 418 : operands[2] = x5;
6337 418 : if (!register_operand (operands[2], i1)
6338 418 : || !nonimmediate_operand (operands[3], i1))
6339 4 : return -1;
6340 414 : x6 = XEXP (x2, 1);
6341 414 : if (!rtx_equal_p (x6, operands[3]))
6342 : return -1;
6343 337 : x7 = XEXP (x1, 1);
6344 337 : if (!rtx_equal_p (x7, operands[3]))
6345 : return -1;
6346 : return 0;
6347 : }
6348 :
6349 : int
6350 0 : pattern1849 (machine_mode i1)
6351 : {
6352 0 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6353 0 : int res ATTRIBUTE_UNUSED;
6354 0 : if (!register_operand (operands[4], i1)
6355 0 : || !register_operand (operands[5], i1)
6356 0 : || !register_operand (operands[6], i1)
6357 0 : || !register_operand (operands[0], i1)
6358 0 : || !register_operand (operands[1], i1)
6359 0 : || !register_operand (operands[2], i1))
6360 0 : return -1;
6361 : return 0;
6362 : }
6363 :
6364 : int
6365 427383 : pattern1855 (rtx x1, machine_mode i1)
6366 : {
6367 427383 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6368 427383 : rtx x2, x3, x4, x5;
6369 427383 : int res ATTRIBUTE_UNUSED;
6370 427383 : if (!register_operand (operands[0], i1))
6371 : return -1;
6372 427383 : x2 = XVECEXP (x1, 0, 0);
6373 427383 : x3 = XEXP (x2, 1);
6374 427383 : if (GET_MODE (x3) != i1
6375 427383 : || !memory_operand (operands[1], i1)
6376 426351 : || !register_operand (operands[2], i1)
6377 818215 : || !register_operand (operands[3], i1))
6378 91451 : return -1;
6379 335932 : x4 = XVECEXP (x1, 0, 1);
6380 335932 : x5 = XEXP (x4, 1);
6381 335932 : if (GET_MODE (x5) != i1)
6382 : return -1;
6383 : return 0;
6384 : }
6385 :
6386 : int
6387 119 : pattern1862 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6388 : {
6389 119 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6390 119 : rtx x2, x3, x4;
6391 119 : int res ATTRIBUTE_UNUSED;
6392 119 : if (!register_operand (operands[0], i1)
6393 119 : || GET_MODE (x1) != i1)
6394 : return -1;
6395 111 : x2 = XEXP (x1, 0);
6396 111 : if (GET_MODE (x2) != i3
6397 111 : || !vsib_mem_operator (operands[6], i2)
6398 222 : || !register_operand (operands[4], i1))
6399 81 : return -1;
6400 30 : x3 = XVECEXP (x2, 0, 1);
6401 30 : x4 = XEXP (x3, 0);
6402 30 : switch (GET_MODE (x4))
6403 : {
6404 0 : case E_SImode:
6405 0 : if (!vsib_address_operand (operands[2], E_SImode))
6406 : return -1;
6407 : return 0;
6408 :
6409 30 : case E_DImode:
6410 30 : if (!vsib_address_operand (operands[2], E_DImode))
6411 : return -1;
6412 : return 1;
6413 :
6414 : default:
6415 : return -1;
6416 : }
6417 : }
6418 :
6419 : int
6420 715 : pattern1869 (rtx x1, machine_mode i1)
6421 : {
6422 715 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6423 715 : int res ATTRIBUTE_UNUSED;
6424 715 : if (!register_operand (operands[5], i1))
6425 : return -1;
6426 644 : switch (GET_MODE (x1))
6427 : {
6428 0 : case E_SImode:
6429 0 : if (!vsib_address_operand (operands[3], E_SImode))
6430 : return -1;
6431 : return 0;
6432 :
6433 644 : case E_DImode:
6434 644 : if (!vsib_address_operand (operands[3], E_DImode))
6435 : return -1;
6436 : return 1;
6437 :
6438 : default:
6439 : return -1;
6440 : }
6441 : }
6442 :
6443 : int
6444 87 : pattern1877 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
6445 : {
6446 87 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6447 87 : rtx x2, x3, x4;
6448 87 : int res ATTRIBUTE_UNUSED;
6449 87 : if (!register_operand (operands[0], i2)
6450 87 : || GET_MODE (x1) != i2)
6451 : return -1;
6452 85 : x2 = XEXP (x1, 0);
6453 85 : if (GET_MODE (x2) != i1
6454 85 : || !vsib_mem_operator (operands[6], i3)
6455 85 : || !register_operand (operands[4], i2)
6456 105 : || !scratch_operand (operands[1], i1))
6457 65 : return -1;
6458 20 : x3 = XVECEXP (x2, 0, 1);
6459 20 : x4 = XEXP (x3, 0);
6460 20 : switch (GET_MODE (x4))
6461 : {
6462 0 : case E_SImode:
6463 0 : if (!vsib_address_operand (operands[2], E_SImode))
6464 : return -1;
6465 : return 0;
6466 :
6467 20 : case E_DImode:
6468 20 : if (!vsib_address_operand (operands[2], E_DImode))
6469 : return -1;
6470 : return 1;
6471 :
6472 : default:
6473 : return -1;
6474 : }
6475 : }
6476 :
6477 : int
6478 175 : pattern1887 (rtx x1)
6479 : {
6480 175 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6481 175 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6482 175 : rtx x10, x11, x12, x13, x14, x15;
6483 175 : int res ATTRIBUTE_UNUSED;
6484 175 : if (GET_CODE (x1) != SET)
6485 : return -1;
6486 175 : x2 = XEXP (x1, 1);
6487 175 : if (GET_CODE (x2) != GTU
6488 116 : || GET_MODE (x2) != E_QImode)
6489 : return -1;
6490 116 : x3 = XEXP (x2, 0);
6491 116 : if (GET_CODE (x3) != REG
6492 116 : || REGNO (x3) != 17
6493 232 : || GET_MODE (x3) != E_CCmode)
6494 : return -1;
6495 116 : x4 = XEXP (x2, 1);
6496 116 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6497 : return -1;
6498 116 : x5 = XEXP (x1, 0);
6499 116 : operands[7] = x5;
6500 116 : if (!register_operand (operands[7], E_QImode))
6501 : return -1;
6502 116 : x6 = PATTERN (peep2_next_insn (2));
6503 116 : if (GET_CODE (x6) != SET)
6504 : return -1;
6505 10 : x7 = XEXP (x6, 1);
6506 10 : if (GET_CODE (x7) != LTU
6507 0 : || GET_MODE (x7) != E_QImode)
6508 : return -1;
6509 0 : x8 = XEXP (x7, 0);
6510 0 : if (GET_CODE (x8) != REG
6511 0 : || REGNO (x8) != 17
6512 0 : || GET_MODE (x8) != E_CCmode)
6513 : return -1;
6514 0 : x9 = XEXP (x7, 1);
6515 0 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6516 : return -1;
6517 0 : x10 = XEXP (x6, 0);
6518 0 : operands[8] = x10;
6519 0 : if (!register_operand (operands[8], E_QImode))
6520 : return -1;
6521 0 : x11 = PATTERN (peep2_next_insn (3));
6522 0 : if (GET_CODE (x11) != SET)
6523 : return -1;
6524 0 : x12 = XEXP (x11, 1);
6525 0 : if (GET_CODE (x12) != COMPARE)
6526 : return -1;
6527 0 : x13 = XEXP (x11, 0);
6528 0 : if (GET_CODE (x13) != REG
6529 0 : || REGNO (x13) != 17)
6530 : return -1;
6531 0 : x14 = XEXP (x12, 0);
6532 0 : if (!rtx_equal_p (x14, operands[7]))
6533 : return -1;
6534 0 : x15 = XEXP (x12, 1);
6535 0 : if (!rtx_equal_p (x15, operands[8]))
6536 : return -1;
6537 : return 0;
6538 : }
6539 :
6540 : int
6541 448 : pattern1900 ()
6542 : {
6543 448 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6544 448 : int res ATTRIBUTE_UNUSED;
6545 448 : if (!const_0_to_15_operand (operands[4], E_VOIDmode)
6546 432 : || !const_0_to_15_operand (operands[5], E_VOIDmode)
6547 432 : || !const_0_to_15_operand (operands[6], E_VOIDmode)
6548 432 : || !const_0_to_15_operand (operands[7], E_VOIDmode)
6549 432 : || !const_0_to_15_operand (operands[8], E_VOIDmode)
6550 432 : || !const_0_to_15_operand (operands[9], E_VOIDmode)
6551 432 : || !const_0_to_15_operand (operands[10], E_VOIDmode)
6552 432 : || !const_16_to_31_operand (operands[11], E_VOIDmode)
6553 432 : || !const_16_to_31_operand (operands[12], E_VOIDmode)
6554 432 : || !const_16_to_31_operand (operands[13], E_VOIDmode)
6555 432 : || !const_16_to_31_operand (operands[14], E_VOIDmode)
6556 432 : || !const_16_to_31_operand (operands[15], E_VOIDmode)
6557 432 : || !const_16_to_31_operand (operands[16], E_VOIDmode)
6558 432 : || !const_16_to_31_operand (operands[17], E_VOIDmode)
6559 880 : || !const_16_to_31_operand (operands[18], E_VOIDmode))
6560 16 : return -1;
6561 : return 0;
6562 : }
6563 :
6564 : int
6565 24 : pattern1912 (rtx x1)
6566 : {
6567 24 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6568 24 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6569 24 : int res ATTRIBUTE_UNUSED;
6570 24 : if (GET_CODE (x1) != SET)
6571 : return -1;
6572 24 : x2 = XEXP (x1, 1);
6573 24 : switch (GET_CODE (x2))
6574 : {
6575 12 : case NE:
6576 12 : case EQ:
6577 12 : case GE:
6578 12 : case GT:
6579 12 : case LE:
6580 12 : case LT:
6581 12 : operands[8] = x2;
6582 12 : if (!ix86_comparison_int_operator (operands[8], E_QImode))
6583 : return -1;
6584 12 : x3 = XEXP (x2, 0);
6585 12 : if (GET_CODE (x3) != REG
6586 12 : || REGNO (x3) != 17)
6587 : return -1;
6588 12 : x4 = XEXP (x2, 1);
6589 12 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6590 : return -1;
6591 12 : x5 = XEXP (x1, 0);
6592 12 : operands[7] = x5;
6593 12 : if (!nonimmediate_operand (operands[7], E_QImode))
6594 : return -1;
6595 : return 0;
6596 :
6597 12 : case IF_THEN_ELSE:
6598 12 : x3 = XEXP (x2, 0);
6599 12 : if (!ix86_comparison_int_operator (x3, E_VOIDmode))
6600 : return -1;
6601 12 : operands[7] = x3;
6602 12 : x6 = XEXP (x3, 0);
6603 12 : if (GET_CODE (x6) != REG
6604 12 : || REGNO (x6) != 17)
6605 : return -1;
6606 12 : x7 = XEXP (x3, 1);
6607 12 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6608 : return -1;
6609 12 : x4 = XEXP (x2, 1);
6610 12 : if (GET_CODE (x4) != LABEL_REF)
6611 : return -1;
6612 12 : x8 = XEXP (x2, 2);
6613 12 : if (GET_CODE (x8) != PC)
6614 : return -1;
6615 12 : x5 = XEXP (x1, 0);
6616 12 : if (GET_CODE (x5) != PC)
6617 : return -1;
6618 12 : x9 = XEXP (x4, 0);
6619 12 : operands[8] = x9;
6620 12 : return 1;
6621 :
6622 : default:
6623 : return -1;
6624 : }
6625 : }
6626 :
6627 : int
6628 103664 : recog_9 (rtx x1 ATTRIBUTE_UNUSED,
6629 : rtx_insn *insn ATTRIBUTE_UNUSED,
6630 : int *pnum_clobbers ATTRIBUTE_UNUSED)
6631 : {
6632 103664 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
6633 103664 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
6634 103664 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
6635 103664 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
6636 103664 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
6637 103664 : rtx x34, x35;
6638 103664 : int res ATTRIBUTE_UNUSED;
6639 103664 : x2 = XEXP (x1, 1);
6640 103664 : x3 = XVECEXP (x2, 0, 0);
6641 103664 : switch (GET_CODE (x3))
6642 : {
6643 11595 : case UNSPEC:
6644 11595 : x4 = XVECEXP (x2, 0, 1);
6645 11595 : if (!const48_operand (x4, E_SImode))
6646 : return -1;
6647 11493 : switch (XVECLEN (x3, 0))
6648 : {
6649 2226 : case 3:
6650 2226 : if (XINT (x3, 1) != 60)
6651 : return -1;
6652 1004 : x5 = XEXP (x1, 0);
6653 1004 : operands[0] = x5;
6654 1004 : x6 = XVECEXP (x3, 0, 0);
6655 1004 : operands[1] = x6;
6656 1004 : x7 = XVECEXP (x3, 0, 1);
6657 1004 : operands[2] = x7;
6658 1004 : x8 = XVECEXP (x3, 0, 2);
6659 1004 : operands[3] = x8;
6660 1004 : operands[4] = x4;
6661 1004 : switch (GET_MODE (operands[0]))
6662 : {
6663 489 : case E_HImode:
6664 489 : if (!register_operand (operands[0], E_HImode)
6665 486 : || GET_MODE (x2) != E_HImode
6666 975 : || GET_MODE (x3) != E_HImode)
6667 : return -1;
6668 486 : switch (GET_MODE (operands[1]))
6669 : {
6670 0 : case E_V16SImode:
6671 0 : if (!register_operand (operands[1], E_V16SImode)
6672 0 : || !nonimmediate_operand (operands[2], E_V16SImode)
6673 0 : || !const_0_to_7_operand (operands[3], E_SImode)
6674 0 : || !(
6675 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6676 : (TARGET_AVX512F) &&
6677 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6678 : (TARGET_AVX512F && (V16SImode == V16SFmode
6679 : || V16SImode == V8DFmode
6680 : || V16SImode == V8DImode
6681 : || V16SImode == V16SImode
6682 : || V16SImode == V32HFmode))))
6683 : return -1;
6684 : return 3323; /* avx512f_cmpv16si3_round */
6685 :
6686 : case E_V16SFmode:
6687 : if (!register_operand (operands[1], E_V16SFmode)
6688 : || !nonimmediate_operand (operands[2], E_V16SFmode)
6689 : || !const_0_to_31_operand (operands[3], E_SImode)
6690 : || !(
6691 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6692 : (TARGET_AVX512F) &&
6693 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6694 : (TARGET_AVX512F && (V16SFmode == V16SFmode
6695 : || V16SFmode == V8DFmode
6696 : || V16SFmode == V8DImode
6697 : || V16SFmode == V16SImode
6698 : || V16SFmode == V32HFmode))))
6699 : return -1;
6700 : return 3347; /* avx512f_cmpv16sf3_round */
6701 :
6702 : default:
6703 : return -1;
6704 : }
6705 :
6706 : case E_QImode:
6707 : if (!register_operand (operands[0], E_QImode)
6708 : || GET_MODE (x2) != E_QImode
6709 : || GET_MODE (x3) != E_QImode)
6710 : return -1;
6711 : switch (GET_MODE (operands[1]))
6712 : {
6713 : case E_V8DImode:
6714 : if (!register_operand (operands[1], E_V8DImode)
6715 : || !nonimmediate_operand (operands[2], E_V8DImode)
6716 : || !const_0_to_7_operand (operands[3], E_SImode)
6717 : || !(
6718 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6719 : (TARGET_AVX512F) &&
6720 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6721 : (TARGET_AVX512F && (V8DImode == V16SFmode
6722 : || V8DImode == V8DFmode
6723 : || V8DImode == V8DImode
6724 : || V8DImode == V16SImode
6725 : || V8DImode == V32HFmode))))
6726 : return -1;
6727 : return 3331; /* avx512f_cmpv8di3_round */
6728 :
6729 : case E_V8DFmode:
6730 : if (!register_operand (operands[1], E_V8DFmode)
6731 : || !nonimmediate_operand (operands[2], E_V8DFmode)
6732 : || !const_0_to_31_operand (operands[3], E_SImode)
6733 : || !(
6734 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6735 : (TARGET_AVX512F) &&
6736 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6737 : (TARGET_AVX512F && (V8DFmode == V16SFmode
6738 : || V8DFmode == V8DFmode
6739 : || V8DFmode == V8DImode
6740 : || V8DFmode == V16SImode
6741 : || V8DFmode == V32HFmode))))
6742 : return -1;
6743 : return 3355; /* avx512f_cmpv8df3_round */
6744 :
6745 : default:
6746 : return -1;
6747 : }
6748 :
6749 : default:
6750 : return -1;
6751 : }
6752 :
6753 : case 2:
6754 : if (XINT (x3, 1) != 62
6755 : || GET_MODE (x3) != E_CCFPmode
6756 : || pattern855 (x3) != 0
6757 : || pattern46 (x1,
6758 : E_CCFPmode) != 0)
6759 : return -1;
6760 : x6 = XVECEXP (x3, 0, 0);
6761 : x9 = XEXP (x6, 0);
6762 : operands[0] = x9;
6763 : x7 = XVECEXP (x3, 0, 1);
6764 : x10 = XEXP (x7, 0);
6765 : operands[1] = x10;
6766 : operands[2] = x4;
6767 : switch (GET_MODE (x6))
6768 : {
6769 : case E_HFmode:
6770 : if (!register_operand (operands[0], E_V8HFmode)
6771 : || GET_MODE (x7) != E_HFmode
6772 : || !register_operand (operands[1], E_V8HFmode)
6773 : || !(
6774 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6775 : (TARGET_AVX512F) && (
6776 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6777 : (TARGET_AVX10_2) &&
6778 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6779 : (TARGET_AVX512FP16))))
6780 : return -1;
6781 : return 3741; /* avx10_2_comxhf_round */
6782 :
6783 : case E_SFmode:
6784 : if (!register_operand (operands[0], E_V4SFmode)
6785 : || GET_MODE (x7) != E_SFmode
6786 : || !register_operand (operands[1], E_V4SFmode)
6787 : || !(
6788 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6789 : (TARGET_AVX512F) &&
6790 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6791 : (TARGET_AVX10_2)))
6792 : return -1;
6793 : return 3745; /* avx10_2_comxsf_round */
6794 :
6795 : case E_DFmode:
6796 : if (!register_operand (operands[0], E_V2DFmode)
6797 : || GET_MODE (x7) != E_DFmode
6798 : || !register_operand (operands[1], E_V2DFmode)
6799 : || !(
6800 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6801 : (TARGET_AVX512F) &&
6802 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6803 : (TARGET_AVX10_2)))
6804 : return -1;
6805 : return 3749; /* avx10_2_comxdf_round */
6806 :
6807 : default:
6808 : return -1;
6809 : }
6810 :
6811 : case 1:
6812 : if (XINT (x3, 1) != 27
6813 : || GET_MODE (x3) != E_CCFPmode
6814 : || pattern46 (x1,
6815 : E_CCFPmode) != 0)
6816 : return -1;
6817 : x6 = XVECEXP (x3, 0, 0);
6818 : if (GET_MODE (x6) != E_CCFPmode)
6819 : return -1;
6820 : operands[2] = x4;
6821 : switch (GET_CODE (x6))
6822 : {
6823 : case UNSPEC:
6824 : if (XVECLEN (x6, 0) != 2
6825 : || XINT (x6, 1) != 62)
6826 : return -1;
6827 : x11 = XVECEXP (x6, 0, 0);
6828 : if (GET_CODE (x11) != VEC_SELECT)
6829 : return -1;
6830 : x12 = XEXP (x11, 1);
6831 : if (GET_CODE (x12) != PARALLEL
6832 : || XVECLEN (x12, 0) != 1)
6833 : return -1;
6834 : x13 = XVECEXP (x12, 0, 0);
6835 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6836 : return -1;
6837 : x14 = XVECEXP (x6, 0, 1);
6838 : if (GET_CODE (x14) != VEC_SELECT)
6839 : return -1;
6840 : x15 = XEXP (x14, 1);
6841 : if (GET_CODE (x15) != PARALLEL
6842 : || XVECLEN (x15, 0) != 1)
6843 : return -1;
6844 : x16 = XVECEXP (x15, 0, 0);
6845 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6846 : return -1;
6847 : x17 = XEXP (x11, 0);
6848 : operands[0] = x17;
6849 : x18 = XEXP (x14, 0);
6850 : operands[1] = x18;
6851 : switch (GET_MODE (x11))
6852 : {
6853 : case E_HFmode:
6854 : if (!register_operand (operands[0], E_V8HFmode)
6855 : || GET_MODE (x14) != E_HFmode
6856 : || !register_operand (operands[1], E_V8HFmode)
6857 : || !(
6858 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6859 : (TARGET_AVX512F) && (
6860 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6861 : (TARGET_AVX10_2) &&
6862 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6863 : (TARGET_AVX512FP16))))
6864 : return -1;
6865 : return 3743; /* avx10_2_ucomxhf_round */
6866 :
6867 : case E_SFmode:
6868 : if (!register_operand (operands[0], E_V4SFmode)
6869 : || GET_MODE (x14) != E_SFmode
6870 : || !register_operand (operands[1], E_V4SFmode)
6871 : || !(
6872 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6873 : (TARGET_AVX512F) &&
6874 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6875 : (TARGET_AVX10_2)))
6876 : return -1;
6877 : return 3747; /* avx10_2_ucomxsf_round */
6878 :
6879 : case E_DFmode:
6880 : if (!register_operand (operands[0], E_V2DFmode)
6881 : || GET_MODE (x14) != E_DFmode
6882 : || !register_operand (operands[1], E_V2DFmode)
6883 : || !(
6884 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6885 : (TARGET_AVX512F) &&
6886 : #line 5208 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6887 : (TARGET_AVX10_2)))
6888 : return -1;
6889 : return 3751; /* avx10_2_ucomxdf_round */
6890 :
6891 : default:
6892 : return -1;
6893 : }
6894 :
6895 : case COMPARE:
6896 : x9 = XEXP (x6, 0);
6897 : if (GET_CODE (x9) != VEC_SELECT)
6898 : return -1;
6899 : x19 = XEXP (x9, 1);
6900 : if (GET_CODE (x19) != PARALLEL
6901 : || XVECLEN (x19, 0) != 1)
6902 : return -1;
6903 : x20 = XVECEXP (x19, 0, 0);
6904 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6905 : return -1;
6906 : x21 = XEXP (x6, 1);
6907 : if (GET_CODE (x21) != VEC_SELECT)
6908 : return -1;
6909 : x22 = XEXP (x21, 1);
6910 : if (GET_CODE (x22) != PARALLEL
6911 : || XVECLEN (x22, 0) != 1)
6912 : return -1;
6913 : x23 = XVECEXP (x22, 0, 0);
6914 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
6915 : return -1;
6916 : x24 = XEXP (x9, 0);
6917 : operands[0] = x24;
6918 : x25 = XEXP (x21, 0);
6919 : operands[1] = x25;
6920 : switch (GET_MODE (x9))
6921 : {
6922 : case E_HFmode:
6923 : if (!register_operand (operands[0], E_V8HFmode)
6924 : || GET_MODE (x21) != E_HFmode
6925 : || !register_operand (operands[1], E_V8HFmode)
6926 : || !(
6927 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6928 : (TARGET_AVX512F) && (
6929 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6930 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
6931 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
6932 : (TARGET_AVX512FP16))))
6933 : return -1;
6934 : return 3755; /* avx512fp16_ucomi_round */
6935 :
6936 : case E_SFmode:
6937 : if (!register_operand (operands[0], E_V4SFmode)
6938 : || GET_MODE (x21) != E_SFmode
6939 : || !register_operand (operands[1], E_V4SFmode)
6940 : || !(
6941 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6942 : (TARGET_AVX512F) &&
6943 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6944 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode)))
6945 : return -1;
6946 : return 3759; /* sse_ucomi_round */
6947 :
6948 : case E_DFmode:
6949 : if (!register_operand (operands[0], E_V2DFmode)
6950 : || GET_MODE (x21) != E_DFmode
6951 : || !register_operand (operands[1], E_V2DFmode)
6952 : || !(
6953 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
6954 : (TARGET_AVX512F) &&
6955 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
6956 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode)))
6957 : return -1;
6958 : return 3763; /* sse2_ucomi_round */
6959 :
6960 : default:
6961 : return -1;
6962 : }
6963 :
6964 : default:
6965 : return -1;
6966 : }
6967 :
6968 : default:
6969 : return -1;
6970 : }
6971 :
6972 : case AND:
6973 : x26 = XEXP (x3, 0);
6974 : if (GET_CODE (x26) != UNSPEC
6975 : || XVECLEN (x26, 0) != 3
6976 : || XINT (x26, 1) != 60)
6977 : return -1;
6978 : x5 = XEXP (x1, 0);
6979 : operands[0] = x5;
6980 : x27 = XVECEXP (x26, 0, 0);
6981 : operands[1] = x27;
6982 : x28 = XVECEXP (x26, 0, 1);
6983 : operands[2] = x28;
6984 : x29 = XVECEXP (x26, 0, 2);
6985 : operands[3] = x29;
6986 : x4 = XVECEXP (x2, 0, 1);
6987 : if (!const48_operand (x4, E_SImode))
6988 : return -1;
6989 : x30 = XEXP (x3, 1);
6990 : switch (GET_CODE (x30))
6991 : {
6992 : case REG:
6993 : case SUBREG:
6994 : operands[4] = x30;
6995 : operands[5] = x4;
6996 : switch (GET_MODE (operands[0]))
6997 : {
6998 : case E_HImode:
6999 : if (pattern1547 (x2,
7000 : E_HImode) != 0)
7001 : return -1;
7002 : switch (GET_MODE (operands[1]))
7003 : {
7004 : case E_V16SImode:
7005 : if (!register_operand (operands[1], E_V16SImode)
7006 : || !nonimmediate_operand (operands[2], E_V16SImode)
7007 : || !const_0_to_7_operand (operands[3], E_SImode)
7008 : || !(
7009 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7010 : (TARGET_AVX512F) && (
7011 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7012 : (TARGET_AVX512F) &&
7013 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7014 : (TARGET_AVX512F && (V16SImode == V16SFmode
7015 : || V16SImode == V8DFmode
7016 : || V16SImode == V8DImode
7017 : || V16SImode == V16SImode
7018 : || V16SImode == V32HFmode)))))
7019 : return -1;
7020 : return 3325; /* avx512f_cmpv16si3_mask_round */
7021 :
7022 : case E_V16SFmode:
7023 : if (!register_operand (operands[1], E_V16SFmode)
7024 : || !nonimmediate_operand (operands[2], E_V16SFmode)
7025 : || !const_0_to_31_operand (operands[3], E_SImode)
7026 : || !(
7027 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7028 : (TARGET_AVX512F) && (
7029 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7030 : (TARGET_AVX512F) &&
7031 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7032 : (TARGET_AVX512F && (V16SFmode == V16SFmode
7033 : || V16SFmode == V8DFmode
7034 : || V16SFmode == V8DImode
7035 : || V16SFmode == V16SImode
7036 : || V16SFmode == V32HFmode)))))
7037 : return -1;
7038 : return 3349; /* avx512f_cmpv16sf3_mask_round */
7039 :
7040 : default:
7041 : return -1;
7042 : }
7043 :
7044 : case E_QImode:
7045 : if (pattern1547 (x2,
7046 : E_QImode) != 0)
7047 : return -1;
7048 : switch (GET_MODE (operands[1]))
7049 : {
7050 : case E_V8DImode:
7051 : if (!register_operand (operands[1], E_V8DImode)
7052 : || !nonimmediate_operand (operands[2], E_V8DImode)
7053 : || !const_0_to_7_operand (operands[3], E_SImode)
7054 : || !(
7055 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7056 : (TARGET_AVX512F) && (
7057 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7058 : (TARGET_AVX512F) &&
7059 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7060 : (TARGET_AVX512F && (V8DImode == V16SFmode
7061 : || V8DImode == V8DFmode
7062 : || V8DImode == V8DImode
7063 : || V8DImode == V16SImode
7064 : || V8DImode == V32HFmode)))))
7065 : return -1;
7066 : return 3333; /* avx512f_cmpv8di3_mask_round */
7067 :
7068 : case E_V8DFmode:
7069 : if (!register_operand (operands[1], E_V8DFmode)
7070 : || !nonimmediate_operand (operands[2], E_V8DFmode)
7071 : || !const_0_to_31_operand (operands[3], E_SImode)
7072 : || !(
7073 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7074 : (TARGET_AVX512F) && (
7075 : #line 122 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7076 : (TARGET_AVX512F) &&
7077 : #line 4621 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7078 : (TARGET_AVX512F && (V8DFmode == V16SFmode
7079 : || V8DFmode == V8DFmode
7080 : || V8DFmode == V8DImode
7081 : || V8DFmode == V16SImode
7082 : || V8DFmode == V32HFmode)))))
7083 : return -1;
7084 : return 3357; /* avx512f_cmpv8df3_mask_round */
7085 :
7086 : default:
7087 : return -1;
7088 : }
7089 :
7090 : default:
7091 : return -1;
7092 : }
7093 :
7094 : case CONST_INT:
7095 : if (XWINT (x30, 0) != 1L
7096 : || pattern1463 (x2) != 0)
7097 : return -1;
7098 : operands[4] = x4;
7099 : switch (pattern1714 ())
7100 : {
7101 : case 0:
7102 : if (!(
7103 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7104 : (TARGET_AVX512F) && (
7105 : #line 5173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7106 : (TARGET_AVX512F) &&
7107 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7108 : (TARGET_AVX512FP16))))
7109 : return -1;
7110 : return 3729; /* avx512f_vmcmpv8hf3_round */
7111 :
7112 : case 1:
7113 : if (!
7114 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7115 : (TARGET_AVX512F))
7116 : return -1;
7117 : return 3731; /* avx512f_vmcmpv4sf3_round */
7118 :
7119 : case 2:
7120 : if (!(
7121 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7122 : (TARGET_AVX512F) && (
7123 : #line 5173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7124 : (TARGET_AVX512F) &&
7125 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7126 : (TARGET_SSE2))))
7127 : return -1;
7128 : return 3733; /* avx512f_vmcmpv2df3_round */
7129 :
7130 : default:
7131 : return -1;
7132 : }
7133 :
7134 : case AND:
7135 : if (GET_MODE (x30) != E_QImode)
7136 : return -1;
7137 : x31 = XEXP (x30, 1);
7138 : if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
7139 : || pattern1463 (x2) != 0)
7140 : return -1;
7141 : x32 = XEXP (x30, 0);
7142 : operands[4] = x32;
7143 : if (!register_operand (operands[4], E_QImode))
7144 : return -1;
7145 : operands[5] = x4;
7146 : switch (pattern1714 ())
7147 : {
7148 : case 0:
7149 : if (!(
7150 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7151 : (TARGET_AVX512F) && (
7152 : #line 5191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7153 : (TARGET_AVX512F) &&
7154 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7155 : (TARGET_AVX512FP16))))
7156 : return -1;
7157 : return 3735; /* avx512f_vmcmpv8hf3_mask_round */
7158 :
7159 : case 1:
7160 : if (!
7161 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7162 : (TARGET_AVX512F))
7163 : return -1;
7164 : return 3737; /* avx512f_vmcmpv4sf3_mask_round */
7165 :
7166 : case 2:
7167 : if (!(
7168 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7169 : (TARGET_AVX512F) && (
7170 : #line 5191 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7171 : (TARGET_AVX512F) &&
7172 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7173 : (TARGET_SSE2))))
7174 : return -1;
7175 : return 3739; /* avx512f_vmcmpv2df3_mask_round */
7176 :
7177 : default:
7178 : return -1;
7179 : }
7180 :
7181 : default:
7182 : return -1;
7183 : }
7184 :
7185 : case COMPARE:
7186 : if (GET_MODE (x3) != E_CCFPmode)
7187 : return -1;
7188 : x26 = XEXP (x3, 0);
7189 : if (GET_CODE (x26) != VEC_SELECT
7190 : || pattern610 (x3) != 0
7191 : || pattern46 (x1,
7192 : E_CCFPmode) != 0)
7193 : return -1;
7194 : x33 = XEXP (x26, 0);
7195 : operands[0] = x33;
7196 : x30 = XEXP (x3, 1);
7197 : x32 = XEXP (x30, 0);
7198 : operands[1] = x32;
7199 : x4 = XVECEXP (x2, 0, 1);
7200 : operands[2] = x4;
7201 : if (!const48_operand (operands[2], E_SImode))
7202 : return -1;
7203 : switch (GET_MODE (x26))
7204 : {
7205 : case E_HFmode:
7206 : if (!register_operand (operands[0], E_V8HFmode)
7207 : || GET_MODE (x30) != E_HFmode
7208 : || !register_operand (operands[1], E_V8HFmode)
7209 : || !(
7210 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7211 : (TARGET_AVX512F) && (
7212 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7213 : (SSE_FLOAT_MODE_P (HFmode) || HFmode == E_HFmode) &&
7214 : #line 1356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7215 : (TARGET_AVX512FP16))))
7216 : return -1;
7217 : return 3753; /* avx512fp16_comi_round */
7218 :
7219 : case E_SFmode:
7220 : if (!register_operand (operands[0], E_V4SFmode)
7221 : || GET_MODE (x30) != E_SFmode
7222 : || !register_operand (operands[1], E_V4SFmode)
7223 : || !(
7224 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7225 : (TARGET_AVX512F) &&
7226 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7227 : (SSE_FLOAT_MODE_P (SFmode) || SFmode == E_HFmode)))
7228 : return -1;
7229 : return 3757; /* sse_comi_round */
7230 :
7231 : case E_DFmode:
7232 : if (!register_operand (operands[0], E_V2DFmode)
7233 : || GET_MODE (x30) != E_DFmode
7234 : || !register_operand (operands[1], E_V2DFmode)
7235 : || !(
7236 : #line 273 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7237 : (TARGET_AVX512F) &&
7238 : #line 5223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7239 : (SSE_FLOAT_MODE_P (DFmode) || DFmode == E_HFmode)))
7240 : return -1;
7241 : return 3761; /* sse2_comi_round */
7242 :
7243 : default:
7244 : return -1;
7245 : }
7246 :
7247 : case FMA:
7248 : x26 = XEXP (x3, 0);
7249 : if (GET_CODE (x26) != NEG)
7250 : return -1;
7251 : x34 = XEXP (x3, 2);
7252 : if (GET_CODE (x34) != NEG)
7253 : return -1;
7254 : x5 = XEXP (x1, 0);
7255 : operands[0] = x5;
7256 : x33 = XEXP (x26, 0);
7257 : operands[1] = x33;
7258 : x30 = XEXP (x3, 1);
7259 : operands[2] = x30;
7260 : x35 = XEXP (x34, 0);
7261 : operands[3] = x35;
7262 : x4 = XVECEXP (x2, 0, 1);
7263 : operands[4] = x4;
7264 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
7265 : return -1;
7266 : switch (GET_MODE (operands[0]))
7267 : {
7268 : case E_SFmode:
7269 : if (pattern1366 (x2,
7270 : E_SFmode) != 0
7271 : || !(
7272 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7273 : (TARGET_AVX512F) &&
7274 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7275 : (TARGET_FMA || TARGET_FMA4)))
7276 : return -1;
7277 : return 4054; /* *fma_fnmsub_sf */
7278 :
7279 : case E_DFmode:
7280 : if (pattern1366 (x2,
7281 : E_DFmode) != 0
7282 : || !(
7283 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
7284 : (TARGET_AVX512F) &&
7285 : #line 6573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7286 : (TARGET_FMA || TARGET_FMA4)))
7287 : return -1;
7288 : return 4056; /* *fma_fnmsub_df */
7289 :
7290 : default:
7291 : return -1;
7292 : }
7293 :
7294 : default:
7295 : return -1;
7296 : }
7297 : }
7298 :
7299 : int
7300 : recog_28 (rtx x1 ATTRIBUTE_UNUSED,
7301 : rtx_insn *insn ATTRIBUTE_UNUSED,
7302 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7303 : {
7304 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7305 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
7306 : int res ATTRIBUTE_UNUSED;
7307 : x2 = XEXP (x1, 1);
7308 : x3 = XEXP (x2, 0);
7309 : switch (GET_CODE (x3))
7310 : {
7311 : case AND:
7312 : x4 = XEXP (x1, 0);
7313 : operands[0] = x4;
7314 : x5 = XEXP (x3, 1);
7315 : operands[3] = x5;
7316 : x6 = XEXP (x3, 0);
7317 : switch (GET_CODE (x6))
7318 : {
7319 : case REG:
7320 : case SUBREG:
7321 : case MEM:
7322 : operands[1] = x6;
7323 : switch (pattern75 (x2))
7324 : {
7325 : case 0:
7326 : if (!
7327 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7328 : (TARGET_64BIT
7329 : && CONST_WIDE_INT_P (operands[3])
7330 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
7331 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
7332 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0))
7333 : return -1;
7334 : return 149; /* *insvti_highpart_1 */
7335 :
7336 : case 1:
7337 : if (!
7338 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7339 : (TARGET_64BIT
7340 : && CONST_WIDE_INT_P (operands[3])
7341 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
7342 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
7343 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1))
7344 : return -1;
7345 : return 152; /* *insvti_lowpart_1 */
7346 :
7347 : case 2:
7348 : if (!
7349 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7350 : (!TARGET_64BIT
7351 : && CONST_INT_P (operands[3])
7352 : && UINTVAL (operands[3]) == 0xffffffff00000000ll))
7353 : return -1;
7354 : return 155; /* *insvdi_lowpart_1 */
7355 :
7356 : default:
7357 : return -1;
7358 : }
7359 :
7360 : case XOR:
7361 : if (pnum_clobbers == NULL
7362 : || GET_MODE (x6) != E_HImode
7363 : || !register_operand (operands[0], E_HImode)
7364 : || GET_MODE (x2) != E_HImode
7365 : || GET_MODE (x3) != E_HImode)
7366 : return -1;
7367 : x7 = XEXP (x6, 0);
7368 : operands[1] = x7;
7369 : if (!nonimmediate_operand (operands[1], E_HImode))
7370 : return -1;
7371 : x8 = XEXP (x6, 1);
7372 : operands[2] = x8;
7373 : if (!nonimmediate_operand (operands[2], E_HImode)
7374 : || !nonimmediate_operand (operands[3], E_HImode))
7375 : return -1;
7376 : x9 = XEXP (x2, 1);
7377 : if (!rtx_equal_p (x9, operands[1])
7378 : || !
7379 : #line 14004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7380 : (TARGET_BMI && ix86_pre_reload_split ()))
7381 : return -1;
7382 : *pnum_clobbers = 1;
7383 : return 868; /* *xor2andn */
7384 :
7385 : default:
7386 : return -1;
7387 : }
7388 :
7389 : case ASHIFT:
7390 : x4 = XEXP (x1, 0);
7391 : operands[0] = x4;
7392 : x5 = XEXP (x3, 1);
7393 : operands[2] = x5;
7394 : x6 = XEXP (x3, 0);
7395 : switch (GET_CODE (x6))
7396 : {
7397 : case REG:
7398 : case SUBREG:
7399 : operands[1] = x6;
7400 : switch (pattern617 (x2))
7401 : {
7402 : case 0:
7403 : if (!
7404 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7405 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
7406 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
7407 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
7408 : return -1;
7409 : return 377; /* *leaqi_general_4 */
7410 :
7411 : case 1:
7412 : if (!
7413 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7414 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
7415 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
7416 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))))
7417 : return -1;
7418 : return 379; /* *leahi_general_4 */
7419 :
7420 : case 2:
7421 : if (!(
7422 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7423 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
7424 : && (TImode == DImode
7425 : ? CONST_INT_P (operands[3])
7426 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7427 : : CONST_INT_P (operands[3])
7428 : ? INTVAL (operands[3]) >= 0
7429 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7430 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7431 : && !(CONST_INT_P (operands[3])
7432 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7433 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7434 : 0)),
7435 : VOIDmode))) &&
7436 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7437 : (TARGET_64BIT)))
7438 : return -1;
7439 : return 965; /* *concatditi3_5 */
7440 :
7441 : case 3:
7442 : if (!(
7443 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7444 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7445 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7446 : (TARGET_64BIT)))
7447 : return -1;
7448 : return 929; /* *concatditi3_1 */
7449 :
7450 : default:
7451 : return -1;
7452 : }
7453 :
7454 : case SIGN_EXTEND:
7455 : switch (pattern427 (x2))
7456 : {
7457 : case 0:
7458 : if (!(
7459 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7460 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7461 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7462 : (TARGET_64BIT)))
7463 : return -1;
7464 : return 944; /* *concatditi3_3 */
7465 :
7466 : case 1:
7467 : if (!(
7468 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7469 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
7470 : && (TImode == DImode
7471 : ? CONST_INT_P (operands[3])
7472 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7473 : : CONST_INT_P (operands[3])
7474 : ? INTVAL (operands[3]) >= 0
7475 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7476 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7477 : && !(CONST_INT_P (operands[3])
7478 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7479 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7480 : 0)),
7481 : VOIDmode))) &&
7482 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7483 : (TARGET_64BIT)))
7484 : return -1;
7485 : return 974; /* *concatditi3_6 */
7486 :
7487 : default:
7488 : return -1;
7489 : }
7490 :
7491 : case ZERO_EXTEND:
7492 : switch (pattern427 (x2))
7493 : {
7494 : case 0:
7495 : if (!(
7496 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7497 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
7498 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7499 : (TARGET_64BIT)))
7500 : return -1;
7501 : return 947; /* *concatditi3_3 */
7502 :
7503 : case 1:
7504 : if (!(
7505 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7506 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
7507 : && (TImode == DImode
7508 : ? CONST_INT_P (operands[3])
7509 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
7510 : : CONST_INT_P (operands[3])
7511 : ? INTVAL (operands[3]) >= 0
7512 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
7513 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
7514 : && !(CONST_INT_P (operands[3])
7515 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
7516 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
7517 : 0)),
7518 : VOIDmode))) &&
7519 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7520 : (TARGET_64BIT)))
7521 : return -1;
7522 : return 977; /* *concatditi3_6 */
7523 :
7524 : default:
7525 : return -1;
7526 : }
7527 :
7528 : default:
7529 : return -1;
7530 : }
7531 :
7532 : case REG:
7533 : case SUBREG:
7534 : case MEM:
7535 : operands[1] = x3;
7536 : switch (pattern82 (x1, pnum_clobbers))
7537 : {
7538 : case 0:
7539 : if (
7540 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7541 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7542 : {
7543 : *pnum_clobbers = 1;
7544 : return 755; /* *xorqi_1_slp */
7545 : }
7546 : break;
7547 :
7548 : case 1:
7549 : if (
7550 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7551 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7552 : {
7553 : *pnum_clobbers = 1;
7554 : return 758; /* *xorhi_1_slp */
7555 : }
7556 : break;
7557 :
7558 : case 2:
7559 : if ((
7560 : #line 13847 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7561 : (ix86_binary_operator_ok (XOR, TImode, operands, TARGET_APX_NDD)) &&
7562 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7563 : (TARGET_64BIT)))
7564 : {
7565 : *pnum_clobbers = 1;
7566 : return 850; /* *xorti3_doubleword */
7567 : }
7568 : break;
7569 :
7570 : case 3:
7571 : if (
7572 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7573 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)
7574 : && TARGET_APX_NF))
7575 : return 853; /* *xorhi_1_nf */
7576 : if (pnum_clobbers != NULL
7577 : &&
7578 : #line 13905 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7579 : (ix86_binary_operator_ok (XOR, HImode, operands, TARGET_APX_NDD)
7580 : && true))
7581 : {
7582 : *pnum_clobbers = 1;
7583 : return 854; /* *xorhi_1 */
7584 : }
7585 : break;
7586 :
7587 : case 4:
7588 : if (
7589 : #line 1380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7590 : (TARGET_MMX_WITH_SSE))
7591 : return 2136; /* xorv2sf3 */
7592 : break;
7593 :
7594 : case 5:
7595 : if (
7596 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7597 : (TARGET_SSE))
7598 : return 2170; /* xorv2bf3 */
7599 : break;
7600 :
7601 : case 6:
7602 : if ((
7603 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7604 : (TARGET_SSE) &&
7605 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7606 : (TARGET_MMX_WITH_SSE)))
7607 : return 2173; /* xorv4bf3 */
7608 : break;
7609 :
7610 : case 7:
7611 : if (
7612 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7613 : (TARGET_SSE))
7614 : return 2176; /* xorv2hf3 */
7615 : break;
7616 :
7617 : case 8:
7618 : if ((
7619 : #line 2606 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7620 : (TARGET_SSE) &&
7621 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7622 : (TARGET_MMX_WITH_SSE)))
7623 : return 2179; /* xorv4hf3 */
7624 : break;
7625 :
7626 : case 9:
7627 : if (
7628 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7629 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7630 : && ix86_binary_operator_ok (XOR, V8QImode, operands)))
7631 : return 2333; /* *mmx_xorv8qi3 */
7632 : break;
7633 :
7634 : case 10:
7635 : if (
7636 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7637 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7638 : && ix86_binary_operator_ok (XOR, V4HImode, operands)))
7639 : return 2336; /* *mmx_xorv4hi3 */
7640 : break;
7641 :
7642 : case 11:
7643 : if (
7644 : #line 4715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7645 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
7646 : && ix86_binary_operator_ok (XOR, V2SImode, operands)))
7647 : return 2339; /* *mmx_xorv2si3 */
7648 : break;
7649 :
7650 : case 12:
7651 : if (
7652 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7653 : (ix86_binary_operator_ok (XOR, V4QImode, operands)))
7654 : {
7655 : *pnum_clobbers = 1;
7656 : return 2342; /* *xorv4qi3 */
7657 : }
7658 : break;
7659 :
7660 : case 13:
7661 : if (
7662 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7663 : (ix86_binary_operator_ok (XOR, V2QImode, operands)))
7664 : {
7665 : *pnum_clobbers = 1;
7666 : return 2345; /* *xorv2qi3 */
7667 : }
7668 : break;
7669 :
7670 : case 14:
7671 : if (
7672 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
7673 : (ix86_binary_operator_ok (XOR, V2HImode, operands)))
7674 : {
7675 : *pnum_clobbers = 1;
7676 : return 2348; /* *xorv2hi3 */
7677 : }
7678 : break;
7679 :
7680 : case 15:
7681 : if (
7682 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7683 : (TARGET_SSE))
7684 : return 3857; /* xorbf3 */
7685 : break;
7686 :
7687 : case 16:
7688 : if (
7689 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7690 : (TARGET_SSE))
7691 : return 3860; /* xorhf3 */
7692 : break;
7693 :
7694 : case 17:
7695 : if (
7696 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7697 : (TARGET_SSE))
7698 : return 3863; /* xorsf3 */
7699 : break;
7700 :
7701 : case 18:
7702 : if ((
7703 : #line 6017 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7704 : (TARGET_SSE) &&
7705 : #line 1353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7706 : (TARGET_SSE2)))
7707 : return 3866; /* xordf3 */
7708 : break;
7709 :
7710 : case 19:
7711 : if (
7712 : #line 6091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
7713 : (TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
7714 : return 3869; /* *xortf3 */
7715 : break;
7716 :
7717 : default:
7718 : break;
7719 : }
7720 : if (pnum_clobbers != NULL
7721 : && pattern83 (x2) == 0)
7722 : {
7723 : x6 = XEXP (x3, 0);
7724 : x7 = XEXP (x6, 0);
7725 : operands[2] = x7;
7726 : switch (pattern1080 (x1))
7727 : {
7728 : case 0:
7729 : if (
7730 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7731 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7732 : {
7733 : *pnum_clobbers = 1;
7734 : return 761; /* *xorqi_exthi_1_slp */
7735 : }
7736 : break;
7737 :
7738 : case 1:
7739 : if (
7740 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7741 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7742 : {
7743 : *pnum_clobbers = 1;
7744 : return 764; /* *xorqi_extsi_1_slp */
7745 : }
7746 : break;
7747 :
7748 : case 2:
7749 : if ((
7750 : #line 13108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7751 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7752 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7753 : (TARGET_64BIT)))
7754 : {
7755 : *pnum_clobbers = 1;
7756 : return 767; /* *xorqi_extdi_1_slp */
7757 : }
7758 : break;
7759 :
7760 : case 3:
7761 : *pnum_clobbers = 1;
7762 : return 785; /* *xorqi_exthi_0 */
7763 :
7764 : case 4:
7765 : *pnum_clobbers = 1;
7766 : return 788; /* *xorqi_extsi_0 */
7767 :
7768 : case 5:
7769 : if (
7770 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7771 : (TARGET_64BIT))
7772 : {
7773 : *pnum_clobbers = 1;
7774 : return 791; /* *xorqi_extdi_0 */
7775 : }
7776 : break;
7777 :
7778 : default:
7779 : break;
7780 : }
7781 : x9 = XEXP (x2, 1);
7782 : if (GET_CODE (x9) == SUBREG)
7783 : {
7784 : switch (pattern1083 (x1))
7785 : {
7786 : case 0:
7787 : if (
7788 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7789 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7790 : {
7791 : *pnum_clobbers = 1;
7792 : return 770; /* *xorqi_exthi_2_slp */
7793 : }
7794 : break;
7795 :
7796 : case 1:
7797 : if (
7798 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7799 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
7800 : {
7801 : *pnum_clobbers = 1;
7802 : return 773; /* *xorqi_extsi_2_slp */
7803 : }
7804 : break;
7805 :
7806 : case 2:
7807 : if ((
7808 : #line 13137 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7809 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
7810 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7811 : (TARGET_64BIT)))
7812 : {
7813 : *pnum_clobbers = 1;
7814 : return 776; /* *xorqi_extdi_2_slp */
7815 : }
7816 : break;
7817 :
7818 : case 3:
7819 : *pnum_clobbers = 1;
7820 : return 794; /* *xorqi_ext2hi_0 */
7821 :
7822 : case 4:
7823 : *pnum_clobbers = 1;
7824 : return 797; /* *xorqi_ext2si_0 */
7825 :
7826 : case 5:
7827 : if (
7828 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7829 : (TARGET_64BIT))
7830 : {
7831 : *pnum_clobbers = 1;
7832 : return 800; /* *xorqi_ext2di_0 */
7833 : }
7834 : break;
7835 :
7836 : default:
7837 : break;
7838 : }
7839 : }
7840 : }
7841 : operands[1] = x3;
7842 : if (pattern84 (x1) != 0)
7843 : return -1;
7844 : if (
7845 : #line 14095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7846 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)
7847 : && TARGET_APX_NF))
7848 : return 897; /* *xorqi_1_nf */
7849 : if (pnum_clobbers == NULL
7850 : || !
7851 : #line 14095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7852 : (ix86_binary_operator_ok (XOR, QImode, operands, TARGET_APX_NDD)
7853 : && true))
7854 : return -1;
7855 : *pnum_clobbers = 1;
7856 : return 898; /* *xorqi_1 */
7857 :
7858 : case ZERO_EXTEND:
7859 : switch (pattern40 (x1))
7860 : {
7861 : case 0:
7862 : if (!(
7863 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7864 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7865 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7866 : (TARGET_64BIT)))
7867 : return -1;
7868 : return 935; /* *concatditi3_2 */
7869 :
7870 : case 1:
7871 : if (!(
7872 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7873 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7874 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7875 : (TARGET_64BIT)))
7876 : return -1;
7877 : return 956; /* *concatditi3_4 */
7878 :
7879 : case 2:
7880 : if (!(
7881 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7882 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
7883 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7884 : (TARGET_64BIT)))
7885 : return -1;
7886 : return 959; /* *concatditi3_4 */
7887 :
7888 : case 3:
7889 : if (!(
7890 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7891 : (TImode == DImode
7892 : ? CONST_INT_P (operands[2])
7893 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
7894 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
7895 : : CONST_WIDE_INT_P (operands[2])
7896 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
7897 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
7898 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
7899 : 1)),
7900 : VOIDmode)) &&
7901 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7902 : (TARGET_64BIT)))
7903 : return -1;
7904 : return 983; /* *concatditi3_7 */
7905 :
7906 : default:
7907 : return -1;
7908 : }
7909 :
7910 : default:
7911 : return -1;
7912 : }
7913 : }
7914 :
7915 : int
7916 : recog_47 (rtx x1 ATTRIBUTE_UNUSED,
7917 : rtx_insn *insn ATTRIBUTE_UNUSED,
7918 : int *pnum_clobbers ATTRIBUTE_UNUSED)
7919 : {
7920 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
7921 : rtx x2, x3, x4;
7922 : int res ATTRIBUTE_UNUSED;
7923 : switch (pattern2 (x1, pnum_clobbers))
7924 : {
7925 : case 0:
7926 : if (!
7927 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7928 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
7929 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
7930 : == GET_MODE_BITSIZE (QImode)-1
7931 : && ix86_pre_reload_split ()))
7932 : return -1;
7933 : *pnum_clobbers = 1;
7934 : return 1324; /* *rotlqi3_mask_1 */
7935 :
7936 : case 1:
7937 : if (!
7938 : #line 18532 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7939 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
7940 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
7941 : == GET_MODE_BITSIZE (HImode)-1
7942 : && ix86_pre_reload_split ()))
7943 : return -1;
7944 : *pnum_clobbers = 1;
7945 : return 1326; /* *rotlhi3_mask_1 */
7946 :
7947 : case 2:
7948 : if (!
7949 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7950 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
7951 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7952 : && ix86_pre_reload_split ()))
7953 : return -1;
7954 : *pnum_clobbers = 1;
7955 : return 1340; /* *rotlqi3_add_1 */
7956 :
7957 : case 3:
7958 : if (!
7959 : #line 18613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7960 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
7961 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7962 : && ix86_pre_reload_split ()))
7963 : return -1;
7964 : *pnum_clobbers = 1;
7965 : return 1342; /* *rotlhi3_add_1 */
7966 :
7967 : case 4:
7968 : if (!
7969 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7970 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
7971 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
7972 : && ix86_pre_reload_split ()))
7973 : return -1;
7974 : *pnum_clobbers = 1;
7975 : return 1356; /* *rotlqi3_sub_1 */
7976 :
7977 : case 5:
7978 : if (!
7979 : #line 18682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7980 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
7981 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
7982 : && ix86_pre_reload_split ()))
7983 : return -1;
7984 : *pnum_clobbers = 1;
7985 : return 1358; /* *rotlhi3_sub_1 */
7986 :
7987 : case 6:
7988 : x2 = XEXP (x1, 0);
7989 : operands[0] = x2;
7990 : x3 = XEXP (x1, 1);
7991 : switch (pattern268 (x3, pnum_clobbers))
7992 : {
7993 : case 0:
7994 : if (
7995 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
7996 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
7997 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (QImode)-1))
7998 : == GET_MODE_BITSIZE (QImode)-1
7999 : && ix86_pre_reload_split ()))
8000 : {
8001 : *pnum_clobbers = 1;
8002 : return 1316; /* *rotlqi3_mask */
8003 : }
8004 : break;
8005 :
8006 : case 1:
8007 : if (
8008 : #line 18484 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8009 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
8010 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (HImode)-1))
8011 : == GET_MODE_BITSIZE (HImode)-1
8012 : && ix86_pre_reload_split ()))
8013 : {
8014 : *pnum_clobbers = 1;
8015 : return 1318; /* *rotlhi3_mask */
8016 : }
8017 : break;
8018 :
8019 : case 2:
8020 : if (
8021 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8022 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
8023 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
8024 : && ix86_pre_reload_split ()))
8025 : {
8026 : *pnum_clobbers = 1;
8027 : return 1332; /* *rotlqi3_add */
8028 : }
8029 : break;
8030 :
8031 : case 3:
8032 : if (
8033 : #line 18577 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8034 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
8035 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
8036 : && ix86_pre_reload_split ()))
8037 : {
8038 : *pnum_clobbers = 1;
8039 : return 1334; /* *rotlhi3_add */
8040 : }
8041 : break;
8042 :
8043 : case 4:
8044 : if (
8045 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8046 : (ix86_binary_operator_ok (ROTATE, QImode, operands)
8047 : && (INTVAL (operands[3]) & (1 * BITS_PER_UNIT - 1)) == 0
8048 : && ix86_pre_reload_split ()))
8049 : {
8050 : *pnum_clobbers = 1;
8051 : return 1348; /* *rotlqi3_sub */
8052 : }
8053 : break;
8054 :
8055 : case 5:
8056 : if (
8057 : #line 18646 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8058 : (ix86_binary_operator_ok (ROTATE, HImode, operands)
8059 : && (INTVAL (operands[3]) & (2 * BITS_PER_UNIT - 1)) == 0
8060 : && ix86_pre_reload_split ()))
8061 : {
8062 : *pnum_clobbers = 1;
8063 : return 1350; /* *rotlhi3_sub */
8064 : }
8065 : break;
8066 :
8067 : case 6:
8068 : if (pnum_clobbers != NULL
8069 : && pattern626 (x3) == 0
8070 : &&
8071 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8072 : (TARGET_64BIT))
8073 : {
8074 : *pnum_clobbers = 2;
8075 : return 1365; /* ix86_rotlti3_doubleword */
8076 : }
8077 : x4 = XEXP (x3, 1);
8078 : if (XWINT (x4, 0) == 64L
8079 : && register_operand (operands[0], E_TImode)
8080 : && GET_MODE (x3) == E_TImode
8081 : && register_operand (operands[1], E_TImode)
8082 : &&
8083 : #line 18805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8084 : (TARGET_64BIT))
8085 : return 1370; /* rotl64ti2_doubleword */
8086 : break;
8087 :
8088 : default:
8089 : break;
8090 : }
8091 : x4 = XEXP (x3, 1);
8092 : operands[2] = x4;
8093 : switch (pattern269 (x1, pnum_clobbers))
8094 : {
8095 : case 0:
8096 : if (
8097 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8098 : (ix86_binary_operator_ok (ROTATE, QImode, operands, TARGET_APX_NDD)
8099 : && TARGET_APX_NF))
8100 : return 1405; /* *rotlqi3_1_nf */
8101 : if (pnum_clobbers == NULL
8102 : || !
8103 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8104 : (ix86_binary_operator_ok (ROTATE, QImode, operands, TARGET_APX_NDD)
8105 : && true))
8106 : return -1;
8107 : *pnum_clobbers = 1;
8108 : return 1406; /* *rotlqi3_1 */
8109 :
8110 : case 1:
8111 : if (
8112 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8113 : (ix86_binary_operator_ok (ROTATE, HImode, operands, TARGET_APX_NDD)
8114 : && TARGET_APX_NF))
8115 : return 1409; /* *rotlhi3_1_nf */
8116 : if (pnum_clobbers == NULL
8117 : || !
8118 : #line 19019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8119 : (ix86_binary_operator_ok (ROTATE, HImode, operands, TARGET_APX_NDD)
8120 : && true))
8121 : return -1;
8122 : *pnum_clobbers = 1;
8123 : return 1410; /* *rotlhi3_1 */
8124 :
8125 : case 2:
8126 : if (!
8127 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8128 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8129 : return -1;
8130 : *pnum_clobbers = 1;
8131 : return 1413; /* *rotlqi3_1_slp */
8132 :
8133 : case 3:
8134 : if (!
8135 : #line 19050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8136 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
8137 : return -1;
8138 : *pnum_clobbers = 1;
8139 : return 1415; /* *rotlhi3_1_slp */
8140 :
8141 : default:
8142 : return -1;
8143 : }
8144 :
8145 : default:
8146 : return -1;
8147 : }
8148 : }
8149 :
8150 : int
8151 : recog_55 (rtx x1 ATTRIBUTE_UNUSED,
8152 : rtx_insn *insn ATTRIBUTE_UNUSED,
8153 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8154 : {
8155 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8156 : rtx x2, x3, x4;
8157 : int res ATTRIBUTE_UNUSED;
8158 : x2 = XEXP (x1, 0);
8159 : operands[0] = x2;
8160 : x3 = XEXP (x1, 1);
8161 : x4 = XEXP (x3, 0);
8162 : operands[1] = x4;
8163 : switch (GET_MODE (operands[0]))
8164 : {
8165 : case E_HImode:
8166 : if (!register_operand (operands[0], E_HImode)
8167 : || GET_MODE (x3) != E_HImode
8168 : || !nonimmediate_operand (operands[1], E_HImode))
8169 : return -1;
8170 : if (
8171 : #line 22888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8172 : (TARGET_POPCNT && TARGET_APX_NF))
8173 : return 1672; /* popcounthi2_nf */
8174 : if (pnum_clobbers == NULL
8175 : || !
8176 : #line 22888 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8177 : (TARGET_POPCNT && true))
8178 : return -1;
8179 : *pnum_clobbers = 1;
8180 : return 1673; /* popcounthi2 */
8181 :
8182 : case E_V8QImode:
8183 : if (!register_operand (operands[0], E_V8QImode)
8184 : || GET_MODE (x3) != E_V8QImode
8185 : || !register_operand (operands[1], E_V8QImode)
8186 : || !(
8187 : #line 6959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8188 : (TARGET_AVX512VL && TARGET_AVX512BITALG) &&
8189 : #line 76 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8190 : (TARGET_MMX_WITH_SSE)))
8191 : return -1;
8192 : return 2446; /* popcountv8qi2 */
8193 :
8194 : case E_V4QImode:
8195 : if (!register_operand (operands[0], E_V4QImode)
8196 : || GET_MODE (x3) != E_V4QImode
8197 : || !register_operand (operands[1], E_V4QImode)
8198 : || !
8199 : #line 6959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8200 : (TARGET_AVX512VL && TARGET_AVX512BITALG))
8201 : return -1;
8202 : return 2447; /* popcountv4qi2 */
8203 :
8204 : case E_V2QImode:
8205 : if (!register_operand (operands[0], E_V2QImode)
8206 : || GET_MODE (x3) != E_V2QImode
8207 : || !register_operand (operands[1], E_V2QImode)
8208 : || !
8209 : #line 6959 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8210 : (TARGET_AVX512VL && TARGET_AVX512BITALG))
8211 : return -1;
8212 : return 2448; /* popcountv2qi2 */
8213 :
8214 : case E_V4HImode:
8215 : if (!register_operand (operands[0], E_V4HImode)
8216 : || GET_MODE (x3) != E_V4HImode
8217 : || !register_operand (operands[1], E_V4HImode)
8218 : || !(
8219 : #line 6966 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8220 : (TARGET_AVX512VL && TARGET_AVX512BITALG) &&
8221 : #line 73 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8222 : (TARGET_MMX_WITH_SSE)))
8223 : return -1;
8224 : return 2449; /* popcountv4hi2 */
8225 :
8226 : case E_V2HImode:
8227 : if (!register_operand (operands[0], E_V2HImode)
8228 : || GET_MODE (x3) != E_V2HImode
8229 : || !register_operand (operands[1], E_V2HImode)
8230 : || !
8231 : #line 6966 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8232 : (TARGET_AVX512VL && TARGET_AVX512BITALG))
8233 : return -1;
8234 : return 2450; /* popcountv2hi2 */
8235 :
8236 : case E_V2SImode:
8237 : if (!register_operand (operands[0], E_V2SImode)
8238 : || GET_MODE (x3) != E_V2SImode
8239 : || !register_operand (operands[1], E_V2SImode)
8240 : || !
8241 : #line 6973 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8242 : (TARGET_AVX512VPOPCNTDQ && TARGET_AVX512VL && TARGET_MMX_WITH_SSE))
8243 : return -1;
8244 : return 2451; /* popcountv2si2 */
8245 :
8246 : default:
8247 : return -1;
8248 : }
8249 : }
8250 :
8251 : int
8252 : recog_61 (rtx x1 ATTRIBUTE_UNUSED,
8253 : rtx_insn *insn ATTRIBUTE_UNUSED,
8254 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8255 : {
8256 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8257 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8258 : rtx x10, x11, x12, x13;
8259 : int res ATTRIBUTE_UNUSED;
8260 : x2 = XEXP (x1, 0);
8261 : operands[0] = x2;
8262 : x3 = XEXP (x1, 1);
8263 : x4 = XEXP (x3, 0);
8264 : switch (GET_CODE (x4))
8265 : {
8266 : case REG:
8267 : case SUBREG:
8268 : case MEM:
8269 : operands[1] = x4;
8270 : x5 = XEXP (x3, 1);
8271 : operands[2] = x5;
8272 : switch (GET_MODE (operands[0]))
8273 : {
8274 : case E_HImode:
8275 : if (!register_operand (operands[0], E_HImode)
8276 : || GET_MODE (x3) != E_HImode
8277 : || !nonimmediate_operand (operands[1], E_HImode)
8278 : || !general_operand (operands[2], E_HImode))
8279 : return -1;
8280 : if ((
8281 : #line 10947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8282 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
8283 : && TARGET_APX_NF) &&
8284 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8285 : (TARGET_HIMODE_MATH)))
8286 : return 618; /* *mulhi3_1_nf */
8287 : if (pnum_clobbers == NULL
8288 : || !(
8289 : #line 10947 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8290 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
8291 : && true) &&
8292 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8293 : (TARGET_HIMODE_MATH)))
8294 : return -1;
8295 : *pnum_clobbers = 1;
8296 : return 619; /* *mulhi3_1 */
8297 :
8298 : case E_QImode:
8299 : if (pattern3 (x3,
8300 : E_QImode) != 0)
8301 : return -1;
8302 : if (
8303 : #line 11034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8304 : (TARGET_QIMODE_MATH
8305 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8306 : && TARGET_APX_NF))
8307 : return 630; /* *mulqi3_1_nf */
8308 : if (pnum_clobbers == NULL
8309 : || !
8310 : #line 11034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8311 : (TARGET_QIMODE_MATH
8312 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8313 : && true))
8314 : return -1;
8315 : *pnum_clobbers = 1;
8316 : return 631; /* *mulqi3_1 */
8317 :
8318 : case E_HFmode:
8319 : if (pattern3 (x3,
8320 : E_HFmode) != 0
8321 : || !
8322 : #line 23830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8323 : (TARGET_AVX512FP16
8324 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))))
8325 : return -1;
8326 : return 1712; /* *mulhf */
8327 :
8328 : case E_V2SImode:
8329 : if (pattern5 (x3,
8330 : E_V2SImode) != 0
8331 : || !
8332 : #line 3380 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8333 : (TARGET_SSE4_1 && TARGET_MMX_WITH_SSE))
8334 : return -1;
8335 : return 2215; /* mulv2si3 */
8336 :
8337 : case E_V4HImode:
8338 : if (pattern6 (x3,
8339 : E_V4HImode) != 0
8340 : || !
8341 : #line 3409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8342 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8343 : && ix86_binary_operator_ok (MULT, V4HImode, operands)))
8344 : return -1;
8345 : return 2216; /* *mmx_mulv4hi3 */
8346 :
8347 : case E_V2HImode:
8348 : if (pattern5 (x3,
8349 : E_V2HImode) != 0
8350 : || !
8351 : #line 3424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8352 : (TARGET_SSE2))
8353 : return -1;
8354 : return 2217; /* mulv2hi3 */
8355 :
8356 : default:
8357 : return -1;
8358 : }
8359 :
8360 : case ZERO_EXTEND:
8361 : x5 = XEXP (x3, 1);
8362 : if (GET_CODE (x5) != ZERO_EXTEND)
8363 : return -1;
8364 : x6 = XEXP (x4, 0);
8365 : switch (GET_CODE (x6))
8366 : {
8367 : case REG:
8368 : case SUBREG:
8369 : operands[1] = x6;
8370 : x7 = XEXP (x5, 0);
8371 : operands[2] = x7;
8372 : switch (GET_MODE (operands[0]))
8373 : {
8374 : case E_TImode:
8375 : if (pnum_clobbers == NULL
8376 : || pattern866 (x3,
8377 : E_DImode,
8378 : E_TImode) != 0
8379 : || !(
8380 : #line 11337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8381 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))) &&
8382 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8383 : (TARGET_64BIT)))
8384 : return -1;
8385 : *pnum_clobbers = 1;
8386 : return 646; /* *umulditi3_1 */
8387 :
8388 : case E_HImode:
8389 : if (pattern866 (x3,
8390 : E_QImode,
8391 : E_HImode) != 0)
8392 : return -1;
8393 : if (
8394 : #line 11403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8395 : (TARGET_QIMODE_MATH
8396 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8397 : && TARGET_APX_NF))
8398 : return 653; /* *umulqihi3_1_nf */
8399 : if (pnum_clobbers == NULL
8400 : || !
8401 : #line 11403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8402 : (TARGET_QIMODE_MATH
8403 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8404 : && true))
8405 : return -1;
8406 : *pnum_clobbers = 1;
8407 : return 654; /* *umulqihi3_1 */
8408 :
8409 : default:
8410 : return -1;
8411 : }
8412 :
8413 : case VEC_SELECT:
8414 : if (GET_MODE (x6) != E_V1SImode)
8415 : return -1;
8416 : x8 = XEXP (x6, 1);
8417 : if (GET_CODE (x8) != PARALLEL
8418 : || XVECLEN (x8, 0) != 1)
8419 : return -1;
8420 : x9 = XVECEXP (x8, 0, 0);
8421 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
8422 : return -1;
8423 : x7 = XEXP (x5, 0);
8424 : if (GET_CODE (x7) != VEC_SELECT
8425 : || GET_MODE (x7) != E_V1SImode)
8426 : return -1;
8427 : x10 = XEXP (x7, 1);
8428 : if (GET_CODE (x10) != PARALLEL
8429 : || XVECLEN (x10, 0) != 1)
8430 : return -1;
8431 : x11 = XVECEXP (x10, 0, 0);
8432 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
8433 : || !register_operand (operands[0], E_V1DImode)
8434 : || GET_MODE (x3) != E_V1DImode
8435 : || GET_MODE (x4) != E_V1DImode)
8436 : return -1;
8437 : x12 = XEXP (x6, 0);
8438 : operands[1] = x12;
8439 : if (!register_mmxmem_operand (operands[1], E_V2SImode)
8440 : || GET_MODE (x5) != E_V1DImode)
8441 : return -1;
8442 : x13 = XEXP (x7, 0);
8443 : operands[2] = x13;
8444 : if (!register_mmxmem_operand (operands[2], E_V2SImode)
8445 : || !
8446 : #line 3664 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8447 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8448 : && TARGET_SSE2
8449 : && ix86_binary_operator_ok (MULT, V2SImode, operands)))
8450 : return -1;
8451 : return 2224; /* *sse2_umulv1siv1di3 */
8452 :
8453 : default:
8454 : return -1;
8455 : }
8456 :
8457 : case SIGN_EXTEND:
8458 : x5 = XEXP (x3, 1);
8459 : if (GET_CODE (x5) != SIGN_EXTEND)
8460 : return -1;
8461 : x6 = XEXP (x4, 0);
8462 : operands[1] = x6;
8463 : x7 = XEXP (x5, 0);
8464 : operands[2] = x7;
8465 : switch (GET_MODE (operands[0]))
8466 : {
8467 : case E_TImode:
8468 : if (pattern866 (x3,
8469 : E_DImode,
8470 : E_TImode) != 0)
8471 : return -1;
8472 : if ((
8473 : #line 11383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8474 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
8475 : && TARGET_APX_NF) &&
8476 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8477 : (TARGET_64BIT)))
8478 : return 649; /* *mulditi3_1_nf */
8479 : if (pnum_clobbers == NULL
8480 : || !(
8481 : #line 1200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8482 : (TARGET_64BIT) && (
8483 : #line 11383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8484 : (!(MEM_P (operands[1]) && MEM_P (operands[2]))
8485 : && true) &&
8486 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8487 : (TARGET_64BIT))))
8488 : return -1;
8489 : *pnum_clobbers = 1;
8490 : return 650; /* *mulditi3_1 */
8491 :
8492 : case E_HImode:
8493 : if (pattern866 (x3,
8494 : E_QImode,
8495 : E_HImode) != 0)
8496 : return -1;
8497 : if (
8498 : #line 11403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8499 : (TARGET_QIMODE_MATH
8500 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8501 : && TARGET_APX_NF))
8502 : return 651; /* *mulqihi3_1_nf */
8503 : if (pnum_clobbers == NULL
8504 : || !
8505 : #line 11403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8506 : (TARGET_QIMODE_MATH
8507 : && !(MEM_P (operands[1]) && MEM_P (operands[2]))
8508 : && true))
8509 : return -1;
8510 : *pnum_clobbers = 1;
8511 : return 652; /* *mulqihi3_1 */
8512 :
8513 : default:
8514 : return -1;
8515 : }
8516 :
8517 : default:
8518 : return -1;
8519 : }
8520 : }
8521 :
8522 : int
8523 : recog_69 (rtx x1 ATTRIBUTE_UNUSED,
8524 : rtx_insn *insn ATTRIBUTE_UNUSED,
8525 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8526 : {
8527 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8528 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
8529 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
8530 : rtx x18, x19;
8531 : int res ATTRIBUTE_UNUSED;
8532 : x2 = XEXP (x1, 0);
8533 : operands[0] = x2;
8534 : x3 = XEXP (x1, 1);
8535 : x4 = XEXP (x3, 0);
8536 : switch (GET_CODE (x4))
8537 : {
8538 : case REG:
8539 : case SUBREG:
8540 : case MEM:
8541 : switch (pattern47 (x3))
8542 : {
8543 : case 0:
8544 : if (!
8545 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8546 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8547 : && ix86_binary_operator_ok (SS_PLUS, V8QImode, operands)))
8548 : return -1;
8549 : return 2195; /* *mmx_ssaddv8qi3 */
8550 :
8551 : case 1:
8552 : if (!
8553 : #line 3351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8554 : ((TARGET_MMX || TARGET_MMX_WITH_SSE)
8555 : && ix86_binary_operator_ok (SS_PLUS, V4HImode, operands)))
8556 : return -1;
8557 : return 2199; /* *mmx_ssaddv4hi3 */
8558 :
8559 : case 2:
8560 : if (!
8561 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8562 : (TARGET_SSE2))
8563 : return -1;
8564 : return 2203; /* ssaddv4qi3 */
8565 :
8566 : case 3:
8567 : if (!
8568 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8569 : (TARGET_SSE2))
8570 : return -1;
8571 : return 2207; /* ssaddv2qi3 */
8572 :
8573 : case 4:
8574 : if (!
8575 : #line 3367 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
8576 : (TARGET_SSE2))
8577 : return -1;
8578 : return 2211; /* ssaddv2hi3 */
8579 :
8580 : default:
8581 : return -1;
8582 : }
8583 :
8584 : case VEC_SELECT:
8585 : if (pattern108 (x3) != 0
8586 : || !
8587 : #line 22970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8588 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
8589 : return -1;
8590 : return 8641; /* ssse3_phaddswv4hi3 */
8591 :
8592 : case MULT:
8593 : if (GET_MODE (x4) != E_V4HImode)
8594 : return -1;
8595 : x5 = XEXP (x4, 0);
8596 : if (GET_CODE (x5) != ZERO_EXTEND
8597 : || GET_MODE (x5) != E_V4HImode)
8598 : return -1;
8599 : x6 = XEXP (x5, 0);
8600 : if (GET_CODE (x6) != VEC_SELECT
8601 : || GET_MODE (x6) != E_V4QImode)
8602 : return -1;
8603 : x7 = XEXP (x6, 1);
8604 : if (GET_CODE (x7) != PARALLEL
8605 : || XVECLEN (x7, 0) != 4
8606 : || pattern1092 (x7,
8607 : 6,
8608 : 4,
8609 : 2,
8610 : 0) != 0)
8611 : return -1;
8612 : x8 = XEXP (x4, 1);
8613 : if (pattern1275 (x8,
8614 : E_V4QImode,
8615 : E_V4HImode) != 0)
8616 : return -1;
8617 : x9 = XEXP (x8, 0);
8618 : x10 = XEXP (x9, 1);
8619 : if (pattern1633 (x10,
8620 : 6,
8621 : 4,
8622 : 2,
8623 : 0) != 0)
8624 : return -1;
8625 : x11 = XEXP (x3, 1);
8626 : if (pattern1808 (x11,
8627 : E_V4QImode,
8628 : E_V4HImode,
8629 : ZERO_EXTEND) != 0
8630 : || !register_operand (operands[0], E_V4HImode)
8631 : || GET_MODE (x3) != E_V4HImode)
8632 : return -1;
8633 : x12 = XEXP (x6, 0);
8634 : operands[1] = x12;
8635 : if (!register_operand (operands[1], E_V8QImode))
8636 : return -1;
8637 : x13 = XEXP (x9, 0);
8638 : operands[2] = x13;
8639 : if (!register_mmxmem_operand (operands[2], E_V8QImode))
8640 : return -1;
8641 : x14 = XEXP (x11, 0);
8642 : x15 = XEXP (x14, 0);
8643 : x16 = XEXP (x15, 0);
8644 : if (!rtx_equal_p (x16, operands[1]))
8645 : return -1;
8646 : x17 = XEXP (x11, 1);
8647 : x18 = XEXP (x17, 0);
8648 : x19 = XEXP (x18, 0);
8649 : if (!rtx_equal_p (x19, operands[2])
8650 : || !
8651 : #line 23254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8652 : ((TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3))
8653 : return -1;
8654 : return 8660; /* ssse3_pmaddubsw */
8655 :
8656 : default:
8657 : return -1;
8658 : }
8659 : }
8660 :
8661 : int
8662 : recog_73 (rtx x1 ATTRIBUTE_UNUSED,
8663 : rtx_insn *insn ATTRIBUTE_UNUSED,
8664 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8665 : {
8666 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8667 : rtx x2, x3, x4, x5;
8668 : int res ATTRIBUTE_UNUSED;
8669 : x2 = XEXP (x1, 1);
8670 : if (GET_MODE (x2) != E_DImode)
8671 : return -1;
8672 : x3 = XEXP (x2, 0);
8673 : x4 = XEXP (x3, 0);
8674 : operands[1] = x4;
8675 : if (!nonimmediate_operand (operands[1], E_SImode))
8676 : return -1;
8677 : x5 = XEXP (x3, 1);
8678 : operands[2] = x5;
8679 : switch (GET_CODE (operands[2]))
8680 : {
8681 : case CONST_INT:
8682 : if (pnum_clobbers == NULL
8683 : || !const_int_operand (operands[2], E_QImode)
8684 : || !
8685 : #line 17602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8686 : (TARGET_64BIT && INTVAL (operands[2]) == 31
8687 : && (TARGET_USE_CLTD || optimize_function_for_size_p (cfun))
8688 : && ix86_binary_operator_ok (ASHIFTRT, SImode, operands, TARGET_APX_NDD)))
8689 : return -1;
8690 : *pnum_clobbers = 1;
8691 : return 1202; /* *ashrsi3_cvt_zext */
8692 :
8693 : case REG:
8694 : case SUBREG:
8695 : if (!register_operand (operands[2], E_SImode)
8696 : || !
8697 : #line 17781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8698 : (TARGET_64BIT && TARGET_BMI2))
8699 : return -1;
8700 : return 1217; /* *bmi2_ashrsi3_1_zext */
8701 :
8702 : default:
8703 : return -1;
8704 : }
8705 : }
8706 :
8707 : int
8708 : recog_74 (rtx x1 ATTRIBUTE_UNUSED,
8709 : rtx_insn *insn ATTRIBUTE_UNUSED,
8710 : int *pnum_clobbers ATTRIBUTE_UNUSED)
8711 : {
8712 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
8713 : rtx x2, x3, x4, x5, x6;
8714 : int res ATTRIBUTE_UNUSED;
8715 : x2 = XEXP (x1, 1);
8716 : x3 = XEXP (x2, 0);
8717 : switch (XVECLEN (x3, 0))
8718 : {
8719 : case 1:
8720 : if (!register_operand (operands[0], E_DImode)
8721 : || GET_MODE (x2) != E_DImode
8722 : || GET_MODE (x3) != E_SImode)
8723 : return -1;
8724 : switch (XINT (x3, 1))
8725 : {
8726 : case 20:
8727 : x4 = XVECEXP (x3, 0, 0);
8728 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
8729 : || !
8730 : #line 23579 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8731 : (TARGET_X32))
8732 : return -1;
8733 : return 1694; /* *load_tp_x32_zext */
8734 :
8735 : case 50:
8736 : x4 = XVECEXP (x3, 0, 0);
8737 : switch (GET_CODE (x4))
8738 : {
8739 : case REG:
8740 : case SUBREG:
8741 : operands[1] = x4;
8742 : switch (GET_MODE (operands[1]))
8743 : {
8744 : case E_V8SFmode:
8745 : if (register_operand (operands[1], E_V8SFmode)
8746 : && (
8747 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8748 : (TARGET_64BIT && TARGET_SSE) &&
8749 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8750 : (TARGET_AVX)))
8751 : return 8558; /* *avx_movmskps256_uext */
8752 : break;
8753 :
8754 : case E_V4SFmode:
8755 : if (register_operand (operands[1], E_V4SFmode)
8756 : &&
8757 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8758 : (TARGET_64BIT && TARGET_SSE))
8759 : return 8560; /* *sse_movmskps_uext */
8760 : break;
8761 :
8762 : case E_V4DFmode:
8763 : if (register_operand (operands[1], E_V4DFmode)
8764 : && (
8765 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8766 : (TARGET_64BIT && TARGET_SSE) &&
8767 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8768 : (TARGET_AVX)))
8769 : return 8562; /* *avx_movmskpd256_uext */
8770 : break;
8771 :
8772 : case E_V2DFmode:
8773 : if (register_operand (operands[1], E_V2DFmode)
8774 : && (
8775 : #line 22299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8776 : (TARGET_64BIT && TARGET_SSE) &&
8777 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8778 : (TARGET_SSE2)))
8779 : return 8564; /* *sse2_movmskpd_uext */
8780 : break;
8781 :
8782 : case E_V32QImode:
8783 : if (register_operand (operands[1], E_V32QImode)
8784 : && (
8785 : #line 22454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8786 : (TARGET_64BIT && TARGET_SSE2) &&
8787 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8788 : (TARGET_AVX2)))
8789 : return 8603; /* *avx2_pmovmskb_zext */
8790 : break;
8791 :
8792 : case E_V16QImode:
8793 : if (register_operand (operands[1], E_V16QImode)
8794 : &&
8795 : #line 22454 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8796 : (TARGET_64BIT && TARGET_SSE2))
8797 : return 8604; /* *sse2_pmovmskb_zext */
8798 : break;
8799 :
8800 : default:
8801 : break;
8802 : }
8803 : if (GET_CODE (x4) != SUBREG)
8804 : return -1;
8805 : switch (pattern1098 (x4))
8806 : {
8807 : case 0:
8808 : if (!(
8809 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8810 : (TARGET_64BIT && TARGET_SSE) &&
8811 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8812 : (TARGET_AVX)))
8813 : return -1;
8814 : return 8582; /* *avx_movmskps256_uext_lt_avx512 */
8815 :
8816 : case 1:
8817 : if (!
8818 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8819 : (TARGET_64BIT && TARGET_SSE))
8820 : return -1;
8821 : return 8584; /* *sse_movmskps_uext_lt_avx512 */
8822 :
8823 : case 2:
8824 : if (!(
8825 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8826 : (TARGET_64BIT && TARGET_SSE) &&
8827 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8828 : (TARGET_AVX)))
8829 : return -1;
8830 : return 8586; /* *avx_movmskpd256_uext_lt_avx512 */
8831 :
8832 : case 3:
8833 : if (!(
8834 : #line 22381 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8835 : (TARGET_64BIT && TARGET_SSE) &&
8836 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8837 : (TARGET_SSE2)))
8838 : return -1;
8839 : return 8588; /* *sse2_movmskpd_uext_lt_avx512 */
8840 :
8841 : case 4:
8842 : if (!(
8843 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8844 : (TARGET_64BIT && TARGET_SSE) &&
8845 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8846 : (TARGET_AVX)))
8847 : return -1;
8848 : return 8594; /* *avx_movmskps256_uext_shift */
8849 :
8850 : case 5:
8851 : if (!
8852 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8853 : (TARGET_64BIT && TARGET_SSE))
8854 : return -1;
8855 : return 8596; /* *sse_movmskps_uext_shift */
8856 :
8857 : case 6:
8858 : if (!(
8859 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8860 : (TARGET_64BIT && TARGET_SSE) &&
8861 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8862 : (TARGET_AVX)))
8863 : return -1;
8864 : return 8598; /* *avx_movmskpd256_uext_shift */
8865 :
8866 : case 7:
8867 : if (!(
8868 : #line 22420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8869 : (TARGET_64BIT && TARGET_SSE) &&
8870 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8871 : (TARGET_SSE2)))
8872 : return -1;
8873 : return 8600; /* *sse2_movmskpd_uext_shift */
8874 :
8875 : default:
8876 : return -1;
8877 : }
8878 :
8879 : case LT:
8880 : switch (pattern983 (x4))
8881 : {
8882 : case 0:
8883 : if (!(
8884 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8885 : (TARGET_64BIT && TARGET_SSE) &&
8886 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8887 : (TARGET_AVX)))
8888 : return -1;
8889 : return 8574; /* *avx_movmskps256_uext_lt */
8890 :
8891 : case 1:
8892 : if (!
8893 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8894 : (TARGET_64BIT && TARGET_SSE))
8895 : return -1;
8896 : return 8576; /* *sse_movmskps_uext_lt */
8897 :
8898 : case 2:
8899 : if (!(
8900 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8901 : (TARGET_64BIT && TARGET_SSE) &&
8902 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8903 : (TARGET_AVX)))
8904 : return -1;
8905 : return 8578; /* *avx_movmskpd256_uext_lt */
8906 :
8907 : case 3:
8908 : if (!(
8909 : #line 22356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8910 : (TARGET_64BIT && TARGET_SSE) &&
8911 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8912 : (TARGET_SSE2)))
8913 : return -1;
8914 : return 8580; /* *sse2_movmskpd_uext_lt */
8915 :
8916 : case 4:
8917 : if (!(
8918 : #line 22616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8919 : (TARGET_64BIT && TARGET_SSE2) &&
8920 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8921 : (TARGET_AVX2)))
8922 : return -1;
8923 : return 8611; /* *avx2_pmovmskb_zext_lt */
8924 :
8925 : case 5:
8926 : if (!
8927 : #line 22616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8928 : (TARGET_64BIT && TARGET_SSE2))
8929 : return -1;
8930 : return 8612; /* *sse2_pmovmskb_zext_lt */
8931 :
8932 : default:
8933 : return -1;
8934 : }
8935 :
8936 : case VEC_MERGE:
8937 : switch (pattern985 (x4))
8938 : {
8939 : case 0:
8940 : if (!(
8941 : #line 22645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8942 : (TARGET_64BIT && TARGET_SSE2) &&
8943 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8944 : (TARGET_AVX2)))
8945 : return -1;
8946 : return 8613; /* *avx2_pmovmskb_zext_lt_avx512 */
8947 :
8948 : case 1:
8949 : if (!
8950 : #line 22645 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8951 : (TARGET_64BIT && TARGET_SSE2))
8952 : return -1;
8953 : return 8614; /* *sse2_pmovmskb_zext_lt_avx512 */
8954 :
8955 : default:
8956 : return -1;
8957 : }
8958 :
8959 : default:
8960 : return -1;
8961 : }
8962 :
8963 : default:
8964 : return -1;
8965 : }
8966 :
8967 : case 2:
8968 : x4 = XVECEXP (x3, 0, 0);
8969 : operands[1] = x4;
8970 : x5 = XVECEXP (x3, 0, 1);
8971 : operands[2] = x5;
8972 : switch (XINT (x3, 1))
8973 : {
8974 : case 96:
8975 : if (GET_MODE (x3) != E_SImode
8976 : || !register_operand (operands[0], E_DImode)
8977 : || GET_MODE (x2) != E_DImode
8978 : || !register_operand (operands[1], E_SImode)
8979 : || !nonimmediate_operand (operands[2], E_DImode)
8980 : || !
8981 : #line 29756 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
8982 : (TARGET_64BIT && TARGET_CRC32))
8983 : return -1;
8984 : return 1948; /* sse4_2_crc32di */
8985 :
8986 : case 159:
8987 : switch (GET_MODE (operands[0]))
8988 : {
8989 : case E_DImode:
8990 : switch (pattern880 (x2,
8991 : E_DImode))
8992 : {
8993 : case 0:
8994 : if (!(
8995 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
8996 : (TARGET_AVX512BW
8997 : && (8
8998 : > GET_MODE_SIZE (DImode))) &&
8999 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9000 : (TARGET_AVX512BW)))
9001 : return -1;
9002 : return 8202; /* *avx512bw_testmv64qi3_zext */
9003 :
9004 : case 1:
9005 : if (!(
9006 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9007 : (TARGET_AVX512BW
9008 : && (8
9009 : > GET_MODE_SIZE (SImode))) && ((
9010 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9011 : (TARGET_AVX512BW) &&
9012 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9013 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9014 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9015 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9016 : return -1;
9017 : return 8205; /* *avx512vl_testmv32qi3_zext */
9018 :
9019 : case 2:
9020 : if (!(
9021 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9022 : (TARGET_AVX512BW
9023 : && (8
9024 : > GET_MODE_SIZE (SImode))) &&
9025 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9026 : (TARGET_AVX512BW)))
9027 : return -1;
9028 : return 8211; /* *avx512bw_testmv32hi3_zext */
9029 :
9030 : case 3:
9031 : if (!(
9032 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9033 : (TARGET_AVX512BW
9034 : && (8
9035 : > GET_MODE_SIZE (HImode))) && ((
9036 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9037 : (TARGET_AVX512BW) &&
9038 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9039 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9040 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9041 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9042 : return -1;
9043 : return 8208; /* *avx512vl_testmv16qi3_zext */
9044 :
9045 : case 4:
9046 : if (!(
9047 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9048 : (TARGET_AVX512BW
9049 : && (8
9050 : > GET_MODE_SIZE (HImode))) && ((
9051 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9052 : (TARGET_AVX512BW) &&
9053 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9054 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9055 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9056 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9057 : return -1;
9058 : return 8214; /* *avx512vl_testmv16hi3_zext */
9059 :
9060 : case 5:
9061 : if (!(
9062 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9063 : (TARGET_AVX512BW
9064 : && (8
9065 : > GET_MODE_SIZE (HImode))) &&
9066 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9067 : (TARGET_AVX512BW)))
9068 : return -1;
9069 : return 8220; /* *avx512f_testmv16si3_zext */
9070 :
9071 : case 6:
9072 : if (!(
9073 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9074 : (TARGET_AVX512BW
9075 : && (8
9076 : > GET_MODE_SIZE (QImode))) && ((
9077 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9078 : (TARGET_AVX512BW) &&
9079 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9080 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9081 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9082 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9083 : return -1;
9084 : return 8217; /* *avx512vl_testmv8hi3_zext */
9085 :
9086 : case 7:
9087 : if (!(
9088 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9089 : (TARGET_AVX512BW
9090 : && (8
9091 : > GET_MODE_SIZE (QImode))) && ((
9092 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9093 : (TARGET_AVX512BW) &&
9094 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9095 : (TARGET_AVX512VL)) &&
9096 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9097 : (TARGET_AVX512VL))))
9098 : return -1;
9099 : return 8223; /* *avx512vl_testmv8si3_zext */
9100 :
9101 : case 8:
9102 : if (!(
9103 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9104 : (TARGET_AVX512BW
9105 : && (8
9106 : > GET_MODE_SIZE (QImode))) && ((
9107 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9108 : (TARGET_AVX512BW) &&
9109 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9110 : (TARGET_AVX512VL)) &&
9111 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9112 : (TARGET_AVX512VL))))
9113 : return -1;
9114 : return 8226; /* *avx512vl_testmv4si3_zext */
9115 :
9116 : case 9:
9117 : if (!(
9118 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9119 : (TARGET_AVX512BW
9120 : && (8
9121 : > GET_MODE_SIZE (QImode))) &&
9122 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9123 : (TARGET_AVX512BW)))
9124 : return -1;
9125 : return 8229; /* *avx512f_testmv8di3_zext */
9126 :
9127 : case 10:
9128 : if (!(
9129 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9130 : (TARGET_AVX512BW
9131 : && (8
9132 : > GET_MODE_SIZE (QImode))) && ((
9133 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9134 : (TARGET_AVX512BW) &&
9135 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9136 : (TARGET_AVX512VL)) &&
9137 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9138 : (TARGET_AVX512VL))))
9139 : return -1;
9140 : return 8232; /* *avx512vl_testmv4di3_zext */
9141 :
9142 : case 11:
9143 : if (!(
9144 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9145 : (TARGET_AVX512BW
9146 : && (8
9147 : > GET_MODE_SIZE (QImode))) && ((
9148 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9149 : (TARGET_AVX512BW) &&
9150 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9151 : (TARGET_AVX512VL)) &&
9152 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9153 : (TARGET_AVX512VL))))
9154 : return -1;
9155 : return 8235; /* *avx512vl_testmv2di3_zext */
9156 :
9157 : default:
9158 : return -1;
9159 : }
9160 :
9161 : case E_SImode:
9162 : switch (pattern880 (x2,
9163 : E_SImode))
9164 : {
9165 : case 0:
9166 : if (!(
9167 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9168 : (TARGET_AVX512BW
9169 : && (4
9170 : > GET_MODE_SIZE (DImode))) &&
9171 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9172 : (TARGET_AVX512BW)))
9173 : return -1;
9174 : return 8203; /* *avx512bw_testmv64qi3_zext */
9175 :
9176 : case 1:
9177 : if (!(
9178 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9179 : (TARGET_AVX512BW
9180 : && (4
9181 : > GET_MODE_SIZE (SImode))) && ((
9182 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9183 : (TARGET_AVX512BW) &&
9184 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9185 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9186 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9187 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9188 : return -1;
9189 : return 8206; /* *avx512vl_testmv32qi3_zext */
9190 :
9191 : case 2:
9192 : if (!(
9193 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9194 : (TARGET_AVX512BW
9195 : && (4
9196 : > GET_MODE_SIZE (SImode))) &&
9197 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9198 : (TARGET_AVX512BW)))
9199 : return -1;
9200 : return 8212; /* *avx512bw_testmv32hi3_zext */
9201 :
9202 : case 3:
9203 : if (!(
9204 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9205 : (TARGET_AVX512BW
9206 : && (4
9207 : > GET_MODE_SIZE (HImode))) && ((
9208 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9209 : (TARGET_AVX512BW) &&
9210 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9211 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9212 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9213 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9214 : return -1;
9215 : return 8209; /* *avx512vl_testmv16qi3_zext */
9216 :
9217 : case 4:
9218 : if (!(
9219 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9220 : (TARGET_AVX512BW
9221 : && (4
9222 : > GET_MODE_SIZE (HImode))) && ((
9223 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9224 : (TARGET_AVX512BW) &&
9225 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9226 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9227 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9228 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9229 : return -1;
9230 : return 8215; /* *avx512vl_testmv16hi3_zext */
9231 :
9232 : case 5:
9233 : if (!(
9234 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9235 : (TARGET_AVX512BW
9236 : && (4
9237 : > GET_MODE_SIZE (HImode))) &&
9238 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9239 : (TARGET_AVX512BW)))
9240 : return -1;
9241 : return 8221; /* *avx512f_testmv16si3_zext */
9242 :
9243 : case 6:
9244 : if (!(
9245 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9246 : (TARGET_AVX512BW
9247 : && (4
9248 : > GET_MODE_SIZE (QImode))) && ((
9249 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9250 : (TARGET_AVX512BW) &&
9251 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9252 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9253 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9254 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9255 : return -1;
9256 : return 8218; /* *avx512vl_testmv8hi3_zext */
9257 :
9258 : case 7:
9259 : if (!(
9260 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9261 : (TARGET_AVX512BW
9262 : && (4
9263 : > GET_MODE_SIZE (QImode))) && ((
9264 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9265 : (TARGET_AVX512BW) &&
9266 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9267 : (TARGET_AVX512VL)) &&
9268 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9269 : (TARGET_AVX512VL))))
9270 : return -1;
9271 : return 8224; /* *avx512vl_testmv8si3_zext */
9272 :
9273 : case 8:
9274 : if (!(
9275 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9276 : (TARGET_AVX512BW
9277 : && (4
9278 : > GET_MODE_SIZE (QImode))) && ((
9279 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9280 : (TARGET_AVX512BW) &&
9281 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9282 : (TARGET_AVX512VL)) &&
9283 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9284 : (TARGET_AVX512VL))))
9285 : return -1;
9286 : return 8227; /* *avx512vl_testmv4si3_zext */
9287 :
9288 : case 9:
9289 : if (!(
9290 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9291 : (TARGET_AVX512BW
9292 : && (4
9293 : > GET_MODE_SIZE (QImode))) &&
9294 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9295 : (TARGET_AVX512BW)))
9296 : return -1;
9297 : return 8230; /* *avx512f_testmv8di3_zext */
9298 :
9299 : case 10:
9300 : if (!(
9301 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9302 : (TARGET_AVX512BW
9303 : && (4
9304 : > GET_MODE_SIZE (QImode))) && ((
9305 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9306 : (TARGET_AVX512BW) &&
9307 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9308 : (TARGET_AVX512VL)) &&
9309 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9310 : (TARGET_AVX512VL))))
9311 : return -1;
9312 : return 8233; /* *avx512vl_testmv4di3_zext */
9313 :
9314 : case 11:
9315 : if (!(
9316 : #line 19413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9317 : (TARGET_AVX512BW
9318 : && (4
9319 : > GET_MODE_SIZE (QImode))) && ((
9320 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9321 : (TARGET_AVX512BW) &&
9322 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9323 : (TARGET_AVX512VL)) &&
9324 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9325 : (TARGET_AVX512VL))))
9326 : return -1;
9327 : return 8236; /* *avx512vl_testmv2di3_zext */
9328 :
9329 : default:
9330 : return -1;
9331 : }
9332 :
9333 : default:
9334 : return -1;
9335 : }
9336 :
9337 : case 160:
9338 : switch (GET_MODE (operands[0]))
9339 : {
9340 : case E_DImode:
9341 : switch (pattern880 (x2,
9342 : E_DImode))
9343 : {
9344 : case 0:
9345 : if (!(
9346 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9347 : (TARGET_AVX512BW
9348 : && (8
9349 : > GET_MODE_SIZE (DImode))) &&
9350 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9351 : (TARGET_AVX512BW)))
9352 : return -1;
9353 : return 8274; /* *avx512bw_testnmv64qi3_zext */
9354 :
9355 : case 1:
9356 : if (!(
9357 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9358 : (TARGET_AVX512BW
9359 : && (8
9360 : > GET_MODE_SIZE (SImode))) && ((
9361 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9362 : (TARGET_AVX512BW) &&
9363 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9364 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9365 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9366 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9367 : return -1;
9368 : return 8277; /* *avx512vl_testnmv32qi3_zext */
9369 :
9370 : case 2:
9371 : if (!(
9372 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9373 : (TARGET_AVX512BW
9374 : && (8
9375 : > GET_MODE_SIZE (SImode))) &&
9376 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9377 : (TARGET_AVX512BW)))
9378 : return -1;
9379 : return 8283; /* *avx512bw_testnmv32hi3_zext */
9380 :
9381 : case 3:
9382 : if (!(
9383 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9384 : (TARGET_AVX512BW
9385 : && (8
9386 : > GET_MODE_SIZE (HImode))) && ((
9387 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9388 : (TARGET_AVX512BW) &&
9389 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9390 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9391 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9392 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9393 : return -1;
9394 : return 8280; /* *avx512vl_testnmv16qi3_zext */
9395 :
9396 : case 4:
9397 : if (!(
9398 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9399 : (TARGET_AVX512BW
9400 : && (8
9401 : > GET_MODE_SIZE (HImode))) && ((
9402 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9403 : (TARGET_AVX512BW) &&
9404 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9405 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9406 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9407 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9408 : return -1;
9409 : return 8286; /* *avx512vl_testnmv16hi3_zext */
9410 :
9411 : case 5:
9412 : if (!(
9413 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9414 : (TARGET_AVX512BW
9415 : && (8
9416 : > GET_MODE_SIZE (HImode))) &&
9417 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9418 : (TARGET_AVX512BW)))
9419 : return -1;
9420 : return 8292; /* *avx512f_testnmv16si3_zext */
9421 :
9422 : case 6:
9423 : if (!(
9424 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9425 : (TARGET_AVX512BW
9426 : && (8
9427 : > GET_MODE_SIZE (QImode))) && ((
9428 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9429 : (TARGET_AVX512BW) &&
9430 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9431 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9432 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9433 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9434 : return -1;
9435 : return 8289; /* *avx512vl_testnmv8hi3_zext */
9436 :
9437 : case 7:
9438 : if (!(
9439 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9440 : (TARGET_AVX512BW
9441 : && (8
9442 : > GET_MODE_SIZE (QImode))) && ((
9443 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9444 : (TARGET_AVX512BW) &&
9445 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9446 : (TARGET_AVX512VL)) &&
9447 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9448 : (TARGET_AVX512VL))))
9449 : return -1;
9450 : return 8295; /* *avx512vl_testnmv8si3_zext */
9451 :
9452 : case 8:
9453 : if (!(
9454 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9455 : (TARGET_AVX512BW
9456 : && (8
9457 : > GET_MODE_SIZE (QImode))) && ((
9458 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9459 : (TARGET_AVX512BW) &&
9460 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9461 : (TARGET_AVX512VL)) &&
9462 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9463 : (TARGET_AVX512VL))))
9464 : return -1;
9465 : return 8298; /* *avx512vl_testnmv4si3_zext */
9466 :
9467 : case 9:
9468 : if (!(
9469 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9470 : (TARGET_AVX512BW
9471 : && (8
9472 : > GET_MODE_SIZE (QImode))) &&
9473 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9474 : (TARGET_AVX512BW)))
9475 : return -1;
9476 : return 8301; /* *avx512f_testnmv8di3_zext */
9477 :
9478 : case 10:
9479 : if (!(
9480 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9481 : (TARGET_AVX512BW
9482 : && (8
9483 : > GET_MODE_SIZE (QImode))) && ((
9484 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9485 : (TARGET_AVX512BW) &&
9486 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9487 : (TARGET_AVX512VL)) &&
9488 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9489 : (TARGET_AVX512VL))))
9490 : return -1;
9491 : return 8304; /* *avx512vl_testnmv4di3_zext */
9492 :
9493 : case 11:
9494 : if (!(
9495 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9496 : (TARGET_AVX512BW
9497 : && (8
9498 : > GET_MODE_SIZE (QImode))) && ((
9499 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9500 : (TARGET_AVX512BW) &&
9501 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9502 : (TARGET_AVX512VL)) &&
9503 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9504 : (TARGET_AVX512VL))))
9505 : return -1;
9506 : return 8307; /* *avx512vl_testnmv2di3_zext */
9507 :
9508 : default:
9509 : return -1;
9510 : }
9511 :
9512 : case E_SImode:
9513 : switch (pattern880 (x2,
9514 : E_SImode))
9515 : {
9516 : case 0:
9517 : if (!(
9518 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9519 : (TARGET_AVX512BW
9520 : && (4
9521 : > GET_MODE_SIZE (DImode))) &&
9522 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9523 : (TARGET_AVX512BW)))
9524 : return -1;
9525 : return 8275; /* *avx512bw_testnmv64qi3_zext */
9526 :
9527 : case 1:
9528 : if (!(
9529 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9530 : (TARGET_AVX512BW
9531 : && (4
9532 : > GET_MODE_SIZE (SImode))) && ((
9533 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9534 : (TARGET_AVX512BW) &&
9535 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9536 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9537 : #line 501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9538 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9539 : return -1;
9540 : return 8278; /* *avx512vl_testnmv32qi3_zext */
9541 :
9542 : case 2:
9543 : if (!(
9544 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9545 : (TARGET_AVX512BW
9546 : && (4
9547 : > GET_MODE_SIZE (SImode))) &&
9548 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9549 : (TARGET_AVX512BW)))
9550 : return -1;
9551 : return 8284; /* *avx512bw_testnmv32hi3_zext */
9552 :
9553 : case 3:
9554 : if (!(
9555 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9556 : (TARGET_AVX512BW
9557 : && (4
9558 : > GET_MODE_SIZE (HImode))) && ((
9559 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9560 : (TARGET_AVX512BW) &&
9561 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9562 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9563 : #line 502 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9564 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9565 : return -1;
9566 : return 8281; /* *avx512vl_testnmv16qi3_zext */
9567 :
9568 : case 4:
9569 : if (!(
9570 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9571 : (TARGET_AVX512BW
9572 : && (4
9573 : > GET_MODE_SIZE (HImode))) && ((
9574 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9575 : (TARGET_AVX512BW) &&
9576 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9577 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9578 : #line 504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9579 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9580 : return -1;
9581 : return 8287; /* *avx512vl_testnmv16hi3_zext */
9582 :
9583 : case 5:
9584 : if (!(
9585 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9586 : (TARGET_AVX512BW
9587 : && (4
9588 : > GET_MODE_SIZE (HImode))) &&
9589 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9590 : (TARGET_AVX512BW)))
9591 : return -1;
9592 : return 8293; /* *avx512f_testnmv16si3_zext */
9593 :
9594 : case 6:
9595 : if (!(
9596 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9597 : (TARGET_AVX512BW
9598 : && (4
9599 : > GET_MODE_SIZE (QImode))) && ((
9600 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9601 : (TARGET_AVX512BW) &&
9602 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9603 : (TARGET_AVX512VL && TARGET_AVX512BW)) &&
9604 : #line 505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9605 : (TARGET_AVX512VL && TARGET_AVX512BW))))
9606 : return -1;
9607 : return 8290; /* *avx512vl_testnmv8hi3_zext */
9608 :
9609 : case 7:
9610 : if (!(
9611 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9612 : (TARGET_AVX512BW
9613 : && (4
9614 : > GET_MODE_SIZE (QImode))) && ((
9615 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9616 : (TARGET_AVX512BW) &&
9617 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9618 : (TARGET_AVX512VL)) &&
9619 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9620 : (TARGET_AVX512VL))))
9621 : return -1;
9622 : return 8296; /* *avx512vl_testnmv8si3_zext */
9623 :
9624 : case 8:
9625 : if (!(
9626 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9627 : (TARGET_AVX512BW
9628 : && (4
9629 : > GET_MODE_SIZE (QImode))) && ((
9630 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9631 : (TARGET_AVX512BW) &&
9632 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9633 : (TARGET_AVX512VL)) &&
9634 : #line 506 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9635 : (TARGET_AVX512VL))))
9636 : return -1;
9637 : return 8299; /* *avx512vl_testnmv4si3_zext */
9638 :
9639 : case 9:
9640 : if (!(
9641 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9642 : (TARGET_AVX512BW
9643 : && (4
9644 : > GET_MODE_SIZE (QImode))) &&
9645 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9646 : (TARGET_AVX512BW)))
9647 : return -1;
9648 : return 8302; /* *avx512f_testnmv8di3_zext */
9649 :
9650 : case 10:
9651 : if (!(
9652 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9653 : (TARGET_AVX512BW
9654 : && (4
9655 : > GET_MODE_SIZE (QImode))) && ((
9656 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9657 : (TARGET_AVX512BW) &&
9658 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9659 : (TARGET_AVX512VL)) &&
9660 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9661 : (TARGET_AVX512VL))))
9662 : return -1;
9663 : return 8305; /* *avx512vl_testnmv4di3_zext */
9664 :
9665 : case 11:
9666 : if (!(
9667 : #line 19443 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9668 : (TARGET_AVX512BW
9669 : && (4
9670 : > GET_MODE_SIZE (QImode))) && ((
9671 : #line 19382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9672 : (TARGET_AVX512BW) &&
9673 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9674 : (TARGET_AVX512VL)) &&
9675 : #line 507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9676 : (TARGET_AVX512VL))))
9677 : return -1;
9678 : return 8308; /* *avx512vl_testnmv2di3_zext */
9679 :
9680 : default:
9681 : return -1;
9682 : }
9683 :
9684 : default:
9685 : return -1;
9686 : }
9687 :
9688 : default:
9689 : return -1;
9690 : }
9691 :
9692 : case 3:
9693 : x4 = XVECEXP (x3, 0, 0);
9694 : operands[1] = x4;
9695 : x5 = XVECEXP (x3, 0, 1);
9696 : operands[2] = x5;
9697 : x6 = XVECEXP (x3, 0, 2);
9698 : operands[3] = x6;
9699 : switch (XINT (x3, 1))
9700 : {
9701 : case 60:
9702 : switch (GET_MODE (operands[0]))
9703 : {
9704 : case E_SImode:
9705 : switch (pattern987 (x2,
9706 : E_SImode))
9707 : {
9708 : case 0:
9709 : if (!
9710 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9711 : (TARGET_AVX512F
9712 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9713 : && (GET_MODE_NUNITS (V16SImode)
9714 : < GET_MODE_PRECISION (SImode))))
9715 : return -1;
9716 : return 3363; /* *avx512f_cmpv16si3_zero_extendsi */
9717 :
9718 : case 1:
9719 : if (!(
9720 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9721 : (TARGET_AVX512F
9722 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9723 : && (GET_MODE_NUNITS (V16HFmode)
9724 : < GET_MODE_PRECISION (SImode))) &&
9725 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9726 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
9727 : return -1;
9728 : return 3384; /* *avx512vl_cmpv16hf3_zero_extendsi */
9729 :
9730 : case 2:
9731 : if (!
9732 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9733 : (TARGET_AVX512F
9734 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9735 : && (GET_MODE_NUNITS (V16SFmode)
9736 : < GET_MODE_PRECISION (SImode))))
9737 : return -1;
9738 : return 3390; /* *avx512f_cmpv16sf3_zero_extendsi */
9739 :
9740 : case 3:
9741 : if (!(
9742 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9743 : (TARGET_AVX512BW
9744 : && (GET_MODE_NUNITS (V16QImode)
9745 : < GET_MODE_PRECISION (SImode))) &&
9746 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9747 : (TARGET_AVX512VL)))
9748 : return -1;
9749 : return 3498; /* *avx512vl_cmpv16qi3_zero_extendsi */
9750 :
9751 : case 4:
9752 : if (!(
9753 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9754 : (TARGET_AVX512BW
9755 : && (GET_MODE_NUNITS (V16HImode)
9756 : < GET_MODE_PRECISION (SImode))) &&
9757 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9758 : (TARGET_AVX512VL)))
9759 : return -1;
9760 : return 3507; /* *avx512vl_cmpv16hi3_zero_extendsi */
9761 :
9762 : case 5:
9763 : if (!(
9764 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9765 : (TARGET_AVX512F
9766 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9767 : && (GET_MODE_NUNITS (V8SImode)
9768 : < GET_MODE_PRECISION (SImode))) &&
9769 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9770 : (TARGET_AVX512VL)))
9771 : return -1;
9772 : return 3366; /* *avx512vl_cmpv8si3_zero_extendsi */
9773 :
9774 : case 6:
9775 : if (!(
9776 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9777 : (TARGET_AVX512F
9778 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9779 : && (GET_MODE_NUNITS (V4SImode)
9780 : < GET_MODE_PRECISION (SImode))) &&
9781 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9782 : (TARGET_AVX512VL)))
9783 : return -1;
9784 : return 3369; /* *avx512vl_cmpv4si3_zero_extendsi */
9785 :
9786 : case 7:
9787 : if (!
9788 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9789 : (TARGET_AVX512F
9790 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9791 : && (GET_MODE_NUNITS (V8DImode)
9792 : < GET_MODE_PRECISION (SImode))))
9793 : return -1;
9794 : return 3372; /* *avx512f_cmpv8di3_zero_extendsi */
9795 :
9796 : case 8:
9797 : if (!(
9798 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9799 : (TARGET_AVX512F
9800 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9801 : && (GET_MODE_NUNITS (V4DImode)
9802 : < GET_MODE_PRECISION (SImode))) &&
9803 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9804 : (TARGET_AVX512VL)))
9805 : return -1;
9806 : return 3375; /* *avx512vl_cmpv4di3_zero_extendsi */
9807 :
9808 : case 9:
9809 : if (!(
9810 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9811 : (TARGET_AVX512F
9812 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9813 : && (GET_MODE_NUNITS (V2DImode)
9814 : < GET_MODE_PRECISION (SImode))) &&
9815 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9816 : (TARGET_AVX512VL)))
9817 : return -1;
9818 : return 3378; /* *avx512vl_cmpv2di3_zero_extendsi */
9819 :
9820 : case 10:
9821 : if (!(
9822 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9823 : (TARGET_AVX512F
9824 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9825 : && (GET_MODE_NUNITS (V8HFmode)
9826 : < GET_MODE_PRECISION (SImode))) &&
9827 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9828 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
9829 : return -1;
9830 : return 3387; /* *avx512fp16_cmpv8hf3_zero_extendsi */
9831 :
9832 : case 11:
9833 : if (!(
9834 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9835 : (TARGET_AVX512F
9836 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9837 : && (GET_MODE_NUNITS (V8SFmode)
9838 : < GET_MODE_PRECISION (SImode))) &&
9839 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9840 : (TARGET_AVX512VL)))
9841 : return -1;
9842 : return 3393; /* *avx512vl_cmpv8sf3_zero_extendsi */
9843 :
9844 : case 12:
9845 : if (!(
9846 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9847 : (TARGET_AVX512F
9848 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9849 : && (GET_MODE_NUNITS (V4SFmode)
9850 : < GET_MODE_PRECISION (SImode))) &&
9851 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9852 : (TARGET_AVX512VL)))
9853 : return -1;
9854 : return 3396; /* *avx512vl_cmpv4sf3_zero_extendsi */
9855 :
9856 : case 13:
9857 : if (!
9858 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9859 : (TARGET_AVX512F
9860 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9861 : && (GET_MODE_NUNITS (V8DFmode)
9862 : < GET_MODE_PRECISION (SImode))))
9863 : return -1;
9864 : return 3399; /* *avx512f_cmpv8df3_zero_extendsi */
9865 :
9866 : case 14:
9867 : if (!(
9868 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9869 : (TARGET_AVX512F
9870 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9871 : && (GET_MODE_NUNITS (V4DFmode)
9872 : < GET_MODE_PRECISION (SImode))) &&
9873 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9874 : (TARGET_AVX512VL)))
9875 : return -1;
9876 : return 3402; /* *avx512vl_cmpv4df3_zero_extendsi */
9877 :
9878 : case 15:
9879 : if (!(
9880 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9881 : (TARGET_AVX512F
9882 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9883 : && (GET_MODE_NUNITS (V2DFmode)
9884 : < GET_MODE_PRECISION (SImode))) &&
9885 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9886 : (TARGET_AVX512VL)))
9887 : return -1;
9888 : return 3405; /* *avx512vl_cmpv2df3_zero_extendsi */
9889 :
9890 : case 16:
9891 : if (!(
9892 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9893 : (TARGET_AVX512BW
9894 : && (GET_MODE_NUNITS (V8HImode)
9895 : < GET_MODE_PRECISION (SImode))) &&
9896 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9897 : (TARGET_AVX512VL)))
9898 : return -1;
9899 : return 3510; /* *avx512vl_cmpv8hi3_zero_extendsi */
9900 :
9901 : case 17:
9902 : if (!(
9903 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9904 : (TARGET_AVX512F
9905 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
9906 : && (GET_MODE_NUNITS (V32HFmode)
9907 : < GET_MODE_PRECISION (SImode))) &&
9908 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9909 : (TARGET_AVX512FP16)))
9910 : return -1;
9911 : return 3381; /* *avx512bw_cmpv32hf3_zero_extendsi */
9912 :
9913 : case 18:
9914 : if (!(
9915 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9916 : (TARGET_AVX512BW
9917 : && (GET_MODE_NUNITS (V32QImode)
9918 : < GET_MODE_PRECISION (SImode))) &&
9919 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9920 : (TARGET_AVX512VL)))
9921 : return -1;
9922 : return 3501; /* *avx512vl_cmpv32qi3_zero_extendsi */
9923 :
9924 : case 19:
9925 : if (!
9926 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9927 : (TARGET_AVX512BW
9928 : && (GET_MODE_NUNITS (V32HImode)
9929 : < GET_MODE_PRECISION (SImode))))
9930 : return -1;
9931 : return 3504; /* *avx512bw_cmpv32hi3_zero_extendsi */
9932 :
9933 : case 20:
9934 : if (!
9935 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9936 : (TARGET_AVX512BW
9937 : && (GET_MODE_NUNITS (V64QImode)
9938 : < GET_MODE_PRECISION (SImode))))
9939 : return -1;
9940 : return 3495; /* *avx512bw_cmpv64qi3_zero_extendsi */
9941 :
9942 : default:
9943 : return -1;
9944 : }
9945 :
9946 : case E_DImode:
9947 : switch (pattern987 (x2,
9948 : E_DImode))
9949 : {
9950 : case 0:
9951 : if (!
9952 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9953 : (TARGET_AVX512F
9954 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
9955 : && (GET_MODE_NUNITS (V16SImode)
9956 : < GET_MODE_PRECISION (DImode))))
9957 : return -1;
9958 : return 3364; /* *avx512f_cmpv16si3_zero_extenddi */
9959 :
9960 : case 1:
9961 : if (!(
9962 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9963 : (TARGET_AVX512F
9964 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
9965 : && (GET_MODE_NUNITS (V16HFmode)
9966 : < GET_MODE_PRECISION (DImode))) &&
9967 : #line 321 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9968 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
9969 : return -1;
9970 : return 3385; /* *avx512vl_cmpv16hf3_zero_extenddi */
9971 :
9972 : case 2:
9973 : if (!
9974 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9975 : (TARGET_AVX512F
9976 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
9977 : && (GET_MODE_NUNITS (V16SFmode)
9978 : < GET_MODE_PRECISION (DImode))))
9979 : return -1;
9980 : return 3391; /* *avx512f_cmpv16sf3_zero_extenddi */
9981 :
9982 : case 3:
9983 : if (!(
9984 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9985 : (TARGET_AVX512BW
9986 : && (GET_MODE_NUNITS (V16QImode)
9987 : < GET_MODE_PRECISION (DImode))) &&
9988 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9989 : (TARGET_AVX512VL)))
9990 : return -1;
9991 : return 3499; /* *avx512vl_cmpv16qi3_zero_extenddi */
9992 :
9993 : case 4:
9994 : if (!(
9995 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
9996 : (TARGET_AVX512BW
9997 : && (GET_MODE_NUNITS (V16HImode)
9998 : < GET_MODE_PRECISION (DImode))) &&
9999 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10000 : (TARGET_AVX512VL)))
10001 : return -1;
10002 : return 3508; /* *avx512vl_cmpv16hi3_zero_extenddi */
10003 :
10004 : case 5:
10005 : if (!(
10006 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10007 : (TARGET_AVX512F
10008 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10009 : && (GET_MODE_NUNITS (V8SImode)
10010 : < GET_MODE_PRECISION (DImode))) &&
10011 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10012 : (TARGET_AVX512VL)))
10013 : return -1;
10014 : return 3367; /* *avx512vl_cmpv8si3_zero_extenddi */
10015 :
10016 : case 6:
10017 : if (!(
10018 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10019 : (TARGET_AVX512F
10020 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10021 : && (GET_MODE_NUNITS (V4SImode)
10022 : < GET_MODE_PRECISION (DImode))) &&
10023 : #line 318 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10024 : (TARGET_AVX512VL)))
10025 : return -1;
10026 : return 3370; /* *avx512vl_cmpv4si3_zero_extenddi */
10027 :
10028 : case 7:
10029 : if (!
10030 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10031 : (TARGET_AVX512F
10032 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10033 : && (GET_MODE_NUNITS (V8DImode)
10034 : < GET_MODE_PRECISION (DImode))))
10035 : return -1;
10036 : return 3373; /* *avx512f_cmpv8di3_zero_extenddi */
10037 :
10038 : case 8:
10039 : if (!(
10040 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10041 : (TARGET_AVX512F
10042 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10043 : && (GET_MODE_NUNITS (V4DImode)
10044 : < GET_MODE_PRECISION (DImode))) &&
10045 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10046 : (TARGET_AVX512VL)))
10047 : return -1;
10048 : return 3376; /* *avx512vl_cmpv4di3_zero_extenddi */
10049 :
10050 : case 9:
10051 : if (!(
10052 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10053 : (TARGET_AVX512F
10054 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10055 : && (GET_MODE_NUNITS (V2DImode)
10056 : < GET_MODE_PRECISION (DImode))) &&
10057 : #line 319 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10058 : (TARGET_AVX512VL)))
10059 : return -1;
10060 : return 3379; /* *avx512vl_cmpv2di3_zero_extenddi */
10061 :
10062 : case 10:
10063 : if (!(
10064 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10065 : (TARGET_AVX512F
10066 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10067 : && (GET_MODE_NUNITS (V8HFmode)
10068 : < GET_MODE_PRECISION (DImode))) &&
10069 : #line 322 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10070 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
10071 : return -1;
10072 : return 3388; /* *avx512fp16_cmpv8hf3_zero_extenddi */
10073 :
10074 : case 11:
10075 : if (!(
10076 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10077 : (TARGET_AVX512F
10078 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10079 : && (GET_MODE_NUNITS (V8SFmode)
10080 : < GET_MODE_PRECISION (DImode))) &&
10081 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10082 : (TARGET_AVX512VL)))
10083 : return -1;
10084 : return 3394; /* *avx512vl_cmpv8sf3_zero_extenddi */
10085 :
10086 : case 12:
10087 : if (!(
10088 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10089 : (TARGET_AVX512F
10090 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10091 : && (GET_MODE_NUNITS (V4SFmode)
10092 : < GET_MODE_PRECISION (DImode))) &&
10093 : #line 323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10094 : (TARGET_AVX512VL)))
10095 : return -1;
10096 : return 3397; /* *avx512vl_cmpv4sf3_zero_extenddi */
10097 :
10098 : case 13:
10099 : if (!
10100 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10101 : (TARGET_AVX512F
10102 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10103 : && (GET_MODE_NUNITS (V8DFmode)
10104 : < GET_MODE_PRECISION (DImode))))
10105 : return -1;
10106 : return 3400; /* *avx512f_cmpv8df3_zero_extenddi */
10107 :
10108 : case 14:
10109 : if (!(
10110 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10111 : (TARGET_AVX512F
10112 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10113 : && (GET_MODE_NUNITS (V4DFmode)
10114 : < GET_MODE_PRECISION (DImode))) &&
10115 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10116 : (TARGET_AVX512VL)))
10117 : return -1;
10118 : return 3403; /* *avx512vl_cmpv4df3_zero_extenddi */
10119 :
10120 : case 15:
10121 : if (!(
10122 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10123 : (TARGET_AVX512F
10124 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10125 : && (GET_MODE_NUNITS (V2DFmode)
10126 : < GET_MODE_PRECISION (DImode))) &&
10127 : #line 324 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10128 : (TARGET_AVX512VL)))
10129 : return -1;
10130 : return 3406; /* *avx512vl_cmpv2df3_zero_extenddi */
10131 :
10132 : case 16:
10133 : if (!(
10134 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10135 : (TARGET_AVX512BW
10136 : && (GET_MODE_NUNITS (V8HImode)
10137 : < GET_MODE_PRECISION (DImode))) &&
10138 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10139 : (TARGET_AVX512VL)))
10140 : return -1;
10141 : return 3511; /* *avx512vl_cmpv8hi3_zero_extenddi */
10142 :
10143 : case 17:
10144 : if (!(
10145 : #line 4638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10146 : (TARGET_AVX512F
10147 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10148 : && (GET_MODE_NUNITS (V32HFmode)
10149 : < GET_MODE_PRECISION (DImode))) &&
10150 : #line 320 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10151 : (TARGET_AVX512FP16)))
10152 : return -1;
10153 : return 3382; /* *avx512bw_cmpv32hf3_zero_extenddi */
10154 :
10155 : case 18:
10156 : if (!(
10157 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10158 : (TARGET_AVX512BW
10159 : && (GET_MODE_NUNITS (V32QImode)
10160 : < GET_MODE_PRECISION (DImode))) &&
10161 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10162 : (TARGET_AVX512VL)))
10163 : return -1;
10164 : return 3502; /* *avx512vl_cmpv32qi3_zero_extenddi */
10165 :
10166 : case 19:
10167 : if (!
10168 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10169 : (TARGET_AVX512BW
10170 : && (GET_MODE_NUNITS (V32HImode)
10171 : < GET_MODE_PRECISION (DImode))))
10172 : return -1;
10173 : return 3505; /* *avx512bw_cmpv32hi3_zero_extenddi */
10174 :
10175 : case 20:
10176 : if (!
10177 : #line 4830 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10178 : (TARGET_AVX512BW
10179 : && (GET_MODE_NUNITS (V64QImode)
10180 : < GET_MODE_PRECISION (DImode))))
10181 : return -1;
10182 : return 3496; /* *avx512bw_cmpv64qi3_zero_extenddi */
10183 :
10184 : default:
10185 : return -1;
10186 : }
10187 :
10188 : default:
10189 : return -1;
10190 : }
10191 :
10192 : case 158:
10193 : if (!const_0_to_7_operand (operands[3], E_SImode))
10194 : return -1;
10195 : switch (GET_MODE (operands[0]))
10196 : {
10197 : case E_SImode:
10198 : switch (pattern1100 (x2,
10199 : E_SImode))
10200 : {
10201 : case 0:
10202 : if (!
10203 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10204 : (TARGET_AVX512BW
10205 : && (GET_MODE_NUNITS (V64QImode)
10206 : < GET_MODE_PRECISION (SImode))))
10207 : return -1;
10208 : return 3603; /* *avx512bw_ucmpv64qi3_zero_extendsi */
10209 :
10210 : case 1:
10211 : if (!(
10212 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10213 : (TARGET_AVX512BW
10214 : && (GET_MODE_NUNITS (V16QImode)
10215 : < GET_MODE_PRECISION (SImode))) &&
10216 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10217 : (TARGET_AVX512VL)))
10218 : return -1;
10219 : return 3606; /* *avx512vl_ucmpv16qi3_zero_extendsi */
10220 :
10221 : case 2:
10222 : if (!(
10223 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10224 : (TARGET_AVX512BW
10225 : && (GET_MODE_NUNITS (V16HImode)
10226 : < GET_MODE_PRECISION (SImode))) &&
10227 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10228 : (TARGET_AVX512VL)))
10229 : return -1;
10230 : return 3615; /* *avx512vl_ucmpv16hi3_zero_extendsi */
10231 :
10232 : case 3:
10233 : if (!
10234 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10235 : (TARGET_AVX512F
10236 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10237 : && (GET_MODE_NUNITS (V16SImode)
10238 : < GET_MODE_PRECISION (SImode))))
10239 : return -1;
10240 : return 3680; /* *avx512f_ucmpv16si3_zero_extendsi */
10241 :
10242 : case 4:
10243 : if (!(
10244 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10245 : (TARGET_AVX512BW
10246 : && (GET_MODE_NUNITS (V32QImode)
10247 : < GET_MODE_PRECISION (SImode))) &&
10248 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10249 : (TARGET_AVX512VL)))
10250 : return -1;
10251 : return 3609; /* *avx512vl_ucmpv32qi3_zero_extendsi */
10252 :
10253 : case 5:
10254 : if (!
10255 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10256 : (TARGET_AVX512BW
10257 : && (GET_MODE_NUNITS (V32HImode)
10258 : < GET_MODE_PRECISION (SImode))))
10259 : return -1;
10260 : return 3612; /* *avx512bw_ucmpv32hi3_zero_extendsi */
10261 :
10262 : case 6:
10263 : if (!(
10264 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10265 : (TARGET_AVX512BW
10266 : && (GET_MODE_NUNITS (V8HImode)
10267 : < GET_MODE_PRECISION (SImode))) &&
10268 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10269 : (TARGET_AVX512VL)))
10270 : return -1;
10271 : return 3618; /* *avx512vl_ucmpv8hi3_zero_extendsi */
10272 :
10273 : case 7:
10274 : if (!(
10275 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10276 : (TARGET_AVX512F
10277 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10278 : && (GET_MODE_NUNITS (V8SImode)
10279 : < GET_MODE_PRECISION (SImode))) &&
10280 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10281 : (TARGET_AVX512VL)))
10282 : return -1;
10283 : return 3681; /* *avx512vl_ucmpv8si3_zero_extendsi */
10284 :
10285 : case 8:
10286 : if (!(
10287 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10288 : (TARGET_AVX512F
10289 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10290 : && (GET_MODE_NUNITS (V4SImode)
10291 : < GET_MODE_PRECISION (SImode))) &&
10292 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10293 : (TARGET_AVX512VL)))
10294 : return -1;
10295 : return 3682; /* *avx512vl_ucmpv4si3_zero_extendsi */
10296 :
10297 : case 9:
10298 : if (!
10299 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10300 : (TARGET_AVX512F
10301 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10302 : && (GET_MODE_NUNITS (V8DImode)
10303 : < GET_MODE_PRECISION (SImode))))
10304 : return -1;
10305 : return 3683; /* *avx512f_ucmpv8di3_zero_extendsi */
10306 :
10307 : case 10:
10308 : if (!(
10309 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10310 : (TARGET_AVX512F
10311 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10312 : && (GET_MODE_NUNITS (V4DImode)
10313 : < GET_MODE_PRECISION (SImode))) &&
10314 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10315 : (TARGET_AVX512VL)))
10316 : return -1;
10317 : return 3684; /* *avx512vl_ucmpv4di3_zero_extendsi */
10318 :
10319 : case 11:
10320 : if (!(
10321 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10322 : (TARGET_AVX512F
10323 : && (!VALID_MASK_AVX512BW_MODE (SImode) || TARGET_AVX512BW)
10324 : && (GET_MODE_NUNITS (V2DImode)
10325 : < GET_MODE_PRECISION (SImode))) &&
10326 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10327 : (TARGET_AVX512VL)))
10328 : return -1;
10329 : return 3685; /* *avx512vl_ucmpv2di3_zero_extendsi */
10330 :
10331 : default:
10332 : return -1;
10333 : }
10334 :
10335 : case E_DImode:
10336 : switch (pattern1100 (x2,
10337 : E_DImode))
10338 : {
10339 : case 0:
10340 : if (!
10341 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10342 : (TARGET_AVX512BW
10343 : && (GET_MODE_NUNITS (V64QImode)
10344 : < GET_MODE_PRECISION (DImode))))
10345 : return -1;
10346 : return 3604; /* *avx512bw_ucmpv64qi3_zero_extenddi */
10347 :
10348 : case 1:
10349 : if (!(
10350 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10351 : (TARGET_AVX512BW
10352 : && (GET_MODE_NUNITS (V16QImode)
10353 : < GET_MODE_PRECISION (DImode))) &&
10354 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10355 : (TARGET_AVX512VL)))
10356 : return -1;
10357 : return 3607; /* *avx512vl_ucmpv16qi3_zero_extenddi */
10358 :
10359 : case 2:
10360 : if (!(
10361 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10362 : (TARGET_AVX512BW
10363 : && (GET_MODE_NUNITS (V16HImode)
10364 : < GET_MODE_PRECISION (DImode))) &&
10365 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10366 : (TARGET_AVX512VL)))
10367 : return -1;
10368 : return 3616; /* *avx512vl_ucmpv16hi3_zero_extenddi */
10369 :
10370 : case 3:
10371 : if (!
10372 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10373 : (TARGET_AVX512F
10374 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10375 : && (GET_MODE_NUNITS (V16SImode)
10376 : < GET_MODE_PRECISION (DImode))))
10377 : return -1;
10378 : return 3686; /* *avx512f_ucmpv16si3_zero_extenddi */
10379 :
10380 : case 4:
10381 : if (!(
10382 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10383 : (TARGET_AVX512BW
10384 : && (GET_MODE_NUNITS (V32QImode)
10385 : < GET_MODE_PRECISION (DImode))) &&
10386 : #line 328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10387 : (TARGET_AVX512VL)))
10388 : return -1;
10389 : return 3610; /* *avx512vl_ucmpv32qi3_zero_extenddi */
10390 :
10391 : case 5:
10392 : if (!
10393 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10394 : (TARGET_AVX512BW
10395 : && (GET_MODE_NUNITS (V32HImode)
10396 : < GET_MODE_PRECISION (DImode))))
10397 : return -1;
10398 : return 3613; /* *avx512bw_ucmpv32hi3_zero_extenddi */
10399 :
10400 : case 6:
10401 : if (!(
10402 : #line 4965 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10403 : (TARGET_AVX512BW
10404 : && (GET_MODE_NUNITS (V8HImode)
10405 : < GET_MODE_PRECISION (DImode))) &&
10406 : #line 329 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10407 : (TARGET_AVX512VL)))
10408 : return -1;
10409 : return 3619; /* *avx512vl_ucmpv8hi3_zero_extenddi */
10410 :
10411 : case 7:
10412 : if (!(
10413 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10414 : (TARGET_AVX512F
10415 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10416 : && (GET_MODE_NUNITS (V8SImode)
10417 : < GET_MODE_PRECISION (DImode))) &&
10418 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10419 : (TARGET_AVX512VL)))
10420 : return -1;
10421 : return 3687; /* *avx512vl_ucmpv8si3_zero_extenddi */
10422 :
10423 : case 8:
10424 : if (!(
10425 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10426 : (TARGET_AVX512F
10427 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10428 : && (GET_MODE_NUNITS (V4SImode)
10429 : < GET_MODE_PRECISION (DImode))) &&
10430 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10431 : (TARGET_AVX512VL)))
10432 : return -1;
10433 : return 3688; /* *avx512vl_ucmpv4si3_zero_extenddi */
10434 :
10435 : case 9:
10436 : if (!
10437 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10438 : (TARGET_AVX512F
10439 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10440 : && (GET_MODE_NUNITS (V8DImode)
10441 : < GET_MODE_PRECISION (DImode))))
10442 : return -1;
10443 : return 3689; /* *avx512f_ucmpv8di3_zero_extenddi */
10444 :
10445 : case 10:
10446 : if (!(
10447 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10448 : (TARGET_AVX512F
10449 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10450 : && (GET_MODE_NUNITS (V4DImode)
10451 : < GET_MODE_PRECISION (DImode))) &&
10452 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10453 : (TARGET_AVX512VL)))
10454 : return -1;
10455 : return 3690; /* *avx512vl_ucmpv4di3_zero_extenddi */
10456 :
10457 : case 11:
10458 : if (!(
10459 : #line 5054 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10460 : (TARGET_AVX512F
10461 : && (!VALID_MASK_AVX512BW_MODE (DImode) || TARGET_AVX512BW)
10462 : && (GET_MODE_NUNITS (V2DImode)
10463 : < GET_MODE_PRECISION (DImode))) &&
10464 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10465 : (TARGET_AVX512VL)))
10466 : return -1;
10467 : return 3691; /* *avx512vl_ucmpv2di3_zero_extenddi */
10468 :
10469 : default:
10470 : return -1;
10471 : }
10472 :
10473 : default:
10474 : return -1;
10475 : }
10476 :
10477 : default:
10478 : return -1;
10479 : }
10480 :
10481 : default:
10482 : return -1;
10483 : }
10484 : }
10485 :
10486 : int
10487 : recog_134 (rtx x1 ATTRIBUTE_UNUSED,
10488 : rtx_insn *insn ATTRIBUTE_UNUSED,
10489 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10490 : {
10491 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10492 : rtx x2, x3, x4, x5, x6, x7;
10493 : int res ATTRIBUTE_UNUSED;
10494 : x2 = XEXP (x1, 1);
10495 : x3 = XEXP (x2, 0);
10496 : x4 = XVECEXP (x3, 0, 0);
10497 : operands[1] = x4;
10498 : x5 = XVECEXP (x3, 0, 1);
10499 : operands[2] = x5;
10500 : x6 = XEXP (x2, 2);
10501 : switch (GET_CODE (x6))
10502 : {
10503 : case CONST_INT:
10504 : if (XWINT (x6, 0) != 1L)
10505 : return -1;
10506 : switch (pattern460 (x2))
10507 : {
10508 : case 0:
10509 : if (!(
10510 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10511 : (TARGET_AVX512F) &&
10512 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10513 : (TARGET_AVX512FP16)))
10514 : return -1;
10515 : return 5430; /* avx512f_vmscalefv8hf */
10516 :
10517 : case 1:
10518 : if (!
10519 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10520 : (TARGET_AVX512F))
10521 : return -1;
10522 : return 5434; /* avx512f_vmscalefv4sf */
10523 :
10524 : case 2:
10525 : if (!(
10526 : #line 13937 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10527 : (TARGET_AVX512F) &&
10528 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10529 : (TARGET_SSE2)))
10530 : return -1;
10531 : return 5438; /* avx512f_vmscalefv2df */
10532 :
10533 : default:
10534 : return -1;
10535 : }
10536 :
10537 : case REG:
10538 : case SUBREG:
10539 : operands[4] = x6;
10540 : x7 = XEXP (x2, 1);
10541 : operands[3] = x7;
10542 : switch (GET_MODE (operands[0]))
10543 : {
10544 : case E_V32HFmode:
10545 : if (pattern1120 (x2,
10546 : E_V32HFmode,
10547 : E_SImode) != 0
10548 : || !(
10549 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10550 : (TARGET_AVX512F) && (
10551 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10552 : (TARGET_AVX512F) &&
10553 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10554 : (TARGET_AVX512FP16))))
10555 : return -1;
10556 : return 5444; /* avx512bw_scalefv32hf_mask */
10557 :
10558 : case E_V16HFmode:
10559 : if (pattern1120 (x2,
10560 : E_V16HFmode,
10561 : E_HImode) != 0
10562 : || !(
10563 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10564 : (TARGET_AVX512F) && (
10565 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10566 : (TARGET_AVX512F) &&
10567 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10568 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10569 : return -1;
10570 : return 5448; /* avx512vl_scalefv16hf_mask */
10571 :
10572 : case E_V8HFmode:
10573 : if (pattern1120 (x2,
10574 : E_V8HFmode,
10575 : E_QImode) != 0
10576 : || !(
10577 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10578 : (TARGET_AVX512F) && (
10579 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10580 : (TARGET_AVX512F) &&
10581 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10582 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
10583 : return -1;
10584 : return 5452; /* avx512fp16_scalefv8hf_mask */
10585 :
10586 : case E_V16SFmode:
10587 : if (pattern1120 (x2,
10588 : E_V16SFmode,
10589 : E_HImode) != 0
10590 : || !
10591 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10592 : (TARGET_AVX512F))
10593 : return -1;
10594 : return 5456; /* avx512f_scalefv16sf_mask */
10595 :
10596 : case E_V8SFmode:
10597 : if (pattern1120 (x2,
10598 : E_V8SFmode,
10599 : E_QImode) != 0
10600 : || !(
10601 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10602 : (TARGET_AVX512F) && (
10603 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10604 : (TARGET_AVX512F) &&
10605 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10606 : (TARGET_AVX512VL))))
10607 : return -1;
10608 : return 5460; /* avx512vl_scalefv8sf_mask */
10609 :
10610 : case E_V4SFmode:
10611 : if (pattern1120 (x2,
10612 : E_V4SFmode,
10613 : E_QImode) != 0
10614 : || !(
10615 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10616 : (TARGET_AVX512F) && (
10617 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10618 : (TARGET_AVX512F) &&
10619 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10620 : (TARGET_AVX512VL))))
10621 : return -1;
10622 : return 5464; /* avx512vl_scalefv4sf_mask */
10623 :
10624 : case E_V8DFmode:
10625 : if (pattern1120 (x2,
10626 : E_V8DFmode,
10627 : E_QImode) != 0
10628 : || !
10629 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10630 : (TARGET_AVX512F))
10631 : return -1;
10632 : return 5468; /* avx512f_scalefv8df_mask */
10633 :
10634 : case E_V4DFmode:
10635 : if (pattern1120 (x2,
10636 : E_V4DFmode,
10637 : E_QImode) != 0
10638 : || !(
10639 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10640 : (TARGET_AVX512F) && (
10641 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10642 : (TARGET_AVX512F) &&
10643 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10644 : (TARGET_AVX512VL))))
10645 : return -1;
10646 : return 5472; /* avx512vl_scalefv4df_mask */
10647 :
10648 : case E_V2DFmode:
10649 : if (pattern1120 (x2,
10650 : E_V2DFmode,
10651 : E_QImode) != 0
10652 : || !(
10653 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10654 : (TARGET_AVX512F) && (
10655 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10656 : (TARGET_AVX512F) &&
10657 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10658 : (TARGET_AVX512VL))))
10659 : return -1;
10660 : return 5476; /* avx512vl_scalefv2df_mask */
10661 :
10662 : default:
10663 : return -1;
10664 : }
10665 :
10666 : default:
10667 : return -1;
10668 : }
10669 : }
10670 :
10671 : int
10672 : recog_141 (rtx x1 ATTRIBUTE_UNUSED,
10673 : rtx_insn *insn ATTRIBUTE_UNUSED,
10674 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10675 : {
10676 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10677 : rtx x2, x3, x4, x5, x6, x7, x8;
10678 : int res ATTRIBUTE_UNUSED;
10679 : x2 = XEXP (x1, 1);
10680 : x3 = XEXP (x2, 0);
10681 : x4 = XVECEXP (x3, 0, 0);
10682 : operands[1] = x4;
10683 : x5 = XVECEXP (x3, 0, 1);
10684 : operands[2] = x5;
10685 : x6 = XVECEXP (x3, 0, 2);
10686 : operands[3] = x6;
10687 : if (!const_0_to_15_operand (operands[3], E_SImode))
10688 : return -1;
10689 : x7 = XEXP (x2, 2);
10690 : switch (GET_CODE (x7))
10691 : {
10692 : case REG:
10693 : case SUBREG:
10694 : operands[5] = x7;
10695 : x8 = XEXP (x2, 1);
10696 : operands[4] = x8;
10697 : switch (GET_MODE (operands[0]))
10698 : {
10699 : case E_V16SFmode:
10700 : if (pattern475 (x2,
10701 : E_V16SFmode,
10702 : E_HImode) != 0
10703 : || !(
10704 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10705 : (TARGET_AVX512F) &&
10706 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10707 : (TARGET_AVX512DQ && 1)))
10708 : return -1;
10709 : return 10034; /* avx512dq_rangepv16sf_mask */
10710 :
10711 : case E_V8SFmode:
10712 : if (pattern475 (x2,
10713 : E_V8SFmode,
10714 : E_QImode) != 0
10715 : || !(
10716 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10717 : (TARGET_AVX512F) && (
10718 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10719 : (TARGET_AVX512DQ && 1) &&
10720 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10721 : (TARGET_AVX512VL))))
10722 : return -1;
10723 : return 10037; /* avx512dq_rangepv8sf_mask */
10724 :
10725 : case E_V4SFmode:
10726 : if (pattern475 (x2,
10727 : E_V4SFmode,
10728 : E_QImode) != 0
10729 : || !(
10730 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10731 : (TARGET_AVX512F) && (
10732 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10733 : (TARGET_AVX512DQ && 1) &&
10734 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10735 : (TARGET_AVX512VL))))
10736 : return -1;
10737 : return 10039; /* avx512dq_rangepv4sf_mask */
10738 :
10739 : case E_V8DFmode:
10740 : if (pattern475 (x2,
10741 : E_V8DFmode,
10742 : E_QImode) != 0
10743 : || !(
10744 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10745 : (TARGET_AVX512F) &&
10746 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10747 : (TARGET_AVX512DQ && 1)))
10748 : return -1;
10749 : return 10042; /* avx512dq_rangepv8df_mask */
10750 :
10751 : case E_V4DFmode:
10752 : if (pattern475 (x2,
10753 : E_V4DFmode,
10754 : E_QImode) != 0
10755 : || !(
10756 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10757 : (TARGET_AVX512F) && (
10758 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10759 : (TARGET_AVX512DQ && 1) &&
10760 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10761 : (TARGET_AVX512VL))))
10762 : return -1;
10763 : return 10045; /* avx512dq_rangepv4df_mask */
10764 :
10765 : case E_V2DFmode:
10766 : if (pattern475 (x2,
10767 : E_V2DFmode,
10768 : E_QImode) != 0
10769 : || !(
10770 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10771 : (TARGET_AVX512F) && (
10772 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10773 : (TARGET_AVX512DQ && 1) &&
10774 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10775 : (TARGET_AVX512VL))))
10776 : return -1;
10777 : return 10047; /* avx512dq_rangepv2df_mask */
10778 :
10779 : default:
10780 : return -1;
10781 : }
10782 :
10783 : case CONST_INT:
10784 : if (XWINT (x7, 0) != 1L)
10785 : return -1;
10786 : switch (pattern1121 (x2))
10787 : {
10788 : case 0:
10789 : if (!
10790 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10791 : (TARGET_AVX512DQ))
10792 : return -1;
10793 : return 10048; /* avx512dq_rangesv4sf */
10794 :
10795 : case 1:
10796 : if (!(
10797 : #line 30536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10798 : (TARGET_AVX512DQ) &&
10799 : #line 473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10800 : (TARGET_SSE2)))
10801 : return -1;
10802 : return 10052; /* avx512dq_rangesv2df */
10803 :
10804 : default:
10805 : return -1;
10806 : }
10807 :
10808 : default:
10809 : return -1;
10810 : }
10811 : }
10812 :
10813 : int
10814 : recog_146 (rtx x1 ATTRIBUTE_UNUSED,
10815 : rtx_insn *insn ATTRIBUTE_UNUSED,
10816 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10817 : {
10818 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10819 : rtx x2;
10820 : int res ATTRIBUTE_UNUSED;
10821 : x2 = XEXP (x1, 1);
10822 : switch (pattern481 (x2))
10823 : {
10824 : case 0:
10825 : if (!(
10826 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10827 : (TARGET_AVX512F) &&
10828 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10829 : (TARGET_AVX512VBMI2)))
10830 : return -1;
10831 : return 10276; /* vpshld_v32hi_mask */
10832 :
10833 : case 1:
10834 : if (!(
10835 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10836 : (TARGET_AVX512F) &&
10837 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10838 : (TARGET_AVX512VBMI2)))
10839 : return -1;
10840 : return 10278; /* vpshld_v16si_mask */
10841 :
10842 : case 2:
10843 : if (!(
10844 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10845 : (TARGET_AVX512F) &&
10846 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10847 : (TARGET_AVX512VBMI2)))
10848 : return -1;
10849 : return 10280; /* vpshld_v8di_mask */
10850 :
10851 : case 3:
10852 : if (!(
10853 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10854 : (TARGET_AVX512F) && (
10855 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10856 : (TARGET_AVX512VBMI2) &&
10857 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10858 : (TARGET_AVX512VL))))
10859 : return -1;
10860 : return 10282; /* vpshld_v16hi_mask */
10861 :
10862 : case 4:
10863 : if (!(
10864 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10865 : (TARGET_AVX512F) && (
10866 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10867 : (TARGET_AVX512VBMI2) &&
10868 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10869 : (TARGET_AVX512VL))))
10870 : return -1;
10871 : return 10284; /* vpshld_v8si_mask */
10872 :
10873 : case 5:
10874 : if (!(
10875 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10876 : (TARGET_AVX512F) && (
10877 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10878 : (TARGET_AVX512VBMI2) &&
10879 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10880 : (TARGET_AVX512VL))))
10881 : return -1;
10882 : return 10286; /* vpshld_v4di_mask */
10883 :
10884 : case 6:
10885 : if (!(
10886 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10887 : (TARGET_AVX512F) && (
10888 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10889 : (TARGET_AVX512VBMI2) &&
10890 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10891 : (TARGET_AVX512VL))))
10892 : return -1;
10893 : return 10288; /* vpshld_v8hi_mask */
10894 :
10895 : case 7:
10896 : if (!(
10897 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10898 : (TARGET_AVX512F) && (
10899 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10900 : (TARGET_AVX512VBMI2) &&
10901 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10902 : (TARGET_AVX512VL))))
10903 : return -1;
10904 : return 10290; /* vpshld_v4si_mask */
10905 :
10906 : case 8:
10907 : if (!(
10908 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10909 : (TARGET_AVX512F) && (
10910 : #line 31108 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10911 : (TARGET_AVX512VBMI2) &&
10912 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10913 : (TARGET_AVX512VL))))
10914 : return -1;
10915 : return 10292; /* vpshld_v2di_mask */
10916 :
10917 : default:
10918 : return -1;
10919 : }
10920 : }
10921 :
10922 : int
10923 : recog_153 (rtx x1 ATTRIBUTE_UNUSED,
10924 : rtx_insn *insn ATTRIBUTE_UNUSED,
10925 : int *pnum_clobbers ATTRIBUTE_UNUSED)
10926 : {
10927 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
10928 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
10929 : rtx x10;
10930 : int res ATTRIBUTE_UNUSED;
10931 : x2 = XEXP (x1, 1);
10932 : x3 = XEXP (x2, 0);
10933 : x4 = XEXP (x3, 0);
10934 : x5 = XEXP (x4, 1);
10935 : if (GET_CODE (x5) != PARALLEL)
10936 : return -1;
10937 : switch (XVECLEN (x5, 0))
10938 : {
10939 : case 1:
10940 : x6 = XVECEXP (x5, 0, 0);
10941 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
10942 : return -1;
10943 : x7 = XEXP (x2, 2);
10944 : switch (GET_CODE (x7))
10945 : {
10946 : case CONST_INT:
10947 : if (XWINT (x7, 0) != 1L)
10948 : return -1;
10949 : switch (pattern1014 (x2))
10950 : {
10951 : case 0:
10952 : if (!
10953 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10954 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10955 : return -1;
10956 : return 5316; /* *vec_setv8hi_0_1 */
10957 :
10958 : case 1:
10959 : if (!
10960 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10961 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10962 : return -1;
10963 : return 5317; /* *vec_setv8hf_0_1 */
10964 :
10965 : case 2:
10966 : if (!
10967 : #line 12366 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
10968 : (TARGET_SSE2 && ix86_pre_reload_split ()))
10969 : return -1;
10970 : return 5318; /* *vec_setv8bf_0_1 */
10971 :
10972 : default:
10973 : return -1;
10974 : }
10975 :
10976 : case REG:
10977 : case SUBREG:
10978 : operands[3] = x7;
10979 : x8 = XEXP (x4, 0);
10980 : operands[1] = x8;
10981 : x9 = XEXP (x2, 1);
10982 : operands[2] = x9;
10983 : switch (GET_MODE (operands[0]))
10984 : {
10985 : case E_V16SImode:
10986 : if (pattern1291 (x2,
10987 : E_V16SImode,
10988 : E_HImode,
10989 : E_V4SImode,
10990 : E_SImode) != 0
10991 : || !
10992 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
10993 : (TARGET_AVX512F))
10994 : return -1;
10995 : return 9253; /* avx512f_vec_dupv16si_mask */
10996 :
10997 : case E_V8SImode:
10998 : if (pattern1291 (x2,
10999 : E_V8SImode,
11000 : E_QImode,
11001 : E_V4SImode,
11002 : E_SImode) != 0
11003 : || !(
11004 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11005 : (TARGET_AVX512F) && (
11006 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11007 : (TARGET_AVX512F) &&
11008 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11009 : (TARGET_AVX512VL))))
11010 : return -1;
11011 : return 9255; /* avx512vl_vec_dupv8si_mask */
11012 :
11013 : case E_V4SImode:
11014 : if (pattern1292 (x2,
11015 : E_V4SImode,
11016 : E_SImode,
11017 : E_QImode) != 0
11018 : || !(
11019 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11020 : (TARGET_AVX512F) && (
11021 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11022 : (TARGET_AVX512F) &&
11023 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11024 : (TARGET_AVX512VL))))
11025 : return -1;
11026 : return 9257; /* avx512vl_vec_dupv4si_mask */
11027 :
11028 : case E_V8DImode:
11029 : if (pattern1291 (x2,
11030 : E_V8DImode,
11031 : E_QImode,
11032 : E_V2DImode,
11033 : E_DImode) != 0
11034 : || !
11035 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11036 : (TARGET_AVX512F))
11037 : return -1;
11038 : return 9259; /* avx512f_vec_dupv8di_mask */
11039 :
11040 : case E_V4DImode:
11041 : if (pattern1291 (x2,
11042 : E_V4DImode,
11043 : E_QImode,
11044 : E_V2DImode,
11045 : E_DImode) != 0
11046 : || !(
11047 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11048 : (TARGET_AVX512F) && (
11049 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11050 : (TARGET_AVX512F) &&
11051 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11052 : (TARGET_AVX512VL))))
11053 : return -1;
11054 : return 9261; /* avx512vl_vec_dupv4di_mask */
11055 :
11056 : case E_V2DImode:
11057 : if (pattern1292 (x2,
11058 : E_V2DImode,
11059 : E_DImode,
11060 : E_QImode) != 0
11061 : || !(
11062 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11063 : (TARGET_AVX512F) && (
11064 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11065 : (TARGET_AVX512F) &&
11066 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11067 : (TARGET_AVX512VL))))
11068 : return -1;
11069 : return 9263; /* avx512vl_vec_dupv2di_mask */
11070 :
11071 : case E_V16SFmode:
11072 : if (pattern1291 (x2,
11073 : E_V16SFmode,
11074 : E_HImode,
11075 : E_V4SFmode,
11076 : E_SFmode) != 0
11077 : || !
11078 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11079 : (TARGET_AVX512F))
11080 : return -1;
11081 : return 9265; /* avx512f_vec_dupv16sf_mask */
11082 :
11083 : case E_V8SFmode:
11084 : if (pattern1291 (x2,
11085 : E_V8SFmode,
11086 : E_QImode,
11087 : E_V4SFmode,
11088 : E_SFmode) != 0
11089 : || !(
11090 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11091 : (TARGET_AVX512F) && (
11092 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11093 : (TARGET_AVX512F) &&
11094 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11095 : (TARGET_AVX512VL))))
11096 : return -1;
11097 : return 9267; /* avx512vl_vec_dupv8sf_mask */
11098 :
11099 : case E_V4SFmode:
11100 : if (pattern1292 (x2,
11101 : E_V4SFmode,
11102 : E_SFmode,
11103 : E_QImode) != 0
11104 : || !(
11105 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11106 : (TARGET_AVX512F) && (
11107 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11108 : (TARGET_AVX512F) &&
11109 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11110 : (TARGET_AVX512VL))))
11111 : return -1;
11112 : return 9269; /* avx512vl_vec_dupv4sf_mask */
11113 :
11114 : case E_V8DFmode:
11115 : if (pattern1291 (x2,
11116 : E_V8DFmode,
11117 : E_QImode,
11118 : E_V2DFmode,
11119 : E_DFmode) != 0
11120 : || !
11121 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11122 : (TARGET_AVX512F))
11123 : return -1;
11124 : return 9271; /* avx512f_vec_dupv8df_mask */
11125 :
11126 : case E_V4DFmode:
11127 : if (pattern1291 (x2,
11128 : E_V4DFmode,
11129 : E_QImode,
11130 : E_V2DFmode,
11131 : E_DFmode) != 0
11132 : || !(
11133 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11134 : (TARGET_AVX512F) && (
11135 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11136 : (TARGET_AVX512F) &&
11137 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11138 : (TARGET_AVX512VL))))
11139 : return -1;
11140 : return 9273; /* avx512vl_vec_dupv4df_mask */
11141 :
11142 : case E_V2DFmode:
11143 : if (pattern1292 (x2,
11144 : E_V2DFmode,
11145 : E_DFmode,
11146 : E_QImode) != 0
11147 : || !(
11148 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11149 : (TARGET_AVX512F) && (
11150 : #line 28403 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11151 : (TARGET_AVX512F) &&
11152 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11153 : (TARGET_AVX512VL))))
11154 : return -1;
11155 : return 9275; /* avx512vl_vec_dupv2df_mask */
11156 :
11157 : case E_V64QImode:
11158 : if (pattern1291 (x2,
11159 : E_V64QImode,
11160 : E_DImode,
11161 : E_V16QImode,
11162 : E_QImode) != 0
11163 : || !(
11164 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11165 : (TARGET_AVX512F) &&
11166 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11167 : (TARGET_AVX512BW)))
11168 : return -1;
11169 : return 9277; /* avx512bw_vec_dupv64qi_mask */
11170 :
11171 : case E_V16QImode:
11172 : if (pattern1292 (x2,
11173 : E_V16QImode,
11174 : E_QImode,
11175 : E_HImode) != 0
11176 : || !(
11177 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11178 : (TARGET_AVX512F) && (
11179 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11180 : (TARGET_AVX512BW) &&
11181 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11182 : (TARGET_AVX512VL))))
11183 : return -1;
11184 : return 9279; /* avx512vl_vec_dupv16qi_mask */
11185 :
11186 : case E_V32QImode:
11187 : if (pattern1291 (x2,
11188 : E_V32QImode,
11189 : E_SImode,
11190 : E_V16QImode,
11191 : E_QImode) != 0
11192 : || !(
11193 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11194 : (TARGET_AVX512F) && (
11195 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11196 : (TARGET_AVX512BW) &&
11197 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11198 : (TARGET_AVX512VL))))
11199 : return -1;
11200 : return 9281; /* avx512vl_vec_dupv32qi_mask */
11201 :
11202 : case E_V32HImode:
11203 : if (pattern1291 (x2,
11204 : E_V32HImode,
11205 : E_SImode,
11206 : E_V8HImode,
11207 : E_HImode) != 0
11208 : || !(
11209 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11210 : (TARGET_AVX512F) &&
11211 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11212 : (TARGET_AVX512BW)))
11213 : return -1;
11214 : return 9283; /* avx512bw_vec_dupv32hi_mask */
11215 :
11216 : case E_V16HImode:
11217 : if (pattern778 (x2,
11218 : E_HImode,
11219 : E_V16HImode) != 0
11220 : || !nonimmediate_operand (operands[1], E_V8HImode)
11221 : || !nonimm_or_0_operand (operands[2], E_V16HImode)
11222 : || !register_operand (operands[3], E_HImode)
11223 : || !(
11224 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11225 : (TARGET_AVX512F) && (
11226 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11227 : (TARGET_AVX512BW) &&
11228 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11229 : (TARGET_AVX512VL))))
11230 : return -1;
11231 : return 9285; /* avx512vl_vec_dupv16hi_mask */
11232 :
11233 : case E_V8HImode:
11234 : if (pattern1292 (x2,
11235 : E_V8HImode,
11236 : E_HImode,
11237 : E_QImode) != 0
11238 : || !(
11239 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11240 : (TARGET_AVX512F) && (
11241 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11242 : (TARGET_AVX512BW) &&
11243 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11244 : (TARGET_AVX512VL))))
11245 : return -1;
11246 : return 9287; /* avx512vl_vec_dupv8hi_mask */
11247 :
11248 : case E_V32HFmode:
11249 : if (pattern1291 (x2,
11250 : E_V32HFmode,
11251 : E_SImode,
11252 : E_V8HFmode,
11253 : E_HFmode) != 0
11254 : || !(
11255 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11256 : (TARGET_AVX512F) &&
11257 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11258 : (TARGET_AVX512BW)))
11259 : return -1;
11260 : return 9289; /* avx512bw_vec_dupv32hf_mask */
11261 :
11262 : case E_V16HFmode:
11263 : if (pattern1291 (x2,
11264 : E_V16HFmode,
11265 : E_HImode,
11266 : E_V8HFmode,
11267 : E_HFmode) != 0
11268 : || !(
11269 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11270 : (TARGET_AVX512F) && (
11271 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11272 : (TARGET_AVX512BW) &&
11273 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11274 : (TARGET_AVX512VL))))
11275 : return -1;
11276 : return 9291; /* avx512vl_vec_dupv16hf_mask */
11277 :
11278 : case E_V8HFmode:
11279 : if (pattern1292 (x2,
11280 : E_V8HFmode,
11281 : E_HFmode,
11282 : E_QImode) != 0
11283 : || !(
11284 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11285 : (TARGET_AVX512F) && (
11286 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11287 : (TARGET_AVX512BW) &&
11288 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11289 : (TARGET_AVX512VL))))
11290 : return -1;
11291 : return 9293; /* avx512fp16_vec_dupv8hf_mask */
11292 :
11293 : case E_V32BFmode:
11294 : if (pattern1291 (x2,
11295 : E_V32BFmode,
11296 : E_SImode,
11297 : E_V8BFmode,
11298 : E_BFmode) != 0
11299 : || !(
11300 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11301 : (TARGET_AVX512F) &&
11302 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11303 : (TARGET_AVX512BW)))
11304 : return -1;
11305 : return 9295; /* avx512bw_vec_dupv32bf_mask */
11306 :
11307 : case E_V16BFmode:
11308 : if (pattern1291 (x2,
11309 : E_V16BFmode,
11310 : E_HImode,
11311 : E_V8BFmode,
11312 : E_BFmode) != 0
11313 : || !(
11314 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11315 : (TARGET_AVX512F) && (
11316 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11317 : (TARGET_AVX512BW) &&
11318 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11319 : (TARGET_AVX512VL))))
11320 : return -1;
11321 : return 9297; /* avx512vl_vec_dupv16bf_mask */
11322 :
11323 : case E_V8BFmode:
11324 : if (pattern1292 (x2,
11325 : E_V8BFmode,
11326 : E_BFmode,
11327 : E_QImode) != 0
11328 : || !(
11329 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11330 : (TARGET_AVX512F) && (
11331 : #line 28422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11332 : (TARGET_AVX512BW) &&
11333 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11334 : (TARGET_AVX512VL))))
11335 : return -1;
11336 : return 9299; /* avx512vl_vec_dupv8bf_mask */
11337 :
11338 : default:
11339 : return -1;
11340 : }
11341 :
11342 : default:
11343 : return -1;
11344 : }
11345 :
11346 : case 2:
11347 : x6 = XVECEXP (x5, 0, 0);
11348 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
11349 : return -1;
11350 : x10 = XVECEXP (x5, 0, 1);
11351 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
11352 : return -1;
11353 : x8 = XEXP (x4, 0);
11354 : operands[1] = x8;
11355 : x9 = XEXP (x2, 1);
11356 : operands[2] = x9;
11357 : x7 = XEXP (x2, 2);
11358 : operands[3] = x7;
11359 : switch (GET_MODE (operands[0]))
11360 : {
11361 : case E_V16SImode:
11362 : if (pattern1291 (x2,
11363 : E_V16SImode,
11364 : E_HImode,
11365 : E_V4SImode,
11366 : E_V2SImode) != 0
11367 : || !(
11368 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11369 : (TARGET_AVX512F) &&
11370 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11371 : (TARGET_AVX512DQ)))
11372 : return -1;
11373 : return 9395; /* avx512dq_broadcastv16si_mask */
11374 :
11375 : case E_V8SImode:
11376 : if (pattern1291 (x2,
11377 : E_V8SImode,
11378 : E_QImode,
11379 : E_V4SImode,
11380 : E_V2SImode) != 0
11381 : || !(
11382 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11383 : (TARGET_AVX512F) && (
11384 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11385 : (TARGET_AVX512DQ) &&
11386 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11387 : (TARGET_AVX512VL))))
11388 : return -1;
11389 : return 9397; /* avx512dq_broadcastv8si_mask */
11390 :
11391 : case E_V4SImode:
11392 : if (pattern1292 (x2,
11393 : E_V4SImode,
11394 : E_V2SImode,
11395 : E_QImode) != 0
11396 : || !(
11397 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11398 : (TARGET_AVX512F) && (
11399 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11400 : (TARGET_AVX512DQ) &&
11401 : #line 28727 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11402 : (TARGET_AVX512VL))))
11403 : return -1;
11404 : return 9399; /* avx512dq_broadcastv4si_mask */
11405 :
11406 : case E_V16SFmode:
11407 : if (pattern1291 (x2,
11408 : E_V16SFmode,
11409 : E_HImode,
11410 : E_V4SFmode,
11411 : E_V2SFmode) != 0
11412 : || !(
11413 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11414 : (TARGET_AVX512F) &&
11415 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11416 : (TARGET_AVX512DQ)))
11417 : return -1;
11418 : return 9401; /* avx512dq_broadcastv16sf_mask */
11419 :
11420 : case E_V8SFmode:
11421 : if (pattern1291 (x2,
11422 : E_V8SFmode,
11423 : E_QImode,
11424 : E_V4SFmode,
11425 : E_V2SFmode) != 0
11426 : || !(
11427 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
11428 : (TARGET_AVX512F) && (
11429 : #line 28743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11430 : (TARGET_AVX512DQ) &&
11431 : #line 28728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11432 : (TARGET_AVX512VL))))
11433 : return -1;
11434 : return 9403; /* avx512dq_broadcastv8sf_mask */
11435 :
11436 : default:
11437 : return -1;
11438 : }
11439 :
11440 : default:
11441 : return -1;
11442 : }
11443 : }
11444 :
11445 : int
11446 : recog_160 (rtx x1 ATTRIBUTE_UNUSED,
11447 : rtx_insn *insn ATTRIBUTE_UNUSED,
11448 : int *pnum_clobbers ATTRIBUTE_UNUSED)
11449 : {
11450 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
11451 : rtx x2, x3, x4, x5, x6, x7;
11452 : int res ATTRIBUTE_UNUSED;
11453 : x2 = XEXP (x1, 1);
11454 : x3 = XEXP (x2, 1);
11455 : switch (GET_CODE (x3))
11456 : {
11457 : case CONST_INT:
11458 : case CONST_WIDE_INT:
11459 : case CONST_POLY_INT:
11460 : case CONST_FIXED:
11461 : case CONST_DOUBLE:
11462 : case CONST_VECTOR:
11463 : case CONST:
11464 : case REG:
11465 : case SUBREG:
11466 : case MEM:
11467 : case LABEL_REF:
11468 : case SYMBOL_REF:
11469 : case HIGH:
11470 : x4 = XEXP (x2, 2);
11471 : switch (GET_CODE (x4))
11472 : {
11473 : case REG:
11474 : case SUBREG:
11475 : return recog_159 (x1, insn, pnum_clobbers);
11476 :
11477 : case CONST_INT:
11478 : if (XWINT (x4, 0) == 1L)
11479 : {
11480 : switch (GET_MODE (operands[0]))
11481 : {
11482 : case E_V2DImode:
11483 : if (GET_MODE (x2) == E_V2DImode)
11484 : {
11485 : x5 = XEXP (x2, 0);
11486 : if (nonimmediate_operand (x5, E_V2DImode))
11487 : {
11488 : operands[1] = x5;
11489 : if (register_operand (operands[0], E_V2DImode))
11490 : {
11491 : operands[2] = x3;
11492 : if (const0_operand (operands[2], E_V2DImode)
11493 : &&
11494 : #line 1883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11495 : (TARGET_SSE2))
11496 : return 2619; /* *sse2_movq128_v2di_1 */
11497 : }
11498 : operands[2] = x5;
11499 : if (nonimmediate_operand (operands[0], E_V2DImode))
11500 : {
11501 : operands[1] = x3;
11502 : if (nonimmediate_operand (operands[1], E_V2DImode)
11503 : &&
11504 : #line 15171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11505 : (TARGET_SSE2))
11506 : return 7253; /* sse2_movsd_v2di */
11507 : }
11508 : }
11509 : }
11510 : break;
11511 :
11512 : case E_V2DFmode:
11513 : if (GET_MODE (x2) == E_V2DFmode)
11514 : {
11515 : x5 = XEXP (x2, 0);
11516 : if (nonimmediate_operand (x5, E_V2DFmode))
11517 : {
11518 : operands[1] = x5;
11519 : if (register_operand (operands[0], E_V2DFmode))
11520 : {
11521 : operands[2] = x3;
11522 : if (const0_operand (operands[2], E_V2DFmode)
11523 : &&
11524 : #line 1883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11525 : (TARGET_SSE2))
11526 : return 2620; /* *sse2_movq128_v2df_1 */
11527 : }
11528 : operands[2] = x5;
11529 : if (nonimmediate_operand (operands[0], E_V2DFmode))
11530 : {
11531 : operands[1] = x3;
11532 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11533 : &&
11534 : #line 15171 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11535 : (TARGET_SSE2))
11536 : return 7254; /* sse2_movsd_v2df */
11537 : }
11538 : }
11539 : }
11540 : break;
11541 :
11542 : case E_V4SImode:
11543 : if (pattern900 (x2,
11544 : E_V4SImode) == 0
11545 : &&
11546 : #line 12026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11547 : (TARGET_SSE))
11548 : return 5293; /* sse_movss_v4si */
11549 : break;
11550 :
11551 : case E_V4SFmode:
11552 : if (pattern900 (x2,
11553 : E_V4SFmode) == 0
11554 : &&
11555 : #line 12026 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11556 : (TARGET_SSE))
11557 : return 5294; /* sse_movss_v4sf */
11558 : break;
11559 :
11560 : case E_V8HImode:
11561 : if (pattern900 (x2,
11562 : E_V8HImode) == 0
11563 : &&
11564 : #line 12444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11565 : (TARGET_AVX512FP16
11566 : || (TARGET_AVX10_2 && const0_operand (operands[1], V8HImode))))
11567 : return 5332; /* avx512fp16_movv8hi */
11568 : break;
11569 :
11570 : case E_V8HFmode:
11571 : if (pattern900 (x2,
11572 : E_V8HFmode) == 0
11573 : &&
11574 : #line 12444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11575 : (TARGET_AVX512FP16
11576 : || (TARGET_AVX10_2 && const0_operand (operands[1], V8HFmode))))
11577 : return 5333; /* avx512fp16_movv8hf */
11578 : break;
11579 :
11580 : case E_V8BFmode:
11581 : if (pattern900 (x2,
11582 : E_V8BFmode) == 0
11583 : &&
11584 : #line 12444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11585 : (TARGET_AVX512FP16
11586 : || (TARGET_AVX10_2 && const0_operand (operands[1], V8BFmode))))
11587 : return 5334; /* avx512fp16_movv8bf */
11588 : break;
11589 :
11590 : default:
11591 : break;
11592 : }
11593 : }
11594 : operands[3] = x4;
11595 : x5 = XEXP (x2, 0);
11596 : operands[2] = x5;
11597 : operands[1] = x3;
11598 : switch (GET_MODE (operands[0]))
11599 : {
11600 : case E_V8SFmode:
11601 : if (pattern1128 (x2,
11602 : E_V8SFmode) != 0
11603 : || !(
11604 : #line 23851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11605 : (TARGET_SSE4_1) &&
11606 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11607 : (TARGET_AVX)))
11608 : return -1;
11609 : return 8724; /* avx_blendps256 */
11610 :
11611 : case E_V4SFmode:
11612 : if (pattern1129 (x2,
11613 : E_V4SFmode) != 0
11614 : || !
11615 : #line 23851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11616 : (TARGET_SSE4_1))
11617 : return -1;
11618 : return 8725; /* sse4_1_blendps */
11619 :
11620 : case E_V4DFmode:
11621 : if (pattern1129 (x2,
11622 : E_V4DFmode) != 0
11623 : || !(
11624 : #line 23851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11625 : (TARGET_SSE4_1) &&
11626 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11627 : (TARGET_AVX)))
11628 : return -1;
11629 : return 8726; /* avx_blendpd256 */
11630 :
11631 : case E_V2DFmode:
11632 : if (!register_operand (operands[0], E_V2DFmode)
11633 : || GET_MODE (x2) != E_V2DFmode
11634 : || !vector_operand (operands[2], E_V2DFmode)
11635 : || !register_operand (operands[1], E_V2DFmode)
11636 : || !const_0_to_3_operand (operands[3], E_SImode)
11637 : || !(
11638 : #line 23851 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11639 : (TARGET_SSE4_1) &&
11640 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11641 : (TARGET_SSE2)))
11642 : return -1;
11643 : return 8727; /* sse4_1_blendpd */
11644 :
11645 : case E_V8HImode:
11646 : if (pattern1128 (x2,
11647 : E_V8HImode) != 0
11648 : || !
11649 : #line 24349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11650 : (TARGET_SSE4_1))
11651 : return -1;
11652 : return 8789; /* sse4_1_pblendw */
11653 :
11654 : case E_V8HFmode:
11655 : if (pattern1128 (x2,
11656 : E_V8HFmode) != 0
11657 : || !
11658 : #line 24349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11659 : (TARGET_SSE4_1))
11660 : return -1;
11661 : return 8790; /* sse4_1_pblendph */
11662 :
11663 : case E_V8BFmode:
11664 : if (pattern1128 (x2,
11665 : E_V8BFmode) != 0
11666 : || !
11667 : #line 24349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11668 : (TARGET_SSE4_1))
11669 : return -1;
11670 : return 8791; /* sse4_1_pblendbf */
11671 :
11672 : case E_V16HImode:
11673 : if (pattern1130 (x2,
11674 : E_V16HImode) != 0
11675 : || !
11676 : #line 24422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11677 : (TARGET_AVX2))
11678 : return -1;
11679 : return 8792; /* *avx2_pblendw */
11680 :
11681 : case E_V16HFmode:
11682 : if (pattern1130 (x2,
11683 : E_V16HFmode) != 0
11684 : || !
11685 : #line 24422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11686 : (TARGET_AVX2))
11687 : return -1;
11688 : return 8793; /* *avx2_pblendph */
11689 :
11690 : case E_V16BFmode:
11691 : if (pattern1130 (x2,
11692 : E_V16BFmode) != 0
11693 : || !
11694 : #line 24422 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11695 : (TARGET_AVX2))
11696 : return -1;
11697 : return 8794; /* *avx2_pblendbf */
11698 :
11699 : case E_V8SImode:
11700 : if (pattern1131 (x2,
11701 : E_V8SImode) != 0
11702 : || !
11703 : #line 24440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11704 : (TARGET_AVX2))
11705 : return -1;
11706 : return 8795; /* avx2_pblenddv8si */
11707 :
11708 : case E_V4SImode:
11709 : if (pattern1131 (x2,
11710 : E_V4SImode) != 0
11711 : || !
11712 : #line 24440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11713 : (TARGET_AVX2))
11714 : return -1;
11715 : return 8796; /* avx2_pblenddv4si */
11716 :
11717 : default:
11718 : return -1;
11719 : }
11720 :
11721 : case UNSPEC:
11722 : if (XVECLEN (x4, 0) != 3
11723 : || XINT (x4, 1) != 60)
11724 : return -1;
11725 : x5 = XEXP (x2, 0);
11726 : operands[1] = x5;
11727 : switch (pattern1017 (x2))
11728 : {
11729 : case 0:
11730 : x6 = XVECEXP (x4, 0, 0);
11731 : operands[3] = x6;
11732 : switch (pattern1476 (x2))
11733 : {
11734 : case 0:
11735 : if ((
11736 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11737 : (TARGET_SSE && ix86_pre_reload_split ()
11738 : && ((rtx_equal_p (operands[1], operands[3])
11739 : && rtx_equal_p (operands[2], operands[4]))
11740 : || (rtx_equal_p (operands[1], operands[4])
11741 : && rtx_equal_p (operands[2], operands[3])))
11742 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11743 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11744 : (TARGET_AVX512FP16)))
11745 : return 3093; /* *minmaxv32hf3_1 */
11746 : break;
11747 :
11748 : case 1:
11749 : if ((
11750 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11751 : (TARGET_SSE && ix86_pre_reload_split ()
11752 : && ((rtx_equal_p (operands[1], operands[3])
11753 : && rtx_equal_p (operands[2], operands[4]))
11754 : || (rtx_equal_p (operands[1], operands[4])
11755 : && rtx_equal_p (operands[2], operands[3])))
11756 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11757 : #line 394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11758 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11759 : return 3094; /* *minmaxv16hf3_1 */
11760 : break;
11761 :
11762 : case 2:
11763 : if ((
11764 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11765 : (TARGET_SSE && ix86_pre_reload_split ()
11766 : && ((rtx_equal_p (operands[1], operands[3])
11767 : && rtx_equal_p (operands[2], operands[4]))
11768 : || (rtx_equal_p (operands[1], operands[4])
11769 : && rtx_equal_p (operands[2], operands[3])))
11770 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11771 : #line 395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11772 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
11773 : return 3095; /* *minmaxv8hf3_1 */
11774 : break;
11775 :
11776 : case 3:
11777 : if ((
11778 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11779 : (TARGET_SSE && ix86_pre_reload_split ()
11780 : && ((rtx_equal_p (operands[1], operands[3])
11781 : && rtx_equal_p (operands[2], operands[4]))
11782 : || (rtx_equal_p (operands[1], operands[4])
11783 : && rtx_equal_p (operands[2], operands[3])))
11784 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11785 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11786 : (TARGET_AVX512F)))
11787 : return 3096; /* *minmaxv16sf3_1 */
11788 : break;
11789 :
11790 : case 4:
11791 : if (nonimmediate_operand (operands[1], E_V8SFmode)
11792 : && pattern1686 (
11793 : E_V8SFmode) == 0
11794 : && (
11795 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11796 : (TARGET_SSE && ix86_pre_reload_split ()
11797 : && ((rtx_equal_p (operands[1], operands[3])
11798 : && rtx_equal_p (operands[2], operands[4]))
11799 : || (rtx_equal_p (operands[1], operands[4])
11800 : && rtx_equal_p (operands[2], operands[3])))
11801 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11802 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11803 : (TARGET_AVX)))
11804 : return 3097; /* *minmaxv8sf3_1 */
11805 : if (vector_operand (operands[1], E_V8SFmode)
11806 : && pattern1687 (
11807 : E_V8SImode,
11808 : E_V8SFmode) == 0
11809 : && (
11810 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11811 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11812 : /* LT or GE 0 */
11813 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
11814 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11815 : (TARGET_AVX)))
11816 : return 3298; /* *avx_cmpv8sf3_lt */
11817 : break;
11818 :
11819 : case 5:
11820 : if (nonimmediate_operand (operands[1], E_V4SFmode)
11821 : && pattern1686 (
11822 : E_V4SFmode) == 0
11823 : &&
11824 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11825 : (TARGET_SSE && ix86_pre_reload_split ()
11826 : && ((rtx_equal_p (operands[1], operands[3])
11827 : && rtx_equal_p (operands[2], operands[4]))
11828 : || (rtx_equal_p (operands[1], operands[4])
11829 : && rtx_equal_p (operands[2], operands[3])))
11830 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)))
11831 : return 3098; /* *minmaxv4sf3_1 */
11832 : if (vector_operand (operands[1], E_V4SFmode)
11833 : && pattern1687 (
11834 : E_V4SImode,
11835 : E_V4SFmode) == 0
11836 : &&
11837 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11838 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11839 : /* LT or GE 0 */
11840 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))))
11841 : return 3299; /* *avx_cmpv4sf3_lt */
11842 : break;
11843 :
11844 : case 6:
11845 : if ((
11846 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11847 : (TARGET_SSE && ix86_pre_reload_split ()
11848 : && ((rtx_equal_p (operands[1], operands[3])
11849 : && rtx_equal_p (operands[2], operands[4]))
11850 : || (rtx_equal_p (operands[1], operands[4])
11851 : && rtx_equal_p (operands[2], operands[3])))
11852 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11853 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11854 : (TARGET_AVX512F)))
11855 : return 3099; /* *minmaxv8df3_1 */
11856 : break;
11857 :
11858 : case 7:
11859 : if (nonimmediate_operand (operands[1], E_V4DFmode)
11860 : && pattern1686 (
11861 : E_V4DFmode) == 0
11862 : && (
11863 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11864 : (TARGET_SSE && ix86_pre_reload_split ()
11865 : && ((rtx_equal_p (operands[1], operands[3])
11866 : && rtx_equal_p (operands[2], operands[4]))
11867 : || (rtx_equal_p (operands[1], operands[4])
11868 : && rtx_equal_p (operands[2], operands[3])))
11869 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11870 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11871 : (TARGET_AVX)))
11872 : return 3100; /* *minmaxv4df3_1 */
11873 : if (vector_operand (operands[1], E_V4DFmode)
11874 : && pattern1687 (
11875 : E_V4DImode,
11876 : E_V4DFmode) == 0
11877 : && (
11878 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11879 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11880 : /* LT or GE 0 */
11881 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
11882 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11883 : (TARGET_AVX)))
11884 : return 3300; /* *avx_cmpv4df3_lt */
11885 : break;
11886 :
11887 : case 8:
11888 : if (nonimmediate_operand (operands[1], E_V2DFmode)
11889 : && pattern1686 (
11890 : E_V2DFmode) == 0
11891 : && (
11892 : #line 3352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11893 : (TARGET_SSE && ix86_pre_reload_split ()
11894 : && ((rtx_equal_p (operands[1], operands[3])
11895 : && rtx_equal_p (operands[2], operands[4]))
11896 : || (rtx_equal_p (operands[1], operands[4])
11897 : && rtx_equal_p (operands[2], operands[3])))
11898 : && (INTVAL (operands[5]) == 1 || INTVAL (operands[5]) == 14)) &&
11899 : #line 398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11900 : (TARGET_SSE2)))
11901 : return 3101; /* *minmaxv2df3_1 */
11902 : if (vector_operand (operands[1], E_V2DFmode)
11903 : && pattern1687 (
11904 : E_V2DImode,
11905 : E_V2DFmode) == 0
11906 : && (
11907 : #line 4440 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11908 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11909 : /* LT or GE 0 */
11910 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
11911 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11912 : (TARGET_SSE2)))
11913 : return 3301; /* *avx_cmpv2df3_lt */
11914 : break;
11915 :
11916 : case 9:
11917 : if (
11918 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11919 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11920 : /* LT or GE 0 */
11921 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))))
11922 : return 3302; /* *avx_cmpv4si3_ltint */
11923 : break;
11924 :
11925 : case 10:
11926 : if (
11927 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11928 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11929 : /* LT or GE 0 */
11930 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))))
11931 : return 3303; /* *avx_cmpv2di3_ltint */
11932 : break;
11933 :
11934 : case 11:
11935 : if ((
11936 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11937 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11938 : /* LT or GE 0 */
11939 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
11940 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11941 : (TARGET_AVX)))
11942 : return 3304; /* *avx_cmpv8si3_ltint */
11943 : break;
11944 :
11945 : case 12:
11946 : if ((
11947 : #line 4469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11948 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11949 : /* LT or GE 0 */
11950 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
11951 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11952 : (TARGET_AVX)))
11953 : return 3305; /* *avx_cmpv4di3_ltint */
11954 : break;
11955 :
11956 : case 13:
11957 : if ((
11958 : #line 18370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11959 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11960 : /* LT or GE 0 */
11961 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
11962 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))) &&
11963 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11964 : (TARGET_AVX2)))
11965 : return 7951; /* *avx2_pcmpv32qi3_3 */
11966 : break;
11967 :
11968 : case 14:
11969 : if (
11970 : #line 18370 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11971 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11972 : /* LT or GE 0 */
11973 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[2]))
11974 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[1])))))
11975 : return 7952; /* *avx2_pcmpv16qi3_3 */
11976 : break;
11977 :
11978 : default:
11979 : break;
11980 : }
11981 : if (GET_CODE (x6) != SUBREG)
11982 : return -1;
11983 : switch (pattern1479 (x2))
11984 : {
11985 : case 0:
11986 : if (!
11987 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11988 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11989 : /* not LT or GE 0 */
11990 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))))
11991 : return -1;
11992 : return 3306; /* *avx_cmpv4si3_ltint_not */
11993 :
11994 : case 1:
11995 : if (!
11996 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
11997 : (TARGET_AVX512VL && ix86_pre_reload_split ()
11998 : /* not LT or GE 0 */
11999 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))))
12000 : return -1;
12001 : return 3307; /* *avx_cmpv2di3_ltint_not */
12002 :
12003 : case 2:
12004 : if (!(
12005 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12006 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12007 : /* not LT or GE 0 */
12008 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
12009 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12010 : (TARGET_AVX)))
12011 : return -1;
12012 : return 3308; /* *avx_cmpv8si3_ltint_not */
12013 :
12014 : case 3:
12015 : if (!(
12016 : #line 4504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12017 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12018 : /* not LT or GE 0 */
12019 : && ((INTVAL (operands[5]) == 1) || (INTVAL (operands[5]) == 5))) &&
12020 : #line 608 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12021 : (TARGET_AVX)))
12022 : return -1;
12023 : return 3309; /* *avx_cmpv4di3_ltint_not */
12024 :
12025 : case 4:
12026 : if (!(
12027 : #line 18399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12028 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12029 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
12030 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 32
12031 : /* LT or GE 0 */
12032 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
12033 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
12034 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12035 : (TARGET_AVX2)))
12036 : return -1;
12037 : return 7953; /* *avx2_pcmpv32qi3_4 */
12038 :
12039 : case 5:
12040 : if (!
12041 : #line 18399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12042 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12043 : && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_INT
12044 : && GET_MODE_SIZE (GET_MODE (operands[3])) == 16
12045 : /* LT or GE 0 */
12046 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
12047 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))))
12048 : return -1;
12049 : return 7954; /* *avx2_pcmpv16qi3_4 */
12050 :
12051 : default:
12052 : return -1;
12053 : }
12054 :
12055 : case 1:
12056 : if (!(
12057 : #line 18431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12058 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12059 : /* LT or GE 0 */
12060 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
12061 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))) &&
12062 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12063 : (TARGET_AVX2)))
12064 : return -1;
12065 : return 7955; /* *avx2_pcmpv32qi3_5 */
12066 :
12067 : case 2:
12068 : if (!
12069 : #line 18431 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12070 : (TARGET_AVX512VL && ix86_pre_reload_split ()
12071 : /* LT or GE 0 */
12072 : && ((INTVAL (operands[5]) == 1 && !MEM_P (operands[1]))
12073 : || (INTVAL (operands[5]) == 5 && !MEM_P (operands[2])))))
12074 : return -1;
12075 : return 7956; /* *avx2_pcmpv16qi3_5 */
12076 :
12077 : default:
12078 : return -1;
12079 : }
12080 :
12081 : default:
12082 : return -1;
12083 : }
12084 :
12085 : case VEC_DUPLICATE:
12086 : x5 = XEXP (x2, 0);
12087 : operands[1] = x5;
12088 : x7 = XEXP (x3, 0);
12089 : operands[2] = x7;
12090 : x4 = XEXP (x2, 2);
12091 : operands[3] = x4;
12092 : if (!const_int_operand (operands[3], E_SImode))
12093 : return -1;
12094 : switch (GET_MODE (operands[0]))
12095 : {
12096 : case E_V8DFmode:
12097 : if (pattern1132 (x2,
12098 : E_V2DFmode,
12099 : E_V8DFmode) != 0
12100 : || !(
12101 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12102 : (TARGET_AVX512F) &&
12103 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12104 : (TARGET_AVX512DQ)))
12105 : return -1;
12106 : return 8434; /* *avx512dq_vinsertf64x2_1 */
12107 :
12108 : case E_V8DImode:
12109 : if (pattern1132 (x2,
12110 : E_V2DImode,
12111 : E_V8DImode) != 0
12112 : || !(
12113 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12114 : (TARGET_AVX512F) &&
12115 : #line 12722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12116 : (TARGET_AVX512DQ)))
12117 : return -1;
12118 : return 8436; /* *avx512dq_vinserti64x2_1 */
12119 :
12120 : case E_V16SFmode:
12121 : if (pattern1132 (x2,
12122 : E_V4SFmode,
12123 : E_V16SFmode) != 0
12124 : || !
12125 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12126 : (TARGET_AVX512F))
12127 : return -1;
12128 : return 8438; /* *avx512f_vinsertf32x4_1 */
12129 :
12130 : case E_V16SImode:
12131 : if (pattern1132 (x2,
12132 : E_V4SImode,
12133 : E_V16SImode) != 0
12134 : || !
12135 : #line 20377 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12136 : (TARGET_AVX512F))
12137 : return -1;
12138 : return 8440; /* *avx512f_vinserti32x4_1 */
12139 :
12140 : default:
12141 : return -1;
12142 : }
12143 :
12144 : default:
12145 : return -1;
12146 : }
12147 : }
12148 :
12149 : int
12150 : recog_174 (rtx x1 ATTRIBUTE_UNUSED,
12151 : rtx_insn *insn ATTRIBUTE_UNUSED,
12152 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12153 : {
12154 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12155 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12156 : rtx x10, x11, x12, x13, x14;
12157 : int res ATTRIBUTE_UNUSED;
12158 : x2 = XEXP (x1, 1);
12159 : x3 = XEXP (x2, 0);
12160 : x4 = XEXP (x3, 1);
12161 : if (pattern929 (x4) != 0)
12162 : return -1;
12163 : x5 = XEXP (x2, 1);
12164 : operands[2] = x5;
12165 : x6 = XEXP (x2, 2);
12166 : operands[3] = x6;
12167 : if (!register_operand (operands[3], E_QImode))
12168 : return -1;
12169 : x7 = XVECEXP (x4, 0, 0);
12170 : switch (XWINT (x7, 0))
12171 : {
12172 : case 8L:
12173 : x8 = XVECEXP (x4, 0, 1);
12174 : if (XWINT (x8, 0) != 9L)
12175 : return -1;
12176 : x9 = XVECEXP (x4, 0, 2);
12177 : if (XWINT (x9, 0) != 10L)
12178 : return -1;
12179 : x10 = XVECEXP (x4, 0, 3);
12180 : if (XWINT (x10, 0) != 11L)
12181 : return -1;
12182 : x11 = XVECEXP (x4, 0, 4);
12183 : if (XWINT (x11, 0) != 12L)
12184 : return -1;
12185 : x12 = XVECEXP (x4, 0, 5);
12186 : if (XWINT (x12, 0) != 13L)
12187 : return -1;
12188 : x13 = XVECEXP (x4, 0, 6);
12189 : if (XWINT (x13, 0) != 14L)
12190 : return -1;
12191 : x14 = XVECEXP (x4, 0, 7);
12192 : if (XWINT (x14, 0) != 15L)
12193 : return -1;
12194 : switch (pattern1852 (x2))
12195 : {
12196 : case 0:
12197 : if (!
12198 : #line 13016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12199 : (TARGET_AVX512DQ
12200 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12201 : return -1;
12202 : return 5366; /* vec_extract_hi_v16sf_mask */
12203 :
12204 : case 1:
12205 : if (!
12206 : #line 13016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12207 : (TARGET_AVX512DQ
12208 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12209 : return -1;
12210 : return 5367; /* vec_extract_hi_v16si_mask */
12211 :
12212 : default:
12213 : return -1;
12214 : }
12215 :
12216 : case 0L:
12217 : x8 = XVECEXP (x4, 0, 1);
12218 : if (XWINT (x8, 0) != 1L
12219 : || pattern1567 (x4) != 0)
12220 : return -1;
12221 : switch (pattern1852 (x2))
12222 : {
12223 : case 0:
12224 : if (!
12225 : #line 13120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12226 : (TARGET_AVX512DQ
12227 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12228 : return -1;
12229 : return 5370; /* vec_extract_lo_v16sf_mask */
12230 :
12231 : case 1:
12232 : if (!
12233 : #line 13120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12234 : (TARGET_AVX512DQ
12235 : && (!MEM_P (operands[0]) || rtx_equal_p (operands[0], operands[2]))))
12236 : return -1;
12237 : return 5371; /* vec_extract_lo_v16si_mask */
12238 :
12239 : default:
12240 : return -1;
12241 : }
12242 :
12243 : default:
12244 : return -1;
12245 : }
12246 : }
12247 :
12248 : int
12249 : recog_178 (rtx x1 ATTRIBUTE_UNUSED,
12250 : rtx_insn *insn ATTRIBUTE_UNUSED,
12251 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12252 : {
12253 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12254 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
12255 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
12256 : rtx x18, x19, x20;
12257 : int res ATTRIBUTE_UNUSED;
12258 : x2 = XEXP (x1, 1);
12259 : x3 = XEXP (x2, 0);
12260 : x4 = XEXP (x3, 1);
12261 : x5 = XVECEXP (x4, 0, 1);
12262 : operands[3] = x5;
12263 : x6 = XVECEXP (x4, 0, 2);
12264 : operands[4] = x6;
12265 : x7 = XVECEXP (x4, 0, 3);
12266 : operands[5] = x7;
12267 : x8 = XVECEXP (x4, 0, 5);
12268 : operands[7] = x8;
12269 : x9 = XVECEXP (x4, 0, 6);
12270 : operands[8] = x9;
12271 : x10 = XVECEXP (x4, 0, 7);
12272 : operands[9] = x10;
12273 : x11 = XVECEXP (x4, 0, 8);
12274 : operands[10] = x11;
12275 : x12 = XVECEXP (x4, 0, 9);
12276 : operands[11] = x12;
12277 : x13 = XVECEXP (x4, 0, 10);
12278 : operands[12] = x13;
12279 : x14 = XVECEXP (x4, 0, 11);
12280 : operands[13] = x14;
12281 : x15 = XVECEXP (x4, 0, 12);
12282 : operands[14] = x15;
12283 : x16 = XVECEXP (x4, 0, 13);
12284 : operands[15] = x16;
12285 : x17 = XVECEXP (x4, 0, 14);
12286 : operands[16] = x17;
12287 : x18 = XVECEXP (x4, 0, 15);
12288 : operands[17] = x18;
12289 : x19 = XEXP (x2, 1);
12290 : operands[18] = x19;
12291 : x20 = XEXP (x2, 2);
12292 : operands[19] = x20;
12293 : if (!register_operand (operands[19], E_HImode))
12294 : return -1;
12295 : switch (GET_MODE (operands[0]))
12296 : {
12297 : case E_V16SFmode:
12298 : if (!register_operand (operands[0], E_V16SFmode)
12299 : || GET_MODE (x2) != E_V16SFmode
12300 : || GET_MODE (x3) != E_V16SFmode
12301 : || !register_operand (operands[1], E_V16SFmode)
12302 : || pattern1883 () != 0
12303 : || !nonimm_or_0_operand (operands[18], E_V16SFmode)
12304 : || !(
12305 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12306 : (TARGET_AVX512F) &&
12307 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12308 : (TARGET_AVX512F
12309 : && (INTVAL (operands[2]) & 3) == 0
12310 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12311 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
12312 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
12313 : && (INTVAL (operands[6]) & 3) == 0
12314 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
12315 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
12316 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
12317 : && (INTVAL (operands[10]) & 3) == 0
12318 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
12319 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
12320 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
12321 : && (INTVAL (operands[14]) & 3) == 0
12322 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
12323 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
12324 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3)))
12325 : return -1;
12326 : return 8479; /* *avx512f_shuf_f32x4_1_mask_1 */
12327 :
12328 : case E_V16SImode:
12329 : if (!register_operand (operands[0], E_V16SImode)
12330 : || GET_MODE (x2) != E_V16SImode
12331 : || GET_MODE (x3) != E_V16SImode
12332 : || !nonimm_or_0_operand (operands[18], E_V16SImode))
12333 : return -1;
12334 : if (register_operand (operands[1], E_V16SImode)
12335 : && pattern1883 () == 0
12336 : && (
12337 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12338 : (TARGET_AVX512F) &&
12339 : #line 20805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12340 : (TARGET_AVX512F
12341 : && (INTVAL (operands[2]) & 3) == 0
12342 : && INTVAL (operands[2]) == INTVAL (operands[3]) - 1
12343 : && INTVAL (operands[2]) == INTVAL (operands[4]) - 2
12344 : && INTVAL (operands[2]) == INTVAL (operands[5]) - 3
12345 : && (INTVAL (operands[6]) & 3) == 0
12346 : && INTVAL (operands[6]) == INTVAL (operands[7]) - 1
12347 : && INTVAL (operands[6]) == INTVAL (operands[8]) - 2
12348 : && INTVAL (operands[6]) == INTVAL (operands[9]) - 3
12349 : && (INTVAL (operands[10]) & 3) == 0
12350 : && INTVAL (operands[10]) == INTVAL (operands[11]) - 1
12351 : && INTVAL (operands[10]) == INTVAL (operands[12]) - 2
12352 : && INTVAL (operands[10]) == INTVAL (operands[13]) - 3
12353 : && (INTVAL (operands[14]) & 3) == 0
12354 : && INTVAL (operands[14]) == INTVAL (operands[15]) - 1
12355 : && INTVAL (operands[14]) == INTVAL (operands[16]) - 2
12356 : && INTVAL (operands[14]) == INTVAL (operands[17]) - 3)))
12357 : return 8481; /* *avx512f_shuf_i32x4_1_mask_1 */
12358 : if (!nonimmediate_operand (operands[1], E_V16SImode)
12359 : || pattern1837 () != 0
12360 : || !const_8_to_11_operand (operands[10], E_VOIDmode)
12361 : || !const_8_to_11_operand (operands[11], E_VOIDmode)
12362 : || !const_8_to_11_operand (operands[12], E_VOIDmode)
12363 : || !const_8_to_11_operand (operands[13], E_VOIDmode)
12364 : || !const_12_to_15_operand (operands[14], E_VOIDmode)
12365 : || !const_12_to_15_operand (operands[15], E_VOIDmode)
12366 : || !const_12_to_15_operand (operands[16], E_VOIDmode)
12367 : || !const_12_to_15_operand (operands[17], E_VOIDmode)
12368 : || !(
12369 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12370 : (TARGET_AVX512F) &&
12371 : #line 20887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12372 : (TARGET_AVX512F
12373 : && INTVAL (operands[2]) + 4 == INTVAL (operands[6])
12374 : && INTVAL (operands[3]) + 4 == INTVAL (operands[7])
12375 : && INTVAL (operands[4]) + 4 == INTVAL (operands[8])
12376 : && INTVAL (operands[5]) + 4 == INTVAL (operands[9])
12377 : && INTVAL (operands[2]) + 8 == INTVAL (operands[10])
12378 : && INTVAL (operands[3]) + 8 == INTVAL (operands[11])
12379 : && INTVAL (operands[4]) + 8 == INTVAL (operands[12])
12380 : && INTVAL (operands[5]) + 8 == INTVAL (operands[13])
12381 : && INTVAL (operands[2]) + 12 == INTVAL (operands[14])
12382 : && INTVAL (operands[3]) + 12 == INTVAL (operands[15])
12383 : && INTVAL (operands[4]) + 12 == INTVAL (operands[16])
12384 : && INTVAL (operands[5]) + 12 == INTVAL (operands[17]))))
12385 : return -1;
12386 : return 8483; /* avx512f_pshufd_1_mask */
12387 :
12388 : default:
12389 : return -1;
12390 : }
12391 : }
12392 :
12393 : int
12394 : recog_189 (rtx x1 ATTRIBUTE_UNUSED,
12395 : rtx_insn *insn ATTRIBUTE_UNUSED,
12396 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12397 : {
12398 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12399 : rtx x2, x3, x4, x5, x6, x7;
12400 : int res ATTRIBUTE_UNUSED;
12401 : x2 = XEXP (x1, 1);
12402 : x3 = XEXP (x2, 0);
12403 : x4 = XEXP (x3, 0);
12404 : operands[1] = x4;
12405 : x5 = XEXP (x3, 1);
12406 : operands[2] = x5;
12407 : x6 = XEXP (x2, 1);
12408 : operands[3] = x6;
12409 : x7 = XEXP (x2, 2);
12410 : operands[4] = x7;
12411 : switch (GET_MODE (operands[0]))
12412 : {
12413 : case E_V16HImode:
12414 : if (pattern135 (x2,
12415 : E_HImode,
12416 : E_V16HImode) != 0)
12417 : return -1;
12418 : if (nonimmediate_operand (operands[1], E_V16HImode)
12419 : && nonmemory_operand (operands[2], E_DImode)
12420 : && (
12421 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12422 : (TARGET_AVX512F) && (
12423 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12424 : (TARGET_AVX512VL) &&
12425 : #line 785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12426 : (TARGET_AVX512BW))))
12427 : return 7646; /* ashrv16hi3_mask */
12428 : if (!register_operand (operands[1], E_V16HImode)
12429 : || !nonimmediate_operand (operands[2], E_V16HImode)
12430 : || !(
12431 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12432 : (TARGET_AVX512F) && (
12433 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12434 : (TARGET_AVX512BW) &&
12435 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12436 : (TARGET_AVX512VL))))
12437 : return -1;
12438 : return 9642; /* avx512vl_ashrvv16hi_mask */
12439 :
12440 : case E_V8HImode:
12441 : if (pattern135 (x2,
12442 : E_QImode,
12443 : E_V8HImode) != 0)
12444 : return -1;
12445 : if (nonimmediate_operand (operands[1], E_V8HImode)
12446 : && nonmemory_operand (operands[2], E_DImode)
12447 : && (
12448 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12449 : (TARGET_AVX512F) && (
12450 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12451 : (TARGET_AVX512VL) &&
12452 : #line 785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12453 : (TARGET_AVX512BW))))
12454 : return 7648; /* ashrv8hi3_mask */
12455 : if (!register_operand (operands[1], E_V8HImode)
12456 : || !nonimmediate_operand (operands[2], E_V8HImode)
12457 : || !(
12458 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12459 : (TARGET_AVX512F) && (
12460 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12461 : (TARGET_AVX512BW) &&
12462 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12463 : (TARGET_AVX512VL))))
12464 : return -1;
12465 : return 9640; /* avx512vl_ashrvv8hi_mask */
12466 :
12467 : case E_V8SImode:
12468 : if (pattern135 (x2,
12469 : E_QImode,
12470 : E_V8SImode) != 0)
12471 : return -1;
12472 : if (nonimmediate_operand (operands[1], E_V8SImode)
12473 : && nonmemory_operand (operands[2], E_DImode)
12474 : && (
12475 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12476 : (TARGET_AVX512F) &&
12477 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12478 : (TARGET_AVX512VL)))
12479 : return 7650; /* ashrv8si3_mask */
12480 : if (!register_operand (operands[1], E_V8SImode)
12481 : || !nonimmediate_operand (operands[2], E_V8SImode)
12482 : || !(
12483 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12484 : (TARGET_AVX512F) &&
12485 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12486 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
12487 : return -1;
12488 : return 9630; /* avx2_ashrvv8si_mask */
12489 :
12490 : case E_V4SImode:
12491 : if (pattern135 (x2,
12492 : E_QImode,
12493 : E_V4SImode) != 0)
12494 : return -1;
12495 : if (nonimmediate_operand (operands[1], E_V4SImode)
12496 : && nonmemory_operand (operands[2], E_DImode)
12497 : && (
12498 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12499 : (TARGET_AVX512F) &&
12500 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12501 : (TARGET_AVX512VL)))
12502 : return 7652; /* ashrv4si3_mask */
12503 : if (!register_operand (operands[1], E_V4SImode)
12504 : || !nonimmediate_operand (operands[2], E_V4SImode)
12505 : || !(
12506 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12507 : (TARGET_AVX512F) &&
12508 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12509 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
12510 : return -1;
12511 : return 9628; /* avx2_ashrvv4si_mask */
12512 :
12513 : case E_V2DImode:
12514 : if (pattern135 (x2,
12515 : E_QImode,
12516 : E_V2DImode) != 0)
12517 : return -1;
12518 : if (nonimmediate_operand (operands[1], E_V2DImode)
12519 : && nonmemory_operand (operands[2], E_DImode)
12520 : && (
12521 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12522 : (TARGET_AVX512F) &&
12523 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12524 : (TARGET_AVX512VL)))
12525 : return 7654; /* ashrv2di3_mask */
12526 : if (!register_operand (operands[1], E_V2DImode)
12527 : || !nonimmediate_operand (operands[2], E_V2DImode)
12528 : || !(
12529 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12530 : (TARGET_AVX512F) && (
12531 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12532 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL)) &&
12533 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12534 : (TARGET_AVX512VL))))
12535 : return -1;
12536 : return 9634; /* avx2_ashrvv2di_mask */
12537 :
12538 : case E_V32HImode:
12539 : if (pattern135 (x2,
12540 : E_SImode,
12541 : E_V32HImode) != 0)
12542 : return -1;
12543 : if (nonimmediate_operand (operands[1], E_V32HImode)
12544 : && nonmemory_operand (operands[2], E_DImode)
12545 : && (
12546 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12547 : (TARGET_AVX512F) && (
12548 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12549 : (TARGET_AVX512F) &&
12550 : #line 780 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12551 : (TARGET_AVX512BW))))
12552 : return 7664; /* ashrv32hi3_mask */
12553 : if (!register_operand (operands[1], E_V32HImode)
12554 : || !nonimmediate_operand (operands[2], E_V32HImode)
12555 : || !(
12556 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12557 : (TARGET_AVX512F) &&
12558 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12559 : (TARGET_AVX512BW)))
12560 : return -1;
12561 : return 9644; /* avx512bw_ashrvv32hi_mask */
12562 :
12563 : case E_V4DImode:
12564 : if (pattern135 (x2,
12565 : E_QImode,
12566 : E_V4DImode) != 0)
12567 : return -1;
12568 : if (nonimmediate_operand (operands[1], E_V4DImode)
12569 : && nonmemory_operand (operands[2], E_DImode)
12570 : && (
12571 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12572 : (TARGET_AVX512F) && (
12573 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12574 : (TARGET_AVX512F) &&
12575 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12576 : (TARGET_AVX512VL))))
12577 : return 7666; /* ashrv4di3_mask */
12578 : if (!register_operand (operands[1], E_V4DImode)
12579 : || !nonimmediate_operand (operands[2], E_V4DImode)
12580 : || !(
12581 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12582 : (TARGET_AVX512F) && (
12583 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12584 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL)) &&
12585 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12586 : (TARGET_AVX512VL))))
12587 : return -1;
12588 : return 9636; /* avx2_ashrvv4di_mask */
12589 :
12590 : case E_V16SImode:
12591 : if (pattern135 (x2,
12592 : E_HImode,
12593 : E_V16SImode) != 0)
12594 : return -1;
12595 : if (nonimmediate_operand (operands[1], E_V16SImode)
12596 : && nonmemory_operand (operands[2], E_DImode)
12597 : &&
12598 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12599 : (TARGET_AVX512F))
12600 : return 7668; /* ashrv16si3_mask */
12601 : if (!register_operand (operands[1], E_V16SImode)
12602 : || !nonimmediate_operand (operands[2], E_V16SImode)
12603 : || !(
12604 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12605 : (TARGET_AVX512F) && (
12606 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12607 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
12608 : #line 674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12609 : (TARGET_AVX512F))))
12610 : return -1;
12611 : return 9632; /* avx512f_ashrvv16si_mask */
12612 :
12613 : case E_V8DImode:
12614 : if (pattern135 (x2,
12615 : E_QImode,
12616 : E_V8DImode) != 0)
12617 : return -1;
12618 : if (nonimmediate_operand (operands[1], E_V8DImode)
12619 : && nonmemory_operand (operands[2], E_DImode)
12620 : &&
12621 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12622 : (TARGET_AVX512F))
12623 : return 7670; /* ashrv8di3_mask */
12624 : if (!register_operand (operands[1], E_V8DImode)
12625 : || !nonimmediate_operand (operands[2], E_V8DImode)
12626 : || !(
12627 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12628 : (TARGET_AVX512F) && (
12629 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12630 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
12631 : #line 676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12632 : (TARGET_AVX512F))))
12633 : return -1;
12634 : return 9638; /* avx512f_ashrvv8di_mask */
12635 :
12636 : default:
12637 : return -1;
12638 : }
12639 : }
12640 :
12641 : int
12642 : recog_191 (rtx x1 ATTRIBUTE_UNUSED,
12643 : rtx_insn *insn ATTRIBUTE_UNUSED,
12644 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12645 : {
12646 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12647 : rtx x2;
12648 : int res ATTRIBUTE_UNUSED;
12649 : x2 = XEXP (x1, 1);
12650 : switch (pattern148 (x2))
12651 : {
12652 : case 0:
12653 : if (nonimmediate_operand (operands[1], E_V16HImode)
12654 : && nonmemory_operand (operands[2], E_DImode)
12655 : && (
12656 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12657 : (TARGET_AVX512F) && (
12658 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12659 : (TARGET_AVX512VL) &&
12660 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12661 : (TARGET_AVX512BW))))
12662 : return 7683; /* lshrv16hi3_mask */
12663 : if (!register_operand (operands[1], E_V16HImode)
12664 : || !nonimmediate_operand (operands[2], E_V16HImode)
12665 : || !(
12666 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12667 : (TARGET_AVX512F) && (
12668 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12669 : (TARGET_AVX512BW) &&
12670 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12671 : (TARGET_AVX512VL))))
12672 : return -1;
12673 : return 9676; /* avx512vl_lshrvv16hi_mask */
12674 :
12675 : case 1:
12676 : if (nonimmediate_operand (operands[1], E_V8HImode)
12677 : && nonmemory_operand (operands[2], E_DImode)
12678 : && (
12679 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12680 : (TARGET_AVX512F) && (
12681 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12682 : (TARGET_AVX512VL) &&
12683 : #line 790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12684 : (TARGET_AVX512BW))))
12685 : return 7687; /* lshrv8hi3_mask */
12686 : if (!register_operand (operands[1], E_V8HImode)
12687 : || !nonimmediate_operand (operands[2], E_V8HImode)
12688 : || !(
12689 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12690 : (TARGET_AVX512F) && (
12691 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12692 : (TARGET_AVX512BW) &&
12693 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12694 : (TARGET_AVX512VL))))
12695 : return -1;
12696 : return 9672; /* avx512vl_lshrvv8hi_mask */
12697 :
12698 : case 2:
12699 : if (nonimmediate_operand (operands[1], E_V8SImode)
12700 : && nonmemory_operand (operands[2], E_DImode)
12701 : && (
12702 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12703 : (TARGET_AVX512F) &&
12704 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12705 : (TARGET_AVX512VL)))
12706 : return 7691; /* lshrv8si3_mask */
12707 : if (!register_operand (operands[1], E_V8SImode)
12708 : || !nonimmediate_operand (operands[2], E_V8SImode)
12709 : || !(
12710 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12711 : (TARGET_AVX512F) &&
12712 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12713 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
12714 : return -1;
12715 : return 9652; /* avx2_lshrvv8si_mask */
12716 :
12717 : case 3:
12718 : if (nonimmediate_operand (operands[1], E_V4SImode)
12719 : && nonmemory_operand (operands[2], E_DImode)
12720 : && (
12721 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12722 : (TARGET_AVX512F) &&
12723 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12724 : (TARGET_AVX512VL)))
12725 : return 7695; /* lshrv4si3_mask */
12726 : if (!register_operand (operands[1], E_V4SImode)
12727 : || !nonimmediate_operand (operands[2], E_V4SImode)
12728 : || !(
12729 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12730 : (TARGET_AVX512F) &&
12731 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12732 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
12733 : return -1;
12734 : return 9656; /* avx2_lshrvv4si_mask */
12735 :
12736 : case 4:
12737 : if (nonimmediate_operand (operands[1], E_V4DImode)
12738 : && nonmemory_operand (operands[2], E_DImode)
12739 : && (
12740 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12741 : (TARGET_AVX512F) &&
12742 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12743 : (TARGET_AVX512VL)))
12744 : return 7699; /* lshrv4di3_mask */
12745 : if (!register_operand (operands[1], E_V4DImode)
12746 : || !nonimmediate_operand (operands[2], E_V4DImode)
12747 : || !(
12748 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12749 : (TARGET_AVX512F) &&
12750 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12751 : (TARGET_AVX2 && (32 == 64 || TARGET_AVX512VL))))
12752 : return -1;
12753 : return 9664; /* avx2_lshrvv4di_mask */
12754 :
12755 : case 5:
12756 : if (nonimmediate_operand (operands[1], E_V2DImode)
12757 : && nonmemory_operand (operands[2], E_DImode)
12758 : && (
12759 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12760 : (TARGET_AVX512F) &&
12761 : #line 17615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12762 : (TARGET_AVX512VL)))
12763 : return 7703; /* lshrv2di3_mask */
12764 : if (!register_operand (operands[1], E_V2DImode)
12765 : || !nonimmediate_operand (operands[2], E_V2DImode)
12766 : || !(
12767 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12768 : (TARGET_AVX512F) &&
12769 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12770 : (TARGET_AVX2 && (16 == 64 || TARGET_AVX512VL))))
12771 : return -1;
12772 : return 9668; /* avx2_lshrvv2di_mask */
12773 :
12774 : case 6:
12775 : if (nonimmediate_operand (operands[1], E_V32HImode)
12776 : && nonmemory_operand (operands[2], E_DImode)
12777 : && (
12778 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12779 : (TARGET_AVX512F) && (
12780 : #line 17703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12781 : (TARGET_AVX512F) &&
12782 : #line 777 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12783 : (TARGET_AVX512BW))))
12784 : return 7723; /* lshrv32hi3_mask */
12785 : if (!register_operand (operands[1], E_V32HImode)
12786 : || !nonimmediate_operand (operands[2], E_V32HImode)
12787 : || !(
12788 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12789 : (TARGET_AVX512F) &&
12790 : #line 29636 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12791 : (TARGET_AVX512BW)))
12792 : return -1;
12793 : return 9680; /* avx512bw_lshrvv32hi_mask */
12794 :
12795 : case 7:
12796 : if (nonimmediate_operand (operands[1], E_V16SImode)
12797 : && nonmemory_operand (operands[2], E_DImode)
12798 : &&
12799 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12800 : (TARGET_AVX512F))
12801 : return 7727; /* lshrv16si3_mask */
12802 : if (!register_operand (operands[1], E_V16SImode)
12803 : || !nonimmediate_operand (operands[2], E_V16SImode)
12804 : || !(
12805 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12806 : (TARGET_AVX512F) && (
12807 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12808 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
12809 : #line 795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12810 : (TARGET_AVX512F))))
12811 : return -1;
12812 : return 9648; /* avx512f_lshrvv16si_mask */
12813 :
12814 : case 8:
12815 : if (nonimmediate_operand (operands[1], E_V8DImode)
12816 : && nonmemory_operand (operands[2], E_DImode)
12817 : &&
12818 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12819 : (TARGET_AVX512F))
12820 : return 7731; /* lshrv8di3_mask */
12821 : if (!register_operand (operands[1], E_V8DImode)
12822 : || !nonimmediate_operand (operands[2], E_V8DImode)
12823 : || !(
12824 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12825 : (TARGET_AVX512F) && (
12826 : #line 29625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12827 : (TARGET_AVX2 && (64 == 64 || TARGET_AVX512VL)) &&
12828 : #line 796 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12829 : (TARGET_AVX512F))))
12830 : return -1;
12831 : return 9660; /* avx512f_lshrvv8di_mask */
12832 :
12833 : default:
12834 : return -1;
12835 : }
12836 : }
12837 :
12838 : int
12839 : recog_197 (rtx x1 ATTRIBUTE_UNUSED,
12840 : rtx_insn *insn ATTRIBUTE_UNUSED,
12841 : int *pnum_clobbers ATTRIBUTE_UNUSED)
12842 : {
12843 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
12844 : rtx x2, x3, x4, x5;
12845 : int res ATTRIBUTE_UNUSED;
12846 : x2 = XEXP (x1, 1);
12847 : switch (pattern157 (x2))
12848 : {
12849 : case 0:
12850 : if (!(
12851 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12852 : (TARGET_AVX512F) &&
12853 : #line 24466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12854 : (TARGET_AVX2 && TARGET_AVX512BW && TARGET_AVX512VL)))
12855 : return -1;
12856 : return 8799; /* avx2_sign_extendv16qiv16hi2_mask */
12857 :
12858 : case 1:
12859 : if (!(
12860 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12861 : (TARGET_AVX512F) &&
12862 : #line 24520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12863 : (TARGET_AVX512BW)))
12864 : return -1;
12865 : return 8807; /* avx512bw_sign_extendv32qiv32hi2_mask */
12866 :
12867 : case 2:
12868 : if (!(
12869 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12870 : (TARGET_AVX512F) &&
12871 : #line 24590 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12872 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
12873 : return -1;
12874 : return 8819; /* *sse4_1_sign_extendv8qiv8hi2_mask_1 */
12875 :
12876 : case 3:
12877 : if (!
12878 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12879 : (TARGET_AVX512F))
12880 : return -1;
12881 : return 8831; /* avx512f_sign_extendv16qiv16si2_mask */
12882 :
12883 : case 4:
12884 : if (!
12885 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12886 : (TARGET_AVX512F))
12887 : return -1;
12888 : return 8861; /* avx512f_sign_extendv16hiv16si2_mask */
12889 :
12890 : case 5:
12891 : if (!(
12892 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12893 : (TARGET_AVX512F) &&
12894 : #line 24773 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12895 : (TARGET_AVX2 && TARGET_AVX512VL)))
12896 : return -1;
12897 : return 8839; /* *avx2_sign_extendv8qiv8si2_mask_1 */
12898 :
12899 : case 6:
12900 : if (!(
12901 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12902 : (TARGET_AVX512F) &&
12903 : #line 24993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12904 : (TARGET_AVX2 && TARGET_AVX512VL)))
12905 : return -1;
12906 : return 8869; /* avx2_sign_extendv8hiv8si2_mask */
12907 :
12908 : case 7:
12909 : if (!(
12910 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12911 : (TARGET_AVX512F) &&
12912 : #line 24861 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12913 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12914 : return -1;
12915 : return 8851; /* *sse4_1_sign_extendv4qiv4si2_mask_1 */
12916 :
12917 : case 8:
12918 : if (!(
12919 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12920 : (TARGET_AVX512F) &&
12921 : #line 25063 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12922 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12923 : return -1;
12924 : return 8881; /* *sse4_1_sign_extendv4hiv4si2_mask_1 */
12925 :
12926 : case 9:
12927 : if (!
12928 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12929 : (TARGET_AVX512F))
12930 : return -1;
12931 : return 8897; /* *avx512f_sign_extendv8qiv8di2_mask_1 */
12932 :
12933 : case 10:
12934 : if (!
12935 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12936 : (TARGET_AVX512F))
12937 : return -1;
12938 : return 8928; /* avx512f_sign_extendv8hiv8di2_mask */
12939 :
12940 : case 11:
12941 : if (!
12942 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12943 : (TARGET_AVX512F))
12944 : return -1;
12945 : return 8956; /* avx512f_sign_extendv8siv8di2_mask */
12946 :
12947 : case 12:
12948 : if (!(
12949 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12950 : (TARGET_AVX512F) &&
12951 : #line 25303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12952 : (TARGET_AVX2 && TARGET_AVX512VL)))
12953 : return -1;
12954 : return 8909; /* *avx2_sign_extendv4qiv4di2_mask_1 */
12955 :
12956 : case 13:
12957 : if (!(
12958 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12959 : (TARGET_AVX512F) &&
12960 : #line 25475 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12961 : (TARGET_AVX2 && TARGET_AVX512VL)))
12962 : return -1;
12963 : return 8936; /* *avx2_sign_extendv4hiv4di2_mask_1 */
12964 :
12965 : case 14:
12966 : if (!(
12967 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12968 : (TARGET_AVX512F) &&
12969 : #line 25686 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12970 : (TARGET_AVX2 && TARGET_AVX512VL)))
12971 : return -1;
12972 : return 8962; /* avx2_sign_extendv4siv4di2_mask */
12973 :
12974 : case 15:
12975 : if (!(
12976 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12977 : (TARGET_AVX512F) &&
12978 : #line 25394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12979 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12980 : return -1;
12981 : return 8921; /* *sse4_1_sign_extendv2qiv2di2_mask_1 */
12982 :
12983 : case 16:
12984 : if (!(
12985 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12986 : (TARGET_AVX512F) &&
12987 : #line 25558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12988 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12989 : return -1;
12990 : return 8948; /* *sse4_1_sign_extendv2hiv2di2_mask_1 */
12991 :
12992 : case 17:
12993 : if (!(
12994 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
12995 : (TARGET_AVX512F) &&
12996 : #line 25752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
12997 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
12998 : return -1;
12999 : return 8972; /* *sse4_1_sign_extendv2siv2di2_mask_1 */
13000 :
13001 : case 18:
13002 : x3 = XEXP (x2, 0);
13003 : x4 = XEXP (x3, 0);
13004 : x5 = XEXP (x4, 0);
13005 : operands[1] = x5;
13006 : switch (pattern907 (x2))
13007 : {
13008 : case 0:
13009 : if ((
13010 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13011 : (TARGET_AVX512F) &&
13012 : #line 24578 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13013 : (TARGET_SSE4_1 && TARGET_AVX512BW && TARGET_AVX512VL)))
13014 : return 8815; /* sse4_1_sign_extendv8qiv8hi2_mask */
13015 : break;
13016 :
13017 : case 1:
13018 : if ((
13019 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13020 : (TARGET_AVX512F) &&
13021 : #line 24762 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13022 : (TARGET_AVX2 && TARGET_AVX512VL)))
13023 : return 8835; /* avx2_sign_extendv8qiv8si2_mask */
13024 : break;
13025 :
13026 : case 2:
13027 : if (
13028 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13029 : (TARGET_AVX512F))
13030 : return 8893; /* avx512f_sign_extendv8qiv8di2_mask */
13031 : break;
13032 :
13033 : case 3:
13034 : if ((
13035 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13036 : (TARGET_AVX512F) &&
13037 : #line 24849 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13038 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13039 : return 8847; /* sse4_1_sign_extendv4qiv4si2_mask */
13040 : break;
13041 :
13042 : case 4:
13043 : if ((
13044 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13045 : (TARGET_AVX512F) &&
13046 : #line 25051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13047 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13048 : return 8877; /* sse4_1_sign_extendv4hiv4si2_mask */
13049 : break;
13050 :
13051 : case 5:
13052 : if ((
13053 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13054 : (TARGET_AVX512F) &&
13055 : #line 25292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13056 : (TARGET_AVX2 && TARGET_AVX512VL)))
13057 : return 8905; /* avx2_sign_extendv4qiv4di2_mask */
13058 : break;
13059 :
13060 : case 6:
13061 : if ((
13062 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13063 : (TARGET_AVX512F) &&
13064 : #line 25464 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13065 : (TARGET_AVX2 && TARGET_AVX512VL)))
13066 : return 8932; /* avx2_sign_extendv4hiv4di2_mask */
13067 : break;
13068 :
13069 : case 7:
13070 : if ((
13071 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13072 : (TARGET_AVX512F) &&
13073 : #line 25382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13074 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13075 : return 8917; /* sse4_1_sign_extendv2qiv2di2_mask */
13076 : break;
13077 :
13078 : case 8:
13079 : if ((
13080 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13081 : (TARGET_AVX512F) &&
13082 : #line 25546 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13083 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13084 : return 8944; /* sse4_1_sign_extendv2hiv2di2_mask */
13085 : break;
13086 :
13087 : case 9:
13088 : if ((
13089 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13090 : (TARGET_AVX512F) &&
13091 : #line 25740 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13092 : (TARGET_SSE4_1 && TARGET_AVX512VL)))
13093 : return 8968; /* sse4_1_sign_extendv2siv2di2_mask */
13094 : break;
13095 :
13096 : default:
13097 : break;
13098 : }
13099 : if (GET_CODE (x5) != SUBREG
13100 : || maybe_ne (SUBREG_BYTE (x5), 0))
13101 : return -1;
13102 : switch (pattern414 (x2))
13103 : {
13104 : case 0:
13105 : if (!
13106 : #line 24637 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13107 : (TARGET_AVX512VL && TARGET_AVX512BW
13108 : && ix86_pre_reload_split ()))
13109 : return -1;
13110 : return 8824; /* *avx512vl_sign_extendv8qiv8hi2_mask_2 */
13111 :
13112 : case 1:
13113 : if (!
13114 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13115 : (TARGET_AVX512VL
13116 : && ix86_pre_reload_split ()))
13117 : return -1;
13118 : return 8844; /* *avx512vl_sign_extendv8qiv8si2_mask_2 */
13119 :
13120 : case 2:
13121 : if (!
13122 : #line 25259 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13123 : (TARGET_AVX512F && ix86_pre_reload_split ()))
13124 : return -1;
13125 : return 8902; /* *avx512f_sign_extendv8qiv8di2_mask_2 */
13126 :
13127 : case 3:
13128 : if (!
13129 : #line 25103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13130 : (TARGET_AVX512VL
13131 : && ix86_pre_reload_split ()))
13132 : return -1;
13133 : return 8886; /* *avx512vl_sign_extendv4hiv4si2_mask_2 */
13134 :
13135 : case 4:
13136 : if (!
13137 : #line 25513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13138 : (TARGET_AVX512VL
13139 : && ix86_pre_reload_split ()))
13140 : return -1;
13141 : return 8941; /* *avx512vl_sign_extendv4hiv4di2_mask_2 */
13142 :
13143 : case 5:
13144 : if (!
13145 : #line 25790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13146 : (TARGET_AVX512VL
13147 : && ix86_pre_reload_split ()))
13148 : return -1;
13149 : return 8977; /* *avx512vl_sign_extendv2siv2di2_mask_2 */
13150 :
13151 : case 6:
13152 : if ((
13153 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13154 : (TARGET_AVX512F) &&
13155 : #line 24884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13156 : (TARGET_SSE4_1 && TARGET_AVX512VL
13157 : && ix86_pre_reload_split ())))
13158 : return 8855; /* *sse4_1_sign_extendv4qiv4si2_2 */
13159 : if (!
13160 : #line 24909 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13161 : (TARGET_AVX512VL
13162 : && ix86_pre_reload_split ()))
13163 : return -1;
13164 : return 8858; /* *avx512vl_sign_extendv4qiv4si2_mask_2 */
13165 :
13166 : case 7:
13167 : if (!
13168 : #line 25349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13169 : (TARGET_AVX512VL
13170 : && ix86_pre_reload_split ()))
13171 : return -1;
13172 : return 8914; /* *avx512vl_sign_extendv4qiv4di2_mask_2 */
13173 :
13174 : case 8:
13175 : if (!
13176 : #line 25604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13177 : (TARGET_AVX512VL
13178 : && ix86_pre_reload_split ()))
13179 : return -1;
13180 : return 8953; /* *avx512vl_sign_extendv2hiv2di2_mask_2 */
13181 :
13182 : default:
13183 : return -1;
13184 : }
13185 :
13186 : default:
13187 : return -1;
13188 : }
13189 : }
13190 :
13191 : int
13192 : recog_206 (rtx x1 ATTRIBUTE_UNUSED,
13193 : rtx_insn *insn ATTRIBUTE_UNUSED,
13194 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13195 : {
13196 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13197 : rtx x2;
13198 : int res ATTRIBUTE_UNUSED;
13199 : x2 = XEXP (x1, 1);
13200 : switch (pattern144 (x2))
13201 : {
13202 : case 0:
13203 : if (!(
13204 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13205 : (TARGET_AVX512F) && (
13206 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13207 : (TARGET_AVX512FP16) &&
13208 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13209 : (TARGET_AVX512VL))))
13210 : return -1;
13211 : return 4654; /* avx512fp16_fix_truncv8hi2_mask */
13212 :
13213 : case 1:
13214 : if (!(
13215 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13216 : (TARGET_AVX512F) && (
13217 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13218 : (TARGET_AVX512FP16) &&
13219 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13220 : (TARGET_AVX512VL))))
13221 : return -1;
13222 : return 4662; /* avx512fp16_fix_truncv16hi2_mask */
13223 :
13224 : case 2:
13225 : if (!(
13226 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13227 : (TARGET_AVX512F) &&
13228 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13229 : (TARGET_AVX512FP16)))
13230 : return -1;
13231 : return 4670; /* avx512fp16_fix_truncv32hi2_mask */
13232 :
13233 : case 3:
13234 : switch (GET_MODE (operands[1]))
13235 : {
13236 : case E_V8HFmode:
13237 : if (!vector_operand (operands[1], E_V8HFmode)
13238 : || !(
13239 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13240 : (TARGET_AVX512F) && (
13241 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13242 : (TARGET_AVX512FP16) &&
13243 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13244 : (TARGET_AVX512VL))))
13245 : return -1;
13246 : return 4678; /* avx512fp16_fix_truncv8si2_mask */
13247 :
13248 : case E_V8SFmode:
13249 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
13250 : || !(
13251 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13252 : (TARGET_AVX512F) &&
13253 : #line 9126 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13254 : (TARGET_AVX && TARGET_AVX512VL)))
13255 : return -1;
13256 : return 4929; /* fix_truncv8sfv8si2_mask */
13257 :
13258 : case E_V8DFmode:
13259 : if (!vector_operand (operands[1], E_V8DFmode)
13260 : || !
13261 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13262 : (TARGET_AVX512F))
13263 : return -1;
13264 : return 5069; /* fix_truncv8dfv8si2_mask */
13265 :
13266 : default:
13267 : return -1;
13268 : }
13269 :
13270 : case 4:
13271 : if (!(
13272 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13273 : (TARGET_AVX512F) &&
13274 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13275 : (TARGET_AVX512FP16)))
13276 : return -1;
13277 : return 4686; /* avx512fp16_fix_truncv16si2_mask */
13278 :
13279 : case 5:
13280 : if (!
13281 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13282 : (TARGET_AVX512F))
13283 : return -1;
13284 : return 4920; /* fix_truncv16sfv16si2_mask */
13285 :
13286 : case 6:
13287 : if (!(
13288 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13289 : (TARGET_AVX512F) &&
13290 : #line 8212 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13291 : (TARGET_AVX512FP16)))
13292 : return -1;
13293 : return 4694; /* avx512fp16_fix_truncv8di2_mask */
13294 :
13295 : case 7:
13296 : if (!(
13297 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13298 : (TARGET_AVX512F) &&
13299 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13300 : (TARGET_AVX512DQ && 1)))
13301 : return -1;
13302 : return 5106; /* fix_truncv8dfv8di2_mask */
13303 :
13304 : case 8:
13305 : if (!(
13306 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13307 : (TARGET_AVX512F) &&
13308 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13309 : (TARGET_AVX512DQ && 1)))
13310 : return -1;
13311 : return 5150; /* fix_truncv8sfv8di2_mask */
13312 :
13313 : case 9:
13314 : switch (GET_MODE (operands[1]))
13315 : {
13316 : case E_V4HFmode:
13317 : if (!memory_operand (operands[1], E_V4HFmode)
13318 : || !(
13319 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13320 : (TARGET_AVX512F) &&
13321 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13322 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13323 : return -1;
13324 : return 4717; /* *avx512fp16_fix_truncv4si2_load_mask */
13325 :
13326 : case E_V4SFmode:
13327 : if (!vector_operand (operands[1], E_V4SFmode)
13328 : || !(
13329 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13330 : (TARGET_AVX512F) &&
13331 : #line 9156 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13332 : (TARGET_SSE2 && TARGET_AVX512VL)))
13333 : return -1;
13334 : return 4933; /* fix_truncv4sfv4si2_mask */
13335 :
13336 : case E_V4DFmode:
13337 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
13338 : || !(
13339 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13340 : (TARGET_AVX512F) &&
13341 : #line 9989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13342 : (TARGET_AVX || (TARGET_AVX512VL && TARGET_AVX512F))))
13343 : return -1;
13344 : return 5083; /* fix_truncv4dfv4si2_mask */
13345 :
13346 : default:
13347 : return -1;
13348 : }
13349 :
13350 : case 10:
13351 : if (!(
13352 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13353 : (TARGET_AVX512F) &&
13354 : #line 8262 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13355 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13356 : return -1;
13357 : return 4721; /* *avx512fp16_fix_truncv4di2_load_mask */
13358 :
13359 : case 11:
13360 : if (!(
13361 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13362 : (TARGET_AVX512F) && (
13363 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13364 : (TARGET_AVX512DQ && 1) &&
13365 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13366 : (TARGET_AVX512VL))))
13367 : return -1;
13368 : return 5113; /* fix_truncv4dfv4di2_mask */
13369 :
13370 : case 12:
13371 : if (!(
13372 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13373 : (TARGET_AVX512F) && (
13374 : #line 10072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13375 : (TARGET_AVX512DQ && 1) &&
13376 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13377 : (TARGET_AVX512VL))))
13378 : return -1;
13379 : return 5157; /* fix_truncv4sfv4di2_mask */
13380 :
13381 : case 13:
13382 : if (!(
13383 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13384 : (TARGET_AVX512F) &&
13385 : #line 8312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13386 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13387 : return -1;
13388 : return 4733; /* *avx512fp16_fix_truncv2di2_load_mask */
13389 :
13390 : case 14:
13391 : if (!(
13392 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13393 : (TARGET_AVX512F) && (
13394 : #line 10029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13395 : (TARGET_AVX512DQ && 1) &&
13396 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13397 : (TARGET_AVX512VL))))
13398 : return -1;
13399 : return 5117; /* fix_truncv2dfv2di2_mask */
13400 :
13401 : case 15:
13402 : if (!(
13403 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13404 : (TARGET_AVX512F) &&
13405 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13406 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13407 : return -1;
13408 : return 4709; /* avx512fp16_fix_truncv4si2_mask */
13409 :
13410 : case 16:
13411 : if (!(
13412 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13413 : (TARGET_AVX512F) &&
13414 : #line 8252 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13415 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13416 : return -1;
13417 : return 4713; /* avx512fp16_fix_truncv4di2_mask */
13418 :
13419 : case 17:
13420 : if (!(
13421 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13422 : (TARGET_AVX512F) &&
13423 : #line 8302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13424 : (TARGET_AVX512FP16 && TARGET_AVX512VL)))
13425 : return -1;
13426 : return 4729; /* avx512fp16_fix_truncv2di2_mask */
13427 :
13428 : case 18:
13429 : if (!(
13430 : #line 84 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13431 : (TARGET_AVX512F) &&
13432 : #line 10095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13433 : (TARGET_AVX512DQ && TARGET_AVX512VL)))
13434 : return -1;
13435 : return 5165; /* avx512dq_fix_truncv2sfv2di2_mask */
13436 :
13437 : default:
13438 : return -1;
13439 : }
13440 : }
13441 :
13442 : int
13443 : recog_217 (rtx x1 ATTRIBUTE_UNUSED,
13444 : rtx_insn *insn ATTRIBUTE_UNUSED,
13445 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13446 : {
13447 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13448 : rtx x2, x3;
13449 : int res ATTRIBUTE_UNUSED;
13450 : x2 = XEXP (x1, 1);
13451 : x3 = XVECEXP (x2, 0, 0);
13452 : operands[1] = x3;
13453 : switch (GET_MODE (operands[0]))
13454 : {
13455 : case E_V8SFmode:
13456 : if (!register_operand (operands[0], E_V8SFmode)
13457 : || GET_MODE (x2) != E_V8SFmode
13458 : || !vector_operand (operands[1], E_V8SFmode)
13459 : || !(
13460 : #line 3158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13461 : (TARGET_SSE) &&
13462 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13463 : (TARGET_AVX)))
13464 : return -1;
13465 : return 3015; /* avx_rsqrtv8sf2 */
13466 :
13467 : case E_V4SFmode:
13468 : if (!register_operand (operands[0], E_V4SFmode)
13469 : || GET_MODE (x2) != E_V4SFmode
13470 : || !vector_operand (operands[1], E_V4SFmode)
13471 : || !
13472 : #line 3158 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13473 : (TARGET_SSE))
13474 : return -1;
13475 : return 3016; /* sse_rsqrtv4sf2 */
13476 :
13477 : case E_V32HFmode:
13478 : if (!register_operand (operands[0], E_V32HFmode)
13479 : || GET_MODE (x2) != E_V32HFmode
13480 : || !vector_operand (operands[1], E_V32HFmode)
13481 : || !
13482 : #line 3170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13483 : (TARGET_AVX512FP16))
13484 : return -1;
13485 : return 3017; /* avx512fp16_rsqrtv32hf2 */
13486 :
13487 : case E_V16HFmode:
13488 : if (!register_operand (operands[0], E_V16HFmode)
13489 : || GET_MODE (x2) != E_V16HFmode
13490 : || !vector_operand (operands[1], E_V16HFmode)
13491 : || !(
13492 : #line 3170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13493 : (TARGET_AVX512FP16) &&
13494 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13495 : (TARGET_AVX512VL)))
13496 : return -1;
13497 : return 3019; /* avx512fp16_rsqrtv16hf2 */
13498 :
13499 : case E_V8HFmode:
13500 : if (!register_operand (operands[0], E_V8HFmode)
13501 : || GET_MODE (x2) != E_V8HFmode
13502 : || !vector_operand (operands[1], E_V8HFmode)
13503 : || !(
13504 : #line 3170 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13505 : (TARGET_AVX512FP16) &&
13506 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13507 : (TARGET_AVX512VL)))
13508 : return -1;
13509 : return 3021; /* avx512fp16_rsqrtv8hf2 */
13510 :
13511 : case E_V32BFmode:
13512 : if (!register_operand (operands[0], E_V32BFmode)
13513 : || GET_MODE (x2) != E_V32BFmode
13514 : || !nonimmediate_operand (operands[1], E_V32BFmode)
13515 : || !
13516 : #line 33097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13517 : (TARGET_AVX10_2))
13518 : return -1;
13519 : return 10750; /* avx10_2_rsqrtbf16_v32bf */
13520 :
13521 : case E_V16BFmode:
13522 : if (!register_operand (operands[0], E_V16BFmode)
13523 : || GET_MODE (x2) != E_V16BFmode
13524 : || !nonimmediate_operand (operands[1], E_V16BFmode)
13525 : || !
13526 : #line 33097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13527 : (TARGET_AVX10_2))
13528 : return -1;
13529 : return 10752; /* avx10_2_rsqrtbf16_v16bf */
13530 :
13531 : case E_V8BFmode:
13532 : if (!register_operand (operands[0], E_V8BFmode)
13533 : || GET_MODE (x2) != E_V8BFmode
13534 : || !nonimmediate_operand (operands[1], E_V8BFmode)
13535 : || !
13536 : #line 33097 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13537 : (TARGET_AVX10_2))
13538 : return -1;
13539 : return 10754; /* avx10_2_rsqrtbf16_v8bf */
13540 :
13541 : default:
13542 : return -1;
13543 : }
13544 : }
13545 :
13546 : int
13547 : recog_222 (rtx x1 ATTRIBUTE_UNUSED,
13548 : rtx_insn *insn ATTRIBUTE_UNUSED,
13549 : int *pnum_clobbers ATTRIBUTE_UNUSED)
13550 : {
13551 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
13552 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
13553 : rtx x10, x11, x12, x13, x14;
13554 : int res ATTRIBUTE_UNUSED;
13555 : x2 = XEXP (x1, 1);
13556 : x3 = XVECEXP (x2, 0, 0);
13557 : x4 = XEXP (x3, 2);
13558 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
13559 : return -1;
13560 : x5 = XEXP (x3, 0);
13561 : x6 = XEXP (x5, 2);
13562 : if (!register_operand (x6, E_QImode))
13563 : return -1;
13564 : x7 = XVECEXP (x2, 0, 1);
13565 : if (!const_4_or_8_to_11_operand (x7, E_SImode))
13566 : return -1;
13567 : x8 = XEXP (x5, 0);
13568 : x9 = XEXP (x8, 0);
13569 : switch (GET_CODE (x9))
13570 : {
13571 : case REG:
13572 : case SUBREG:
13573 : case MEM:
13574 : operands[1] = x9;
13575 : x10 = XEXP (x8, 1);
13576 : operands[2] = x10;
13577 : x11 = XEXP (x8, 2);
13578 : switch (GET_CODE (x11))
13579 : {
13580 : case REG:
13581 : case SUBREG:
13582 : case MEM:
13583 : operands[3] = x11;
13584 : switch (pattern1528 (x2))
13585 : {
13586 : case 0:
13587 : if (pattern1691 (x2,
13588 : E_V8HFmode) != 0)
13589 : return -1;
13590 : if (nonimmediate_operand (operands[1], E_V8HFmode)
13591 : && register_operand (operands[3], E_V8HFmode))
13592 : {
13593 : x12 = XEXP (x5, 1);
13594 : if (rtx_equal_p (x12, operands[1]))
13595 : {
13596 : x13 = XEXP (x3, 1);
13597 : if (rtx_equal_p (x13, operands[1])
13598 : && (
13599 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13600 : (TARGET_AVX512F) && (
13601 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13602 : (TARGET_AVX512F) &&
13603 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13604 : (TARGET_AVX512FP16))))
13605 : return 4283; /* avx512f_vmfmadd_v8hf_mask_round */
13606 : }
13607 : }
13608 : if (!register_operand (operands[1], E_V8HFmode)
13609 : || !nonimmediate_operand (operands[3], E_V8HFmode))
13610 : return -1;
13611 : x12 = XEXP (x5, 1);
13612 : if (!rtx_equal_p (x12, operands[3]))
13613 : return -1;
13614 : x13 = XEXP (x3, 1);
13615 : if (!rtx_equal_p (x13, operands[3])
13616 : || !(
13617 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13618 : (TARGET_AVX512F) && (
13619 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13620 : (TARGET_AVX512F) &&
13621 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13622 : (TARGET_AVX512FP16))))
13623 : return -1;
13624 : return 4289; /* avx512f_vmfmadd_v8hf_mask3_round */
13625 :
13626 : case 1:
13627 : if (pattern1691 (x2,
13628 : E_V4SFmode) != 0)
13629 : return -1;
13630 : if (nonimmediate_operand (operands[1], E_V4SFmode)
13631 : && register_operand (operands[3], E_V4SFmode))
13632 : {
13633 : x12 = XEXP (x5, 1);
13634 : if (rtx_equal_p (x12, operands[1]))
13635 : {
13636 : x13 = XEXP (x3, 1);
13637 : if (rtx_equal_p (x13, operands[1])
13638 : &&
13639 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13640 : (TARGET_AVX512F))
13641 : return 4285; /* avx512f_vmfmadd_v4sf_mask_round */
13642 : }
13643 : }
13644 : if (!register_operand (operands[1], E_V4SFmode)
13645 : || !nonimmediate_operand (operands[3], E_V4SFmode))
13646 : return -1;
13647 : x12 = XEXP (x5, 1);
13648 : if (!rtx_equal_p (x12, operands[3]))
13649 : return -1;
13650 : x13 = XEXP (x3, 1);
13651 : if (!rtx_equal_p (x13, operands[3])
13652 : || !
13653 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13654 : (TARGET_AVX512F))
13655 : return -1;
13656 : return 4291; /* avx512f_vmfmadd_v4sf_mask3_round */
13657 :
13658 : case 2:
13659 : if (pattern1691 (x2,
13660 : E_V2DFmode) != 0)
13661 : return -1;
13662 : if (nonimmediate_operand (operands[1], E_V2DFmode)
13663 : && register_operand (operands[3], E_V2DFmode))
13664 : {
13665 : x12 = XEXP (x5, 1);
13666 : if (rtx_equal_p (x12, operands[1]))
13667 : {
13668 : x13 = XEXP (x3, 1);
13669 : if (rtx_equal_p (x13, operands[1])
13670 : && (
13671 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13672 : (TARGET_AVX512F) && (
13673 : #line 7018 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13674 : (TARGET_AVX512F) &&
13675 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13676 : (TARGET_SSE2))))
13677 : return 4287; /* avx512f_vmfmadd_v2df_mask_round */
13678 : }
13679 : }
13680 : if (!register_operand (operands[1], E_V2DFmode)
13681 : || !nonimmediate_operand (operands[3], E_V2DFmode))
13682 : return -1;
13683 : x12 = XEXP (x5, 1);
13684 : if (!rtx_equal_p (x12, operands[3]))
13685 : return -1;
13686 : x13 = XEXP (x3, 1);
13687 : if (!rtx_equal_p (x13, operands[3])
13688 : || !(
13689 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13690 : (TARGET_AVX512F) && (
13691 : #line 7038 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13692 : (TARGET_AVX512F) &&
13693 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13694 : (TARGET_SSE2))))
13695 : return -1;
13696 : return 4293; /* avx512f_vmfmadd_v2df_mask3_round */
13697 :
13698 : case 3:
13699 : if (pattern1755 (x2,
13700 : E_V8HFmode) != 0
13701 : || !(
13702 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13703 : (TARGET_AVX512F) && (
13704 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13705 : (TARGET_AVX512F) &&
13706 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13707 : (TARGET_AVX512FP16))))
13708 : return -1;
13709 : return 4295; /* avx512f_vmfmadd_v8hf_maskz_1_round */
13710 :
13711 : case 4:
13712 : if (pattern1755 (x2,
13713 : E_V4SFmode) != 0
13714 : || !
13715 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13716 : (TARGET_AVX512F))
13717 : return -1;
13718 : return 4297; /* avx512f_vmfmadd_v4sf_maskz_1_round */
13719 :
13720 : case 5:
13721 : if (pattern1755 (x2,
13722 : E_V2DFmode) != 0
13723 : || !(
13724 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13725 : (TARGET_AVX512F) && (
13726 : #line 7070 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13727 : (TARGET_AVX512F) &&
13728 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13729 : (TARGET_SSE2))))
13730 : return -1;
13731 : return 4299; /* avx512f_vmfmadd_v2df_maskz_1_round */
13732 :
13733 : default:
13734 : return -1;
13735 : }
13736 :
13737 : case NEG:
13738 : x14 = XEXP (x11, 0);
13739 : operands[3] = x14;
13740 : switch (pattern1528 (x2))
13741 : {
13742 : case 0:
13743 : if (pattern1692 (x2,
13744 : E_V8HFmode) != 0)
13745 : return -1;
13746 : if (nonimmediate_operand (operands[1], E_V8HFmode)
13747 : && register_operand (operands[3], E_V8HFmode))
13748 : {
13749 : x12 = XEXP (x5, 1);
13750 : if (rtx_equal_p (x12, operands[1]))
13751 : {
13752 : x13 = XEXP (x3, 1);
13753 : if (rtx_equal_p (x13, operands[1])
13754 : && (
13755 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13756 : (TARGET_AVX512F) && (
13757 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13758 : (TARGET_AVX512F) &&
13759 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13760 : (TARGET_AVX512FP16))))
13761 : return 4301; /* *avx512f_vmfmsub_v8hf_mask_round */
13762 : }
13763 : }
13764 : if (!register_operand (operands[1], E_V8HFmode)
13765 : || !nonimmediate_operand (operands[3], E_V8HFmode))
13766 : return -1;
13767 : x12 = XEXP (x5, 1);
13768 : if (!rtx_equal_p (x12, operands[3]))
13769 : return -1;
13770 : x13 = XEXP (x3, 1);
13771 : if (!rtx_equal_p (x13, operands[3])
13772 : || !(
13773 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13774 : (TARGET_AVX512F) && (
13775 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13776 : (TARGET_AVX512F) &&
13777 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13778 : (TARGET_AVX512FP16))))
13779 : return -1;
13780 : return 4307; /* avx512f_vmfmsub_v8hf_mask3_round */
13781 :
13782 : case 1:
13783 : if (pattern1692 (x2,
13784 : E_V4SFmode) != 0)
13785 : return -1;
13786 : if (nonimmediate_operand (operands[1], E_V4SFmode)
13787 : && register_operand (operands[3], E_V4SFmode))
13788 : {
13789 : x12 = XEXP (x5, 1);
13790 : if (rtx_equal_p (x12, operands[1]))
13791 : {
13792 : x13 = XEXP (x3, 1);
13793 : if (rtx_equal_p (x13, operands[1])
13794 : &&
13795 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13796 : (TARGET_AVX512F))
13797 : return 4303; /* *avx512f_vmfmsub_v4sf_mask_round */
13798 : }
13799 : }
13800 : if (!register_operand (operands[1], E_V4SFmode)
13801 : || !nonimmediate_operand (operands[3], E_V4SFmode))
13802 : return -1;
13803 : x12 = XEXP (x5, 1);
13804 : if (!rtx_equal_p (x12, operands[3]))
13805 : return -1;
13806 : x13 = XEXP (x3, 1);
13807 : if (!rtx_equal_p (x13, operands[3])
13808 : || !
13809 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13810 : (TARGET_AVX512F))
13811 : return -1;
13812 : return 4309; /* avx512f_vmfmsub_v4sf_mask3_round */
13813 :
13814 : case 2:
13815 : if (pattern1692 (x2,
13816 : E_V2DFmode) != 0)
13817 : return -1;
13818 : if (nonimmediate_operand (operands[1], E_V2DFmode)
13819 : && register_operand (operands[3], E_V2DFmode))
13820 : {
13821 : x12 = XEXP (x5, 1);
13822 : if (rtx_equal_p (x12, operands[1]))
13823 : {
13824 : x13 = XEXP (x3, 1);
13825 : if (rtx_equal_p (x13, operands[1])
13826 : && (
13827 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13828 : (TARGET_AVX512F) && (
13829 : #line 7091 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13830 : (TARGET_AVX512F) &&
13831 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13832 : (TARGET_SSE2))))
13833 : return 4305; /* *avx512f_vmfmsub_v2df_mask_round */
13834 : }
13835 : }
13836 : if (!register_operand (operands[1], E_V2DFmode)
13837 : || !nonimmediate_operand (operands[3], E_V2DFmode))
13838 : return -1;
13839 : x12 = XEXP (x5, 1);
13840 : if (!rtx_equal_p (x12, operands[3]))
13841 : return -1;
13842 : x13 = XEXP (x3, 1);
13843 : if (!rtx_equal_p (x13, operands[3])
13844 : || !(
13845 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13846 : (TARGET_AVX512F) && (
13847 : #line 7112 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13848 : (TARGET_AVX512F) &&
13849 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13850 : (TARGET_SSE2))))
13851 : return -1;
13852 : return 4311; /* avx512f_vmfmsub_v2df_mask3_round */
13853 :
13854 : case 3:
13855 : if (pattern1756 (x2,
13856 : E_V8HFmode) != 0
13857 : || !(
13858 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13859 : (TARGET_AVX512F) && (
13860 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13861 : (TARGET_AVX512F) &&
13862 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13863 : (TARGET_AVX512FP16))))
13864 : return -1;
13865 : return 4313; /* *avx512f_vmfmsub_v8hf_maskz_1_round */
13866 :
13867 : case 4:
13868 : if (pattern1756 (x2,
13869 : E_V4SFmode) != 0
13870 : || !
13871 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13872 : (TARGET_AVX512F))
13873 : return -1;
13874 : return 4315; /* *avx512f_vmfmsub_v4sf_maskz_1_round */
13875 :
13876 : case 5:
13877 : if (pattern1756 (x2,
13878 : E_V2DFmode) != 0
13879 : || !(
13880 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13881 : (TARGET_AVX512F) && (
13882 : #line 7131 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13883 : (TARGET_AVX512F) &&
13884 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13885 : (TARGET_SSE2))))
13886 : return -1;
13887 : return 4317; /* *avx512f_vmfmsub_v2df_maskz_1_round */
13888 :
13889 : default:
13890 : return -1;
13891 : }
13892 :
13893 : default:
13894 : return -1;
13895 : }
13896 :
13897 : case NEG:
13898 : x11 = XEXP (x8, 2);
13899 : switch (GET_CODE (x11))
13900 : {
13901 : case REG:
13902 : case SUBREG:
13903 : case MEM:
13904 : operands[3] = x11;
13905 : switch (pattern1411 (x2))
13906 : {
13907 : case 0:
13908 : x10 = XEXP (x8, 1);
13909 : operands[2] = x10;
13910 : if (pattern1838 (x3,
13911 : E_V8HFmode) == 0
13912 : && (
13913 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13914 : (TARGET_AVX512F) && (
13915 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13916 : (TARGET_AVX512F) &&
13917 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13918 : (TARGET_AVX512FP16))))
13919 : return 4319; /* avx512f_vmfnmadd_v8hf_mask_round */
13920 : operands[1] = x10;
13921 : if (pattern1839 (x3,
13922 : E_V8HFmode) != 0
13923 : || !(
13924 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13925 : (TARGET_AVX512F) && (
13926 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13927 : (TARGET_AVX512F) &&
13928 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13929 : (TARGET_AVX512FP16))))
13930 : return -1;
13931 : return 4325; /* avx512f_vmfnmadd_v8hf_mask3_round */
13932 :
13933 : case 1:
13934 : x10 = XEXP (x8, 1);
13935 : operands[2] = x10;
13936 : if (pattern1838 (x3,
13937 : E_V4SFmode) == 0
13938 : &&
13939 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13940 : (TARGET_AVX512F))
13941 : return 4321; /* avx512f_vmfnmadd_v4sf_mask_round */
13942 : operands[1] = x10;
13943 : if (pattern1839 (x3,
13944 : E_V4SFmode) != 0
13945 : || !
13946 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13947 : (TARGET_AVX512F))
13948 : return -1;
13949 : return 4327; /* avx512f_vmfnmadd_v4sf_mask3_round */
13950 :
13951 : case 2:
13952 : x10 = XEXP (x8, 1);
13953 : operands[2] = x10;
13954 : if (pattern1838 (x3,
13955 : E_V2DFmode) == 0
13956 : && (
13957 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13958 : (TARGET_AVX512F) && (
13959 : #line 7152 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13960 : (TARGET_AVX512F) &&
13961 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13962 : (TARGET_SSE2))))
13963 : return 4323; /* avx512f_vmfnmadd_v2df_mask_round */
13964 : operands[1] = x10;
13965 : if (pattern1839 (x3,
13966 : E_V2DFmode) != 0
13967 : || !(
13968 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13969 : (TARGET_AVX512F) && (
13970 : #line 7173 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13971 : (TARGET_AVX512F) &&
13972 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13973 : (TARGET_SSE2))))
13974 : return -1;
13975 : return 4329; /* avx512f_vmfnmadd_v2df_mask3_round */
13976 :
13977 : case 3:
13978 : if (pattern1757 (x2,
13979 : E_V8HFmode) != 0
13980 : || !(
13981 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13982 : (TARGET_AVX512F) && (
13983 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13984 : (TARGET_AVX512F) &&
13985 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
13986 : (TARGET_AVX512FP16))))
13987 : return -1;
13988 : return 4331; /* avx512f_vmfnmadd_v8hf_maskz_1_round */
13989 :
13990 : case 4:
13991 : if (pattern1757 (x2,
13992 : E_V4SFmode) != 0
13993 : || !
13994 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
13995 : (TARGET_AVX512F))
13996 : return -1;
13997 : return 4333; /* avx512f_vmfnmadd_v4sf_maskz_1_round */
13998 :
13999 : case 5:
14000 : if (pattern1757 (x2,
14001 : E_V2DFmode) != 0
14002 : || !(
14003 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14004 : (TARGET_AVX512F) && (
14005 : #line 7206 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14006 : (TARGET_AVX512F) &&
14007 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14008 : (TARGET_SSE2))))
14009 : return -1;
14010 : return 4335; /* avx512f_vmfnmadd_v2df_maskz_1_round */
14011 :
14012 : default:
14013 : return -1;
14014 : }
14015 :
14016 : case NEG:
14017 : x14 = XEXP (x11, 0);
14018 : operands[3] = x14;
14019 : switch (pattern1411 (x2))
14020 : {
14021 : case 0:
14022 : x10 = XEXP (x8, 1);
14023 : operands[2] = x10;
14024 : if (pattern1840 (x3,
14025 : E_V8HFmode) == 0
14026 : && (
14027 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14028 : (TARGET_AVX512F) && (
14029 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14030 : (TARGET_AVX512F) &&
14031 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14032 : (TARGET_AVX512FP16))))
14033 : return 4337; /* *avx512f_vmfnmsub_v8hf_mask_round */
14034 : operands[1] = x10;
14035 : if (pattern1841 (x3,
14036 : E_V8HFmode) != 0
14037 : || !(
14038 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14039 : (TARGET_AVX512F) && (
14040 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14041 : (TARGET_AVX512F) &&
14042 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14043 : (TARGET_AVX512FP16))))
14044 : return -1;
14045 : return 4343; /* *avx512f_vmfnmsub_v8hf_mask3_round */
14046 :
14047 : case 1:
14048 : x10 = XEXP (x8, 1);
14049 : operands[2] = x10;
14050 : if (pattern1840 (x3,
14051 : E_V4SFmode) == 0
14052 : &&
14053 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14054 : (TARGET_AVX512F))
14055 : return 4339; /* *avx512f_vmfnmsub_v4sf_mask_round */
14056 : operands[1] = x10;
14057 : if (pattern1841 (x3,
14058 : E_V4SFmode) != 0
14059 : || !
14060 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14061 : (TARGET_AVX512F))
14062 : return -1;
14063 : return 4345; /* *avx512f_vmfnmsub_v4sf_mask3_round */
14064 :
14065 : case 2:
14066 : x10 = XEXP (x8, 1);
14067 : operands[2] = x10;
14068 : if (pattern1840 (x3,
14069 : E_V2DFmode) == 0
14070 : && (
14071 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14072 : (TARGET_AVX512F) && (
14073 : #line 7228 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14074 : (TARGET_AVX512F) &&
14075 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14076 : (TARGET_SSE2))))
14077 : return 4341; /* *avx512f_vmfnmsub_v2df_mask_round */
14078 : operands[1] = x10;
14079 : if (pattern1841 (x3,
14080 : E_V2DFmode) != 0
14081 : || !(
14082 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14083 : (TARGET_AVX512F) && (
14084 : #line 7250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14085 : (TARGET_AVX512F) &&
14086 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14087 : (TARGET_SSE2))))
14088 : return -1;
14089 : return 4347; /* *avx512f_vmfnmsub_v2df_mask3_round */
14090 :
14091 : case 3:
14092 : if (pattern1758 (x2,
14093 : E_V8HFmode) != 0
14094 : || !(
14095 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14096 : (TARGET_AVX512F) && (
14097 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14098 : (TARGET_AVX512F) &&
14099 : #line 477 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14100 : (TARGET_AVX512FP16))))
14101 : return -1;
14102 : return 4349; /* *avx512f_vmfnmsub_v8hf_maskz_1_round */
14103 :
14104 : case 4:
14105 : if (pattern1758 (x2,
14106 : E_V4SFmode) != 0
14107 : || !
14108 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14109 : (TARGET_AVX512F))
14110 : return -1;
14111 : return 4351; /* *avx512f_vmfnmsub_v4sf_maskz_1_round */
14112 :
14113 : case 5:
14114 : if (pattern1758 (x2,
14115 : E_V2DFmode) != 0
14116 : || !(
14117 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14118 : (TARGET_AVX512F) && (
14119 : #line 7270 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14120 : (TARGET_AVX512F) &&
14121 : #line 478 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14122 : (TARGET_SSE2))))
14123 : return -1;
14124 : return 4353; /* *avx512f_vmfnmsub_v2df_maskz_1_round */
14125 :
14126 : default:
14127 : return -1;
14128 : }
14129 :
14130 : default:
14131 : return -1;
14132 : }
14133 :
14134 : default:
14135 : return -1;
14136 : }
14137 : }
14138 :
14139 : int
14140 : recog_233 (rtx x1 ATTRIBUTE_UNUSED,
14141 : rtx_insn *insn ATTRIBUTE_UNUSED,
14142 : int *pnum_clobbers ATTRIBUTE_UNUSED)
14143 : {
14144 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
14145 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
14146 : int res ATTRIBUTE_UNUSED;
14147 : x2 = XEXP (x1, 1);
14148 : x3 = XVECEXP (x2, 0, 0);
14149 : switch (XVECLEN (x3, 0))
14150 : {
14151 : case 2:
14152 : x4 = XVECEXP (x3, 0, 0);
14153 : operands[1] = x4;
14154 : x5 = XVECEXP (x3, 0, 1);
14155 : operands[2] = x5;
14156 : x6 = XVECEXP (x2, 0, 1);
14157 : operands[3] = x6;
14158 : switch (XINT (x3, 1))
14159 : {
14160 : case 64:
14161 : switch (pattern1144 (x2))
14162 : {
14163 : case 0:
14164 : if (!(
14165 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14166 : (TARGET_AVX512F) && (
14167 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14168 : (TARGET_SSE
14169 : && 1
14170 : && (V32HFmode == V16SFmode
14171 : || V32HFmode == V8DFmode
14172 : || V32HFmode == V8DImode
14173 : || V32HFmode == V16SImode
14174 : || V32HFmode == V32HFmode)) &&
14175 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14176 : (TARGET_AVX512FP16))))
14177 : return -1;
14178 : return 3115; /* ieee_maxv32hf3_round */
14179 :
14180 : case 1:
14181 : if (!(
14182 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14183 : (TARGET_AVX512F) && (
14184 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14185 : (TARGET_SSE
14186 : && 1
14187 : && (V16SFmode == V16SFmode
14188 : || V16SFmode == V8DFmode
14189 : || V16SFmode == V8DImode
14190 : || V16SFmode == V16SImode
14191 : || V16SFmode == V32HFmode)) &&
14192 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14193 : (TARGET_AVX512F))))
14194 : return -1;
14195 : return 3131; /* ieee_maxv16sf3_round */
14196 :
14197 : case 2:
14198 : if (!(
14199 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14200 : (TARGET_AVX512F) && (
14201 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14202 : (TARGET_SSE
14203 : && 1
14204 : && (V8DFmode == V16SFmode
14205 : || V8DFmode == V8DFmode
14206 : || V8DFmode == V8DImode
14207 : || V8DFmode == V16SImode
14208 : || V8DFmode == V32HFmode)) &&
14209 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14210 : (TARGET_AVX512F))))
14211 : return -1;
14212 : return 3147; /* ieee_maxv8df3_round */
14213 :
14214 : default:
14215 : return -1;
14216 : }
14217 :
14218 : case 63:
14219 : switch (pattern1144 (x2))
14220 : {
14221 : case 0:
14222 : if (!(
14223 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14224 : (TARGET_AVX512F) && (
14225 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14226 : (TARGET_SSE
14227 : && 1
14228 : && (V32HFmode == V16SFmode
14229 : || V32HFmode == V8DFmode
14230 : || V32HFmode == V8DImode
14231 : || V32HFmode == V16SImode
14232 : || V32HFmode == V32HFmode)) &&
14233 : #line 393 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14234 : (TARGET_AVX512FP16))))
14235 : return -1;
14236 : return 3119; /* ieee_minv32hf3_round */
14237 :
14238 : case 1:
14239 : if (!(
14240 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14241 : (TARGET_AVX512F) && (
14242 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14243 : (TARGET_SSE
14244 : && 1
14245 : && (V16SFmode == V16SFmode
14246 : || V16SFmode == V8DFmode
14247 : || V16SFmode == V8DImode
14248 : || V16SFmode == V16SImode
14249 : || V16SFmode == V32HFmode)) &&
14250 : #line 396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14251 : (TARGET_AVX512F))))
14252 : return -1;
14253 : return 3135; /* ieee_minv16sf3_round */
14254 :
14255 : case 2:
14256 : if (!(
14257 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14258 : (TARGET_AVX512F) && (
14259 : #line 3463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14260 : (TARGET_SSE
14261 : && 1
14262 : && (V8DFmode == V16SFmode
14263 : || V8DFmode == V8DFmode
14264 : || V8DFmode == V8DImode
14265 : || V8DFmode == V16SImode
14266 : || V8DFmode == V32HFmode)) &&
14267 : #line 397 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14268 : (TARGET_AVX512F))))
14269 : return -1;
14270 : return 3151; /* ieee_minv8df3_round */
14271 :
14272 : default:
14273 : return -1;
14274 : }
14275 :
14276 : case 193:
14277 : if (!const_0_to_255_operand (operands[2], E_SImode)
14278 : || !const48_operand (operands[3], E_SImode))
14279 : return -1;
14280 : switch (GET_MODE (operands[0]))
14281 : {
14282 : case E_V32HFmode:
14283 : if (pattern1232 (x2,
14284 : E_V32HFmode) != 0
14285 : || !(
14286 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14287 : (TARGET_AVX512F) && (
14288 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14289 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V32HFmode))) &&
14290 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14291 : (TARGET_AVX512FP16))))
14292 : return -1;
14293 : return 3231; /* *reducepv32hf_round */
14294 :
14295 : case E_V16HFmode:
14296 : if (pattern1232 (x2,
14297 : E_V16HFmode) != 0
14298 : || !(
14299 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14300 : (TARGET_AVX512F) && (
14301 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14302 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16HFmode))) &&
14303 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14304 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14305 : return -1;
14306 : return 3235; /* *reducepv16hf_round */
14307 :
14308 : case E_V8HFmode:
14309 : if (pattern1232 (x2,
14310 : E_V8HFmode) != 0
14311 : || !(
14312 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14313 : (TARGET_AVX512F) && (
14314 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14315 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8HFmode))) &&
14316 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14317 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14318 : return -1;
14319 : return 3239; /* *reducepv8hf_round */
14320 :
14321 : case E_V16SFmode:
14322 : if (pattern1232 (x2,
14323 : E_V16SFmode) != 0
14324 : || !(
14325 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14326 : (TARGET_AVX512F) &&
14327 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14328 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V16SFmode)))))
14329 : return -1;
14330 : return 3243; /* *reducepv16sf_round */
14331 :
14332 : case E_V8SFmode:
14333 : if (pattern1232 (x2,
14334 : E_V8SFmode) != 0
14335 : || !(
14336 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14337 : (TARGET_AVX512F) && (
14338 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14339 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8SFmode))) &&
14340 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14341 : (TARGET_AVX512VL))))
14342 : return -1;
14343 : return 3247; /* *reducepv8sf_round */
14344 :
14345 : case E_V4SFmode:
14346 : if (pattern1232 (x2,
14347 : E_V4SFmode) != 0
14348 : || !(
14349 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14350 : (TARGET_AVX512F) && (
14351 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14352 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4SFmode))) &&
14353 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14354 : (TARGET_AVX512VL))))
14355 : return -1;
14356 : return 3251; /* *reducepv4sf_round */
14357 :
14358 : case E_V8DFmode:
14359 : if (pattern1232 (x2,
14360 : E_V8DFmode) != 0
14361 : || !(
14362 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14363 : (TARGET_AVX512F) &&
14364 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14365 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V8DFmode)))))
14366 : return -1;
14367 : return 3255; /* *reducepv8df_round */
14368 :
14369 : case E_V4DFmode:
14370 : if (pattern1232 (x2,
14371 : E_V4DFmode) != 0
14372 : || !(
14373 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14374 : (TARGET_AVX512F) && (
14375 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14376 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V4DFmode))) &&
14377 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14378 : (TARGET_AVX512VL))))
14379 : return -1;
14380 : return 3259; /* *reducepv4df_round */
14381 :
14382 : case E_V2DFmode:
14383 : if (pattern1232 (x2,
14384 : E_V2DFmode) != 0
14385 : || !(
14386 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14387 : (TARGET_AVX512F) && (
14388 : #line 4253 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14389 : (TARGET_AVX512DQ || (VALID_AVX512FP16_REG_MODE (V2DFmode))) &&
14390 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14391 : (TARGET_AVX512VL))))
14392 : return -1;
14393 : return 3263; /* *reducepv2df_round */
14394 :
14395 : default:
14396 : return -1;
14397 : }
14398 :
14399 : case 222:
14400 : if (pattern1145 (x2) != 0
14401 : || !(
14402 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14403 : (TARGET_AVX512F) &&
14404 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14405 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14406 : || V32HFmode == V8DFmode
14407 : || V32HFmode == V8DImode
14408 : || V32HFmode == V16SImode
14409 : || V32HFmode == V32HFmode))))
14410 : return -1;
14411 : return 4412; /* avx512bw_fmulc_v32hf_round */
14412 :
14413 : case 223:
14414 : if (pattern1145 (x2) != 0
14415 : || !(
14416 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14417 : (TARGET_AVX512F) &&
14418 : #line 7665 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14419 : (TARGET_AVX512FP16 && (V32HFmode == V16SFmode
14420 : || V32HFmode == V8DFmode
14421 : || V32HFmode == V8DImode
14422 : || V32HFmode == V16SImode
14423 : || V32HFmode == V32HFmode))))
14424 : return -1;
14425 : return 4416; /* avx512bw_fcmulc_v32hf_round */
14426 :
14427 : case 59:
14428 : if (!const_4_or_8_to_11_operand (operands[3], E_SImode))
14429 : return -1;
14430 : switch (GET_MODE (operands[0]))
14431 : {
14432 : case E_V32HFmode:
14433 : if (pattern1319 (x2,
14434 : E_V32HFmode) != 0
14435 : || !(
14436 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14437 : (TARGET_AVX512F) && (
14438 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14439 : (TARGET_AVX512F) &&
14440 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14441 : (TARGET_AVX512FP16))))
14442 : return -1;
14443 : return 5443; /* avx512bw_scalefv32hf_round */
14444 :
14445 : case E_V16HFmode:
14446 : if (pattern1319 (x2,
14447 : E_V16HFmode) != 0
14448 : || !(
14449 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14450 : (TARGET_AVX512F) && (
14451 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14452 : (TARGET_AVX512F) &&
14453 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14454 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14455 : return -1;
14456 : return 5447; /* avx512vl_scalefv16hf_round */
14457 :
14458 : case E_V8HFmode:
14459 : if (pattern1319 (x2,
14460 : E_V8HFmode) != 0
14461 : || !(
14462 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14463 : (TARGET_AVX512F) && (
14464 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14465 : (TARGET_AVX512F) &&
14466 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14467 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14468 : return -1;
14469 : return 5451; /* avx512fp16_scalefv8hf_round */
14470 :
14471 : case E_V16SFmode:
14472 : if (pattern1319 (x2,
14473 : E_V16SFmode) != 0
14474 : || !
14475 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14476 : (TARGET_AVX512F))
14477 : return -1;
14478 : return 5455; /* avx512f_scalefv16sf_round */
14479 :
14480 : case E_V8SFmode:
14481 : if (pattern1319 (x2,
14482 : E_V8SFmode) != 0
14483 : || !(
14484 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14485 : (TARGET_AVX512F) && (
14486 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14487 : (TARGET_AVX512F) &&
14488 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14489 : (TARGET_AVX512VL))))
14490 : return -1;
14491 : return 5459; /* avx512vl_scalefv8sf_round */
14492 :
14493 : case E_V4SFmode:
14494 : if (pattern1319 (x2,
14495 : E_V4SFmode) != 0
14496 : || !(
14497 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14498 : (TARGET_AVX512F) && (
14499 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14500 : (TARGET_AVX512F) &&
14501 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14502 : (TARGET_AVX512VL))))
14503 : return -1;
14504 : return 5463; /* avx512vl_scalefv4sf_round */
14505 :
14506 : case E_V8DFmode:
14507 : if (pattern1319 (x2,
14508 : E_V8DFmode) != 0
14509 : || !
14510 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14511 : (TARGET_AVX512F))
14512 : return -1;
14513 : return 5467; /* avx512f_scalefv8df_round */
14514 :
14515 : case E_V4DFmode:
14516 : if (pattern1319 (x2,
14517 : E_V4DFmode) != 0
14518 : || !(
14519 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14520 : (TARGET_AVX512F) && (
14521 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14522 : (TARGET_AVX512F) &&
14523 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14524 : (TARGET_AVX512VL))))
14525 : return -1;
14526 : return 5471; /* avx512vl_scalefv4df_round */
14527 :
14528 : case E_V2DFmode:
14529 : if (pattern1319 (x2,
14530 : E_V2DFmode) != 0
14531 : || !(
14532 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14533 : (TARGET_AVX512F) && (
14534 : #line 13948 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14535 : (TARGET_AVX512F) &&
14536 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14537 : (TARGET_AVX512VL))))
14538 : return -1;
14539 : return 5475; /* avx512vl_scalefv2df_round */
14540 :
14541 : default:
14542 : return -1;
14543 : }
14544 :
14545 : case 95:
14546 : if (!const_0_to_255_operand (operands[2], E_SImode))
14547 : return -1;
14548 : switch (pattern1230 (x2))
14549 : {
14550 : case 0:
14551 : if (!(
14552 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14553 : (TARGET_AVX512F) && (
14554 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14555 : (TARGET_AVX512F) &&
14556 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14557 : (TARGET_AVX512FP16))))
14558 : return -1;
14559 : return 7173; /* avx512bw_rndscalev32hf_round */
14560 :
14561 : case 1:
14562 : if (!(
14563 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14564 : (TARGET_AVX512F) && (
14565 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14566 : (TARGET_AVX512F) &&
14567 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14568 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14569 : return -1;
14570 : return 7177; /* avx512vl_rndscalev16hf_round */
14571 :
14572 : case 2:
14573 : if (!(
14574 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14575 : (TARGET_AVX512F) && (
14576 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14577 : (TARGET_AVX512F) &&
14578 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14579 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14580 : return -1;
14581 : return 7181; /* avx512fp16_rndscalev8hf_round */
14582 :
14583 : case 3:
14584 : if (!
14585 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14586 : (TARGET_AVX512F))
14587 : return -1;
14588 : return 7185; /* avx512f_rndscalev16sf_round */
14589 :
14590 : case 4:
14591 : if (!(
14592 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14593 : (TARGET_AVX512F) && (
14594 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14595 : (TARGET_AVX512F) &&
14596 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14597 : (TARGET_AVX512VL))))
14598 : return -1;
14599 : return 7189; /* avx512vl_rndscalev8sf_round */
14600 :
14601 : case 5:
14602 : if (!(
14603 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14604 : (TARGET_AVX512F) && (
14605 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14606 : (TARGET_AVX512F) &&
14607 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14608 : (TARGET_AVX512VL))))
14609 : return -1;
14610 : return 7193; /* avx512vl_rndscalev4sf_round */
14611 :
14612 : case 6:
14613 : if (!
14614 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14615 : (TARGET_AVX512F))
14616 : return -1;
14617 : return 7197; /* avx512f_rndscalev8df_round */
14618 :
14619 : case 7:
14620 : if (!(
14621 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14622 : (TARGET_AVX512F) && (
14623 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14624 : (TARGET_AVX512F) &&
14625 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14626 : (TARGET_AVX512VL))))
14627 : return -1;
14628 : return 7201; /* avx512vl_rndscalev4df_round */
14629 :
14630 : case 8:
14631 : if (!(
14632 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14633 : (TARGET_AVX512F) && (
14634 : #line 14549 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14635 : (TARGET_AVX512F) &&
14636 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14637 : (TARGET_AVX512VL))))
14638 : return -1;
14639 : return 7205; /* avx512vl_rndscalev2df_round */
14640 :
14641 : default:
14642 : return -1;
14643 : }
14644 :
14645 : case 151:
14646 : if (GET_MODE (x3) != E_V16HImode
14647 : || !register_operand (operands[0], E_V16HImode)
14648 : || GET_MODE (x2) != E_V16HImode
14649 : || !register_operand (operands[1], E_V16SFmode)
14650 : || !const_0_to_255_operand (operands[2], E_SImode)
14651 : || !const48_operand (operands[3], E_SImode)
14652 : || !
14653 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14654 : (TARGET_AVX512F))
14655 : return -1;
14656 : return 9739; /* *avx512f_vcvtps2ph512_round */
14657 :
14658 : case 167:
14659 : if (!const_0_to_15_operand (operands[2], E_SImode))
14660 : return -1;
14661 : switch (pattern1230 (x2))
14662 : {
14663 : case 0:
14664 : if (!(
14665 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14666 : (TARGET_AVX512F) && (
14667 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14668 : (TARGET_AVX512F) &&
14669 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14670 : (TARGET_AVX512FP16))))
14671 : return -1;
14672 : return 10081; /* avx512bw_getmantv32hf_round */
14673 :
14674 : case 1:
14675 : if (!(
14676 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14677 : (TARGET_AVX512F) && (
14678 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14679 : (TARGET_AVX512F) &&
14680 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14681 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14682 : return -1;
14683 : return 10085; /* avx512vl_getmantv16hf_round */
14684 :
14685 : case 2:
14686 : if (!(
14687 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14688 : (TARGET_AVX512F) && (
14689 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14690 : (TARGET_AVX512F) &&
14691 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14692 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14693 : return -1;
14694 : return 10089; /* avx512fp16_getmantv8hf_round */
14695 :
14696 : case 3:
14697 : if (!
14698 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14699 : (TARGET_AVX512F))
14700 : return -1;
14701 : return 10093; /* avx512f_getmantv16sf_round */
14702 :
14703 : case 4:
14704 : if (!(
14705 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14706 : (TARGET_AVX512F) && (
14707 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14708 : (TARGET_AVX512F) &&
14709 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14710 : (TARGET_AVX512VL))))
14711 : return -1;
14712 : return 10097; /* avx512vl_getmantv8sf_round */
14713 :
14714 : case 5:
14715 : if (!(
14716 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14717 : (TARGET_AVX512F) && (
14718 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14719 : (TARGET_AVX512F) &&
14720 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14721 : (TARGET_AVX512VL))))
14722 : return -1;
14723 : return 10101; /* avx512vl_getmantv4sf_round */
14724 :
14725 : case 6:
14726 : if (!
14727 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14728 : (TARGET_AVX512F))
14729 : return -1;
14730 : return 10105; /* avx512f_getmantv8df_round */
14731 :
14732 : case 7:
14733 : if (!(
14734 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14735 : (TARGET_AVX512F) && (
14736 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14737 : (TARGET_AVX512F) &&
14738 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14739 : (TARGET_AVX512VL))))
14740 : return -1;
14741 : return 10109; /* avx512vl_getmantv4df_round */
14742 :
14743 : case 8:
14744 : if (!(
14745 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14746 : (TARGET_AVX512F) && (
14747 : #line 30583 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14748 : (TARGET_AVX512F) &&
14749 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14750 : (TARGET_AVX512VL))))
14751 : return -1;
14752 : return 10113; /* avx512vl_getmantv2df_round */
14753 :
14754 : default:
14755 : return -1;
14756 : }
14757 :
14758 : default:
14759 : return -1;
14760 : }
14761 :
14762 : case 3:
14763 : x4 = XVECEXP (x3, 0, 0);
14764 : operands[1] = x4;
14765 : x5 = XVECEXP (x3, 0, 1);
14766 : operands[2] = x5;
14767 : x6 = XVECEXP (x2, 0, 1);
14768 : operands[4] = x6;
14769 : switch (XINT (x3, 1))
14770 : {
14771 : case 134:
14772 : if (!const_4_or_8_to_11_operand (operands[4], E_SImode))
14773 : return -1;
14774 : x7 = XVECEXP (x3, 0, 2);
14775 : switch (GET_CODE (x7))
14776 : {
14777 : case REG:
14778 : case SUBREG:
14779 : operands[3] = x7;
14780 : switch (GET_MODE (operands[0]))
14781 : {
14782 : case E_V32HFmode:
14783 : if (pattern1488 (x2,
14784 : E_V32HFmode) != 0
14785 : || !(
14786 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14787 : (TARGET_AVX512F) && (
14788 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14789 : (TARGET_AVX512F && 1 && (V32HFmode == V16SFmode
14790 : || V32HFmode == V8DFmode
14791 : || V32HFmode == V8DImode
14792 : || V32HFmode == V16SImode
14793 : || V32HFmode == V32HFmode)) &&
14794 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14795 : (TARGET_AVX512FP16))))
14796 : return -1;
14797 : return 4136; /* *fma_fmaddsub_v32hf_round */
14798 :
14799 : case E_V16SFmode:
14800 : if (pattern1488 (x2,
14801 : E_V16SFmode) != 0
14802 : || !(
14803 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14804 : (TARGET_AVX512F) &&
14805 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14806 : (TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
14807 : || V16SFmode == V8DFmode
14808 : || V16SFmode == V8DImode
14809 : || V16SFmode == V16SImode
14810 : || V16SFmode == V32HFmode))))
14811 : return -1;
14812 : return 4144; /* *fma_fmaddsub_v16sf_round */
14813 :
14814 : case E_V8DFmode:
14815 : if (pattern1488 (x2,
14816 : E_V8DFmode) != 0
14817 : || !(
14818 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14819 : (TARGET_AVX512F) &&
14820 : #line 6768 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14821 : (TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
14822 : || V8DFmode == V8DFmode
14823 : || V8DFmode == V8DImode
14824 : || V8DFmode == V16SImode
14825 : || V8DFmode == V32HFmode))))
14826 : return -1;
14827 : return 4152; /* *fma_fmaddsub_v8df_round */
14828 :
14829 : default:
14830 : return -1;
14831 : }
14832 :
14833 : case NEG:
14834 : x8 = XEXP (x7, 0);
14835 : operands[3] = x8;
14836 : switch (GET_MODE (operands[0]))
14837 : {
14838 : case E_V32HFmode:
14839 : if (pattern1489 (x2,
14840 : E_V32HFmode) != 0
14841 : || !(
14842 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14843 : (TARGET_AVX512F) && (
14844 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14845 : (TARGET_AVX512F && 1 && (V32HFmode == V16SFmode
14846 : || V32HFmode == V8DFmode
14847 : || V32HFmode == V8DImode
14848 : || V32HFmode == V16SImode
14849 : || V32HFmode == V32HFmode)) &&
14850 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14851 : (TARGET_AVX512FP16))))
14852 : return -1;
14853 : return 4200; /* *fma_fmsubadd_v32hf_round */
14854 :
14855 : case E_V16SFmode:
14856 : if (pattern1489 (x2,
14857 : E_V16SFmode) != 0
14858 : || !(
14859 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14860 : (TARGET_AVX512F) &&
14861 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14862 : (TARGET_AVX512F && 1 && (V16SFmode == V16SFmode
14863 : || V16SFmode == V8DFmode
14864 : || V16SFmode == V8DImode
14865 : || V16SFmode == V16SImode
14866 : || V16SFmode == V32HFmode))))
14867 : return -1;
14868 : return 4208; /* *fma_fmsubadd_v16sf_round */
14869 :
14870 : case E_V8DFmode:
14871 : if (pattern1489 (x2,
14872 : E_V8DFmode) != 0
14873 : || !(
14874 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14875 : (TARGET_AVX512F) &&
14876 : #line 6838 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14877 : (TARGET_AVX512F && 1 && (V8DFmode == V16SFmode
14878 : || V8DFmode == V8DFmode
14879 : || V8DFmode == V8DImode
14880 : || V8DFmode == V16SImode
14881 : || V8DFmode == V32HFmode))))
14882 : return -1;
14883 : return 4216; /* *fma_fmsubadd_v8df_round */
14884 :
14885 : default:
14886 : return -1;
14887 : }
14888 :
14889 : default:
14890 : return -1;
14891 : }
14892 :
14893 : case 218:
14894 : if (pattern1146 (x2) != 0
14895 : || !(
14896 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14897 : (TARGET_AVX512F) &&
14898 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14899 : (TARGET_AVX512FP16 && 1 && (V32HFmode == V16SFmode
14900 : || V32HFmode == V8DFmode
14901 : || V32HFmode == V8DImode
14902 : || V32HFmode == V16SImode
14903 : || V32HFmode == V32HFmode))))
14904 : return -1;
14905 : return 4363; /* fma_fmaddc_v32hf_round */
14906 :
14907 : case 220:
14908 : if (pattern1146 (x2) != 0
14909 : || !(
14910 : #line 221 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14911 : (TARGET_AVX512F) &&
14912 : #line 7507 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14913 : (TARGET_AVX512FP16 && 1 && (V32HFmode == V16SFmode
14914 : || V32HFmode == V8DFmode
14915 : || V32HFmode == V8DImode
14916 : || V32HFmode == V16SImode
14917 : || V32HFmode == V32HFmode))))
14918 : return -1;
14919 : return 4367; /* fma_fcmaddc_v32hf_round */
14920 :
14921 : case 195:
14922 : x7 = XVECEXP (x3, 0, 2);
14923 : operands[3] = x7;
14924 : if (!const_0_to_15_operand (operands[3], E_SImode)
14925 : || !const48_operand (operands[4], E_SImode))
14926 : return -1;
14927 : switch (GET_MODE (operands[0]))
14928 : {
14929 : case E_V16SFmode:
14930 : if (pattern1143 (x2,
14931 : E_V16SFmode) != 0
14932 : || !(
14933 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14934 : (TARGET_AVX512F) &&
14935 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14936 : (TARGET_AVX512DQ && (V16SFmode == V16SFmode
14937 : || V16SFmode == V8DFmode
14938 : || V16SFmode == V8DImode
14939 : || V16SFmode == V16SImode
14940 : || V16SFmode == V32HFmode))))
14941 : return -1;
14942 : return 10033; /* avx512dq_rangepv16sf_round */
14943 :
14944 : case E_V8DFmode:
14945 : if (pattern1143 (x2,
14946 : E_V8DFmode) != 0
14947 : || !(
14948 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14949 : (TARGET_AVX512F) &&
14950 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14951 : (TARGET_AVX512DQ && (V8DFmode == V16SFmode
14952 : || V8DFmode == V8DFmode
14953 : || V8DFmode == V8DImode
14954 : || V8DFmode == V16SImode
14955 : || V8DFmode == V32HFmode))))
14956 : return -1;
14957 : return 10041; /* avx512dq_rangepv8df_round */
14958 :
14959 : default:
14960 : return -1;
14961 : }
14962 :
14963 : case 279:
14964 : x7 = XVECEXP (x3, 0, 2);
14965 : operands[3] = x7;
14966 : if (!const_0_to_255_operand (operands[3], E_SImode)
14967 : || !const48_operand (operands[4], E_SImode))
14968 : return -1;
14969 : switch (GET_MODE (operands[0]))
14970 : {
14971 : case E_V32HFmode:
14972 : if (pattern1143 (x2,
14973 : E_V32HFmode) != 0
14974 : || !(
14975 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14976 : (TARGET_AVX512F) && (
14977 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14978 : (TARGET_AVX10_2) &&
14979 : #line 514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14980 : (TARGET_AVX512FP16))))
14981 : return -1;
14982 : return 10979; /* avx10_2_minmaxpv32hf_round */
14983 :
14984 : case E_V16HFmode:
14985 : if (pattern1143 (x2,
14986 : E_V16HFmode) != 0
14987 : || !(
14988 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
14989 : (TARGET_AVX512F) && (
14990 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14991 : (TARGET_AVX10_2) &&
14992 : #line 515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
14993 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
14994 : return -1;
14995 : return 10983; /* avx10_2_minmaxpv16hf_round */
14996 :
14997 : case E_V8HFmode:
14998 : if (pattern1143 (x2,
14999 : E_V8HFmode) != 0
15000 : || !(
15001 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15002 : (TARGET_AVX512F) && (
15003 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15004 : (TARGET_AVX10_2) &&
15005 : #line 516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15006 : (TARGET_AVX512FP16 && TARGET_AVX512VL))))
15007 : return -1;
15008 : return 10987; /* avx10_2_minmaxpv8hf_round */
15009 :
15010 : case E_V16SFmode:
15011 : if (pattern1143 (x2,
15012 : E_V16SFmode) != 0
15013 : || !(
15014 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15015 : (TARGET_AVX512F) &&
15016 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15017 : (TARGET_AVX10_2)))
15018 : return -1;
15019 : return 10991; /* avx10_2_minmaxpv16sf_round */
15020 :
15021 : case E_V8SFmode:
15022 : if (pattern1143 (x2,
15023 : E_V8SFmode) != 0
15024 : || !(
15025 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15026 : (TARGET_AVX512F) && (
15027 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15028 : (TARGET_AVX10_2) &&
15029 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15030 : (TARGET_AVX512VL))))
15031 : return -1;
15032 : return 10995; /* avx10_2_minmaxpv8sf_round */
15033 :
15034 : case E_V4SFmode:
15035 : if (pattern1143 (x2,
15036 : E_V4SFmode) != 0
15037 : || !(
15038 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15039 : (TARGET_AVX512F) && (
15040 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15041 : (TARGET_AVX10_2) &&
15042 : #line 517 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15043 : (TARGET_AVX512VL))))
15044 : return -1;
15045 : return 10999; /* avx10_2_minmaxpv4sf_round */
15046 :
15047 : case E_V8DFmode:
15048 : if (pattern1143 (x2,
15049 : E_V8DFmode) != 0
15050 : || !(
15051 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15052 : (TARGET_AVX512F) &&
15053 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15054 : (TARGET_AVX10_2)))
15055 : return -1;
15056 : return 11003; /* avx10_2_minmaxpv8df_round */
15057 :
15058 : case E_V4DFmode:
15059 : if (pattern1143 (x2,
15060 : E_V4DFmode) != 0
15061 : || !(
15062 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15063 : (TARGET_AVX512F) && (
15064 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15065 : (TARGET_AVX10_2) &&
15066 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15067 : (TARGET_AVX512VL))))
15068 : return -1;
15069 : return 11007; /* avx10_2_minmaxpv4df_round */
15070 :
15071 : case E_V2DFmode:
15072 : if (pattern1143 (x2,
15073 : E_V2DFmode) != 0
15074 : || !(
15075 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15076 : (TARGET_AVX512F) && (
15077 : #line 33353 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15078 : (TARGET_AVX10_2) &&
15079 : #line 518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15080 : (TARGET_AVX512VL))))
15081 : return -1;
15082 : return 11011; /* avx10_2_minmaxpv2df_round */
15083 :
15084 : default:
15085 : return -1;
15086 : }
15087 :
15088 : default:
15089 : return -1;
15090 : }
15091 :
15092 : case 1:
15093 : return recog_231 (x1, insn, pnum_clobbers);
15094 :
15095 : case 4:
15096 : if (XINT (x3, 1) != 164)
15097 : return -1;
15098 : x4 = XVECEXP (x3, 0, 0);
15099 : operands[1] = x4;
15100 : x5 = XVECEXP (x3, 0, 1);
15101 : operands[2] = x5;
15102 : x7 = XVECEXP (x3, 0, 2);
15103 : operands[3] = x7;
15104 : x9 = XVECEXP (x3, 0, 3);
15105 : operands[4] = x9;
15106 : if (!const_0_to_255_operand (operands[4], E_SImode))
15107 : return -1;
15108 : x6 = XVECEXP (x2, 0, 1);
15109 : operands[5] = x6;
15110 : if (!const48_operand (operands[5], E_SImode))
15111 : return -1;
15112 : switch (GET_MODE (operands[0]))
15113 : {
15114 : case E_V16SFmode:
15115 : if (pattern1529 (x2,
15116 : E_V16SImode,
15117 : E_V16SFmode) != 0
15118 : || !
15119 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15120 : (TARGET_AVX512F))
15121 : return -1;
15122 : return 7125; /* avx512f_fixupimmv16sf_round */
15123 :
15124 : case E_V8SFmode:
15125 : if (pattern1529 (x2,
15126 : E_V8SImode,
15127 : E_V8SFmode) != 0
15128 : || !(
15129 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15130 : (TARGET_AVX512F) && (
15131 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15132 : (TARGET_AVX512F) &&
15133 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15134 : (TARGET_AVX512VL))))
15135 : return -1;
15136 : return 7129; /* avx512vl_fixupimmv8sf_round */
15137 :
15138 : case E_V4SFmode:
15139 : if (pattern1529 (x2,
15140 : E_V4SImode,
15141 : E_V4SFmode) != 0
15142 : || !(
15143 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15144 : (TARGET_AVX512F) && (
15145 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15146 : (TARGET_AVX512F) &&
15147 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15148 : (TARGET_AVX512VL))))
15149 : return -1;
15150 : return 7133; /* avx512vl_fixupimmv4sf_round */
15151 :
15152 : case E_V8DFmode:
15153 : if (pattern1529 (x2,
15154 : E_V8DImode,
15155 : E_V8DFmode) != 0
15156 : || !
15157 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15158 : (TARGET_AVX512F))
15159 : return -1;
15160 : return 7137; /* avx512f_fixupimmv8df_round */
15161 :
15162 : case E_V4DFmode:
15163 : if (pattern1529 (x2,
15164 : E_V4DImode,
15165 : E_V4DFmode) != 0
15166 : || !(
15167 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15168 : (TARGET_AVX512F) && (
15169 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15170 : (TARGET_AVX512F) &&
15171 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15172 : (TARGET_AVX512VL))))
15173 : return -1;
15174 : return 7141; /* avx512vl_fixupimmv4df_round */
15175 :
15176 : case E_V2DFmode:
15177 : if (pattern1529 (x2,
15178 : E_V2DImode,
15179 : E_V2DFmode) != 0
15180 : || !(
15181 : #line 263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/subst.md"
15182 : (TARGET_AVX512F) && (
15183 : #line 14471 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15184 : (TARGET_AVX512F) &&
15185 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15186 : (TARGET_AVX512VL))))
15187 : return -1;
15188 : return 7145; /* avx512vl_fixupimmv2df_round */
15189 :
15190 : default:
15191 : return -1;
15192 : }
15193 :
15194 : default:
15195 : return -1;
15196 : }
15197 : }
15198 :
15199 : int
15200 : recog_257 (rtx x1 ATTRIBUTE_UNUSED,
15201 : rtx_insn *insn ATTRIBUTE_UNUSED,
15202 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15203 : {
15204 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15205 : rtx x2, x3, x4, x5, x6;
15206 : int res ATTRIBUTE_UNUSED;
15207 : x2 = XEXP (x1, 0);
15208 : operands[0] = x2;
15209 : x3 = XEXP (x1, 1);
15210 : x4 = XVECEXP (x3, 0, 0);
15211 : operands[1] = x4;
15212 : x5 = XVECEXP (x3, 0, 1);
15213 : operands[2] = x5;
15214 : x6 = XVECEXP (x3, 0, 2);
15215 : operands[3] = x6;
15216 : if (!const_0_to_15_operand (operands[3], E_SImode))
15217 : return -1;
15218 : switch (GET_MODE (operands[0]))
15219 : {
15220 : case E_V16SFmode:
15221 : if (pattern158 (x3,
15222 : E_V16SFmode) != 0
15223 : || !
15224 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15225 : (TARGET_AVX512DQ && 1))
15226 : return -1;
15227 : return 10032; /* avx512dq_rangepv16sf */
15228 :
15229 : case E_V8SFmode:
15230 : if (pattern158 (x3,
15231 : E_V8SFmode) != 0
15232 : || !(
15233 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15234 : (TARGET_AVX512DQ && 1) &&
15235 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15236 : (TARGET_AVX512VL)))
15237 : return -1;
15238 : return 10036; /* avx512dq_rangepv8sf */
15239 :
15240 : case E_V4SFmode:
15241 : if (pattern158 (x3,
15242 : E_V4SFmode) != 0
15243 : || !(
15244 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15245 : (TARGET_AVX512DQ && 1) &&
15246 : #line 510 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15247 : (TARGET_AVX512VL)))
15248 : return -1;
15249 : return 10038; /* avx512dq_rangepv4sf */
15250 :
15251 : case E_V8DFmode:
15252 : if (pattern158 (x3,
15253 : E_V8DFmode) != 0
15254 : || !
15255 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15256 : (TARGET_AVX512DQ && 1))
15257 : return -1;
15258 : return 10040; /* avx512dq_rangepv8df */
15259 :
15260 : case E_V4DFmode:
15261 : if (pattern158 (x3,
15262 : E_V4DFmode) != 0
15263 : || !(
15264 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15265 : (TARGET_AVX512DQ && 1) &&
15266 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15267 : (TARGET_AVX512VL)))
15268 : return -1;
15269 : return 10044; /* avx512dq_rangepv4df */
15270 :
15271 : case E_V2DFmode:
15272 : if (pattern158 (x3,
15273 : E_V2DFmode) != 0
15274 : || !(
15275 : #line 30513 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15276 : (TARGET_AVX512DQ && 1) &&
15277 : #line 511 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15278 : (TARGET_AVX512VL)))
15279 : return -1;
15280 : return 10046; /* avx512dq_rangepv2df */
15281 :
15282 : default:
15283 : return -1;
15284 : }
15285 : }
15286 :
15287 : int
15288 : recog_259 (rtx x1 ATTRIBUTE_UNUSED,
15289 : rtx_insn *insn ATTRIBUTE_UNUSED,
15290 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15291 : {
15292 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15293 : int res ATTRIBUTE_UNUSED;
15294 : switch (pattern182 (x1))
15295 : {
15296 : case 0:
15297 : if (!
15298 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15299 : (TARGET_AVX512VBMI2))
15300 : return -1;
15301 : return 10320; /* vpshldv_v32hi */
15302 :
15303 : case 1:
15304 : if (!
15305 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15306 : (TARGET_AVX512VBMI2))
15307 : return -1;
15308 : return 10321; /* vpshldv_v16si */
15309 :
15310 : case 2:
15311 : if (!
15312 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15313 : (TARGET_AVX512VBMI2))
15314 : return -1;
15315 : return 10322; /* vpshldv_v8di */
15316 :
15317 : case 3:
15318 : if (!(
15319 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15320 : (TARGET_AVX512VBMI2) &&
15321 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15322 : (TARGET_AVX512VL)))
15323 : return -1;
15324 : return 10323; /* vpshldv_v16hi */
15325 :
15326 : case 4:
15327 : if (!(
15328 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15329 : (TARGET_AVX512VBMI2) &&
15330 : #line 751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15331 : (TARGET_AVX512VL)))
15332 : return -1;
15333 : return 10324; /* vpshldv_v8si */
15334 :
15335 : case 5:
15336 : if (!(
15337 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15338 : (TARGET_AVX512VBMI2) &&
15339 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15340 : (TARGET_AVX512VL)))
15341 : return -1;
15342 : return 10325; /* vpshldv_v4di */
15343 :
15344 : case 6:
15345 : if (!(
15346 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15347 : (TARGET_AVX512VBMI2) &&
15348 : #line 752 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15349 : (TARGET_AVX512VL)))
15350 : return -1;
15351 : return 10326; /* vpshldv_v8hi */
15352 :
15353 : case 7:
15354 : if (!(
15355 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15356 : (TARGET_AVX512VBMI2) &&
15357 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15358 : (TARGET_AVX512VL)))
15359 : return -1;
15360 : return 10327; /* vpshldv_v4si */
15361 :
15362 : case 8:
15363 : if (!(
15364 : #line 31176 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15365 : (TARGET_AVX512VBMI2) &&
15366 : #line 753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15367 : (TARGET_AVX512VL)))
15368 : return -1;
15369 : return 10328; /* vpshldv_v2di */
15370 :
15371 : default:
15372 : return -1;
15373 : }
15374 : }
15375 :
15376 : int
15377 : recog_264 (rtx x1 ATTRIBUTE_UNUSED,
15378 : rtx_insn *insn ATTRIBUTE_UNUSED,
15379 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15380 : {
15381 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15382 : rtx x2, x3, x4, x5, x6;
15383 : int res ATTRIBUTE_UNUSED;
15384 : x2 = XEXP (x1, 0);
15385 : operands[0] = x2;
15386 : x3 = XEXP (x1, 1);
15387 : x4 = XVECEXP (x3, 0, 0);
15388 : operands[1] = x4;
15389 : x5 = XVECEXP (x3, 0, 1);
15390 : operands[2] = x5;
15391 : x6 = XVECEXP (x3, 0, 2);
15392 : operands[3] = x6;
15393 : if (!const_0_to_255_operand (operands[3], E_SImode))
15394 : return -1;
15395 : switch (GET_MODE (operands[0]))
15396 : {
15397 : case E_V8SFmode:
15398 : if (pattern160 (x3,
15399 : E_V8SFmode) != 0
15400 : || !(
15401 : #line 24103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15402 : (TARGET_SSE4_1) &&
15403 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15404 : (TARGET_AVX)))
15405 : return -1;
15406 : return 8758; /* avx_dpps256 */
15407 :
15408 : case E_V4SFmode:
15409 : if (pattern160 (x3,
15410 : E_V4SFmode) != 0
15411 : || !
15412 : #line 24103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15413 : (TARGET_SSE4_1))
15414 : return -1;
15415 : return 8759; /* sse4_1_dpps */
15416 :
15417 : case E_V4DFmode:
15418 : if (pattern160 (x3,
15419 : E_V4DFmode) != 0
15420 : || !(
15421 : #line 24103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15422 : (TARGET_SSE4_1) &&
15423 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15424 : (TARGET_AVX)))
15425 : return -1;
15426 : return 8760; /* avx_dppd256 */
15427 :
15428 : case E_V2DFmode:
15429 : if (pattern160 (x3,
15430 : E_V2DFmode) != 0
15431 : || !(
15432 : #line 24103 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15433 : (TARGET_SSE4_1) &&
15434 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15435 : (TARGET_SSE2)))
15436 : return -1;
15437 : return 8761; /* sse4_1_dppd */
15438 :
15439 : default:
15440 : return -1;
15441 : }
15442 : }
15443 :
15444 : int
15445 : recog_270 (rtx x1 ATTRIBUTE_UNUSED,
15446 : rtx_insn *insn ATTRIBUTE_UNUSED,
15447 : int *pnum_clobbers ATTRIBUTE_UNUSED)
15448 : {
15449 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
15450 : rtx x2, x3, x4, x5, x6;
15451 : int res ATTRIBUTE_UNUSED;
15452 : x2 = XEXP (x1, 1);
15453 : switch (XINT (x2, 1))
15454 : {
15455 : case 52:
15456 : return recog_251 (x1, insn, pnum_clobbers);
15457 :
15458 : case 60:
15459 : x3 = XEXP (x1, 0);
15460 : operands[0] = x3;
15461 : x4 = XVECEXP (x2, 0, 0);
15462 : operands[1] = x4;
15463 : x5 = XVECEXP (x2, 0, 1);
15464 : operands[2] = x5;
15465 : x6 = XVECEXP (x2, 0, 2);
15466 : operands[3] = x6;
15467 : if (!cmpps_imm_operand (operands[3], E_SImode))
15468 : return -1;
15469 : switch (GET_MODE (operands[0]))
15470 : {
15471 : case E_V8SFmode:
15472 : if (pattern64 (x2,
15473 : E_V8SFmode) != 0
15474 : || !(
15475 : #line 4323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15476 : (TARGET_SSE) &&
15477 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15478 : (TARGET_AVX)))
15479 : return -1;
15480 : return 3278; /* avx_cmpv8sf3 */
15481 :
15482 : case E_V4SFmode:
15483 : if (pattern64 (x2,
15484 : E_V4SFmode) != 0
15485 : || !
15486 : #line 4323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15487 : (TARGET_SSE))
15488 : return -1;
15489 : return 3279; /* avx_cmpv4sf3 */
15490 :
15491 : case E_V4DFmode:
15492 : if (pattern64 (x2,
15493 : E_V4DFmode) != 0
15494 : || !(
15495 : #line 4323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15496 : (TARGET_SSE) &&
15497 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15498 : (TARGET_AVX)))
15499 : return -1;
15500 : return 3280; /* avx_cmpv4df3 */
15501 :
15502 : case E_V2DFmode:
15503 : if (pattern64 (x2,
15504 : E_V2DFmode) != 0
15505 : || !(
15506 : #line 4323 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15507 : (TARGET_SSE) &&
15508 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15509 : (TARGET_SSE2)))
15510 : return -1;
15511 : return 3281; /* avx_cmpv2df3 */
15512 :
15513 : default:
15514 : return -1;
15515 : }
15516 :
15517 : case 134:
15518 : return recog_250 (x1, insn, pnum_clobbers);
15519 :
15520 : case 218:
15521 : return recog_266 (x1, insn, pnum_clobbers);
15522 :
15523 : case 220:
15524 : return recog_267 (x1, insn, pnum_clobbers);
15525 :
15526 : case 219:
15527 : switch (pattern175 (x1))
15528 : {
15529 : case 0:
15530 : if (!
15531 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15532 : (TARGET_AVX512FP16))
15533 : return -1;
15534 : return 4390; /* fma_fmaddc_v16sf_pair */
15535 :
15536 : case 1:
15537 : if (!(
15538 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15539 : (TARGET_AVX512FP16) &&
15540 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15541 : (TARGET_AVX512VL)))
15542 : return -1;
15543 : return 4392; /* fma_fmaddc_v8sf_pair */
15544 :
15545 : case 2:
15546 : if (!(
15547 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15548 : (TARGET_AVX512FP16) &&
15549 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15550 : (TARGET_AVX512VL)))
15551 : return -1;
15552 : return 4394; /* fma_fmaddc_v4sf_pair */
15553 :
15554 : default:
15555 : return -1;
15556 : }
15557 :
15558 : case 221:
15559 : switch (pattern175 (x1))
15560 : {
15561 : case 0:
15562 : if (!
15563 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15564 : (TARGET_AVX512FP16))
15565 : return -1;
15566 : return 4391; /* fma_fcmaddc_v16sf_pair */
15567 :
15568 : case 1:
15569 : if (!(
15570 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15571 : (TARGET_AVX512FP16) &&
15572 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15573 : (TARGET_AVX512VL)))
15574 : return -1;
15575 : return 4393; /* fma_fcmaddc_v8sf_pair */
15576 :
15577 : case 2:
15578 : if (!(
15579 : #line 7572 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15580 : (TARGET_AVX512FP16) &&
15581 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15582 : (TARGET_AVX512VL)))
15583 : return -1;
15584 : return 4395; /* fma_fcmaddc_v4sf_pair */
15585 :
15586 : default:
15587 : return -1;
15588 : }
15589 :
15590 : case 51:
15591 : x3 = XEXP (x1, 0);
15592 : operands[0] = x3;
15593 : x4 = XVECEXP (x2, 0, 0);
15594 : operands[2] = x4;
15595 : x5 = XVECEXP (x2, 0, 1);
15596 : operands[1] = x5;
15597 : x6 = XVECEXP (x2, 0, 2);
15598 : operands[3] = x6;
15599 : if (!const_0_to_255_operand (operands[3], E_SImode))
15600 : return -1;
15601 : switch (GET_MODE (operands[0]))
15602 : {
15603 : case E_V4SImode:
15604 : if (pattern970 (x2,
15605 : E_V4SImode) != 0
15606 : || !
15607 : #line 12559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15608 : (TARGET_SSE4_1))
15609 : return -1;
15610 : return 5344; /* sse4_1_insertps_v4si */
15611 :
15612 : case E_V4SFmode:
15613 : if (pattern970 (x2,
15614 : E_V4SFmode) != 0
15615 : || !
15616 : #line 12559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15617 : (TARGET_SSE4_1))
15618 : return -1;
15619 : return 5345; /* sse4_1_insertps_v4sf */
15620 :
15621 : default:
15622 : return -1;
15623 : }
15624 :
15625 : case 168:
15626 : return recog_258 (x1, insn, pnum_clobbers);
15627 :
15628 : case 156:
15629 : return recog_253 (x1, insn, pnum_clobbers);
15630 :
15631 : case 48:
15632 : return recog_249 (x1, insn, pnum_clobbers);
15633 :
15634 : case 122:
15635 : x3 = XEXP (x1, 0);
15636 : operands[0] = x3;
15637 : x4 = XVECEXP (x2, 0, 0);
15638 : operands[1] = x4;
15639 : x5 = XVECEXP (x2, 0, 1);
15640 : operands[2] = x5;
15641 : x6 = XVECEXP (x2, 0, 2);
15642 : operands[3] = x6;
15643 : if (!const_0_to_255_mul_8_operand (operands[3], E_SImode))
15644 : return -1;
15645 : switch (GET_MODE (operands[0]))
15646 : {
15647 : case E_V4TImode:
15648 : if (pattern158 (x2,
15649 : E_V4TImode) != 0
15650 : || !(
15651 : #line 23596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15652 : (TARGET_SSSE3) &&
15653 : #line 718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15654 : (TARGET_AVX512BW)))
15655 : return -1;
15656 : return 8688; /* avx512bw_palignrv4ti */
15657 :
15658 : case E_V2TImode:
15659 : if (pattern158 (x2,
15660 : E_V2TImode) != 0
15661 : || !(
15662 : #line 23596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15663 : (TARGET_SSSE3) &&
15664 : #line 718 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15665 : (TARGET_AVX2)))
15666 : return -1;
15667 : return 8689; /* avx2_palignrv2ti */
15668 :
15669 : case E_V1TImode:
15670 : if (pattern158 (x2,
15671 : E_V1TImode) != 0
15672 : || !
15673 : #line 23596 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15674 : (TARGET_SSSE3))
15675 : return -1;
15676 : return 8690; /* ssse3_palignrv1ti */
15677 :
15678 : default:
15679 : return -1;
15680 : }
15681 :
15682 : case 123:
15683 : if (GET_MODE (x2) != E_V2DImode)
15684 : return -1;
15685 : x3 = XEXP (x1, 0);
15686 : operands[0] = x3;
15687 : if (!register_operand (operands[0], E_V2DImode))
15688 : return -1;
15689 : x4 = XVECEXP (x2, 0, 0);
15690 : operands[1] = x4;
15691 : if (!register_operand (operands[1], E_V2DImode))
15692 : return -1;
15693 : x5 = XVECEXP (x2, 0, 1);
15694 : operands[2] = x5;
15695 : if (!const_0_to_255_operand (operands[2], E_VOIDmode))
15696 : return -1;
15697 : x6 = XVECEXP (x2, 0, 2);
15698 : operands[3] = x6;
15699 : if (!const_0_to_255_operand (operands[3], E_VOIDmode)
15700 : || !
15701 : #line 23790 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15702 : (TARGET_SSE4A))
15703 : return -1;
15704 : return 8720; /* sse4a_extrqi */
15705 :
15706 : case 127:
15707 : return recog_264 (x1, insn, pnum_clobbers);
15708 :
15709 : case 129:
15710 : return recog_265 (x1, insn, pnum_clobbers);
15711 :
15712 : case 54:
15713 : if (pattern66 (x1,
15714 : E_V16QImode) != 0)
15715 : return -1;
15716 : x6 = XVECEXP (x2, 0, 2);
15717 : operands[3] = x6;
15718 : if (!nonimmediate_operand (operands[3], E_V16QImode)
15719 : || !
15720 : #line 27100 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15721 : (TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))))
15722 : return -1;
15723 : return 9083; /* xop_pperm */
15724 :
15725 : case 136:
15726 : return recog_263 (x1, insn, pnum_clobbers);
15727 :
15728 : case 144:
15729 : if (pattern166 (x1,
15730 : E_V2DImode) != 0)
15731 : return -1;
15732 : x6 = XVECEXP (x2, 0, 2);
15733 : operands[3] = x6;
15734 : if (!const_0_to_255_operand (operands[3], E_SImode)
15735 : || !
15736 : #line 27886 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15737 : (TARGET_PCLMUL))
15738 : return -1;
15739 : return 9142; /* pclmulqdq */
15740 :
15741 : case 153:
15742 : if (pattern66 (x1,
15743 : E_V4DImode) != 0)
15744 : return -1;
15745 : x6 = XVECEXP (x2, 0, 2);
15746 : operands[3] = x6;
15747 : if (!const_0_to_255_operand (operands[3], E_SImode)
15748 : || !
15749 : #line 28343 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15750 : (TARGET_AVX2))
15751 : return -1;
15752 : return 9244; /* avx2_permv2ti */
15753 :
15754 : case 147:
15755 : x3 = XEXP (x1, 0);
15756 : operands[0] = x3;
15757 : x4 = XVECEXP (x2, 0, 0);
15758 : operands[1] = x4;
15759 : x5 = XVECEXP (x2, 0, 1);
15760 : operands[2] = x5;
15761 : x6 = XVECEXP (x2, 0, 2);
15762 : operands[3] = x6;
15763 : if (!const_0_to_255_operand (operands[3], E_SImode))
15764 : return -1;
15765 : switch (GET_MODE (operands[0]))
15766 : {
15767 : case E_V8SImode:
15768 : if (pattern64 (x2,
15769 : E_V8SImode) != 0
15770 : || !
15771 : #line 29009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15772 : (TARGET_AVX))
15773 : return -1;
15774 : return 9522; /* *avx_vperm2f128v8si_full */
15775 :
15776 : case E_V8SFmode:
15777 : if (pattern64 (x2,
15778 : E_V8SFmode) != 0
15779 : || !
15780 : #line 29009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15781 : (TARGET_AVX))
15782 : return -1;
15783 : return 9523; /* *avx_vperm2f128v8sf_full */
15784 :
15785 : case E_V4DFmode:
15786 : if (pattern64 (x2,
15787 : E_V4DFmode) != 0
15788 : || !
15789 : #line 29009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15790 : (TARGET_AVX))
15791 : return -1;
15792 : return 9524; /* *avx_vperm2f128v4df_full */
15793 :
15794 : default:
15795 : return -1;
15796 : }
15797 :
15798 : case 154:
15799 : return recog_248 (x1, insn, pnum_clobbers);
15800 :
15801 : case 170:
15802 : return recog_255 (x1, insn, pnum_clobbers);
15803 :
15804 : case 171:
15805 : return recog_254 (x1, insn, pnum_clobbers);
15806 :
15807 : case 172:
15808 : return recog_252 (x1, insn, pnum_clobbers);
15809 :
15810 : case 195:
15811 : return recog_257 (x1, insn, pnum_clobbers);
15812 :
15813 : case 187:
15814 : x3 = XEXP (x1, 0);
15815 : operands[0] = x3;
15816 : x4 = XVECEXP (x2, 0, 0);
15817 : operands[1] = x4;
15818 : x5 = XVECEXP (x2, 0, 1);
15819 : operands[2] = x5;
15820 : x6 = XVECEXP (x2, 0, 2);
15821 : operands[3] = x6;
15822 : if (!const_0_to_255_operand (operands[3], E_SImode))
15823 : return -1;
15824 : switch (GET_MODE (operands[0]))
15825 : {
15826 : case E_V8HImode:
15827 : if (pattern169 (x2,
15828 : E_V8HImode,
15829 : E_V16QImode) != 0
15830 : || !(
15831 : #line 30625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15832 : (TARGET_AVX512BW) &&
15833 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15834 : (TARGET_AVX512VL)))
15835 : return -1;
15836 : return 10128; /* *avx512bw_dbpsadbwv8hi */
15837 :
15838 : case E_V16HImode:
15839 : if (pattern169 (x2,
15840 : E_V16HImode,
15841 : E_V32QImode) != 0
15842 : || !(
15843 : #line 30625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15844 : (TARGET_AVX512BW) &&
15845 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15846 : (TARGET_AVX512VL)))
15847 : return -1;
15848 : return 10130; /* *avx512bw_dbpsadbwv16hi */
15849 :
15850 : case E_V32HImode:
15851 : if (pattern169 (x2,
15852 : E_V32HImode,
15853 : E_V64QImode) != 0
15854 : || !
15855 : #line 30625 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15856 : (TARGET_AVX512BW))
15857 : return -1;
15858 : return 10132; /* *avx512bw_dbpsadbwv32hi */
15859 :
15860 : default:
15861 : return -1;
15862 : }
15863 :
15864 : case 183:
15865 : if (pattern166 (x1,
15866 : E_V4SImode) != 0)
15867 : return -1;
15868 : x6 = XVECEXP (x2, 0, 2);
15869 : operands[3] = x6;
15870 : if (!const_0_to_3_operand (operands[3], E_SImode)
15871 : || !
15872 : #line 30693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15873 : (TARGET_SHA))
15874 : return -1;
15875 : return 10161; /* sha1rnds4 */
15876 :
15877 : case 186:
15878 : if (pattern166 (x1,
15879 : E_V4SImode) != 0)
15880 : return -1;
15881 : x6 = XVECEXP (x2, 0, 2);
15882 : operands[3] = x6;
15883 : if (!register_operand (operands[3], E_V4SImode)
15884 : || !
15885 : #line 30728 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15886 : (TARGET_SHA))
15887 : return -1;
15888 : return 10164; /* sha256rnds2 */
15889 :
15890 : case 225:
15891 : if (pattern177 (x1) != 0
15892 : || !
15893 : #line 30741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15894 : (TARGET_SM3))
15895 : return -1;
15896 : return 10165; /* vsm3msg1 */
15897 :
15898 : case 226:
15899 : if (pattern177 (x1) != 0
15900 : || !
15901 : #line 30753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15902 : (TARGET_SM3))
15903 : return -1;
15904 : return 10166; /* vsm3msg2 */
15905 :
15906 : case 242:
15907 : if (pattern165 (x1,
15908 : E_V4DImode) != 0)
15909 : return -1;
15910 : x6 = XVECEXP (x2, 0, 2);
15911 : operands[3] = x6;
15912 : if (!register_operand (operands[3], E_V2DImode)
15913 : || !
15914 : #line 30801 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15915 : (TARGET_SHA512))
15916 : return -1;
15917 : return 10170; /* vsha512rnds2 */
15918 :
15919 : case 196:
15920 : switch (pattern179 (x1))
15921 : {
15922 : case 0:
15923 : if (!
15924 : #line 30910 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15925 : (TARGET_AVX512IFMA))
15926 : return -1;
15927 : return 10183; /* vpmadd52luqv8di */
15928 :
15929 : case 1:
15930 : if (!(
15931 : #line 30923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15932 : (TARGET_AVXIFMA || (TARGET_AVX512IFMA && TARGET_AVX512VL)) &&
15933 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15934 : (TARGET_AVX2)))
15935 : return -1;
15936 : return 10185; /* vpmadd52luqv4di */
15937 :
15938 : case 2:
15939 : if (!
15940 : #line 30923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15941 : (TARGET_AVXIFMA || (TARGET_AVX512IFMA && TARGET_AVX512VL)))
15942 : return -1;
15943 : return 10187; /* vpmadd52luqv2di */
15944 :
15945 : default:
15946 : return -1;
15947 : }
15948 :
15949 : case 197:
15950 : switch (pattern179 (x1))
15951 : {
15952 : case 0:
15953 : if (!
15954 : #line 30910 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15955 : (TARGET_AVX512IFMA))
15956 : return -1;
15957 : return 10184; /* vpmadd52huqv8di */
15958 :
15959 : case 1:
15960 : if (!(
15961 : #line 30923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15962 : (TARGET_AVXIFMA || (TARGET_AVX512IFMA && TARGET_AVX512VL)) &&
15963 : #line 697 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15964 : (TARGET_AVX2)))
15965 : return -1;
15966 : return 10186; /* vpmadd52huqv4di */
15967 :
15968 : case 2:
15969 : if (!
15970 : #line 30923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15971 : (TARGET_AVXIFMA || (TARGET_AVX512IFMA && TARGET_AVX512VL)))
15972 : return -1;
15973 : return 10188; /* vpmadd52huqv2di */
15974 :
15975 : default:
15976 : return -1;
15977 : }
15978 :
15979 : case 199:
15980 : switch (pattern180 (x1))
15981 : {
15982 : case 0:
15983 : if (!(
15984 : #line 31047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15985 : (TARGET_GFNI) &&
15986 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15987 : (TARGET_AVX512F)))
15988 : return -1;
15989 : return 10239; /* vgf2p8affineinvqb_v64qi */
15990 :
15991 : case 1:
15992 : if (!(
15993 : #line 31047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15994 : (TARGET_GFNI) &&
15995 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
15996 : (TARGET_AVX)))
15997 : return -1;
15998 : return 10241; /* vgf2p8affineinvqb_v32qi */
15999 :
16000 : case 2:
16001 : if (!
16002 : #line 31047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16003 : (TARGET_GFNI))
16004 : return -1;
16005 : return 10243; /* vgf2p8affineinvqb_v16qi */
16006 :
16007 : default:
16008 : return -1;
16009 : }
16010 :
16011 : case 200:
16012 : switch (pattern180 (x1))
16013 : {
16014 : case 0:
16015 : if (!(
16016 : #line 31064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16017 : (TARGET_GFNI) &&
16018 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16019 : (TARGET_AVX512F)))
16020 : return -1;
16021 : return 10245; /* vgf2p8affineqb_v64qi */
16022 :
16023 : case 1:
16024 : if (!(
16025 : #line 31064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16026 : (TARGET_GFNI) &&
16027 : #line 629 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16028 : (TARGET_AVX)))
16029 : return -1;
16030 : return 10247; /* vgf2p8affineqb_v32qi */
16031 :
16032 : case 2:
16033 : if (!
16034 : #line 31064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16035 : (TARGET_GFNI))
16036 : return -1;
16037 : return 10249; /* vgf2p8affineqb_v16qi */
16038 :
16039 : default:
16040 : return -1;
16041 : }
16042 :
16043 : case 203:
16044 : return recog_262 (x1, insn, pnum_clobbers);
16045 :
16046 : case 202:
16047 : return recog_260 (x1, insn, pnum_clobbers);
16048 :
16049 : case 204:
16050 : return recog_261 (x1, insn, pnum_clobbers);
16051 :
16052 : case 205:
16053 : return recog_259 (x1, insn, pnum_clobbers);
16054 :
16055 : case 206:
16056 : switch (pattern183 (x1))
16057 : {
16058 : case 0:
16059 : if (!
16060 : #line 31281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16061 : (TARGET_AVX512VNNI))
16062 : return -1;
16063 : return 10347; /* vpdpbusd_v16si */
16064 :
16065 : case 1:
16066 : if (!(
16067 : #line 31292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16068 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)) &&
16069 : #line 662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16070 : (TARGET_AVX2)))
16071 : return -1;
16072 : return 10348; /* vpdpbusd_v8si */
16073 :
16074 : case 2:
16075 : if (!
16076 : #line 31292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16077 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)))
16078 : return -1;
16079 : return 10349; /* vpdpbusd_v4si */
16080 :
16081 : default:
16082 : return -1;
16083 : }
16084 :
16085 : case 207:
16086 : switch (pattern183 (x1))
16087 : {
16088 : case 0:
16089 : if (!
16090 : #line 31350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16091 : (TARGET_AVX512VNNI))
16092 : return -1;
16093 : return 10356; /* vpdpbusds_v16si */
16094 :
16095 : case 1:
16096 : if (!(
16097 : #line 31361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16098 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)) &&
16099 : #line 662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16100 : (TARGET_AVX2)))
16101 : return -1;
16102 : return 10357; /* vpdpbusds_v8si */
16103 :
16104 : case 2:
16105 : if (!
16106 : #line 31361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16107 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)))
16108 : return -1;
16109 : return 10358; /* vpdpbusds_v4si */
16110 :
16111 : default:
16112 : return -1;
16113 : }
16114 :
16115 : case 208:
16116 : switch (pattern183 (x1))
16117 : {
16118 : case 0:
16119 : if (!
16120 : #line 31419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16121 : (TARGET_AVX512VNNI))
16122 : return -1;
16123 : return 10365; /* vpdpwssd_v16si */
16124 :
16125 : case 1:
16126 : if (!(
16127 : #line 31430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16128 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)) &&
16129 : #line 662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16130 : (TARGET_AVX2)))
16131 : return -1;
16132 : return 10366; /* vpdpwssd_v8si */
16133 :
16134 : case 2:
16135 : if (!
16136 : #line 31430 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16137 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)))
16138 : return -1;
16139 : return 10367; /* vpdpwssd_v4si */
16140 :
16141 : default:
16142 : return -1;
16143 : }
16144 :
16145 : case 209:
16146 : switch (pattern183 (x1))
16147 : {
16148 : case 0:
16149 : if (!
16150 : #line 31488 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16151 : (TARGET_AVX512VNNI))
16152 : return -1;
16153 : return 10374; /* vpdpwssds_v16si */
16154 :
16155 : case 1:
16156 : if (!(
16157 : #line 31499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16158 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)) &&
16159 : #line 662 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16160 : (TARGET_AVX2)))
16161 : return -1;
16162 : return 10375; /* vpdpwssds_v8si */
16163 :
16164 : case 2:
16165 : if (!
16166 : #line 31499 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16167 : (TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)))
16168 : return -1;
16169 : return 10376; /* vpdpwssds_v4si */
16170 :
16171 : default:
16172 : return -1;
16173 : }
16174 :
16175 : case 214:
16176 : x3 = XEXP (x1, 0);
16177 : operands[0] = x3;
16178 : x4 = XVECEXP (x2, 0, 0);
16179 : operands[1] = x4;
16180 : x5 = XVECEXP (x2, 0, 1);
16181 : operands[2] = x5;
16182 : x6 = XVECEXP (x2, 0, 2);
16183 : operands[3] = x6;
16184 : if (!const_0_to_255_operand (operands[3], E_SImode))
16185 : return -1;
16186 : switch (GET_MODE (operands[0]))
16187 : {
16188 : case E_V8DImode:
16189 : if (pattern158 (x2,
16190 : E_V8DImode) != 0
16191 : || !(
16192 : #line 31628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16193 : (TARGET_VPCLMULQDQ) &&
16194 : #line 614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16195 : (TARGET_AVX512F)))
16196 : return -1;
16197 : return 10395; /* vpclmulqdq_v8di */
16198 :
16199 : case E_V4DImode:
16200 : if (pattern158 (x2,
16201 : E_V4DImode) != 0
16202 : || !
16203 : #line 31628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16204 : (TARGET_VPCLMULQDQ))
16205 : return -1;
16206 : return 10396; /* vpclmulqdq_v4di */
16207 :
16208 : case E_V2DImode:
16209 : if (pattern158 (x2,
16210 : E_V2DImode) != 0
16211 : || !(
16212 : #line 31628 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16213 : (TARGET_VPCLMULQDQ) &&
16214 : #line 614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16215 : (TARGET_AVX512VL)))
16216 : return -1;
16217 : return 10397; /* vpclmulqdq_v2di */
16218 :
16219 : default:
16220 : return -1;
16221 : }
16222 :
16223 : case 217:
16224 : x3 = XEXP (x1, 0);
16225 : operands[0] = x3;
16226 : x4 = XVECEXP (x2, 0, 0);
16227 : operands[1] = x4;
16228 : x5 = XVECEXP (x2, 0, 1);
16229 : operands[2] = x5;
16230 : x6 = XVECEXP (x2, 0, 2);
16231 : operands[3] = x6;
16232 : switch (GET_MODE (operands[0]))
16233 : {
16234 : case E_V16SFmode:
16235 : if (pattern919 (x2,
16236 : E_V32BFmode,
16237 : E_V16SFmode) != 0
16238 : || !
16239 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16240 : (TARGET_AVX512BF16))
16241 : return -1;
16242 : return 10425; /* avx512f_dpbf16ps_v16sf */
16243 :
16244 : case E_V8SFmode:
16245 : if (pattern919 (x2,
16246 : E_V16BFmode,
16247 : E_V8SFmode) != 0
16248 : || !(
16249 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16250 : (TARGET_AVX512BF16) &&
16251 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16252 : (TARGET_AVX512VL)))
16253 : return -1;
16254 : return 10427; /* avx512f_dpbf16ps_v8sf */
16255 :
16256 : case E_V4SFmode:
16257 : if (pattern919 (x2,
16258 : E_V8BFmode,
16259 : E_V4SFmode) != 0
16260 : || !(
16261 : #line 31906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16262 : (TARGET_AVX512BF16) &&
16263 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16264 : (TARGET_AVX512VL)))
16265 : return -1;
16266 : return 10429; /* avx512f_dpbf16ps_v4sf */
16267 :
16268 : default:
16269 : return -1;
16270 : }
16271 :
16272 : case 228:
16273 : switch (pattern184 (x1))
16274 : {
16275 : case 0:
16276 : if (!(
16277 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16278 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16279 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16280 : (TARGET_AVX)))
16281 : return -1;
16282 : return 10445; /* vpdpbssd_v8si */
16283 :
16284 : case 1:
16285 : if (!
16286 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16287 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16288 : return -1;
16289 : return 10451; /* vpdpbssd_v4si */
16290 :
16291 : case 2:
16292 : if (!
16293 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16294 : (TARGET_AVX10_2))
16295 : return -1;
16296 : return 10457; /* vpdpbssd_v16si */
16297 :
16298 : default:
16299 : return -1;
16300 : }
16301 :
16302 : case 229:
16303 : switch (pattern184 (x1))
16304 : {
16305 : case 0:
16306 : if (!(
16307 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16308 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16309 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16310 : (TARGET_AVX)))
16311 : return -1;
16312 : return 10446; /* vpdpbssds_v8si */
16313 :
16314 : case 1:
16315 : if (!
16316 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16317 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16318 : return -1;
16319 : return 10452; /* vpdpbssds_v4si */
16320 :
16321 : case 2:
16322 : if (!
16323 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16324 : (TARGET_AVX10_2))
16325 : return -1;
16326 : return 10458; /* vpdpbssds_v16si */
16327 :
16328 : default:
16329 : return -1;
16330 : }
16331 :
16332 : case 230:
16333 : switch (pattern184 (x1))
16334 : {
16335 : case 0:
16336 : if (!(
16337 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16338 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16339 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16340 : (TARGET_AVX)))
16341 : return -1;
16342 : return 10447; /* vpdpbsud_v8si */
16343 :
16344 : case 1:
16345 : if (!
16346 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16347 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16348 : return -1;
16349 : return 10453; /* vpdpbsud_v4si */
16350 :
16351 : case 2:
16352 : if (!
16353 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16354 : (TARGET_AVX10_2))
16355 : return -1;
16356 : return 10459; /* vpdpbsud_v16si */
16357 :
16358 : default:
16359 : return -1;
16360 : }
16361 :
16362 : case 231:
16363 : switch (pattern184 (x1))
16364 : {
16365 : case 0:
16366 : if (!(
16367 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16368 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16369 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16370 : (TARGET_AVX)))
16371 : return -1;
16372 : return 10448; /* vpdpbsuds_v8si */
16373 :
16374 : case 1:
16375 : if (!
16376 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16377 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16378 : return -1;
16379 : return 10454; /* vpdpbsuds_v4si */
16380 :
16381 : case 2:
16382 : if (!
16383 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16384 : (TARGET_AVX10_2))
16385 : return -1;
16386 : return 10460; /* vpdpbsuds_v16si */
16387 :
16388 : default:
16389 : return -1;
16390 : }
16391 :
16392 : case 232:
16393 : switch (pattern184 (x1))
16394 : {
16395 : case 0:
16396 : if (!(
16397 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16398 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16399 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16400 : (TARGET_AVX)))
16401 : return -1;
16402 : return 10449; /* vpdpbuud_v8si */
16403 :
16404 : case 1:
16405 : if (!
16406 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16407 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16408 : return -1;
16409 : return 10455; /* vpdpbuud_v4si */
16410 :
16411 : case 2:
16412 : if (!
16413 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16414 : (TARGET_AVX10_2))
16415 : return -1;
16416 : return 10461; /* vpdpbuud_v16si */
16417 :
16418 : default:
16419 : return -1;
16420 : }
16421 :
16422 : case 233:
16423 : switch (pattern184 (x1))
16424 : {
16425 : case 0:
16426 : if (!(
16427 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16428 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2) &&
16429 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16430 : (TARGET_AVX)))
16431 : return -1;
16432 : return 10450; /* vpdpbuuds_v8si */
16433 :
16434 : case 1:
16435 : if (!
16436 : #line 32279 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16437 : (TARGET_AVXVNNIINT8 || TARGET_AVX10_2))
16438 : return -1;
16439 : return 10456; /* vpdpbuuds_v4si */
16440 :
16441 : case 2:
16442 : if (!
16443 : #line 32290 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16444 : (TARGET_AVX10_2))
16445 : return -1;
16446 : return 10462; /* vpdpbuuds_v16si */
16447 :
16448 : default:
16449 : return -1;
16450 : }
16451 :
16452 : case 234:
16453 : switch (pattern184 (x1))
16454 : {
16455 : case 0:
16456 : if (!(
16457 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16458 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16459 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16460 : (TARGET_AVX)))
16461 : return -1;
16462 : return 10597; /* vpdpwusd_v8si */
16463 :
16464 : case 1:
16465 : if (!
16466 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16467 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16468 : return -1;
16469 : return 10603; /* vpdpwusd_v4si */
16470 :
16471 : case 2:
16472 : if (!
16473 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16474 : (TARGET_AVX10_2))
16475 : return -1;
16476 : return 10609; /* vpdpwusd_v16si */
16477 :
16478 : default:
16479 : return -1;
16480 : }
16481 :
16482 : case 235:
16483 : switch (pattern184 (x1))
16484 : {
16485 : case 0:
16486 : if (!(
16487 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16488 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16489 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16490 : (TARGET_AVX)))
16491 : return -1;
16492 : return 10598; /* vpdpwusds_v8si */
16493 :
16494 : case 1:
16495 : if (!
16496 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16497 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16498 : return -1;
16499 : return 10604; /* vpdpwusds_v4si */
16500 :
16501 : case 2:
16502 : if (!
16503 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16504 : (TARGET_AVX10_2))
16505 : return -1;
16506 : return 10610; /* vpdpwusds_v16si */
16507 :
16508 : default:
16509 : return -1;
16510 : }
16511 :
16512 : case 236:
16513 : switch (pattern184 (x1))
16514 : {
16515 : case 0:
16516 : if (!(
16517 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16518 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16519 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16520 : (TARGET_AVX)))
16521 : return -1;
16522 : return 10599; /* vpdpwsud_v8si */
16523 :
16524 : case 1:
16525 : if (!
16526 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16527 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16528 : return -1;
16529 : return 10605; /* vpdpwsud_v4si */
16530 :
16531 : case 2:
16532 : if (!
16533 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16534 : (TARGET_AVX10_2))
16535 : return -1;
16536 : return 10611; /* vpdpwsud_v16si */
16537 :
16538 : default:
16539 : return -1;
16540 : }
16541 :
16542 : case 237:
16543 : switch (pattern184 (x1))
16544 : {
16545 : case 0:
16546 : if (!(
16547 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16548 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16549 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16550 : (TARGET_AVX)))
16551 : return -1;
16552 : return 10600; /* vpdpwsuds_v8si */
16553 :
16554 : case 1:
16555 : if (!
16556 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16557 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16558 : return -1;
16559 : return 10606; /* vpdpwsuds_v4si */
16560 :
16561 : case 2:
16562 : if (!
16563 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16564 : (TARGET_AVX10_2))
16565 : return -1;
16566 : return 10612; /* vpdpwsuds_v16si */
16567 :
16568 : default:
16569 : return -1;
16570 : }
16571 :
16572 : case 238:
16573 : switch (pattern184 (x1))
16574 : {
16575 : case 0:
16576 : if (!(
16577 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16578 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16579 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16580 : (TARGET_AVX)))
16581 : return -1;
16582 : return 10601; /* vpdpwuud_v8si */
16583 :
16584 : case 1:
16585 : if (!
16586 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16587 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16588 : return -1;
16589 : return 10607; /* vpdpwuud_v4si */
16590 :
16591 : case 2:
16592 : if (!
16593 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16594 : (TARGET_AVX10_2))
16595 : return -1;
16596 : return 10613; /* vpdpwuud_v16si */
16597 :
16598 : default:
16599 : return -1;
16600 : }
16601 :
16602 : case 239:
16603 : switch (pattern184 (x1))
16604 : {
16605 : case 0:
16606 : if (!(
16607 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16608 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2) &&
16609 : #line 659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16610 : (TARGET_AVX)))
16611 : return -1;
16612 : return 10602; /* vpdpwuuds_v8si */
16613 :
16614 : case 1:
16615 : if (!
16616 : #line 32688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16617 : (TARGET_AVXVNNIINT16 || TARGET_AVX10_2))
16618 : return -1;
16619 : return 10608; /* vpdpwuuds_v4si */
16620 :
16621 : case 2:
16622 : if (!
16623 : #line 32699 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16624 : (TARGET_AVX10_2))
16625 : return -1;
16626 : return 10614; /* vpdpwuuds_v16si */
16627 :
16628 : default:
16629 : return -1;
16630 : }
16631 :
16632 : case 245:
16633 : x3 = XEXP (x1, 0);
16634 : operands[0] = x3;
16635 : x4 = XVECEXP (x2, 0, 0);
16636 : operands[1] = x4;
16637 : x5 = XVECEXP (x2, 0, 1);
16638 : operands[2] = x5;
16639 : x6 = XVECEXP (x2, 0, 2);
16640 : operands[3] = x6;
16641 : switch (GET_MODE (operands[0]))
16642 : {
16643 : case E_V16SFmode:
16644 : if (pattern178 (x2,
16645 : E_V16SFmode) != 0
16646 : || !
16647 : #line 32751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16648 : (TARGET_AVX10_2))
16649 : return -1;
16650 : return 10651; /* vdpphps_v16sf */
16651 :
16652 : case E_V8SFmode:
16653 : if (pattern178 (x2,
16654 : E_V8SFmode) != 0
16655 : || !(
16656 : #line 32751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16657 : (TARGET_AVX10_2) &&
16658 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16659 : (TARGET_AVX512VL)))
16660 : return -1;
16661 : return 10652; /* vdpphps_v8sf */
16662 :
16663 : case E_V4SFmode:
16664 : if (pattern178 (x2,
16665 : E_V4SFmode) != 0
16666 : || !(
16667 : #line 32751 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16668 : (TARGET_AVX10_2) &&
16669 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16670 : (TARGET_AVX512VL)))
16671 : return -1;
16672 : return 10653; /* vdpphps_v4sf */
16673 :
16674 : default:
16675 : return -1;
16676 : }
16677 :
16678 : case 278:
16679 : x3 = XEXP (x1, 0);
16680 : operands[0] = x3;
16681 : x4 = XVECEXP (x2, 0, 0);
16682 : operands[1] = x4;
16683 : x5 = XVECEXP (x2, 0, 1);
16684 : operands[2] = x5;
16685 : x6 = XVECEXP (x2, 0, 2);
16686 : operands[3] = x6;
16687 : if (!const_0_to_255_operand (operands[3], E_SImode))
16688 : return -1;
16689 : switch (GET_MODE (operands[0]))
16690 : {
16691 : case E_V32BFmode:
16692 : if (pattern1039 (x2,
16693 : E_V32BFmode) != 0
16694 : || !
16695 : #line 33341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16696 : (TARGET_AVX10_2))
16697 : return -1;
16698 : return 10972; /* avx10_2_minmaxbf16_v32bf */
16699 :
16700 : case E_V16BFmode:
16701 : if (pattern1039 (x2,
16702 : E_V16BFmode) != 0
16703 : || !
16704 : #line 33341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16705 : (TARGET_AVX10_2))
16706 : return -1;
16707 : return 10974; /* avx10_2_minmaxbf16_v16bf */
16708 :
16709 : case E_V8BFmode:
16710 : if (pattern1039 (x2,
16711 : E_V8BFmode) != 0
16712 : || !
16713 : #line 33341 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16714 : (TARGET_AVX10_2))
16715 : return -1;
16716 : return 10976; /* avx10_2_minmaxbf16_v8bf */
16717 :
16718 : default:
16719 : return -1;
16720 : }
16721 :
16722 : case 279:
16723 : return recog_256 (x1, insn, pnum_clobbers);
16724 :
16725 : case 280:
16726 : switch (pattern185 (x1))
16727 : {
16728 : case 0:
16729 : if (!
16730 : #line 33395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16731 : (TARGET_AVX512BMM))
16732 : return -1;
16733 : return 11050; /* avx512bmm_vbmacor16x16x16_v32hi */
16734 :
16735 : case 1:
16736 : if (!(
16737 : #line 33395 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16738 : (TARGET_AVX512BMM) &&
16739 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16740 : (TARGET_AVX512VL)))
16741 : return -1;
16742 : return 11051; /* avx512bmm_vbmacor16x16x16_v16hi */
16743 :
16744 : default:
16745 : return -1;
16746 : }
16747 :
16748 : case 281:
16749 : switch (pattern185 (x1))
16750 : {
16751 : case 0:
16752 : if (!
16753 : #line 33408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16754 : (TARGET_AVX512BMM))
16755 : return -1;
16756 : return 11052; /* avx512bmm_vbmacxor16x16x16_v32hi */
16757 :
16758 : case 1:
16759 : if (!(
16760 : #line 33408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16761 : (TARGET_AVX512BMM) &&
16762 : #line 33386 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16763 : (TARGET_AVX512VL)))
16764 : return -1;
16765 : return 11053; /* avx512bmm_vbmacxor16x16x16_v16hi */
16766 :
16767 : default:
16768 : return -1;
16769 : }
16770 :
16771 : default:
16772 : return -1;
16773 : }
16774 : }
16775 :
16776 : int
16777 : recog_302 (rtx x1 ATTRIBUTE_UNUSED,
16778 : rtx_insn *insn ATTRIBUTE_UNUSED,
16779 : int *pnum_clobbers ATTRIBUTE_UNUSED)
16780 : {
16781 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
16782 : rtx x2, x3, x4;
16783 : int res ATTRIBUTE_UNUSED;
16784 : x2 = XEXP (x1, 1);
16785 : x3 = XEXP (x2, 1);
16786 : x4 = XVECEXP (x3, 0, 0);
16787 : operands[3] = x4;
16788 : if (!const_int_operand (operands[3], E_VOIDmode))
16789 : return -1;
16790 : switch (GET_MODE (operands[0]))
16791 : {
16792 : case E_V4SFmode:
16793 : if (!register_operand (operands[0], E_V4SFmode)
16794 : || GET_MODE (x2) != E_V4SFmode)
16795 : return -1;
16796 : if (nonimmediate_operand (operands[1], E_V4SFmode))
16797 : {
16798 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
16799 : &&
16800 : #line 28050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16801 : (TARGET_AVX))
16802 : return 9209; /* *avx_vperm_broadcast_v4sf */
16803 : if (
16804 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16805 : (TARGET_AVX && 1
16806 : && avx_vpermilp_parallel (operands[2], V4SFmode)))
16807 : return 9228; /* *avx_vpermilpv4sf */
16808 : }
16809 : if (!register_operand (operands[1], E_V4SFmode)
16810 : || !palignr_operand (operands[2], E_VOIDmode)
16811 : || !
16812 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16813 : (TARGET_SSSE3))
16814 : return -1;
16815 : return 9534; /* *ssse3_palignrv4sf_perm */
16816 :
16817 : case E_V8SFmode:
16818 : if (!register_operand (operands[0], E_V8SFmode)
16819 : || GET_MODE (x2) != E_V8SFmode
16820 : || !nonimmediate_operand (operands[1], E_V8SFmode))
16821 : return -1;
16822 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
16823 : &&
16824 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16825 : (TARGET_AVX
16826 : && (V8SFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)))
16827 : return 9210; /* *avx_vperm_broadcast_v8sf */
16828 : if (!(
16829 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16830 : (TARGET_AVX && 1
16831 : && avx_vpermilp_parallel (operands[2], V8SFmode)) &&
16832 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16833 : (TARGET_AVX)))
16834 : return -1;
16835 : return 9226; /* *avx_vpermilpv8sf */
16836 :
16837 : case E_V4DFmode:
16838 : if (!register_operand (operands[0], E_V4DFmode)
16839 : || GET_MODE (x2) != E_V4DFmode
16840 : || !nonimmediate_operand (operands[1], E_V4DFmode))
16841 : return -1;
16842 : if (avx_vbroadcast_operand (operands[2], E_VOIDmode)
16843 : &&
16844 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16845 : (TARGET_AVX
16846 : && (V4DFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)))
16847 : return 9211; /* *avx_vperm_broadcast_v4df */
16848 : if (!(
16849 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16850 : (TARGET_AVX && 1
16851 : && avx_vpermilp_parallel (operands[2], V4DFmode)) &&
16852 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16853 : (TARGET_AVX)))
16854 : return -1;
16855 : return 9232; /* *avx_vpermilpv4df */
16856 :
16857 : case E_V16SImode:
16858 : if (!register_operand (operands[0], E_V16SImode)
16859 : || GET_MODE (x2) != E_V16SImode
16860 : || !nonimmediate_operand (operands[1], E_V16SImode)
16861 : || !(
16862 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16863 : (TARGET_AVX && 1
16864 : && avx_vpermilp_parallel (operands[2], V16SImode)) &&
16865 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16866 : (TARGET_AVX512F)))
16867 : return -1;
16868 : return 9212; /* *avx512f_vpermilpv16si */
16869 :
16870 : case E_V8SImode:
16871 : if (!register_operand (operands[0], E_V8SImode)
16872 : || GET_MODE (x2) != E_V8SImode
16873 : || !nonimmediate_operand (operands[1], E_V8SImode)
16874 : || !(
16875 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16876 : (TARGET_AVX && 1
16877 : && avx_vpermilp_parallel (operands[2], V8SImode)) &&
16878 : #line 311 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16879 : (TARGET_AVX)))
16880 : return -1;
16881 : return 9214; /* *avx_vpermilpv8si */
16882 :
16883 : case E_V4SImode:
16884 : if (!register_operand (operands[0], E_V4SImode)
16885 : || GET_MODE (x2) != E_V4SImode)
16886 : return -1;
16887 : if (nonimmediate_operand (operands[1], E_V4SImode)
16888 : &&
16889 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16890 : (TARGET_AVX && 1
16891 : && avx_vpermilp_parallel (operands[2], V4SImode)))
16892 : return 9216; /* *sse2_vpermilpv4si */
16893 : if (!register_operand (operands[1], E_V4SImode)
16894 : || !palignr_operand (operands[2], E_VOIDmode)
16895 : || !
16896 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16897 : (TARGET_SSSE3))
16898 : return -1;
16899 : return 9532; /* *ssse3_palignrv4si_perm */
16900 :
16901 : case E_V8DImode:
16902 : if (!register_operand (operands[0], E_V8DImode)
16903 : || GET_MODE (x2) != E_V8DImode
16904 : || !nonimmediate_operand (operands[1], E_V8DImode)
16905 : || !(
16906 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16907 : (TARGET_AVX && 1
16908 : && avx_vpermilp_parallel (operands[2], V8DImode)) &&
16909 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16910 : (TARGET_AVX512F)))
16911 : return -1;
16912 : return 9218; /* *avx512f_vpermilpv8di */
16913 :
16914 : case E_V4DImode:
16915 : if (!register_operand (operands[0], E_V4DImode)
16916 : || GET_MODE (x2) != E_V4DImode
16917 : || !nonimmediate_operand (operands[1], E_V4DImode)
16918 : || !(
16919 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16920 : (TARGET_AVX && 1
16921 : && avx_vpermilp_parallel (operands[2], V4DImode)) &&
16922 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16923 : (TARGET_AVX)))
16924 : return -1;
16925 : return 9220; /* *avx512vl_vpermilpv4di */
16926 :
16927 : case E_V2DImode:
16928 : if (!register_operand (operands[0], E_V2DImode)
16929 : || GET_MODE (x2) != E_V2DImode)
16930 : return -1;
16931 : if (nonimmediate_operand (operands[1], E_V2DImode)
16932 : && (
16933 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16934 : (TARGET_AVX && 1
16935 : && avx_vpermilp_parallel (operands[2], V2DImode)) &&
16936 : #line 312 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16937 : (TARGET_SSE2)))
16938 : return 9222; /* *avx512vl_vpermilpv2di */
16939 : if (!register_operand (operands[1], E_V2DImode)
16940 : || !palignr_operand (operands[2], E_VOIDmode)
16941 : || !
16942 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16943 : (TARGET_SSSE3))
16944 : return -1;
16945 : return 9533; /* *ssse3_palignrv2di_perm */
16946 :
16947 : case E_V16SFmode:
16948 : if (!register_operand (operands[0], E_V16SFmode)
16949 : || GET_MODE (x2) != E_V16SFmode
16950 : || !nonimmediate_operand (operands[1], E_V16SFmode)
16951 : || !(
16952 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16953 : (TARGET_AVX && 1
16954 : && avx_vpermilp_parallel (operands[2], V16SFmode)) &&
16955 : #line 313 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16956 : (TARGET_AVX512F)))
16957 : return -1;
16958 : return 9224; /* *avx512f_vpermilpv16sf */
16959 :
16960 : case E_V8DFmode:
16961 : if (!register_operand (operands[0], E_V8DFmode)
16962 : || GET_MODE (x2) != E_V8DFmode
16963 : || !nonimmediate_operand (operands[1], E_V8DFmode)
16964 : || !(
16965 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16966 : (TARGET_AVX && 1
16967 : && avx_vpermilp_parallel (operands[2], V8DFmode)) &&
16968 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16969 : (TARGET_AVX512F)))
16970 : return -1;
16971 : return 9230; /* *avx512f_vpermilpv8df */
16972 :
16973 : case E_V2DFmode:
16974 : if (!register_operand (operands[0], E_V2DFmode)
16975 : || GET_MODE (x2) != E_V2DFmode)
16976 : return -1;
16977 : if (nonimmediate_operand (operands[1], E_V2DFmode)
16978 : && (
16979 : #line 28187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16980 : (TARGET_AVX && 1
16981 : && avx_vpermilp_parallel (operands[2], V2DFmode)) &&
16982 : #line 314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16983 : (TARGET_SSE2)))
16984 : return 9234; /* *avx_vpermilpv2df */
16985 : if (!register_operand (operands[1], E_V2DFmode)
16986 : || !palignr_operand (operands[2], E_VOIDmode)
16987 : || !(
16988 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16989 : (TARGET_SSSE3) &&
16990 : #line 356 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
16991 : (TARGET_SSE2)))
16992 : return -1;
16993 : return 9535; /* *ssse3_palignrv2df_perm */
16994 :
16995 : case E_V16QImode:
16996 : if (pattern1155 (x2,
16997 : E_V16QImode) != 0
16998 : || !
16999 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17000 : (TARGET_SSSE3))
17001 : return -1;
17002 : return 9528; /* *ssse3_palignrv16qi_perm */
17003 :
17004 : case E_V8HImode:
17005 : if (pattern1155 (x2,
17006 : E_V8HImode) != 0
17007 : || !
17008 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17009 : (TARGET_SSSE3))
17010 : return -1;
17011 : return 9529; /* *ssse3_palignrv8hi_perm */
17012 :
17013 : case E_V8HFmode:
17014 : if (pattern1155 (x2,
17015 : E_V8HFmode) != 0
17016 : || !
17017 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17018 : (TARGET_SSSE3))
17019 : return -1;
17020 : return 9530; /* *ssse3_palignrv8hf_perm */
17021 :
17022 : case E_V8BFmode:
17023 : if (pattern1155 (x2,
17024 : E_V8BFmode) != 0
17025 : || !
17026 : #line 29052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17027 : (TARGET_SSSE3))
17028 : return -1;
17029 : return 9531; /* *ssse3_palignrv8bf_perm */
17030 :
17031 : default:
17032 : return -1;
17033 : }
17034 : }
17035 :
17036 : int
17037 : recog_312 (rtx x1 ATTRIBUTE_UNUSED,
17038 : rtx_insn *insn ATTRIBUTE_UNUSED,
17039 : int *pnum_clobbers ATTRIBUTE_UNUSED)
17040 : {
17041 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
17042 : rtx x2, x3, x4;
17043 : int res ATTRIBUTE_UNUSED;
17044 : x2 = XEXP (x1, 1);
17045 : x3 = XEXP (x2, 0);
17046 : x4 = XEXP (x3, 0);
17047 : switch (GET_CODE (x4))
17048 : {
17049 : case REG:
17050 : case SUBREG:
17051 : case MEM:
17052 : case NOT:
17053 : switch (pattern535 (x2))
17054 : {
17055 : case 0:
17056 : if (!(
17057 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17058 : ((64 == 64 || TARGET_AVX512VL
17059 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17060 : && ix86_pre_reload_split ()
17061 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17062 : STRIP_UNARY (operands[4]))
17063 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17064 : STRIP_UNARY (operands[4]))
17065 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17066 : STRIP_UNARY (operands[3]))
17067 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17068 : STRIP_UNARY (operands[3])))) &&
17069 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17070 : (TARGET_AVX512F)))
17071 : return -1;
17072 : return 5549; /* *avx512bw_vpternlogv64qi_1 */
17073 :
17074 : case 1:
17075 : if (!(
17076 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17077 : ((32 == 64 || TARGET_AVX512VL
17078 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17079 : && ix86_pre_reload_split ()
17080 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17081 : STRIP_UNARY (operands[4]))
17082 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17083 : STRIP_UNARY (operands[4]))
17084 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17085 : STRIP_UNARY (operands[3]))
17086 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17087 : STRIP_UNARY (operands[3])))) &&
17088 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17089 : (TARGET_AVX)))
17090 : return -1;
17091 : return 5576; /* *avx512vl_vpternlogv32qi_1 */
17092 :
17093 : case 2:
17094 : if (!
17095 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17096 : ((16 == 64 || TARGET_AVX512VL
17097 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17098 : && ix86_pre_reload_split ()
17099 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17100 : STRIP_UNARY (operands[4]))
17101 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17102 : STRIP_UNARY (operands[4]))
17103 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17104 : STRIP_UNARY (operands[3]))
17105 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17106 : STRIP_UNARY (operands[3])))))
17107 : return -1;
17108 : return 5603; /* *avx512vl_vpternlogv16qi_1 */
17109 :
17110 : case 3:
17111 : if (!(
17112 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17113 : ((64 == 64 || TARGET_AVX512VL
17114 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17115 : && ix86_pre_reload_split ()
17116 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17117 : STRIP_UNARY (operands[4]))
17118 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17119 : STRIP_UNARY (operands[4]))
17120 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17121 : STRIP_UNARY (operands[3]))
17122 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17123 : STRIP_UNARY (operands[3])))) &&
17124 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17125 : (TARGET_AVX512F)))
17126 : return -1;
17127 : return 5630; /* *avx512bw_vpternlogv32hi_1 */
17128 :
17129 : case 4:
17130 : if (!(
17131 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17132 : ((32 == 64 || TARGET_AVX512VL
17133 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17134 : && ix86_pre_reload_split ()
17135 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17136 : STRIP_UNARY (operands[4]))
17137 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17138 : STRIP_UNARY (operands[4]))
17139 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17140 : STRIP_UNARY (operands[3]))
17141 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17142 : STRIP_UNARY (operands[3])))) &&
17143 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17144 : (TARGET_AVX)))
17145 : return -1;
17146 : return 5657; /* *avx512vl_vpternlogv16hi_1 */
17147 :
17148 : case 5:
17149 : if (!
17150 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17151 : ((16 == 64 || TARGET_AVX512VL
17152 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17153 : && ix86_pre_reload_split ()
17154 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17155 : STRIP_UNARY (operands[4]))
17156 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17157 : STRIP_UNARY (operands[4]))
17158 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17159 : STRIP_UNARY (operands[3]))
17160 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17161 : STRIP_UNARY (operands[3])))))
17162 : return -1;
17163 : return 5684; /* *avx512vl_vpternlogv8hi_1 */
17164 :
17165 : case 6:
17166 : if (!(
17167 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17168 : ((64 == 64 || TARGET_AVX512VL
17169 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17170 : && ix86_pre_reload_split ()
17171 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17172 : STRIP_UNARY (operands[4]))
17173 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17174 : STRIP_UNARY (operands[4]))
17175 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17176 : STRIP_UNARY (operands[3]))
17177 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17178 : STRIP_UNARY (operands[3])))) &&
17179 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17180 : (TARGET_AVX512F)))
17181 : return -1;
17182 : return 5711; /* *avx512f_vpternlogv16si_1 */
17183 :
17184 : case 7:
17185 : if (!(
17186 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17187 : ((32 == 64 || TARGET_AVX512VL
17188 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17189 : && ix86_pre_reload_split ()
17190 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17191 : STRIP_UNARY (operands[4]))
17192 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17193 : STRIP_UNARY (operands[4]))
17194 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17195 : STRIP_UNARY (operands[3]))
17196 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17197 : STRIP_UNARY (operands[3])))) &&
17198 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17199 : (TARGET_AVX)))
17200 : return -1;
17201 : return 5738; /* *avx512vl_vpternlogv8si_1 */
17202 :
17203 : case 8:
17204 : if (!
17205 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17206 : ((16 == 64 || TARGET_AVX512VL
17207 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17208 : && ix86_pre_reload_split ()
17209 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17210 : STRIP_UNARY (operands[4]))
17211 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17212 : STRIP_UNARY (operands[4]))
17213 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17214 : STRIP_UNARY (operands[3]))
17215 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17216 : STRIP_UNARY (operands[3])))))
17217 : return -1;
17218 : return 5765; /* *avx512vl_vpternlogv4si_1 */
17219 :
17220 : case 9:
17221 : if (!(
17222 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17223 : ((64 == 64 || TARGET_AVX512VL
17224 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17225 : && ix86_pre_reload_split ()
17226 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17227 : STRIP_UNARY (operands[4]))
17228 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17229 : STRIP_UNARY (operands[4]))
17230 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17231 : STRIP_UNARY (operands[3]))
17232 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17233 : STRIP_UNARY (operands[3])))) &&
17234 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17235 : (TARGET_AVX512F)))
17236 : return -1;
17237 : return 5792; /* *avx512f_vpternlogv8di_1 */
17238 :
17239 : case 10:
17240 : if (!(
17241 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17242 : ((32 == 64 || TARGET_AVX512VL
17243 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17244 : && ix86_pre_reload_split ()
17245 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17246 : STRIP_UNARY (operands[4]))
17247 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17248 : STRIP_UNARY (operands[4]))
17249 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17250 : STRIP_UNARY (operands[3]))
17251 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17252 : STRIP_UNARY (operands[3])))) &&
17253 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17254 : (TARGET_AVX)))
17255 : return -1;
17256 : return 5819; /* *avx512vl_vpternlogv4di_1 */
17257 :
17258 : case 11:
17259 : if (!
17260 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17261 : ((16 == 64 || TARGET_AVX512VL
17262 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17263 : && ix86_pre_reload_split ()
17264 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17265 : STRIP_UNARY (operands[4]))
17266 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17267 : STRIP_UNARY (operands[4]))
17268 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17269 : STRIP_UNARY (operands[3]))
17270 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17271 : STRIP_UNARY (operands[3])))))
17272 : return -1;
17273 : return 5846; /* *avx512vl_vpternlogv2di_1 */
17274 :
17275 : case 12:
17276 : if (!(
17277 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17278 : ((64 == 64 || TARGET_AVX512VL
17279 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17280 : && ix86_pre_reload_split ()
17281 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17282 : STRIP_UNARY (operands[4]))
17283 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17284 : STRIP_UNARY (operands[4]))
17285 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17286 : STRIP_UNARY (operands[3]))
17287 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17288 : STRIP_UNARY (operands[3])))) &&
17289 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17290 : (TARGET_AVX512F)))
17291 : return -1;
17292 : return 5552; /* *avx512bw_vpternlogv64qi_1 */
17293 :
17294 : case 13:
17295 : if (!(
17296 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17297 : ((32 == 64 || TARGET_AVX512VL
17298 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17299 : && ix86_pre_reload_split ()
17300 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17301 : STRIP_UNARY (operands[4]))
17302 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17303 : STRIP_UNARY (operands[4]))
17304 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17305 : STRIP_UNARY (operands[3]))
17306 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17307 : STRIP_UNARY (operands[3])))) &&
17308 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17309 : (TARGET_AVX)))
17310 : return -1;
17311 : return 5579; /* *avx512vl_vpternlogv32qi_1 */
17312 :
17313 : case 14:
17314 : if (!
17315 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17316 : ((16 == 64 || TARGET_AVX512VL
17317 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17318 : && ix86_pre_reload_split ()
17319 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17320 : STRIP_UNARY (operands[4]))
17321 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17322 : STRIP_UNARY (operands[4]))
17323 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17324 : STRIP_UNARY (operands[3]))
17325 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17326 : STRIP_UNARY (operands[3])))))
17327 : return -1;
17328 : return 5606; /* *avx512vl_vpternlogv16qi_1 */
17329 :
17330 : case 15:
17331 : if (!(
17332 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17333 : ((64 == 64 || TARGET_AVX512VL
17334 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17335 : && ix86_pre_reload_split ()
17336 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17337 : STRIP_UNARY (operands[4]))
17338 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17339 : STRIP_UNARY (operands[4]))
17340 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17341 : STRIP_UNARY (operands[3]))
17342 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17343 : STRIP_UNARY (operands[3])))) &&
17344 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17345 : (TARGET_AVX512F)))
17346 : return -1;
17347 : return 5633; /* *avx512bw_vpternlogv32hi_1 */
17348 :
17349 : case 16:
17350 : if (!(
17351 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17352 : ((32 == 64 || TARGET_AVX512VL
17353 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17354 : && ix86_pre_reload_split ()
17355 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17356 : STRIP_UNARY (operands[4]))
17357 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17358 : STRIP_UNARY (operands[4]))
17359 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17360 : STRIP_UNARY (operands[3]))
17361 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17362 : STRIP_UNARY (operands[3])))) &&
17363 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17364 : (TARGET_AVX)))
17365 : return -1;
17366 : return 5660; /* *avx512vl_vpternlogv16hi_1 */
17367 :
17368 : case 17:
17369 : if (!
17370 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17371 : ((16 == 64 || TARGET_AVX512VL
17372 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17373 : && ix86_pre_reload_split ()
17374 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17375 : STRIP_UNARY (operands[4]))
17376 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17377 : STRIP_UNARY (operands[4]))
17378 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17379 : STRIP_UNARY (operands[3]))
17380 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17381 : STRIP_UNARY (operands[3])))))
17382 : return -1;
17383 : return 5687; /* *avx512vl_vpternlogv8hi_1 */
17384 :
17385 : case 18:
17386 : if (!(
17387 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17388 : ((64 == 64 || TARGET_AVX512VL
17389 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17390 : && ix86_pre_reload_split ()
17391 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17392 : STRIP_UNARY (operands[4]))
17393 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17394 : STRIP_UNARY (operands[4]))
17395 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17396 : STRIP_UNARY (operands[3]))
17397 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17398 : STRIP_UNARY (operands[3])))) &&
17399 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17400 : (TARGET_AVX512F)))
17401 : return -1;
17402 : return 5714; /* *avx512f_vpternlogv16si_1 */
17403 :
17404 : case 19:
17405 : if (!(
17406 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17407 : ((32 == 64 || TARGET_AVX512VL
17408 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17409 : && ix86_pre_reload_split ()
17410 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17411 : STRIP_UNARY (operands[4]))
17412 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17413 : STRIP_UNARY (operands[4]))
17414 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17415 : STRIP_UNARY (operands[3]))
17416 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17417 : STRIP_UNARY (operands[3])))) &&
17418 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17419 : (TARGET_AVX)))
17420 : return -1;
17421 : return 5741; /* *avx512vl_vpternlogv8si_1 */
17422 :
17423 : case 20:
17424 : if (!
17425 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17426 : ((16 == 64 || TARGET_AVX512VL
17427 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17428 : && ix86_pre_reload_split ()
17429 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17430 : STRIP_UNARY (operands[4]))
17431 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17432 : STRIP_UNARY (operands[4]))
17433 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17434 : STRIP_UNARY (operands[3]))
17435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17436 : STRIP_UNARY (operands[3])))))
17437 : return -1;
17438 : return 5768; /* *avx512vl_vpternlogv4si_1 */
17439 :
17440 : case 21:
17441 : if (!(
17442 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17443 : ((64 == 64 || TARGET_AVX512VL
17444 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17445 : && ix86_pre_reload_split ()
17446 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17447 : STRIP_UNARY (operands[4]))
17448 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17449 : STRIP_UNARY (operands[4]))
17450 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17451 : STRIP_UNARY (operands[3]))
17452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17453 : STRIP_UNARY (operands[3])))) &&
17454 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17455 : (TARGET_AVX512F)))
17456 : return -1;
17457 : return 5795; /* *avx512f_vpternlogv8di_1 */
17458 :
17459 : case 22:
17460 : if (!(
17461 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17462 : ((32 == 64 || TARGET_AVX512VL
17463 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17464 : && ix86_pre_reload_split ()
17465 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17466 : STRIP_UNARY (operands[4]))
17467 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17468 : STRIP_UNARY (operands[4]))
17469 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17470 : STRIP_UNARY (operands[3]))
17471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17472 : STRIP_UNARY (operands[3])))) &&
17473 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17474 : (TARGET_AVX)))
17475 : return -1;
17476 : return 5822; /* *avx512vl_vpternlogv4di_1 */
17477 :
17478 : case 23:
17479 : if (!
17480 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17481 : ((16 == 64 || TARGET_AVX512VL
17482 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17483 : && ix86_pre_reload_split ()
17484 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17485 : STRIP_UNARY (operands[4]))
17486 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17487 : STRIP_UNARY (operands[4]))
17488 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17489 : STRIP_UNARY (operands[3]))
17490 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17491 : STRIP_UNARY (operands[3])))))
17492 : return -1;
17493 : return 5849; /* *avx512vl_vpternlogv2di_1 */
17494 :
17495 : case 24:
17496 : if (!(
17497 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17498 : ((64 == 64 || TARGET_AVX512VL
17499 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17500 : && ix86_pre_reload_split ()
17501 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17502 : STRIP_UNARY (operands[4]))
17503 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17504 : STRIP_UNARY (operands[4]))
17505 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17506 : STRIP_UNARY (operands[3]))
17507 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17508 : STRIP_UNARY (operands[3])))) &&
17509 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17510 : (TARGET_AVX512F)))
17511 : return -1;
17512 : return 5555; /* *avx512bw_vpternlogv64qi_1 */
17513 :
17514 : case 25:
17515 : if (!(
17516 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17517 : ((32 == 64 || TARGET_AVX512VL
17518 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17519 : && ix86_pre_reload_split ()
17520 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17521 : STRIP_UNARY (operands[4]))
17522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17523 : STRIP_UNARY (operands[4]))
17524 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17525 : STRIP_UNARY (operands[3]))
17526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17527 : STRIP_UNARY (operands[3])))) &&
17528 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17529 : (TARGET_AVX)))
17530 : return -1;
17531 : return 5582; /* *avx512vl_vpternlogv32qi_1 */
17532 :
17533 : case 26:
17534 : if (!
17535 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17536 : ((16 == 64 || TARGET_AVX512VL
17537 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17538 : && ix86_pre_reload_split ()
17539 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17540 : STRIP_UNARY (operands[4]))
17541 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17542 : STRIP_UNARY (operands[4]))
17543 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17544 : STRIP_UNARY (operands[3]))
17545 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17546 : STRIP_UNARY (operands[3])))))
17547 : return -1;
17548 : return 5609; /* *avx512vl_vpternlogv16qi_1 */
17549 :
17550 : case 27:
17551 : if (!(
17552 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17553 : ((64 == 64 || TARGET_AVX512VL
17554 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17555 : && ix86_pre_reload_split ()
17556 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17557 : STRIP_UNARY (operands[4]))
17558 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17559 : STRIP_UNARY (operands[4]))
17560 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17561 : STRIP_UNARY (operands[3]))
17562 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17563 : STRIP_UNARY (operands[3])))) &&
17564 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17565 : (TARGET_AVX512F)))
17566 : return -1;
17567 : return 5636; /* *avx512bw_vpternlogv32hi_1 */
17568 :
17569 : case 28:
17570 : if (!(
17571 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17572 : ((32 == 64 || TARGET_AVX512VL
17573 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17574 : && ix86_pre_reload_split ()
17575 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17576 : STRIP_UNARY (operands[4]))
17577 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17578 : STRIP_UNARY (operands[4]))
17579 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17580 : STRIP_UNARY (operands[3]))
17581 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17582 : STRIP_UNARY (operands[3])))) &&
17583 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17584 : (TARGET_AVX)))
17585 : return -1;
17586 : return 5663; /* *avx512vl_vpternlogv16hi_1 */
17587 :
17588 : case 29:
17589 : if (!
17590 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17591 : ((16 == 64 || TARGET_AVX512VL
17592 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17593 : && ix86_pre_reload_split ()
17594 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17595 : STRIP_UNARY (operands[4]))
17596 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17597 : STRIP_UNARY (operands[4]))
17598 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17599 : STRIP_UNARY (operands[3]))
17600 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17601 : STRIP_UNARY (operands[3])))))
17602 : return -1;
17603 : return 5690; /* *avx512vl_vpternlogv8hi_1 */
17604 :
17605 : case 30:
17606 : if (!(
17607 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17608 : ((64 == 64 || TARGET_AVX512VL
17609 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17610 : && ix86_pre_reload_split ()
17611 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17612 : STRIP_UNARY (operands[4]))
17613 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17614 : STRIP_UNARY (operands[4]))
17615 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17616 : STRIP_UNARY (operands[3]))
17617 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17618 : STRIP_UNARY (operands[3])))) &&
17619 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17620 : (TARGET_AVX512F)))
17621 : return -1;
17622 : return 5717; /* *avx512f_vpternlogv16si_1 */
17623 :
17624 : case 31:
17625 : if (!(
17626 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17627 : ((32 == 64 || TARGET_AVX512VL
17628 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17629 : && ix86_pre_reload_split ()
17630 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17631 : STRIP_UNARY (operands[4]))
17632 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17633 : STRIP_UNARY (operands[4]))
17634 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17635 : STRIP_UNARY (operands[3]))
17636 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17637 : STRIP_UNARY (operands[3])))) &&
17638 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17639 : (TARGET_AVX)))
17640 : return -1;
17641 : return 5744; /* *avx512vl_vpternlogv8si_1 */
17642 :
17643 : case 32:
17644 : if (!
17645 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17646 : ((16 == 64 || TARGET_AVX512VL
17647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17648 : && ix86_pre_reload_split ()
17649 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17650 : STRIP_UNARY (operands[4]))
17651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17652 : STRIP_UNARY (operands[4]))
17653 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17654 : STRIP_UNARY (operands[3]))
17655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17656 : STRIP_UNARY (operands[3])))))
17657 : return -1;
17658 : return 5771; /* *avx512vl_vpternlogv4si_1 */
17659 :
17660 : case 33:
17661 : if (!(
17662 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17663 : ((64 == 64 || TARGET_AVX512VL
17664 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17665 : && ix86_pre_reload_split ()
17666 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17667 : STRIP_UNARY (operands[4]))
17668 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17669 : STRIP_UNARY (operands[4]))
17670 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17671 : STRIP_UNARY (operands[3]))
17672 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17673 : STRIP_UNARY (operands[3])))) &&
17674 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17675 : (TARGET_AVX512F)))
17676 : return -1;
17677 : return 5798; /* *avx512f_vpternlogv8di_1 */
17678 :
17679 : case 34:
17680 : if (!(
17681 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17682 : ((32 == 64 || TARGET_AVX512VL
17683 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17684 : && ix86_pre_reload_split ()
17685 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17686 : STRIP_UNARY (operands[4]))
17687 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17688 : STRIP_UNARY (operands[4]))
17689 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17690 : STRIP_UNARY (operands[3]))
17691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17692 : STRIP_UNARY (operands[3])))) &&
17693 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17694 : (TARGET_AVX)))
17695 : return -1;
17696 : return 5825; /* *avx512vl_vpternlogv4di_1 */
17697 :
17698 : case 35:
17699 : if (!
17700 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17701 : ((16 == 64 || TARGET_AVX512VL
17702 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17703 : && ix86_pre_reload_split ()
17704 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17705 : STRIP_UNARY (operands[4]))
17706 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17707 : STRIP_UNARY (operands[4]))
17708 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17709 : STRIP_UNARY (operands[3]))
17710 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17711 : STRIP_UNARY (operands[3])))))
17712 : return -1;
17713 : return 5852; /* *avx512vl_vpternlogv2di_1 */
17714 :
17715 : case 36:
17716 : if (!(
17717 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17718 : ((64 == 64 || TARGET_AVX512VL
17719 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17720 : && ix86_pre_reload_split ()) &&
17721 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17722 : (TARGET_AVX512F)))
17723 : return -1;
17724 : return 6839; /* *avx512bw_vpternlogv64qi_3 */
17725 :
17726 : case 37:
17727 : if (!(
17728 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17729 : ((32 == 64 || TARGET_AVX512VL
17730 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17731 : && ix86_pre_reload_split ()) &&
17732 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17733 : (TARGET_AVX)))
17734 : return -1;
17735 : return 6848; /* *avx512vl_vpternlogv32qi_3 */
17736 :
17737 : case 38:
17738 : if (!
17739 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17740 : ((16 == 64 || TARGET_AVX512VL
17741 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17742 : && ix86_pre_reload_split ()))
17743 : return -1;
17744 : return 6857; /* *avx512vl_vpternlogv16qi_3 */
17745 :
17746 : case 39:
17747 : if (!(
17748 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17749 : ((64 == 64 || TARGET_AVX512VL
17750 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17751 : && ix86_pre_reload_split ()) &&
17752 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17753 : (TARGET_AVX512F)))
17754 : return -1;
17755 : return 6866; /* *avx512bw_vpternlogv32hi_3 */
17756 :
17757 : case 40:
17758 : if (!(
17759 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17760 : ((32 == 64 || TARGET_AVX512VL
17761 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17762 : && ix86_pre_reload_split ()) &&
17763 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17764 : (TARGET_AVX)))
17765 : return -1;
17766 : return 6875; /* *avx512vl_vpternlogv16hi_3 */
17767 :
17768 : case 41:
17769 : if (!
17770 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17771 : ((16 == 64 || TARGET_AVX512VL
17772 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17773 : && ix86_pre_reload_split ()))
17774 : return -1;
17775 : return 6884; /* *avx512vl_vpternlogv8hi_3 */
17776 :
17777 : case 42:
17778 : if (!(
17779 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17780 : ((64 == 64 || TARGET_AVX512VL
17781 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17782 : && ix86_pre_reload_split ()) &&
17783 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17784 : (TARGET_AVX512F)))
17785 : return -1;
17786 : return 6893; /* *avx512f_vpternlogv16si_3 */
17787 :
17788 : case 43:
17789 : if (!(
17790 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17791 : ((32 == 64 || TARGET_AVX512VL
17792 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17793 : && ix86_pre_reload_split ()) &&
17794 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17795 : (TARGET_AVX)))
17796 : return -1;
17797 : return 6902; /* *avx512vl_vpternlogv8si_3 */
17798 :
17799 : case 44:
17800 : if (!
17801 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17802 : ((16 == 64 || TARGET_AVX512VL
17803 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17804 : && ix86_pre_reload_split ()))
17805 : return -1;
17806 : return 6911; /* *avx512vl_vpternlogv4si_3 */
17807 :
17808 : case 45:
17809 : if (!(
17810 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17811 : ((64 == 64 || TARGET_AVX512VL
17812 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17813 : && ix86_pre_reload_split ()) &&
17814 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17815 : (TARGET_AVX512F)))
17816 : return -1;
17817 : return 6920; /* *avx512f_vpternlogv8di_3 */
17818 :
17819 : case 46:
17820 : if (!(
17821 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17822 : ((32 == 64 || TARGET_AVX512VL
17823 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17824 : && ix86_pre_reload_split ()) &&
17825 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17826 : (TARGET_AVX)))
17827 : return -1;
17828 : return 6929; /* *avx512vl_vpternlogv4di_3 */
17829 :
17830 : case 47:
17831 : if (!
17832 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17833 : ((16 == 64 || TARGET_AVX512VL
17834 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17835 : && ix86_pre_reload_split ()))
17836 : return -1;
17837 : return 6938; /* *avx512vl_vpternlogv2di_3 */
17838 :
17839 : default:
17840 : return -1;
17841 : }
17842 :
17843 : case AND:
17844 : switch (pattern537 (x2))
17845 : {
17846 : case 0:
17847 : if (!(
17848 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17849 : ((64 == 64 || TARGET_AVX512VL
17850 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17851 : && ix86_pre_reload_split ()
17852 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17853 : STRIP_UNARY (operands[4]))
17854 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17855 : STRIP_UNARY (operands[4]))
17856 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17857 : STRIP_UNARY (operands[3]))
17858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17859 : STRIP_UNARY (operands[3])))) &&
17860 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17861 : (TARGET_AVX512F)))
17862 : return -1;
17863 : return 6197; /* *avx512bw_vpternlogv64qi_2 */
17864 :
17865 : case 1:
17866 : if (!(
17867 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17868 : ((32 == 64 || TARGET_AVX512VL
17869 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17870 : && ix86_pre_reload_split ()
17871 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17872 : STRIP_UNARY (operands[4]))
17873 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17874 : STRIP_UNARY (operands[4]))
17875 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17876 : STRIP_UNARY (operands[3]))
17877 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17878 : STRIP_UNARY (operands[3])))) &&
17879 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17880 : (TARGET_AVX)))
17881 : return -1;
17882 : return 6224; /* *avx512vl_vpternlogv32qi_2 */
17883 :
17884 : case 2:
17885 : if (!
17886 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17887 : ((16 == 64 || TARGET_AVX512VL
17888 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17889 : && ix86_pre_reload_split ()
17890 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17891 : STRIP_UNARY (operands[4]))
17892 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17893 : STRIP_UNARY (operands[4]))
17894 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17895 : STRIP_UNARY (operands[3]))
17896 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17897 : STRIP_UNARY (operands[3])))))
17898 : return -1;
17899 : return 6251; /* *avx512vl_vpternlogv16qi_2 */
17900 :
17901 : case 3:
17902 : if (!(
17903 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17904 : ((64 == 64 || TARGET_AVX512VL
17905 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17906 : && ix86_pre_reload_split ()
17907 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17908 : STRIP_UNARY (operands[4]))
17909 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17910 : STRIP_UNARY (operands[4]))
17911 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17912 : STRIP_UNARY (operands[3]))
17913 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17914 : STRIP_UNARY (operands[3])))) &&
17915 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17916 : (TARGET_AVX512F)))
17917 : return -1;
17918 : return 6278; /* *avx512bw_vpternlogv32hi_2 */
17919 :
17920 : case 4:
17921 : if (!(
17922 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17923 : ((32 == 64 || TARGET_AVX512VL
17924 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17925 : && ix86_pre_reload_split ()
17926 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17927 : STRIP_UNARY (operands[4]))
17928 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17929 : STRIP_UNARY (operands[4]))
17930 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17931 : STRIP_UNARY (operands[3]))
17932 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17933 : STRIP_UNARY (operands[3])))) &&
17934 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17935 : (TARGET_AVX)))
17936 : return -1;
17937 : return 6305; /* *avx512vl_vpternlogv16hi_2 */
17938 :
17939 : case 5:
17940 : if (!
17941 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17942 : ((16 == 64 || TARGET_AVX512VL
17943 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17944 : && ix86_pre_reload_split ()
17945 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17946 : STRIP_UNARY (operands[4]))
17947 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17948 : STRIP_UNARY (operands[4]))
17949 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17950 : STRIP_UNARY (operands[3]))
17951 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17952 : STRIP_UNARY (operands[3])))))
17953 : return -1;
17954 : return 6332; /* *avx512vl_vpternlogv8hi_2 */
17955 :
17956 : case 6:
17957 : if (!(
17958 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17959 : ((64 == 64 || TARGET_AVX512VL
17960 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17961 : && ix86_pre_reload_split ()
17962 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17963 : STRIP_UNARY (operands[4]))
17964 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17965 : STRIP_UNARY (operands[4]))
17966 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17967 : STRIP_UNARY (operands[3]))
17968 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17969 : STRIP_UNARY (operands[3])))) &&
17970 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17971 : (TARGET_AVX512F)))
17972 : return -1;
17973 : return 6359; /* *avx512f_vpternlogv16si_2 */
17974 :
17975 : case 7:
17976 : if (!(
17977 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17978 : ((32 == 64 || TARGET_AVX512VL
17979 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17980 : && ix86_pre_reload_split ()
17981 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
17982 : STRIP_UNARY (operands[4]))
17983 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17984 : STRIP_UNARY (operands[4]))
17985 : || rtx_equal_p (STRIP_UNARY (operands[1]),
17986 : STRIP_UNARY (operands[3]))
17987 : || rtx_equal_p (STRIP_UNARY (operands[2]),
17988 : STRIP_UNARY (operands[3])))) &&
17989 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17990 : (TARGET_AVX)))
17991 : return -1;
17992 : return 6386; /* *avx512vl_vpternlogv8si_2 */
17993 :
17994 : case 8:
17995 : if (!
17996 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
17997 : ((16 == 64 || TARGET_AVX512VL
17998 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
17999 : && ix86_pre_reload_split ()
18000 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18001 : STRIP_UNARY (operands[4]))
18002 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18003 : STRIP_UNARY (operands[4]))
18004 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18005 : STRIP_UNARY (operands[3]))
18006 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18007 : STRIP_UNARY (operands[3])))))
18008 : return -1;
18009 : return 6413; /* *avx512vl_vpternlogv4si_2 */
18010 :
18011 : case 9:
18012 : if (!(
18013 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18014 : ((64 == 64 || TARGET_AVX512VL
18015 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18016 : && ix86_pre_reload_split ()
18017 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18018 : STRIP_UNARY (operands[4]))
18019 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18020 : STRIP_UNARY (operands[4]))
18021 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18022 : STRIP_UNARY (operands[3]))
18023 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18024 : STRIP_UNARY (operands[3])))) &&
18025 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18026 : (TARGET_AVX512F)))
18027 : return -1;
18028 : return 6440; /* *avx512f_vpternlogv8di_2 */
18029 :
18030 : case 10:
18031 : if (!(
18032 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18033 : ((32 == 64 || TARGET_AVX512VL
18034 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18035 : && ix86_pre_reload_split ()
18036 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18037 : STRIP_UNARY (operands[4]))
18038 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18039 : STRIP_UNARY (operands[4]))
18040 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18041 : STRIP_UNARY (operands[3]))
18042 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18043 : STRIP_UNARY (operands[3])))) &&
18044 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18045 : (TARGET_AVX)))
18046 : return -1;
18047 : return 6467; /* *avx512vl_vpternlogv4di_2 */
18048 :
18049 : case 11:
18050 : if (!
18051 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18052 : ((16 == 64 || TARGET_AVX512VL
18053 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18054 : && ix86_pre_reload_split ()
18055 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18056 : STRIP_UNARY (operands[4]))
18057 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18058 : STRIP_UNARY (operands[4]))
18059 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18060 : STRIP_UNARY (operands[3]))
18061 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18062 : STRIP_UNARY (operands[3])))))
18063 : return -1;
18064 : return 6494; /* *avx512vl_vpternlogv2di_2 */
18065 :
18066 : default:
18067 : return -1;
18068 : }
18069 :
18070 : case IOR:
18071 : switch (pattern537 (x2))
18072 : {
18073 : case 0:
18074 : if (!(
18075 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18076 : ((64 == 64 || TARGET_AVX512VL
18077 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18078 : && ix86_pre_reload_split ()
18079 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18080 : STRIP_UNARY (operands[4]))
18081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18082 : STRIP_UNARY (operands[4]))
18083 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18084 : STRIP_UNARY (operands[3]))
18085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18086 : STRIP_UNARY (operands[3])))) &&
18087 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18088 : (TARGET_AVX512F)))
18089 : return -1;
18090 : return 6200; /* *avx512bw_vpternlogv64qi_2 */
18091 :
18092 : case 1:
18093 : if (!(
18094 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18095 : ((32 == 64 || TARGET_AVX512VL
18096 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18097 : && ix86_pre_reload_split ()
18098 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18099 : STRIP_UNARY (operands[4]))
18100 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18101 : STRIP_UNARY (operands[4]))
18102 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18103 : STRIP_UNARY (operands[3]))
18104 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18105 : STRIP_UNARY (operands[3])))) &&
18106 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18107 : (TARGET_AVX)))
18108 : return -1;
18109 : return 6227; /* *avx512vl_vpternlogv32qi_2 */
18110 :
18111 : case 2:
18112 : if (!
18113 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18114 : ((16 == 64 || TARGET_AVX512VL
18115 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18116 : && ix86_pre_reload_split ()
18117 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18118 : STRIP_UNARY (operands[4]))
18119 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18120 : STRIP_UNARY (operands[4]))
18121 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18122 : STRIP_UNARY (operands[3]))
18123 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18124 : STRIP_UNARY (operands[3])))))
18125 : return -1;
18126 : return 6254; /* *avx512vl_vpternlogv16qi_2 */
18127 :
18128 : case 3:
18129 : if (!(
18130 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18131 : ((64 == 64 || TARGET_AVX512VL
18132 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18133 : && ix86_pre_reload_split ()
18134 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18135 : STRIP_UNARY (operands[4]))
18136 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18137 : STRIP_UNARY (operands[4]))
18138 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18139 : STRIP_UNARY (operands[3]))
18140 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18141 : STRIP_UNARY (operands[3])))) &&
18142 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18143 : (TARGET_AVX512F)))
18144 : return -1;
18145 : return 6281; /* *avx512bw_vpternlogv32hi_2 */
18146 :
18147 : case 4:
18148 : if (!(
18149 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18150 : ((32 == 64 || TARGET_AVX512VL
18151 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18152 : && ix86_pre_reload_split ()
18153 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18154 : STRIP_UNARY (operands[4]))
18155 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18156 : STRIP_UNARY (operands[4]))
18157 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18158 : STRIP_UNARY (operands[3]))
18159 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18160 : STRIP_UNARY (operands[3])))) &&
18161 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18162 : (TARGET_AVX)))
18163 : return -1;
18164 : return 6308; /* *avx512vl_vpternlogv16hi_2 */
18165 :
18166 : case 5:
18167 : if (!
18168 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18169 : ((16 == 64 || TARGET_AVX512VL
18170 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18171 : && ix86_pre_reload_split ()
18172 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18173 : STRIP_UNARY (operands[4]))
18174 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18175 : STRIP_UNARY (operands[4]))
18176 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18177 : STRIP_UNARY (operands[3]))
18178 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18179 : STRIP_UNARY (operands[3])))))
18180 : return -1;
18181 : return 6335; /* *avx512vl_vpternlogv8hi_2 */
18182 :
18183 : case 6:
18184 : if (!(
18185 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18186 : ((64 == 64 || TARGET_AVX512VL
18187 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18188 : && ix86_pre_reload_split ()
18189 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18190 : STRIP_UNARY (operands[4]))
18191 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18192 : STRIP_UNARY (operands[4]))
18193 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18194 : STRIP_UNARY (operands[3]))
18195 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18196 : STRIP_UNARY (operands[3])))) &&
18197 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18198 : (TARGET_AVX512F)))
18199 : return -1;
18200 : return 6362; /* *avx512f_vpternlogv16si_2 */
18201 :
18202 : case 7:
18203 : if (!(
18204 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18205 : ((32 == 64 || TARGET_AVX512VL
18206 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18207 : && ix86_pre_reload_split ()
18208 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18209 : STRIP_UNARY (operands[4]))
18210 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18211 : STRIP_UNARY (operands[4]))
18212 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18213 : STRIP_UNARY (operands[3]))
18214 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18215 : STRIP_UNARY (operands[3])))) &&
18216 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18217 : (TARGET_AVX)))
18218 : return -1;
18219 : return 6389; /* *avx512vl_vpternlogv8si_2 */
18220 :
18221 : case 8:
18222 : if (!
18223 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18224 : ((16 == 64 || TARGET_AVX512VL
18225 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18226 : && ix86_pre_reload_split ()
18227 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18228 : STRIP_UNARY (operands[4]))
18229 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18230 : STRIP_UNARY (operands[4]))
18231 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18232 : STRIP_UNARY (operands[3]))
18233 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18234 : STRIP_UNARY (operands[3])))))
18235 : return -1;
18236 : return 6416; /* *avx512vl_vpternlogv4si_2 */
18237 :
18238 : case 9:
18239 : if (!(
18240 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18241 : ((64 == 64 || TARGET_AVX512VL
18242 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18243 : && ix86_pre_reload_split ()
18244 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18245 : STRIP_UNARY (operands[4]))
18246 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18247 : STRIP_UNARY (operands[4]))
18248 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18249 : STRIP_UNARY (operands[3]))
18250 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18251 : STRIP_UNARY (operands[3])))) &&
18252 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18253 : (TARGET_AVX512F)))
18254 : return -1;
18255 : return 6443; /* *avx512f_vpternlogv8di_2 */
18256 :
18257 : case 10:
18258 : if (!(
18259 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18260 : ((32 == 64 || TARGET_AVX512VL
18261 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18262 : && ix86_pre_reload_split ()
18263 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18264 : STRIP_UNARY (operands[4]))
18265 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18266 : STRIP_UNARY (operands[4]))
18267 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18268 : STRIP_UNARY (operands[3]))
18269 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18270 : STRIP_UNARY (operands[3])))) &&
18271 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18272 : (TARGET_AVX)))
18273 : return -1;
18274 : return 6470; /* *avx512vl_vpternlogv4di_2 */
18275 :
18276 : case 11:
18277 : if (!
18278 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18279 : ((16 == 64 || TARGET_AVX512VL
18280 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18281 : && ix86_pre_reload_split ()
18282 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18283 : STRIP_UNARY (operands[4]))
18284 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18285 : STRIP_UNARY (operands[4]))
18286 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18287 : STRIP_UNARY (operands[3]))
18288 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18289 : STRIP_UNARY (operands[3])))))
18290 : return -1;
18291 : return 6497; /* *avx512vl_vpternlogv2di_2 */
18292 :
18293 : default:
18294 : return -1;
18295 : }
18296 :
18297 : case XOR:
18298 : switch (pattern537 (x2))
18299 : {
18300 : case 0:
18301 : if (!(
18302 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18303 : ((64 == 64 || TARGET_AVX512VL
18304 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18305 : && ix86_pre_reload_split ()
18306 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18307 : STRIP_UNARY (operands[4]))
18308 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18309 : STRIP_UNARY (operands[4]))
18310 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18311 : STRIP_UNARY (operands[3]))
18312 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18313 : STRIP_UNARY (operands[3])))) &&
18314 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18315 : (TARGET_AVX512F)))
18316 : return -1;
18317 : return 6203; /* *avx512bw_vpternlogv64qi_2 */
18318 :
18319 : case 1:
18320 : if (!(
18321 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18322 : ((32 == 64 || TARGET_AVX512VL
18323 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18324 : && ix86_pre_reload_split ()
18325 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18326 : STRIP_UNARY (operands[4]))
18327 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18328 : STRIP_UNARY (operands[4]))
18329 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18330 : STRIP_UNARY (operands[3]))
18331 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18332 : STRIP_UNARY (operands[3])))) &&
18333 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18334 : (TARGET_AVX)))
18335 : return -1;
18336 : return 6230; /* *avx512vl_vpternlogv32qi_2 */
18337 :
18338 : case 2:
18339 : if (!
18340 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18341 : ((16 == 64 || TARGET_AVX512VL
18342 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18343 : && ix86_pre_reload_split ()
18344 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18345 : STRIP_UNARY (operands[4]))
18346 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18347 : STRIP_UNARY (operands[4]))
18348 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18349 : STRIP_UNARY (operands[3]))
18350 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18351 : STRIP_UNARY (operands[3])))))
18352 : return -1;
18353 : return 6257; /* *avx512vl_vpternlogv16qi_2 */
18354 :
18355 : case 3:
18356 : if (!(
18357 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18358 : ((64 == 64 || TARGET_AVX512VL
18359 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18360 : && ix86_pre_reload_split ()
18361 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18362 : STRIP_UNARY (operands[4]))
18363 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18364 : STRIP_UNARY (operands[4]))
18365 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18366 : STRIP_UNARY (operands[3]))
18367 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18368 : STRIP_UNARY (operands[3])))) &&
18369 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18370 : (TARGET_AVX512F)))
18371 : return -1;
18372 : return 6284; /* *avx512bw_vpternlogv32hi_2 */
18373 :
18374 : case 4:
18375 : if (!(
18376 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18377 : ((32 == 64 || TARGET_AVX512VL
18378 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18379 : && ix86_pre_reload_split ()
18380 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18381 : STRIP_UNARY (operands[4]))
18382 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18383 : STRIP_UNARY (operands[4]))
18384 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18385 : STRIP_UNARY (operands[3]))
18386 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18387 : STRIP_UNARY (operands[3])))) &&
18388 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18389 : (TARGET_AVX)))
18390 : return -1;
18391 : return 6311; /* *avx512vl_vpternlogv16hi_2 */
18392 :
18393 : case 5:
18394 : if (!
18395 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18396 : ((16 == 64 || TARGET_AVX512VL
18397 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18398 : && ix86_pre_reload_split ()
18399 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18400 : STRIP_UNARY (operands[4]))
18401 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18402 : STRIP_UNARY (operands[4]))
18403 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18404 : STRIP_UNARY (operands[3]))
18405 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18406 : STRIP_UNARY (operands[3])))))
18407 : return -1;
18408 : return 6338; /* *avx512vl_vpternlogv8hi_2 */
18409 :
18410 : case 6:
18411 : if (!(
18412 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18413 : ((64 == 64 || TARGET_AVX512VL
18414 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18415 : && ix86_pre_reload_split ()
18416 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18417 : STRIP_UNARY (operands[4]))
18418 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18419 : STRIP_UNARY (operands[4]))
18420 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18421 : STRIP_UNARY (operands[3]))
18422 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18423 : STRIP_UNARY (operands[3])))) &&
18424 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18425 : (TARGET_AVX512F)))
18426 : return -1;
18427 : return 6365; /* *avx512f_vpternlogv16si_2 */
18428 :
18429 : case 7:
18430 : if (!(
18431 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18432 : ((32 == 64 || TARGET_AVX512VL
18433 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18434 : && ix86_pre_reload_split ()
18435 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18436 : STRIP_UNARY (operands[4]))
18437 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18438 : STRIP_UNARY (operands[4]))
18439 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18440 : STRIP_UNARY (operands[3]))
18441 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18442 : STRIP_UNARY (operands[3])))) &&
18443 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18444 : (TARGET_AVX)))
18445 : return -1;
18446 : return 6392; /* *avx512vl_vpternlogv8si_2 */
18447 :
18448 : case 8:
18449 : if (!
18450 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18451 : ((16 == 64 || TARGET_AVX512VL
18452 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18453 : && ix86_pre_reload_split ()
18454 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18455 : STRIP_UNARY (operands[4]))
18456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18457 : STRIP_UNARY (operands[4]))
18458 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18459 : STRIP_UNARY (operands[3]))
18460 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18461 : STRIP_UNARY (operands[3])))))
18462 : return -1;
18463 : return 6419; /* *avx512vl_vpternlogv4si_2 */
18464 :
18465 : case 9:
18466 : if (!(
18467 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18468 : ((64 == 64 || TARGET_AVX512VL
18469 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18470 : && ix86_pre_reload_split ()
18471 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18472 : STRIP_UNARY (operands[4]))
18473 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18474 : STRIP_UNARY (operands[4]))
18475 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18476 : STRIP_UNARY (operands[3]))
18477 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18478 : STRIP_UNARY (operands[3])))) &&
18479 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18480 : (TARGET_AVX512F)))
18481 : return -1;
18482 : return 6446; /* *avx512f_vpternlogv8di_2 */
18483 :
18484 : case 10:
18485 : if (!(
18486 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18487 : ((32 == 64 || TARGET_AVX512VL
18488 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18489 : && ix86_pre_reload_split ()
18490 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18491 : STRIP_UNARY (operands[4]))
18492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18493 : STRIP_UNARY (operands[4]))
18494 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18495 : STRIP_UNARY (operands[3]))
18496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18497 : STRIP_UNARY (operands[3])))) &&
18498 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18499 : (TARGET_AVX)))
18500 : return -1;
18501 : return 6473; /* *avx512vl_vpternlogv4di_2 */
18502 :
18503 : case 11:
18504 : if (!
18505 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18506 : ((16 == 64 || TARGET_AVX512VL
18507 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
18508 : && ix86_pre_reload_split ()
18509 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
18510 : STRIP_UNARY (operands[4]))
18511 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18512 : STRIP_UNARY (operands[4]))
18513 : || rtx_equal_p (STRIP_UNARY (operands[1]),
18514 : STRIP_UNARY (operands[3]))
18515 : || rtx_equal_p (STRIP_UNARY (operands[2]),
18516 : STRIP_UNARY (operands[3])))))
18517 : return -1;
18518 : return 6500; /* *avx512vl_vpternlogv2di_2 */
18519 :
18520 : default:
18521 : return -1;
18522 : }
18523 :
18524 : default:
18525 : return -1;
18526 : }
18527 : }
18528 :
18529 : int
18530 : recog_321 (rtx x1 ATTRIBUTE_UNUSED,
18531 : rtx_insn *insn ATTRIBUTE_UNUSED,
18532 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18533 : {
18534 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18535 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18536 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18537 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
18538 : rtx x26, x27, x28, x29, x30, x31, x32, x33;
18539 : int res ATTRIBUTE_UNUSED;
18540 : x2 = XEXP (x1, 1);
18541 : x3 = XEXP (x2, 0);
18542 : x4 = XEXP (x3, 0);
18543 : x5 = XEXP (x4, 1);
18544 : if (GET_CODE (x5) != CONST_VECTOR
18545 : || XVECLEN (x5, 0) != 32
18546 : || pattern1370 (x5,
18547 : E_V32HImode) != 0)
18548 : return -1;
18549 : x6 = XVECEXP (x5, 0, 8);
18550 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18551 : return -1;
18552 : x7 = XVECEXP (x5, 0, 9);
18553 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18554 : return -1;
18555 : x8 = XVECEXP (x5, 0, 10);
18556 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18557 : return -1;
18558 : x9 = XVECEXP (x5, 0, 11);
18559 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18560 : return -1;
18561 : x10 = XVECEXP (x5, 0, 12);
18562 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18563 : return -1;
18564 : x11 = XVECEXP (x5, 0, 13);
18565 : if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18566 : return -1;
18567 : x12 = XVECEXP (x5, 0, 14);
18568 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18569 : return -1;
18570 : x13 = XVECEXP (x5, 0, 15);
18571 : if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18572 : return -1;
18573 : x14 = XVECEXP (x5, 0, 16);
18574 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18575 : return -1;
18576 : x15 = XVECEXP (x5, 0, 17);
18577 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18578 : return -1;
18579 : x16 = XVECEXP (x5, 0, 18);
18580 : if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18581 : return -1;
18582 : x17 = XVECEXP (x5, 0, 19);
18583 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18584 : return -1;
18585 : x18 = XVECEXP (x5, 0, 20);
18586 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18587 : return -1;
18588 : x19 = XVECEXP (x5, 0, 21);
18589 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18590 : return -1;
18591 : x20 = XVECEXP (x5, 0, 22);
18592 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18593 : return -1;
18594 : x21 = XVECEXP (x5, 0, 23);
18595 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18596 : return -1;
18597 : x22 = XVECEXP (x5, 0, 24);
18598 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18599 : return -1;
18600 : x23 = XVECEXP (x5, 0, 25);
18601 : if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18602 : return -1;
18603 : x24 = XVECEXP (x5, 0, 26);
18604 : if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18605 : return -1;
18606 : x25 = XVECEXP (x5, 0, 27);
18607 : if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18608 : return -1;
18609 : x26 = XVECEXP (x5, 0, 28);
18610 : if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18611 : return -1;
18612 : x27 = XVECEXP (x5, 0, 29);
18613 : if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18614 : return -1;
18615 : x28 = XVECEXP (x5, 0, 30);
18616 : if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
18617 : return -1;
18618 : x29 = XVECEXP (x5, 0, 31);
18619 : if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
18620 : || !register_operand (operands[0], E_V32HImode)
18621 : || GET_MODE (x2) != E_V32HImode
18622 : || GET_MODE (x3) != E_V32SImode
18623 : || pattern1522 (x4,
18624 : E_V32SImode) != 0)
18625 : return -1;
18626 : x30 = XEXP (x4, 0);
18627 : x31 = XEXP (x30, 0);
18628 : x32 = XEXP (x31, 1);
18629 : if (GET_MODE (x32) != E_V32SImode)
18630 : return -1;
18631 : x33 = XEXP (x32, 0);
18632 : operands[2] = x33;
18633 : if (!nonimmediate_operand (operands[2], E_V32HImode)
18634 : || !
18635 : #line 23182 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18636 : (TARGET_AVX512BW))
18637 : return -1;
18638 : return 8657; /* avx512bw_umulhrswv32hi3 */
18639 : }
18640 :
18641 : int
18642 : recog_322 (rtx x1 ATTRIBUTE_UNUSED,
18643 : rtx_insn *insn ATTRIBUTE_UNUSED,
18644 : int *pnum_clobbers ATTRIBUTE_UNUSED)
18645 : {
18646 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
18647 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
18648 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
18649 : rtx x18, x19, x20, x21, x22;
18650 : int res ATTRIBUTE_UNUSED;
18651 : x2 = XEXP (x1, 0);
18652 : operands[0] = x2;
18653 : x3 = XEXP (x1, 1);
18654 : x4 = XEXP (x3, 0);
18655 : switch (GET_CODE (x4))
18656 : {
18657 : case VEC_SELECT:
18658 : return recog_274 (x1, insn, pnum_clobbers);
18659 :
18660 : case VEC_CONCAT:
18661 : x5 = XEXP (x4, 0);
18662 : switch (GET_CODE (x5))
18663 : {
18664 : case PLUS:
18665 : switch (pattern331 (x3,
18666 : PLUS))
18667 : {
18668 : case 0:
18669 : if (!
18670 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18671 : (TARGET_AVX))
18672 : return -1;
18673 : return 3220; /* avx_haddv4df3 */
18674 :
18675 : case 1:
18676 : if (!
18677 : #line 3912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18678 : (TARGET_SSE3))
18679 : return -1;
18680 : return 3228; /* sse3_haddv4sf3 */
18681 :
18682 : default:
18683 : return -1;
18684 : }
18685 :
18686 : case MINUS:
18687 : switch (pattern331 (x3,
18688 : MINUS))
18689 : {
18690 : case 0:
18691 : if (!
18692 : #line 3736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18693 : (TARGET_AVX))
18694 : return -1;
18695 : return 3221; /* avx_hsubv4df3 */
18696 :
18697 : case 1:
18698 : if (!
18699 : #line 3912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18700 : (TARGET_SSE3))
18701 : return -1;
18702 : return 3229; /* sse3_hsubv4sf3 */
18703 :
18704 : default:
18705 : return -1;
18706 : }
18707 :
18708 : case VEC_CONCAT:
18709 : if (GET_MODE (x5) != E_V2SFmode)
18710 : return -1;
18711 : x6 = XEXP (x4, 1);
18712 : if (GET_CODE (x6) != VEC_CONCAT
18713 : || GET_MODE (x6) != E_V2SFmode)
18714 : return -1;
18715 : x7 = XEXP (x3, 1);
18716 : if (GET_CODE (x7) != VEC_CONCAT
18717 : || GET_MODE (x7) != E_V4SFmode
18718 : || pattern1040 (x7,
18719 : E_V2SFmode,
18720 : VEC_CONCAT) != 0
18721 : || !register_operand (operands[0], E_V8SFmode)
18722 : || GET_MODE (x3) != E_V8SFmode
18723 : || GET_MODE (x4) != E_V4SFmode
18724 : || pattern1564 (x3,
18725 : E_SFmode) != 0)
18726 : return -1;
18727 : x8 = XEXP (x5, 0);
18728 : switch (GET_CODE (x8))
18729 : {
18730 : case PLUS:
18731 : if (pattern1844 (x3,
18732 : PLUS) != 0
18733 : || !
18734 : #line 3884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18735 : (TARGET_AVX))
18736 : return -1;
18737 : return 3226; /* avx_haddv8sf3 */
18738 :
18739 : case MINUS:
18740 : if (pattern1844 (x3,
18741 : MINUS) != 0
18742 : || !
18743 : #line 3884 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18744 : (TARGET_AVX))
18745 : return -1;
18746 : return 3227; /* avx_hsubv8sf3 */
18747 :
18748 : default:
18749 : return -1;
18750 : }
18751 :
18752 : case REG:
18753 : case SUBREG:
18754 : case MEM:
18755 : operands[1] = x5;
18756 : if (pattern416 (x3) != 0)
18757 : return -1;
18758 : switch (GET_MODE (operands[0]))
18759 : {
18760 : case E_V16SImode:
18761 : if (pattern1491 (x3,
18762 : E_V8SImode,
18763 : E_V4SImode,
18764 : E_V16SImode) != 0
18765 : || !
18766 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18767 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18768 : return -1;
18769 : return 10177; /* avx512f_si512_si */
18770 :
18771 : case E_V16SFmode:
18772 : if (pattern1491 (x3,
18773 : E_V8SFmode,
18774 : E_V4SFmode,
18775 : E_V16SFmode) != 0
18776 : || !
18777 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18778 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18779 : return -1;
18780 : return 10178; /* avx512f_ps512_ps */
18781 :
18782 : case E_V8DFmode:
18783 : if (pattern1491 (x3,
18784 : E_V4DFmode,
18785 : E_V2DFmode,
18786 : E_V8DFmode) != 0
18787 : || !
18788 : #line 30839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18789 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
18790 : return -1;
18791 : return 10179; /* avx512f_pd512_pd */
18792 :
18793 : default:
18794 : return -1;
18795 : }
18796 :
18797 : default:
18798 : return -1;
18799 : }
18800 :
18801 : case PLUS:
18802 : if (pattern102 (x3,
18803 : E_V2DFmode,
18804 : E_DFmode) != 0)
18805 : return -1;
18806 : x7 = XEXP (x3, 1);
18807 : x9 = XEXP (x7, 0);
18808 : x10 = XEXP (x9, 0);
18809 : operands[2] = x10;
18810 : if (!vector_operand (operands[2], E_V2DFmode)
18811 : || pattern1879 (x3) != 0
18812 : || !
18813 : #line 3775 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18814 : (TARGET_SSE3
18815 : && INTVAL (operands[3]) != INTVAL (operands[4])
18816 : && INTVAL (operands[5]) != INTVAL (operands[6])))
18817 : return -1;
18818 : return 3222; /* *sse3_haddv2df3 */
18819 :
18820 : case MINUS:
18821 : if (pattern103 (x4,
18822 : E_DFmode) != 0)
18823 : return -1;
18824 : x7 = XEXP (x3, 1);
18825 : if (GET_CODE (x7) != MINUS
18826 : || GET_MODE (x7) != E_DFmode
18827 : || pattern1565 (x7,
18828 : E_DFmode) != 0
18829 : || !register_operand (operands[0], E_V2DFmode)
18830 : || GET_MODE (x3) != E_V2DFmode)
18831 : return -1;
18832 : x5 = XEXP (x4, 0);
18833 : x8 = XEXP (x5, 0);
18834 : operands[1] = x8;
18835 : if (!register_operand (operands[1], E_V2DFmode))
18836 : return -1;
18837 : x9 = XEXP (x7, 0);
18838 : x10 = XEXP (x9, 0);
18839 : operands[2] = x10;
18840 : if (!vector_operand (operands[2], E_V2DFmode))
18841 : return -1;
18842 : x6 = XEXP (x4, 1);
18843 : x11 = XEXP (x6, 0);
18844 : if (!rtx_equal_p (x11, operands[1]))
18845 : return -1;
18846 : x12 = XEXP (x7, 1);
18847 : x13 = XEXP (x12, 0);
18848 : if (!rtx_equal_p (x13, operands[2])
18849 : || !
18850 : #line 3800 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18851 : (TARGET_SSE3))
18852 : return -1;
18853 : return 3223; /* sse3_hsubv2df3 */
18854 :
18855 : case FLOAT:
18856 : switch (pattern187 (x3))
18857 : {
18858 : case 0:
18859 : if (!
18860 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18861 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18862 : return -1;
18863 : return 4566; /* *avx512fp16_vcvtdq2ph_v4si */
18864 :
18865 : case 1:
18866 : if (!
18867 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18868 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18869 : return -1;
18870 : return 4568; /* *avx512fp16_vcvtqq2ph_v4di */
18871 :
18872 : case 2:
18873 : if (!
18874 : #line 8101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18875 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18876 : return -1;
18877 : return 4578; /* *avx512fp16_vcvtqq2ph_v2di */
18878 :
18879 : case 3:
18880 : if (!
18881 : #line 9537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18882 : (TARGET_AVX512DQ && TARGET_AVX512VL))
18883 : return -1;
18884 : return 5022; /* *avx512dq_floatv2div2sf2 */
18885 :
18886 : default:
18887 : return -1;
18888 : }
18889 :
18890 : case UNSIGNED_FLOAT:
18891 : switch (pattern187 (x3))
18892 : {
18893 : case 0:
18894 : if (!
18895 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18896 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18897 : return -1;
18898 : return 4567; /* *avx512fp16_vcvtudq2ph_v4si */
18899 :
18900 : case 1:
18901 : if (!
18902 : #line 8025 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18903 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18904 : return -1;
18905 : return 4569; /* *avx512fp16_vcvtuqq2ph_v4di */
18906 :
18907 : case 2:
18908 : if (!
18909 : #line 8101 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18910 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18911 : return -1;
18912 : return 4579; /* *avx512fp16_vcvtuqq2ph_v2di */
18913 :
18914 : case 3:
18915 : if (!
18916 : #line 9537 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18917 : (TARGET_AVX512DQ && TARGET_AVX512VL))
18918 : return -1;
18919 : return 5023; /* *avx512dq_floatunsv2div2sf2 */
18920 :
18921 : default:
18922 : return -1;
18923 : }
18924 :
18925 : case VEC_MERGE:
18926 : return recog_273 (x1, insn, pnum_clobbers);
18927 :
18928 : case FLOAT_TRUNCATE:
18929 : x7 = XEXP (x3, 1);
18930 : switch (GET_CODE (x7))
18931 : {
18932 : case CONST_INT:
18933 : case CONST_DOUBLE:
18934 : case CONST_VECTOR:
18935 : operands[2] = x7;
18936 : x5 = XEXP (x4, 0);
18937 : operands[1] = x5;
18938 : switch (GET_MODE (operands[0]))
18939 : {
18940 : case E_V8HFmode:
18941 : if (!register_operand (operands[0], E_V8HFmode)
18942 : || GET_MODE (x3) != E_V8HFmode)
18943 : return -1;
18944 : switch (GET_MODE (x4))
18945 : {
18946 : case E_V4HFmode:
18947 : if (!const0_operand (operands[2], E_V4HFmode))
18948 : return -1;
18949 : switch (GET_MODE (operands[1]))
18950 : {
18951 : case E_V4DFmode:
18952 : if (!vector_operand (operands[1], E_V4DFmode)
18953 : || !
18954 : #line 8492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18955 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18956 : return -1;
18957 : return 4792; /* *avx512fp16_vcvtpd2ph_v4df */
18958 :
18959 : case E_V4SFmode:
18960 : if (!vector_operand (operands[1], E_V4SFmode)
18961 : || !
18962 : #line 8492 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18963 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18964 : return -1;
18965 : return 4793; /* *avx512fp16_vcvtps2ph_v4sf */
18966 :
18967 : default:
18968 : return -1;
18969 : }
18970 :
18971 : case E_V2HFmode:
18972 : if (!vector_operand (operands[1], E_V2DFmode)
18973 : || !const0_operand (operands[2], E_V6HFmode)
18974 : || !
18975 : #line 8571 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18976 : (TARGET_AVX512FP16 && TARGET_AVX512VL))
18977 : return -1;
18978 : return 4798; /* *avx512fp16_vcvtpd2ph_v2df */
18979 :
18980 : default:
18981 : return -1;
18982 : }
18983 :
18984 : case E_V4SFmode:
18985 : if (!register_operand (operands[0], E_V4SFmode)
18986 : || GET_MODE (x3) != E_V4SFmode
18987 : || GET_MODE (x4) != E_V2SFmode
18988 : || !vector_operand (operands[1], E_V2DFmode)
18989 : || !const0_operand (operands[2], E_V2SFmode)
18990 : || !
18991 : #line 10462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
18992 : (TARGET_SSE2))
18993 : return -1;
18994 : return 5197; /* *sse2_cvtpd2ps */
18995 :
18996 : case E_V8BFmode:
18997 : if (pattern186 (x3,
18998 : E_V4BFmode,
18999 : E_V4SFmode,
19000 : E_V8BFmode) != 0
19001 : || !
19002 : #line 31764 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19003 : (TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)))
19004 : return -1;
19005 : return 10418; /* *vcvtneps2bf16_v4sf */
19006 :
19007 : default:
19008 : return -1;
19009 : }
19010 :
19011 : case FLOAT_TRUNCATE:
19012 : x5 = XEXP (x4, 0);
19013 : operands[2] = x5;
19014 : x9 = XEXP (x7, 0);
19015 : operands[1] = x9;
19016 : switch (GET_MODE (operands[0]))
19017 : {
19018 : case E_V32BFmode:
19019 : if (pattern796 (x3,
19020 : E_V16SFmode,
19021 : E_V16BFmode,
19022 : E_V32BFmode) != 0
19023 : || !
19024 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19025 : (TARGET_AVX512BF16))
19026 : return -1;
19027 : return 10412; /* avx512f_cvtne2ps2bf16_v32bf */
19028 :
19029 : case E_V16BFmode:
19030 : if (pattern796 (x3,
19031 : E_V8SFmode,
19032 : E_V8BFmode,
19033 : E_V16BFmode) != 0
19034 : || !(
19035 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19036 : (TARGET_AVX512BF16) &&
19037 : #line 31691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19038 : (TARGET_AVX512VL)))
19039 : return -1;
19040 : return 10414; /* avx512f_cvtne2ps2bf16_v16bf */
19041 :
19042 : case E_V8BFmode:
19043 : if (pattern796 (x3,
19044 : E_V4SFmode,
19045 : E_V4BFmode,
19046 : E_V8BFmode) != 0
19047 : || !(
19048 : #line 31725 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19049 : (TARGET_AVX512BF16) &&
19050 : #line 31691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19051 : (TARGET_AVX512VL)))
19052 : return -1;
19053 : return 10416; /* avx512f_cvtne2ps2bf16_v8bf */
19054 :
19055 : case E_V32HFmode:
19056 : if (pattern797 (x3,
19057 : E_V16SFmode,
19058 : E_V16HFmode,
19059 : E_V32HFmode) != 0
19060 : || !
19061 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19062 : (TARGET_AVX10_2 && 1))
19063 : return -1;
19064 : return 10511; /* avx10_2_cvt2ps2phx_v32hf */
19065 :
19066 : case E_V16HFmode:
19067 : if (pattern797 (x3,
19068 : E_V8SFmode,
19069 : E_V8HFmode,
19070 : E_V16HFmode) != 0
19071 : || !(
19072 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19073 : (TARGET_AVX10_2 && 1) &&
19074 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19075 : (TARGET_AVX512VL)))
19076 : return -1;
19077 : return 10515; /* avx10_2_cvt2ps2phx_v16hf */
19078 :
19079 : case E_V8HFmode:
19080 : if (pattern797 (x3,
19081 : E_V4SFmode,
19082 : E_V4HFmode,
19083 : E_V8HFmode) != 0
19084 : || !(
19085 : #line 32424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19086 : (TARGET_AVX10_2 && 1) &&
19087 : #line 545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19088 : (TARGET_AVX512VL)))
19089 : return -1;
19090 : return 10517; /* avx10_2_cvt2ps2phx_v8hf */
19091 :
19092 : default:
19093 : return -1;
19094 : }
19095 :
19096 : default:
19097 : return -1;
19098 : }
19099 :
19100 : case UNSPEC:
19101 : return recog_275 (x1, insn, pnum_clobbers);
19102 :
19103 : case UNSIGNED_FIX:
19104 : if (GET_MODE (x4) != E_V2SImode)
19105 : return -1;
19106 : x7 = XEXP (x3, 1);
19107 : if (GET_CODE (x7) != CONST_VECTOR
19108 : || XVECLEN (x7, 0) != 2
19109 : || GET_MODE (x7) != E_V2SImode
19110 : || pattern276 (x3,
19111 : E_V2DFmode,
19112 : E_V4SImode,
19113 : 0) != 0
19114 : || !
19115 : #line 9923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19116 : (TARGET_AVX512VL))
19117 : return -1;
19118 : return 5076; /* *fixuns_truncv2dfv2si2 */
19119 :
19120 : case FIX:
19121 : if (GET_MODE (x4) != E_V2SImode)
19122 : return -1;
19123 : x7 = XEXP (x3, 1);
19124 : if (GET_CODE (x7) != CONST_VECTOR
19125 : || pattern512 (x7,
19126 : E_V2SImode,
19127 : 2) != 0
19128 : || !register_operand (operands[0], E_V4SImode)
19129 : || GET_MODE (x3) != E_V4SImode)
19130 : return -1;
19131 : x5 = XEXP (x4, 0);
19132 : operands[1] = x5;
19133 : if (!vector_operand (operands[1], E_V2DFmode)
19134 : || !
19135 : #line 10281 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19136 : (TARGET_SSE2))
19137 : return -1;
19138 : return 5178; /* sse2_cvttpd2dq */
19139 :
19140 : case REG:
19141 : case SUBREG:
19142 : case MEM:
19143 : x7 = XEXP (x3, 1);
19144 : switch (GET_CODE (x7))
19145 : {
19146 : case VEC_SELECT:
19147 : res = recog_271 (x1, insn, pnum_clobbers);
19148 : if (res >= 0)
19149 : return res;
19150 : break;
19151 :
19152 : case CONST_INT:
19153 : case CONST_DOUBLE:
19154 : case CONST_VECTOR:
19155 : case REG:
19156 : case SUBREG:
19157 : case MEM:
19158 : res = recog_272 (x1, insn, pnum_clobbers);
19159 : if (res >= 0)
19160 : return res;
19161 : break;
19162 :
19163 : case UNSPEC:
19164 : if (XVECLEN (x7, 0) == 1
19165 : && XINT (x7, 1) == 148)
19166 : {
19167 : x14 = XVECEXP (x7, 0, 0);
19168 : if (x14 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
19169 : {
19170 : operands[1] = x4;
19171 : switch (GET_MODE (operands[0]))
19172 : {
19173 : case E_V8SImode:
19174 : if (pattern1041 (x3,
19175 : E_V4SImode,
19176 : E_V8SImode) == 0
19177 : &&
19178 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19179 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19180 : return 9624; /* avx_si256_si */
19181 : break;
19182 :
19183 : case E_V8SFmode:
19184 : if (pattern1041 (x3,
19185 : E_V4SFmode,
19186 : E_V8SFmode) == 0
19187 : &&
19188 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19189 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19190 : return 9625; /* avx_ps256_ps */
19191 : break;
19192 :
19193 : case E_V4DFmode:
19194 : if (pattern1041 (x3,
19195 : E_V2DFmode,
19196 : E_V4DFmode) == 0
19197 : &&
19198 : #line 29514 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19199 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19200 : return 9626; /* avx_pd256_pd */
19201 : break;
19202 :
19203 : case E_V16SImode:
19204 : if (pattern1041 (x3,
19205 : E_V8SImode,
19206 : E_V16SImode) == 0
19207 : &&
19208 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19209 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19210 : return 10180; /* avx512f_si512_256si */
19211 : break;
19212 :
19213 : case E_V16SFmode:
19214 : if (pattern1041 (x3,
19215 : E_V8SFmode,
19216 : E_V16SFmode) == 0
19217 : &&
19218 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19219 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19220 : return 10181; /* avx512f_ps512_256ps */
19221 : break;
19222 :
19223 : case E_V8DFmode:
19224 : if (pattern1041 (x3,
19225 : E_V4DFmode,
19226 : E_V8DFmode) == 0
19227 : &&
19228 : #line 30856 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19229 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))))
19230 : return 10182; /* avx512f_pd512_256pd */
19231 : break;
19232 :
19233 : default:
19234 : break;
19235 : }
19236 : }
19237 : }
19238 : break;
19239 :
19240 : default:
19241 : break;
19242 : }
19243 : if (!register_operand (operands[0], E_V4DImode)
19244 : || GET_MODE (x3) != E_V4DImode)
19245 : return -1;
19246 : if (GET_CODE (x4) == SUBREG
19247 : && known_eq (SUBREG_BYTE (x4), 0)
19248 : && GET_MODE (x4) == E_V2DImode)
19249 : {
19250 : x5 = XEXP (x4, 0);
19251 : if (pattern89 (x5,
19252 : E_V16QImode,
19253 : 120,
19254 : 1) == 0
19255 : && GET_CODE (x7) == SUBREG
19256 : && pattern1263 (x7) == 0)
19257 : {
19258 : x15 = XVECEXP (x5, 0, 0);
19259 : operands[1] = x15;
19260 : if (memory_operand (operands[1], E_V16QImode))
19261 : {
19262 : x9 = XEXP (x7, 0);
19263 : x16 = XVECEXP (x9, 0, 0);
19264 : if (rtx_equal_p (x16, operands[1])
19265 : &&
19266 : #line 28598 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19267 : (TARGET_AVX2 && ix86_pre_reload_split ()))
19268 : return 9363; /* avx2_lddqu_inserti_to_bcasti */
19269 : }
19270 : }
19271 : }
19272 : operands[1] = x4;
19273 : if (!nonimmediate_operand (operands[1], E_V2DImode))
19274 : return -1;
19275 : if (rtx_equal_p (x7, operands[1])
19276 : &&
19277 : #line 28690 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19278 : (TARGET_AVX))
19279 : return 9381; /* avx_vbroadcastf128_v4di */
19280 : operands[2] = x7;
19281 : if (!nonimm_or_0_operand (operands[2], E_V2DImode)
19282 : || !
19283 : #line 29647 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19284 : (TARGET_AVX
19285 : && (operands[2] == CONST0_RTX (V2DImode)
19286 : || !MEM_P (operands[1]))))
19287 : return -1;
19288 : return 9686; /* avx_vec_concatv4di */
19289 :
19290 : case ZERO_EXTEND:
19291 : switch (pattern188 (x3))
19292 : {
19293 : case 0:
19294 : if (!
19295 : #line 12426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19296 : (TARGET_AVX512FP16 && ix86_pre_reload_split ()))
19297 : return -1;
19298 : return 5331; /* *vec_setv2di_0_zero_extendhi_1 */
19299 :
19300 : case 1:
19301 : if (!
19302 : #line 12540 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19303 : (TARGET_SSE2 && ix86_pre_reload_split ()))
19304 : return -1;
19305 : return 5343; /* *vec_setv2di_0_zero_extendsi_1 */
19306 :
19307 : default:
19308 : return -1;
19309 : }
19310 :
19311 : case SS_TRUNCATE:
19312 : x5 = XEXP (x4, 0);
19313 : operands[1] = x5;
19314 : x7 = XEXP (x3, 1);
19315 : switch (GET_CODE (x7))
19316 : {
19317 : case CONST_INT:
19318 : case CONST_DOUBLE:
19319 : case CONST_VECTOR:
19320 : operands[2] = x7;
19321 : switch (pattern514 (x3))
19322 : {
19323 : case 0:
19324 : if (
19325 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19326 : (TARGET_AVX512VL))
19327 : return 7316; /* avx512vl_ss_truncatev4div4qi2 */
19328 : break;
19329 :
19330 : case 1:
19331 : if (
19332 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19333 : (TARGET_AVX512VL))
19334 : return 7325; /* avx512vl_ss_truncatev4siv4qi2 */
19335 : break;
19336 :
19337 : case 2:
19338 : if (
19339 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19340 : (TARGET_AVX512VL))
19341 : return 7319; /* avx512vl_ss_truncatev2div2qi2 */
19342 : break;
19343 :
19344 : case 3:
19345 : if (
19346 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19347 : (TARGET_AVX512VL))
19348 : return 7322; /* avx512vl_ss_truncatev8siv8qi2 */
19349 : break;
19350 :
19351 : case 4:
19352 : if ((
19353 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19354 : (TARGET_AVX512VL) &&
19355 : #line 15648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19356 : (TARGET_AVX512BW)))
19357 : return 7328; /* avx512vl_ss_truncatev8hiv8qi2 */
19358 : break;
19359 :
19360 : case 5:
19361 : if ((
19362 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19363 : (TARGET_AVX512VL) &&
19364 : #line 16009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19365 : (TARGET_AVX2)))
19366 : return 7407; /* avx512vl_ss_truncatev4div4hi2 */
19367 : break;
19368 :
19369 : case 6:
19370 : if (
19371 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19372 : (TARGET_AVX512VL))
19373 : return 7413; /* avx512vl_ss_truncatev4siv4hi2 */
19374 : break;
19375 :
19376 : case 7:
19377 : if (
19378 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19379 : (TARGET_AVX512VL))
19380 : return 7410; /* avx512vl_ss_truncatev2div2hi2 */
19381 : break;
19382 :
19383 : case 8:
19384 : if (
19385 : #line 16288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19386 : (TARGET_AVX512VL))
19387 : return 7462; /* avx512vl_ss_truncatev2div2si2 */
19388 : break;
19389 :
19390 : default:
19391 : break;
19392 : }
19393 : if (GET_CODE (x7) != CONST_VECTOR
19394 : || pattern512 (x7,
19395 : E_V8QImode,
19396 : 8) != 0)
19397 : return -1;
19398 : x17 = XVECEXP (x7, 0, 2);
19399 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19400 : return -1;
19401 : x18 = XVECEXP (x7, 0, 3);
19402 : if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19403 : return -1;
19404 : x19 = XVECEXP (x7, 0, 4);
19405 : if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19406 : return -1;
19407 : x20 = XVECEXP (x7, 0, 5);
19408 : if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19409 : return -1;
19410 : x21 = XVECEXP (x7, 0, 6);
19411 : if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
19412 : return -1;
19413 : x22 = XVECEXP (x7, 0, 7);
19414 : if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
19415 : || pattern618 (x3,
19416 : E_V8DImode,
19417 : E_V8QImode,
19418 : E_V16QImode) != 0
19419 : || !
19420 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19421 : (TARGET_AVX512F))
19422 : return -1;
19423 : return 7481; /* avx512f_ss_truncatev8div16qi2 */
19424 :
19425 : case SS_TRUNCATE:
19426 : x9 = XEXP (x7, 0);
19427 : operands[2] = x9;
19428 : switch (GET_MODE (operands[0]))
19429 : {
19430 : case E_V16QImode:
19431 : if (pattern802 (x3,
19432 : E_V8HImode,
19433 : E_V8QImode,
19434 : E_V16QImode) != 0
19435 : || !
19436 : #line 19550 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19437 : (TARGET_SSE2 && 1 && 1))
19438 : return -1;
19439 : return 8346; /* sse2_packsswb */
19440 :
19441 : case E_V8HImode:
19442 : if (pattern802 (x3,
19443 : E_V4SImode,
19444 : E_V4HImode,
19445 : E_V8HImode) != 0
19446 : || !
19447 : #line 19644 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19448 : (TARGET_SSE2 && 1 && 1))
19449 : return -1;
19450 : return 8352; /* sse2_packssdw */
19451 :
19452 : default:
19453 : return -1;
19454 : }
19455 :
19456 : default:
19457 : return -1;
19458 : }
19459 :
19460 : case TRUNCATE:
19461 : x5 = XEXP (x4, 0);
19462 : operands[1] = x5;
19463 : x7 = XEXP (x3, 1);
19464 : operands[2] = x7;
19465 : switch (pattern514 (x3))
19466 : {
19467 : case 0:
19468 : if (
19469 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19470 : (TARGET_AVX512VL))
19471 : return 7317; /* avx512vl_truncatev4div4qi2 */
19472 : break;
19473 :
19474 : case 1:
19475 : if (
19476 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19477 : (TARGET_AVX512VL))
19478 : return 7326; /* avx512vl_truncatev4siv4qi2 */
19479 : break;
19480 :
19481 : case 2:
19482 : if (
19483 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19484 : (TARGET_AVX512VL))
19485 : return 7320; /* avx512vl_truncatev2div2qi2 */
19486 : break;
19487 :
19488 : case 3:
19489 : if (
19490 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19491 : (TARGET_AVX512VL))
19492 : return 7323; /* avx512vl_truncatev8siv8qi2 */
19493 : break;
19494 :
19495 : case 4:
19496 : if ((
19497 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19498 : (TARGET_AVX512VL) &&
19499 : #line 15648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19500 : (TARGET_AVX512BW)))
19501 : return 7329; /* avx512vl_truncatev8hiv8qi2 */
19502 : break;
19503 :
19504 : case 5:
19505 : if ((
19506 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19507 : (TARGET_AVX512VL) &&
19508 : #line 16009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19509 : (TARGET_AVX2)))
19510 : return 7408; /* avx512vl_truncatev4div4hi2 */
19511 : break;
19512 :
19513 : case 6:
19514 : if (
19515 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19516 : (TARGET_AVX512VL))
19517 : return 7414; /* avx512vl_truncatev4siv4hi2 */
19518 : break;
19519 :
19520 : case 7:
19521 : if (
19522 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19523 : (TARGET_AVX512VL))
19524 : return 7411; /* avx512vl_truncatev2div2hi2 */
19525 : break;
19526 :
19527 : case 8:
19528 : if (
19529 : #line 16288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19530 : (TARGET_AVX512VL))
19531 : return 7463; /* avx512vl_truncatev2div2si2 */
19532 : break;
19533 :
19534 : default:
19535 : break;
19536 : }
19537 : if (!register_operand (operands[1], E_V8DImode)
19538 : || pattern515 (x3) != 0
19539 : || !
19540 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19541 : (TARGET_AVX512F))
19542 : return -1;
19543 : return 7482; /* avx512f_truncatev8div16qi2 */
19544 :
19545 : case US_TRUNCATE:
19546 : x5 = XEXP (x4, 0);
19547 : operands[1] = x5;
19548 : x7 = XEXP (x3, 1);
19549 : operands[2] = x7;
19550 : switch (pattern514 (x3))
19551 : {
19552 : case 0:
19553 : if (
19554 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19555 : (TARGET_AVX512VL))
19556 : return 7318; /* avx512vl_us_truncatev4div4qi2 */
19557 : break;
19558 :
19559 : case 1:
19560 : if (
19561 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19562 : (TARGET_AVX512VL))
19563 : return 7327; /* avx512vl_us_truncatev4siv4qi2 */
19564 : break;
19565 :
19566 : case 2:
19567 : if (
19568 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19569 : (TARGET_AVX512VL))
19570 : return 7321; /* avx512vl_us_truncatev2div2qi2 */
19571 : break;
19572 :
19573 : case 3:
19574 : if (
19575 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19576 : (TARGET_AVX512VL))
19577 : return 7324; /* avx512vl_us_truncatev8siv8qi2 */
19578 : break;
19579 :
19580 : case 4:
19581 : if ((
19582 : #line 15692 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19583 : (TARGET_AVX512VL) &&
19584 : #line 15648 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19585 : (TARGET_AVX512BW)))
19586 : return 7330; /* avx512vl_us_truncatev8hiv8qi2 */
19587 : break;
19588 :
19589 : case 5:
19590 : if ((
19591 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19592 : (TARGET_AVX512VL) &&
19593 : #line 16009 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19594 : (TARGET_AVX2)))
19595 : return 7409; /* avx512vl_us_truncatev4div4hi2 */
19596 : break;
19597 :
19598 : case 6:
19599 : if (
19600 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19601 : (TARGET_AVX512VL))
19602 : return 7415; /* avx512vl_us_truncatev4siv4hi2 */
19603 : break;
19604 :
19605 : case 7:
19606 : if (
19607 : #line 16047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19608 : (TARGET_AVX512VL))
19609 : return 7412; /* avx512vl_us_truncatev2div2hi2 */
19610 : break;
19611 :
19612 : case 8:
19613 : if (
19614 : #line 16288 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19615 : (TARGET_AVX512VL))
19616 : return 7464; /* avx512vl_us_truncatev2div2si2 */
19617 : break;
19618 :
19619 : default:
19620 : break;
19621 : }
19622 : if (!register_operand (operands[1], E_V8DImode)
19623 : || pattern515 (x3) != 0
19624 : || !
19625 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19626 : (TARGET_AVX512F))
19627 : return -1;
19628 : return 7483; /* avx512f_us_truncatev8div16qi2 */
19629 :
19630 : default:
19631 : return -1;
19632 : }
19633 : }
19634 :
19635 : int
19636 : recog_327 (rtx x1 ATTRIBUTE_UNUSED,
19637 : rtx_insn *insn ATTRIBUTE_UNUSED,
19638 : int *pnum_clobbers ATTRIBUTE_UNUSED)
19639 : {
19640 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
19641 : rtx x2, x3, x4, x5;
19642 : int res ATTRIBUTE_UNUSED;
19643 : x2 = XEXP (x1, 0);
19644 : operands[0] = x2;
19645 : x3 = XEXP (x1, 1);
19646 : x4 = XEXP (x3, 0);
19647 : switch (GET_CODE (x4))
19648 : {
19649 : case VEC_SELECT:
19650 : return recog_304 (x1, insn, pnum_clobbers);
19651 :
19652 : case REG:
19653 : case SUBREG:
19654 : case MEM:
19655 : operands[1] = x4;
19656 : switch (GET_MODE (operands[0]))
19657 : {
19658 : case E_V2DFmode:
19659 : if (!register_operand (operands[0], E_V2DFmode)
19660 : || GET_MODE (x3) != E_V2DFmode
19661 : || !nonimmediate_operand (operands[1], E_DFmode))
19662 : return -1;
19663 : if (
19664 : #line 15211 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19665 : (TARGET_SSE2))
19666 : return 7255; /* vec_dupv2df */
19667 : if (!(
19668 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19669 : (TARGET_AVX512F) &&
19670 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19671 : (TARGET_AVX512VL)))
19672 : return -1;
19673 : return 9354; /* *avx512vl_vec_dup_gprv2df */
19674 :
19675 : case E_V16SFmode:
19676 : if (!register_operand (operands[0], E_V16SFmode)
19677 : || GET_MODE (x3) != E_V16SFmode)
19678 : return -1;
19679 : switch (GET_MODE (operands[1]))
19680 : {
19681 : case E_V4SFmode:
19682 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
19683 : || !
19684 : #line 28432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19685 : (TARGET_AVX512F))
19686 : return -1;
19687 : return 9300; /* *avx512f_broadcastv16sf */
19688 :
19689 : case E_SFmode:
19690 : if (!nonimmediate_operand (operands[1], E_SFmode)
19691 : || !
19692 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19693 : (TARGET_AVX512F))
19694 : return -1;
19695 : return 9344; /* *avx512f_vec_dup_gprv16sf */
19696 :
19697 : case E_V8SFmode:
19698 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
19699 : || !
19700 : #line 28767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19701 : (TARGET_AVX512DQ))
19702 : return -1;
19703 : return 9408; /* *avx512dq_broadcastv16sf_1 */
19704 :
19705 : default:
19706 : return -1;
19707 : }
19708 :
19709 : case E_V16SImode:
19710 : if (!register_operand (operands[0], E_V16SImode)
19711 : || GET_MODE (x3) != E_V16SImode)
19712 : return -1;
19713 : switch (GET_MODE (operands[1]))
19714 : {
19715 : case E_V4SImode:
19716 : if (!nonimmediate_operand (operands[1], E_V4SImode)
19717 : || !
19718 : #line 28432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19719 : (TARGET_AVX512F))
19720 : return -1;
19721 : return 9302; /* *avx512f_broadcastv16si */
19722 :
19723 : case E_SImode:
19724 : if (!nonimmediate_operand (operands[1], E_SImode)
19725 : || !
19726 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19727 : (TARGET_AVX512F))
19728 : return -1;
19729 : return 9332; /* *avx512f_vec_dup_gprv16si */
19730 :
19731 : case E_V8SImode:
19732 : if (!nonimmediate_operand (operands[1], E_V8SImode)
19733 : || !
19734 : #line 28767 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19735 : (TARGET_AVX512DQ))
19736 : return -1;
19737 : return 9410; /* *avx512dq_broadcastv16si_1 */
19738 :
19739 : default:
19740 : return -1;
19741 : }
19742 :
19743 : case E_V8DFmode:
19744 : if (!register_operand (operands[0], E_V8DFmode)
19745 : || GET_MODE (x3) != E_V8DFmode)
19746 : return -1;
19747 : switch (GET_MODE (operands[1]))
19748 : {
19749 : case E_V4DFmode:
19750 : if (!nonimmediate_operand (operands[1], E_V4DFmode)
19751 : || !
19752 : #line 28444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19753 : (TARGET_AVX512F))
19754 : return -1;
19755 : return 9304; /* *avx512f_broadcastv8df */
19756 :
19757 : case E_DFmode:
19758 : if (!nonimmediate_operand (operands[1], E_DFmode)
19759 : || !
19760 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19761 : (TARGET_AVX512F))
19762 : return -1;
19763 : return 9350; /* *avx512f_vec_dup_gprv8df */
19764 :
19765 : case E_V2DFmode:
19766 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
19767 : || !
19768 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19769 : (TARGET_AVX512DQ))
19770 : return -1;
19771 : return 9414; /* *avx512dq_broadcastv8df_1 */
19772 :
19773 : default:
19774 : return -1;
19775 : }
19776 :
19777 : case E_V8DImode:
19778 : if (!register_operand (operands[0], E_V8DImode)
19779 : || GET_MODE (x3) != E_V8DImode)
19780 : return -1;
19781 : switch (GET_MODE (operands[1]))
19782 : {
19783 : case E_V4DImode:
19784 : if (!nonimmediate_operand (operands[1], E_V4DImode)
19785 : || !
19786 : #line 28444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19787 : (TARGET_AVX512F))
19788 : return -1;
19789 : return 9306; /* *avx512f_broadcastv8di */
19790 :
19791 : case E_DImode:
19792 : if (!nonimmediate_operand (operands[1], E_DImode)
19793 : || !
19794 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19795 : (TARGET_AVX512F))
19796 : return -1;
19797 : return 9338; /* *avx512f_vec_dup_gprv8di */
19798 :
19799 : case E_V2DImode:
19800 : if (!nonimmediate_operand (operands[1], E_V2DImode)
19801 : || !
19802 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19803 : (TARGET_AVX512DQ))
19804 : return -1;
19805 : return 9412; /* *avx512dq_broadcastv8di_1 */
19806 :
19807 : default:
19808 : return -1;
19809 : }
19810 :
19811 : case E_V64QImode:
19812 : if (!register_operand (operands[0], E_V64QImode)
19813 : || GET_MODE (x3) != E_V64QImode
19814 : || !nonimmediate_operand (operands[1], E_QImode)
19815 : || !
19816 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19817 : (TARGET_AVX512BW))
19818 : return -1;
19819 : return 9308; /* *avx512bw_vec_dup_gprv64qi */
19820 :
19821 : case E_V16QImode:
19822 : if (!register_operand (operands[0], E_V16QImode)
19823 : || GET_MODE (x3) != E_V16QImode
19824 : || !nonimmediate_operand (operands[1], E_QImode))
19825 : return -1;
19826 : if ((
19827 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19828 : (TARGET_AVX512BW) &&
19829 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19830 : (TARGET_AVX512VL)))
19831 : return 9310; /* *avx512vl_vec_dup_gprv16qi */
19832 : if (!
19833 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19834 : (TARGET_AVX2))
19835 : return -1;
19836 : return 9365; /* *vec_dupv16qi */
19837 :
19838 : case E_V32QImode:
19839 : if (!register_operand (operands[0], E_V32QImode)
19840 : || GET_MODE (x3) != E_V32QImode
19841 : || !nonimmediate_operand (operands[1], E_QImode))
19842 : return -1;
19843 : if ((
19844 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19845 : (TARGET_AVX512BW) &&
19846 : #line 332 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19847 : (TARGET_AVX512VL)))
19848 : return 9312; /* *avx512vl_vec_dup_gprv32qi */
19849 : if (!
19850 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19851 : (TARGET_AVX2))
19852 : return -1;
19853 : return 9364; /* *vec_dupv32qi */
19854 :
19855 : case E_V32HImode:
19856 : if (!register_operand (operands[0], E_V32HImode)
19857 : || GET_MODE (x3) != E_V32HImode
19858 : || !nonimmediate_operand (operands[1], E_HImode)
19859 : || !
19860 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19861 : (TARGET_AVX512BW))
19862 : return -1;
19863 : return 9314; /* *avx512bw_vec_dup_gprv32hi */
19864 :
19865 : case E_V16HImode:
19866 : if (!register_operand (operands[0], E_V16HImode)
19867 : || GET_MODE (x3) != E_V16HImode
19868 : || !nonimmediate_operand (operands[1], E_HImode))
19869 : return -1;
19870 : if ((
19871 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19872 : (TARGET_AVX512BW) &&
19873 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19874 : (TARGET_AVX512VL)))
19875 : return 9316; /* *avx512vl_vec_dup_gprv16hi */
19876 : if (!
19877 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19878 : (TARGET_AVX2))
19879 : return -1;
19880 : return 9366; /* *vec_dupv16hi */
19881 :
19882 : case E_V8HImode:
19883 : if (!register_operand (operands[0], E_V8HImode)
19884 : || GET_MODE (x3) != E_V8HImode
19885 : || !nonimmediate_operand (operands[1], E_HImode))
19886 : return -1;
19887 : if ((
19888 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19889 : (TARGET_AVX512BW) &&
19890 : #line 333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19891 : (TARGET_AVX512VL)))
19892 : return 9318; /* *avx512vl_vec_dup_gprv8hi */
19893 : if (!
19894 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19895 : (TARGET_AVX2))
19896 : return -1;
19897 : return 9367; /* *vec_dupv8hi */
19898 :
19899 : case E_V32HFmode:
19900 : if (!register_operand (operands[0], E_V32HFmode)
19901 : || GET_MODE (x3) != E_V32HFmode
19902 : || !nonimmediate_operand (operands[1], E_HFmode)
19903 : || !
19904 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19905 : (TARGET_AVX512BW))
19906 : return -1;
19907 : return 9320; /* *avx512bw_vec_dup_gprv32hf */
19908 :
19909 : case E_V16HFmode:
19910 : if (!register_operand (operands[0], E_V16HFmode)
19911 : || GET_MODE (x3) != E_V16HFmode
19912 : || !nonimmediate_operand (operands[1], E_HFmode))
19913 : return -1;
19914 : if ((
19915 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19916 : (TARGET_AVX512BW) &&
19917 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19918 : (TARGET_AVX512VL)))
19919 : return 9322; /* *avx512vl_vec_dup_gprv16hf */
19920 : if (!
19921 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19922 : (TARGET_AVX2))
19923 : return -1;
19924 : return 9370; /* *vec_dupv16hf */
19925 :
19926 : case E_V8HFmode:
19927 : if (!register_operand (operands[0], E_V8HFmode)
19928 : || GET_MODE (x3) != E_V8HFmode
19929 : || !nonimmediate_operand (operands[1], E_HFmode))
19930 : return -1;
19931 : if ((
19932 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19933 : (TARGET_AVX512BW) &&
19934 : #line 334 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19935 : (TARGET_AVX512VL)))
19936 : return 9324; /* *avx512fp16_vec_dup_gprv8hf */
19937 : if (!
19938 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19939 : (TARGET_AVX2))
19940 : return -1;
19941 : return 9371; /* *vec_dupv8hf */
19942 :
19943 : case E_V32BFmode:
19944 : if (!register_operand (operands[0], E_V32BFmode)
19945 : || GET_MODE (x3) != E_V32BFmode
19946 : || !nonimmediate_operand (operands[1], E_BFmode)
19947 : || !
19948 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19949 : (TARGET_AVX512BW))
19950 : return -1;
19951 : return 9326; /* *avx512bw_vec_dup_gprv32bf */
19952 :
19953 : case E_V16BFmode:
19954 : if (!register_operand (operands[0], E_V16BFmode)
19955 : || GET_MODE (x3) != E_V16BFmode
19956 : || !nonimmediate_operand (operands[1], E_BFmode))
19957 : return -1;
19958 : if ((
19959 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19960 : (TARGET_AVX512BW) &&
19961 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19962 : (TARGET_AVX512VL)))
19963 : return 9328; /* *avx512vl_vec_dup_gprv16bf */
19964 : if (!
19965 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19966 : (TARGET_AVX2))
19967 : return -1;
19968 : return 9372; /* *vec_dupv16bf */
19969 :
19970 : case E_V8BFmode:
19971 : if (!register_operand (operands[0], E_V8BFmode)
19972 : || GET_MODE (x3) != E_V8BFmode
19973 : || !nonimmediate_operand (operands[1], E_BFmode))
19974 : return -1;
19975 : if ((
19976 : #line 28456 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19977 : (TARGET_AVX512BW) &&
19978 : #line 335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19979 : (TARGET_AVX512VL)))
19980 : return 9330; /* *avx512vl_vec_dup_gprv8bf */
19981 : if (!
19982 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19983 : (TARGET_AVX2))
19984 : return -1;
19985 : return 9373; /* *vec_dupv8bf */
19986 :
19987 : case E_V8SImode:
19988 : if (!register_operand (operands[0], E_V8SImode)
19989 : || GET_MODE (x3) != E_V8SImode)
19990 : return -1;
19991 : switch (GET_MODE (operands[1]))
19992 : {
19993 : case E_SImode:
19994 : if (!nonimmediate_operand (operands[1], E_SImode))
19995 : return -1;
19996 : if ((
19997 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
19998 : (TARGET_AVX512F) &&
19999 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20000 : (TARGET_AVX512VL)))
20001 : return 9334; /* *avx512vl_vec_dup_gprv8si */
20002 : if (
20003 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20004 : (TARGET_AVX2))
20005 : return 9368; /* *vec_dupv8si */
20006 : if (!
20007 : #line 28638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20008 : (TARGET_AVX))
20009 : return -1;
20010 : return 9374; /* vec_dupv8si */
20011 :
20012 : case E_V4SImode:
20013 : if (!nonimmediate_operand (operands[1], E_V4SImode)
20014 : || !
20015 : #line 28754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20016 : (TARGET_AVX512VL))
20017 : return -1;
20018 : return 9404; /* *avx512vl_broadcastv8si_1 */
20019 :
20020 : default:
20021 : return -1;
20022 : }
20023 :
20024 : case E_V4SImode:
20025 : if (!register_operand (operands[0], E_V4SImode)
20026 : || GET_MODE (x3) != E_V4SImode
20027 : || !nonimmediate_operand (operands[1], E_SImode))
20028 : return -1;
20029 : if ((
20030 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20031 : (TARGET_AVX512F) &&
20032 : #line 299 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20033 : (TARGET_AVX512VL)))
20034 : return 9336; /* *avx512vl_vec_dup_gprv4si */
20035 : if (
20036 : #line 28515 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20037 : (TARGET_SSE))
20038 : return 9357; /* *vec_dupv4si */
20039 : if (!
20040 : #line 28618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20041 : (TARGET_AVX2))
20042 : return -1;
20043 : return 9369; /* *vec_dupv4si */
20044 :
20045 : case E_V4DImode:
20046 : if (!register_operand (operands[0], E_V4DImode)
20047 : || GET_MODE (x3) != E_V4DImode)
20048 : return -1;
20049 : switch (GET_MODE (operands[1]))
20050 : {
20051 : case E_DImode:
20052 : if (!nonimmediate_operand (operands[1], E_DImode))
20053 : return -1;
20054 : if ((
20055 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20056 : (TARGET_AVX512F) &&
20057 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20058 : (TARGET_AVX512VL)))
20059 : return 9340; /* *avx512vl_vec_dup_gprv4di */
20060 : if (!
20061 : #line 28638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20062 : (TARGET_AVX))
20063 : return -1;
20064 : return 9376; /* vec_dupv4di */
20065 :
20066 : case E_V2DImode:
20067 : if (!nonimmediate_operand (operands[1], E_V2DImode)
20068 : || !(
20069 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20070 : (TARGET_AVX512DQ) &&
20071 : #line 28778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20072 : (TARGET_AVX512VL)))
20073 : return -1;
20074 : return 9416; /* *avx512dq_broadcastv4di_1 */
20075 :
20076 : default:
20077 : return -1;
20078 : }
20079 :
20080 : case E_V2DImode:
20081 : if (!register_operand (operands[0], E_V2DImode)
20082 : || GET_MODE (x3) != E_V2DImode
20083 : || !nonimmediate_operand (operands[1], E_DImode))
20084 : return -1;
20085 : if ((
20086 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20087 : (TARGET_AVX512F) &&
20088 : #line 300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20089 : (TARGET_AVX512VL)))
20090 : return 9342; /* *avx512vl_vec_dup_gprv2di */
20091 : if (!
20092 : #line 28543 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20093 : (TARGET_SSE))
20094 : return -1;
20095 : return 9358; /* *vec_dupv2di */
20096 :
20097 : case E_V8SFmode:
20098 : if (!register_operand (operands[0], E_V8SFmode)
20099 : || GET_MODE (x3) != E_V8SFmode)
20100 : return -1;
20101 : switch (GET_MODE (operands[1]))
20102 : {
20103 : case E_SFmode:
20104 : if (!nonimmediate_operand (operands[1], E_SFmode))
20105 : return -1;
20106 : if ((
20107 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20108 : (TARGET_AVX512F) &&
20109 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20110 : (TARGET_AVX512VL)))
20111 : return 9346; /* *avx512vl_vec_dup_gprv8sf */
20112 : if (!
20113 : #line 28638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20114 : (TARGET_AVX))
20115 : return -1;
20116 : return 9375; /* vec_dupv8sf */
20117 :
20118 : case E_V4SFmode:
20119 : if (!nonimmediate_operand (operands[1], E_V4SFmode)
20120 : || !
20121 : #line 28754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20122 : (TARGET_AVX512VL))
20123 : return -1;
20124 : return 9406; /* *avx512vl_broadcastv8sf_1 */
20125 :
20126 : default:
20127 : return -1;
20128 : }
20129 :
20130 : case E_V4SFmode:
20131 : if (!register_operand (operands[0], E_V4SFmode)
20132 : || GET_MODE (x3) != E_V4SFmode
20133 : || !nonimmediate_operand (operands[1], E_SFmode))
20134 : return -1;
20135 : if ((
20136 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20137 : (TARGET_AVX512F) &&
20138 : #line 301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20139 : (TARGET_AVX512VL)))
20140 : return 9348; /* *avx512vl_vec_dup_gprv4sf */
20141 : if (!
20142 : #line 28483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20143 : (TARGET_SSE))
20144 : return -1;
20145 : return 9356; /* vec_dupv4sf */
20146 :
20147 : case E_V4DFmode:
20148 : if (!register_operand (operands[0], E_V4DFmode)
20149 : || GET_MODE (x3) != E_V4DFmode)
20150 : return -1;
20151 : switch (GET_MODE (operands[1]))
20152 : {
20153 : case E_DFmode:
20154 : if (!nonimmediate_operand (operands[1], E_DFmode))
20155 : return -1;
20156 : if ((
20157 : #line 28468 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20158 : (TARGET_AVX512F) &&
20159 : #line 302 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20160 : (TARGET_AVX512VL)))
20161 : return 9352; /* *avx512vl_vec_dup_gprv4df */
20162 : if (!
20163 : #line 28638 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20164 : (TARGET_AVX))
20165 : return -1;
20166 : return 9377; /* vec_dupv4df */
20167 :
20168 : case E_V2DFmode:
20169 : if (!nonimmediate_operand (operands[1], E_V2DFmode)
20170 : || !(
20171 : #line 28784 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20172 : (TARGET_AVX512DQ) &&
20173 : #line 28778 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20174 : (TARGET_AVX512VL)))
20175 : return -1;
20176 : return 9418; /* *avx512dq_broadcastv4df_1 */
20177 :
20178 : default:
20179 : return -1;
20180 : }
20181 :
20182 : default:
20183 : return -1;
20184 : }
20185 :
20186 : case FLOAT_EXTEND:
20187 : if (GET_MODE (x4) != E_SFmode)
20188 : return -1;
20189 : x5 = XEXP (x4, 0);
20190 : operands[1] = x5;
20191 : switch (GET_MODE (operands[0]))
20192 : {
20193 : case E_V8SFmode:
20194 : switch (pattern684 (x3,
20195 : E_V8SFmode))
20196 : {
20197 : case 0:
20198 : if (!(
20199 : #line 32340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20200 : (TARGET_AVXNECONVERT) &&
20201 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20202 : (TARGET_AVX)))
20203 : return -1;
20204 : return 10499; /* vbcstnebf162ps_v8sf */
20205 :
20206 : case 1:
20207 : if (!(
20208 : #line 32351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20209 : (TARGET_AVXNECONVERT) &&
20210 : #line 444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20211 : (TARGET_AVX)))
20212 : return -1;
20213 : return 10501; /* vbcstnesh2ps_v8sf */
20214 :
20215 : default:
20216 : return -1;
20217 : }
20218 :
20219 : case E_V4SFmode:
20220 : switch (pattern684 (x3,
20221 : E_V4SFmode))
20222 : {
20223 : case 0:
20224 : if (!
20225 : #line 32340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20226 : (TARGET_AVXNECONVERT))
20227 : return -1;
20228 : return 10500; /* vbcstnebf162ps_v4sf */
20229 :
20230 : case 1:
20231 : if (!
20232 : #line 32351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20233 : (TARGET_AVXNECONVERT))
20234 : return -1;
20235 : return 10502; /* vbcstnesh2ps_v4sf */
20236 :
20237 : default:
20238 : return -1;
20239 : }
20240 :
20241 : default:
20242 : return -1;
20243 : }
20244 :
20245 : default:
20246 : return -1;
20247 : }
20248 : }
20249 :
20250 : int
20251 : recog_332 (rtx x1 ATTRIBUTE_UNUSED,
20252 : rtx_insn *insn ATTRIBUTE_UNUSED,
20253 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20254 : {
20255 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20256 : rtx x2, x3, x4, x5;
20257 : int res ATTRIBUTE_UNUSED;
20258 : x2 = XEXP (x1, 0);
20259 : operands[0] = x2;
20260 : x3 = XEXP (x1, 1);
20261 : x4 = XEXP (x3, 0);
20262 : operands[1] = x4;
20263 : x5 = XEXP (x3, 1);
20264 : operands[2] = x5;
20265 : switch (GET_MODE (operands[0]))
20266 : {
20267 : case E_V16HImode:
20268 : if (!register_operand (operands[0], E_V16HImode)
20269 : || GET_MODE (x3) != E_V16HImode)
20270 : return -1;
20271 : if (nonimmediate_operand (operands[1], E_V16HImode)
20272 : && nonmemory_operand (operands[2], E_DImode)
20273 : && (
20274 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20275 : (TARGET_AVX512VL) &&
20276 : #line 785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20277 : (TARGET_AVX512BW)))
20278 : return 7645; /* *ashrv16hi3 */
20279 : if (!register_operand (operands[1], E_V16HImode))
20280 : return -1;
20281 : if (nonmemory_operand (operands[2], E_DImode)
20282 : && (
20283 : #line 17433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20284 : (TARGET_SSE2) &&
20285 : #line 736 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20286 : (TARGET_AVX2)))
20287 : return 7655; /* ashrv16hi3 */
20288 : if (!nonimmediate_operand (operands[2], E_V16HImode)
20289 : || !(
20290 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20291 : (TARGET_AVX512BW) &&
20292 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20293 : (TARGET_AVX512VL)))
20294 : return -1;
20295 : return 9641; /* avx512vl_ashrvv16hi */
20296 :
20297 : case E_V8HImode:
20298 : if (!register_operand (operands[0], E_V8HImode)
20299 : || GET_MODE (x3) != E_V8HImode)
20300 : return -1;
20301 : if (nonimmediate_operand (operands[1], E_V8HImode)
20302 : && nonmemory_operand (operands[2], E_DImode)
20303 : && (
20304 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20305 : (TARGET_AVX512VL) &&
20306 : #line 785 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20307 : (TARGET_AVX512BW)))
20308 : return 7647; /* *ashrv8hi3 */
20309 : if (!register_operand (operands[1], E_V8HImode))
20310 : return -1;
20311 : if (nonmemory_operand (operands[2], E_DImode)
20312 : &&
20313 : #line 17433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20314 : (TARGET_SSE2))
20315 : return 7656; /* ashrv8hi3 */
20316 : if (!nonimmediate_operand (operands[2], E_V8HImode)
20317 : || !(
20318 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20319 : (TARGET_AVX512BW) &&
20320 : #line 679 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20321 : (TARGET_AVX512VL)))
20322 : return -1;
20323 : return 9639; /* avx512vl_ashrvv8hi */
20324 :
20325 : case E_V8SImode:
20326 : if (!register_operand (operands[0], E_V8SImode)
20327 : || GET_MODE (x3) != E_V8SImode)
20328 : return -1;
20329 : if (nonimmediate_operand (operands[1], E_V8SImode)
20330 : && nonmemory_operand (operands[2], E_DImode)
20331 : &&
20332 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20333 : (TARGET_AVX512VL))
20334 : return 7649; /* *ashrv8si3 */
20335 : if (!register_operand (operands[1], E_V8SImode))
20336 : return -1;
20337 : if (nonmemory_operand (operands[2], E_DImode)
20338 : && (
20339 : #line 17433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20340 : (TARGET_SSE2) &&
20341 : #line 737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20342 : (TARGET_AVX2)))
20343 : return 7657; /* ashrv8si3 */
20344 : if (!nonimmediate_operand (operands[2], E_V8SImode)
20345 : || !
20346 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20347 : (TARGET_AVX2 && 1))
20348 : return -1;
20349 : return 9629; /* avx2_ashrvv8si */
20350 :
20351 : case E_V4SImode:
20352 : if (!register_operand (operands[0], E_V4SImode)
20353 : || GET_MODE (x3) != E_V4SImode)
20354 : return -1;
20355 : if (nonimmediate_operand (operands[1], E_V4SImode)
20356 : && nonmemory_operand (operands[2], E_DImode)
20357 : &&
20358 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20359 : (TARGET_AVX512VL))
20360 : return 7651; /* *ashrv4si3 */
20361 : if (!register_operand (operands[1], E_V4SImode))
20362 : return -1;
20363 : if (nonmemory_operand (operands[2], E_DImode)
20364 : &&
20365 : #line 17433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20366 : (TARGET_SSE2))
20367 : return 7658; /* ashrv4si3 */
20368 : if (!nonimmediate_operand (operands[2], E_V4SImode)
20369 : || !
20370 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20371 : (TARGET_AVX2 && 1))
20372 : return -1;
20373 : return 9627; /* avx2_ashrvv4si */
20374 :
20375 : case E_V2DImode:
20376 : if (!register_operand (operands[0], E_V2DImode)
20377 : || GET_MODE (x3) != E_V2DImode)
20378 : return -1;
20379 : if (nonimmediate_operand (operands[1], E_V2DImode)
20380 : && nonmemory_operand (operands[2], E_DImode)
20381 : &&
20382 : #line 17419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20383 : (TARGET_AVX512VL))
20384 : return 7653; /* *ashrv2di3 */
20385 : if (!register_operand (operands[1], E_V2DImode))
20386 : return -1;
20387 : if (nonmemory_operand (operands[2], E_DImode)
20388 : &&
20389 : #line 27669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20390 : (TARGET_SSE2 && !TARGET_AVX512VL && ix86_pre_reload_split ()))
20391 : return 9107; /* *ashrv2di3 */
20392 : if (!nonimmediate_operand (operands[2], E_V2DImode)
20393 : || !(
20394 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20395 : (TARGET_AVX2 && 1) &&
20396 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20397 : (TARGET_AVX512VL)))
20398 : return -1;
20399 : return 9633; /* avx2_ashrvv2di */
20400 :
20401 : case E_V32HImode:
20402 : if (!register_operand (operands[0], E_V32HImode)
20403 : || GET_MODE (x3) != E_V32HImode)
20404 : return -1;
20405 : if (nonimmediate_operand (operands[1], E_V32HImode)
20406 : && nonmemory_operand (operands[2], E_DImode)
20407 : && (
20408 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20409 : (TARGET_AVX512F) &&
20410 : #line 780 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20411 : (TARGET_AVX512BW)))
20412 : return 7663; /* *ashrv32hi3 */
20413 : if (!register_operand (operands[1], E_V32HImode)
20414 : || !nonimmediate_operand (operands[2], E_V32HImode)
20415 : || !
20416 : #line 29614 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20417 : (TARGET_AVX512BW))
20418 : return -1;
20419 : return 9643; /* avx512bw_ashrvv32hi */
20420 :
20421 : case E_V4DImode:
20422 : if (!register_operand (operands[0], E_V4DImode)
20423 : || GET_MODE (x3) != E_V4DImode)
20424 : return -1;
20425 : if (nonimmediate_operand (operands[1], E_V4DImode)
20426 : && nonmemory_operand (operands[2], E_DImode)
20427 : && (
20428 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20429 : (TARGET_AVX512F) &&
20430 : #line 781 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20431 : (TARGET_AVX512VL)))
20432 : return 7665; /* *ashrv4di3 */
20433 : if (!register_operand (operands[1], E_V4DImode)
20434 : || !nonimmediate_operand (operands[2], E_V4DImode)
20435 : || !(
20436 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20437 : (TARGET_AVX2 && 1) &&
20438 : #line 675 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20439 : (TARGET_AVX512VL)))
20440 : return -1;
20441 : return 9635; /* avx2_ashrvv4di */
20442 :
20443 : case E_V16SImode:
20444 : if (!register_operand (operands[0], E_V16SImode)
20445 : || GET_MODE (x3) != E_V16SImode)
20446 : return -1;
20447 : if (nonimmediate_operand (operands[1], E_V16SImode)
20448 : && nonmemory_operand (operands[2], E_DImode)
20449 : &&
20450 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20451 : (TARGET_AVX512F))
20452 : return 7667; /* *ashrv16si3 */
20453 : if (!register_operand (operands[1], E_V16SImode)
20454 : || !nonimmediate_operand (operands[2], E_V16SImode)
20455 : || !(
20456 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20457 : (TARGET_AVX2 && 1) &&
20458 : #line 674 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20459 : (TARGET_AVX512F)))
20460 : return -1;
20461 : return 9631; /* avx512f_ashrvv16si */
20462 :
20463 : case E_V8DImode:
20464 : if (!register_operand (operands[0], E_V8DImode)
20465 : || GET_MODE (x3) != E_V8DImode)
20466 : return -1;
20467 : if (nonimmediate_operand (operands[1], E_V8DImode)
20468 : && nonmemory_operand (operands[2], E_DImode)
20469 : &&
20470 : #line 17463 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20471 : (TARGET_AVX512F))
20472 : return 7669; /* *ashrv8di3 */
20473 : if (!register_operand (operands[1], E_V8DImode)
20474 : || !nonimmediate_operand (operands[2], E_V8DImode)
20475 : || !(
20476 : #line 29603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20477 : (TARGET_AVX2 && 1) &&
20478 : #line 676 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20479 : (TARGET_AVX512F)))
20480 : return -1;
20481 : return 9637; /* avx512f_ashrvv8di */
20482 :
20483 : case E_V1TImode:
20484 : if (pattern31 (x3) != 0
20485 : || !
20486 : #line 17837 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20487 : (TARGET_SSE2 && TARGET_64BIT
20488 : && ix86_pre_reload_split ()))
20489 : return -1;
20490 : return 7734; /* *ashrv1ti3_internal */
20491 :
20492 : default:
20493 : return -1;
20494 : }
20495 : }
20496 :
20497 : int
20498 : recog_336 (rtx x1 ATTRIBUTE_UNUSED,
20499 : rtx_insn *insn ATTRIBUTE_UNUSED,
20500 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20501 : {
20502 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20503 : rtx x2, x3, x4, x5, x6, x7, x8;
20504 : int res ATTRIBUTE_UNUSED;
20505 : x2 = XEXP (x1, 0);
20506 : operands[0] = x2;
20507 : x3 = XEXP (x1, 1);
20508 : x4 = XEXP (x3, 0);
20509 : switch (GET_CODE (x4))
20510 : {
20511 : case REG:
20512 : case SUBREG:
20513 : case MEM:
20514 : operands[1] = x4;
20515 : switch (GET_MODE (operands[0]))
20516 : {
20517 : case E_V8HFmode:
20518 : switch (pattern517 (x3))
20519 : {
20520 : case 0:
20521 : if (!(
20522 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20523 : (TARGET_AVX512FP16) &&
20524 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20525 : (TARGET_AVX512VL)))
20526 : return -1;
20527 : return 4518; /* avx512fp16_vcvtw2ph_v8hi */
20528 :
20529 : case 1:
20530 : if (!(
20531 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20532 : (TARGET_AVX512FP16) &&
20533 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20534 : (TARGET_AVX512VL)))
20535 : return -1;
20536 : return 4542; /* avx512fp16_vcvtdq2ph_v8si */
20537 :
20538 : case 2:
20539 : if (!
20540 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20541 : (TARGET_AVX512FP16))
20542 : return -1;
20543 : return 4558; /* avx512fp16_vcvtqq2ph_v8di */
20544 :
20545 : default:
20546 : return -1;
20547 : }
20548 :
20549 : case E_V16HFmode:
20550 : switch (pattern518 (x3))
20551 : {
20552 : case 0:
20553 : if (!(
20554 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20555 : (TARGET_AVX512FP16) &&
20556 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20557 : (TARGET_AVX512VL)))
20558 : return -1;
20559 : return 4526; /* avx512fp16_vcvtw2ph_v16hi */
20560 :
20561 : case 1:
20562 : if (!
20563 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20564 : (TARGET_AVX512FP16))
20565 : return -1;
20566 : return 4550; /* avx512fp16_vcvtdq2ph_v16si */
20567 :
20568 : default:
20569 : return -1;
20570 : }
20571 :
20572 : case E_V32HFmode:
20573 : if (!register_operand (operands[0], E_V32HFmode)
20574 : || GET_MODE (x3) != E_V32HFmode
20575 : || !vector_operand (operands[1], E_V32HImode)
20576 : || !
20577 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20578 : (TARGET_AVX512FP16))
20579 : return -1;
20580 : return 4534; /* avx512fp16_vcvtw2ph_v32hi */
20581 :
20582 : case E_V16SFmode:
20583 : if (!register_operand (operands[0], E_V16SFmode)
20584 : || GET_MODE (x3) != E_V16SFmode
20585 : || !vector_operand (operands[1], E_V16SImode)
20586 : || !(
20587 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20588 : (TARGET_SSE2 && 1 && 1) &&
20589 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20590 : (TARGET_AVX512F)))
20591 : return -1;
20592 : return 4854; /* floatv16siv16sf2 */
20593 :
20594 : case E_V8SFmode:
20595 : if (!register_operand (operands[0], E_V8SFmode)
20596 : || GET_MODE (x3) != E_V8SFmode)
20597 : return -1;
20598 : switch (GET_MODE (operands[1]))
20599 : {
20600 : case E_V8SImode:
20601 : if (!vector_operand (operands[1], E_V8SImode)
20602 : || !(
20603 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20604 : (TARGET_SSE2 && 1 && 1) &&
20605 : #line 437 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20606 : (TARGET_AVX)))
20607 : return -1;
20608 : return 4858; /* floatv8siv8sf2 */
20609 :
20610 : case E_V8DImode:
20611 : if (!nonimmediate_operand (operands[1], E_V8DImode)
20612 : || !
20613 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20614 : (TARGET_AVX512DQ && 1))
20615 : return -1;
20616 : return 5010; /* floatv8div8sf2 */
20617 :
20618 : default:
20619 : return -1;
20620 : }
20621 :
20622 : case E_V4SFmode:
20623 : if (!register_operand (operands[0], E_V4SFmode)
20624 : || GET_MODE (x3) != E_V4SFmode)
20625 : return -1;
20626 : switch (GET_MODE (operands[1]))
20627 : {
20628 : case E_V4SImode:
20629 : if (!vector_operand (operands[1], E_V4SImode)
20630 : || !
20631 : #line 8971 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20632 : (TARGET_SSE2 && 1 && 1))
20633 : return -1;
20634 : return 4860; /* floatv4siv4sf2 */
20635 :
20636 : case E_V4DImode:
20637 : if (!nonimmediate_operand (operands[1], E_V4DImode)
20638 : || !(
20639 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20640 : (TARGET_AVX512DQ && 1) &&
20641 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20642 : (TARGET_AVX512VL)))
20643 : return -1;
20644 : return 5018; /* floatv4div4sf2 */
20645 :
20646 : default:
20647 : return -1;
20648 : }
20649 :
20650 : case E_V2DFmode:
20651 : switch (pattern519 (x3))
20652 : {
20653 : case 0:
20654 : if (!
20655 : #line 9200 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20656 : (TARGET_SSE2))
20657 : return -1;
20658 : return 4934; /* sse2_cvtpi2pd */
20659 :
20660 : case 1:
20661 : if (!(
20662 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20663 : (TARGET_AVX512DQ) &&
20664 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20665 : (TARGET_AVX512VL)))
20666 : return -1;
20667 : return 5002; /* floatv2div2df2 */
20668 :
20669 : default:
20670 : return -1;
20671 : }
20672 :
20673 : case E_V8DFmode:
20674 : switch (pattern520 (x3,
20675 : E_V8DFmode))
20676 : {
20677 : case 0:
20678 : if (!(
20679 : #line 9494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20680 : (TARGET_AVX && 1) &&
20681 : #line 466 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20682 : (TARGET_AVX512F)))
20683 : return -1;
20684 : return 4982; /* floatv8siv8df2 */
20685 :
20686 : case 1:
20687 : if (!
20688 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20689 : (TARGET_AVX512DQ))
20690 : return -1;
20691 : return 4986; /* floatv8div8df2 */
20692 :
20693 : default:
20694 : return -1;
20695 : }
20696 :
20697 : case E_V4DFmode:
20698 : switch (pattern521 (x3,
20699 : E_V4DFmode))
20700 : {
20701 : case 0:
20702 : if (!
20703 : #line 9494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20704 : (TARGET_AVX && 1))
20705 : return -1;
20706 : return 4984; /* floatv4siv4df2 */
20707 :
20708 : case 1:
20709 : if (!(
20710 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20711 : (TARGET_AVX512DQ) &&
20712 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20713 : (TARGET_AVX512VL)))
20714 : return -1;
20715 : return 4994; /* floatv4div4df2 */
20716 :
20717 : default:
20718 : return -1;
20719 : }
20720 :
20721 : default:
20722 : return -1;
20723 : }
20724 :
20725 : case VEC_SELECT:
20726 : x5 = XEXP (x4, 1);
20727 : if (GET_CODE (x5) != PARALLEL)
20728 : return -1;
20729 : x6 = XEXP (x4, 0);
20730 : operands[1] = x6;
20731 : switch (XVECLEN (x5, 0))
20732 : {
20733 : case 8:
20734 : if (pattern681 (x5) != 0
20735 : || pattern928 (x3,
20736 : E_V16SImode,
20737 : E_V8SImode,
20738 : E_V8DFmode) != 0
20739 : || !
20740 : #line 9695 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20741 : (TARGET_AVX512F))
20742 : return -1;
20743 : return 5034; /* avx512f_cvtdq2pd512_2 */
20744 :
20745 : case 4:
20746 : if (pattern682 (x5,
20747 : 3,
20748 : 2,
20749 : 1) != 0
20750 : || pattern928 (x3,
20751 : E_V8SImode,
20752 : E_V4SImode,
20753 : E_V4DFmode) != 0
20754 : || !
20755 : #line 9708 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20756 : (TARGET_AVX))
20757 : return -1;
20758 : return 5035; /* avx_cvtdq2pd256_2 */
20759 :
20760 : case 2:
20761 : x7 = XVECEXP (x5, 0, 0);
20762 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
20763 : return -1;
20764 : x8 = XVECEXP (x5, 0, 1);
20765 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
20766 : || pattern928 (x3,
20767 : E_V4SImode,
20768 : E_V2SImode,
20769 : E_V2DFmode) != 0
20770 : || !
20771 : #line 9720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20772 : (TARGET_SSE2 && 1))
20773 : return -1;
20774 : return 5036; /* sse2_cvtdq2pd */
20775 :
20776 : default:
20777 : return -1;
20778 : }
20779 :
20780 : default:
20781 : return -1;
20782 : }
20783 : }
20784 :
20785 : int
20786 : recog_341 (rtx x1 ATTRIBUTE_UNUSED,
20787 : rtx_insn *insn ATTRIBUTE_UNUSED,
20788 : int *pnum_clobbers ATTRIBUTE_UNUSED)
20789 : {
20790 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
20791 : rtx x2, x3, x4, x5, x6, x7, x8;
20792 : int res ATTRIBUTE_UNUSED;
20793 : x2 = XEXP (x1, 0);
20794 : operands[0] = x2;
20795 : x3 = XEXP (x1, 1);
20796 : x4 = XEXP (x3, 0);
20797 : switch (GET_CODE (x4))
20798 : {
20799 : case REG:
20800 : case SUBREG:
20801 : case MEM:
20802 : operands[1] = x4;
20803 : switch (GET_MODE (operands[0]))
20804 : {
20805 : case E_V8HFmode:
20806 : switch (pattern517 (x3))
20807 : {
20808 : case 0:
20809 : if (!(
20810 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20811 : (TARGET_AVX512FP16) &&
20812 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20813 : (TARGET_AVX512VL)))
20814 : return -1;
20815 : return 4522; /* avx512fp16_vcvtuw2ph_v8hi */
20816 :
20817 : case 1:
20818 : if (!(
20819 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20820 : (TARGET_AVX512FP16) &&
20821 : #line 688 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20822 : (TARGET_AVX512VL)))
20823 : return -1;
20824 : return 4546; /* avx512fp16_vcvtudq2ph_v8si */
20825 :
20826 : case 2:
20827 : if (!
20828 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20829 : (TARGET_AVX512FP16))
20830 : return -1;
20831 : return 4562; /* avx512fp16_vcvtuqq2ph_v8di */
20832 :
20833 : default:
20834 : return -1;
20835 : }
20836 :
20837 : case E_V16HFmode:
20838 : switch (pattern518 (x3))
20839 : {
20840 : case 0:
20841 : if (!(
20842 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20843 : (TARGET_AVX512FP16) &&
20844 : #line 687 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20845 : (TARGET_AVX512VL)))
20846 : return -1;
20847 : return 4530; /* avx512fp16_vcvtuw2ph_v16hi */
20848 :
20849 : case 1:
20850 : if (!
20851 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20852 : (TARGET_AVX512FP16))
20853 : return -1;
20854 : return 4554; /* avx512fp16_vcvtudq2ph_v16si */
20855 :
20856 : default:
20857 : return -1;
20858 : }
20859 :
20860 : case E_V32HFmode:
20861 : if (!register_operand (operands[0], E_V32HFmode)
20862 : || GET_MODE (x3) != E_V32HFmode
20863 : || !vector_operand (operands[1], E_V32HImode)
20864 : || !
20865 : #line 7993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20866 : (TARGET_AVX512FP16))
20867 : return -1;
20868 : return 4538; /* avx512fp16_vcvtuw2ph_v32hi */
20869 :
20870 : case E_V16SFmode:
20871 : if (!register_operand (operands[0], E_V16SFmode)
20872 : || GET_MODE (x3) != E_V16SFmode
20873 : || !nonimmediate_operand (operands[1], E_V16SImode)
20874 : || !
20875 : #line 8984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20876 : (TARGET_AVX512F))
20877 : return -1;
20878 : return 4862; /* *floatunsv16siv16sf2 */
20879 :
20880 : case E_V8SFmode:
20881 : switch (pattern520 (x3,
20882 : E_V8SFmode))
20883 : {
20884 : case 0:
20885 : if (!(
20886 : #line 8984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20887 : (TARGET_AVX512F) &&
20888 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20889 : (TARGET_AVX512VL)))
20890 : return -1;
20891 : return 4866; /* *floatunsv8siv8sf2 */
20892 :
20893 : case 1:
20894 : if (!
20895 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20896 : (TARGET_AVX512DQ && 1))
20897 : return -1;
20898 : return 5014; /* floatunsv8div8sf2 */
20899 :
20900 : default:
20901 : return -1;
20902 : }
20903 :
20904 : case E_V4SFmode:
20905 : switch (pattern521 (x3,
20906 : E_V4SFmode))
20907 : {
20908 : case 0:
20909 : if (!(
20910 : #line 8984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20911 : (TARGET_AVX512F) &&
20912 : #line 534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20913 : (TARGET_AVX512VL)))
20914 : return -1;
20915 : return 4870; /* *floatunsv4siv4sf2 */
20916 :
20917 : case 1:
20918 : if (!(
20919 : #line 9518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20920 : (TARGET_AVX512DQ && 1) &&
20921 : #line 620 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20922 : (TARGET_AVX512VL)))
20923 : return -1;
20924 : return 5020; /* floatunsv4div4sf2 */
20925 :
20926 : default:
20927 : return -1;
20928 : }
20929 :
20930 : case E_V2DFmode:
20931 : switch (pattern519 (x3))
20932 : {
20933 : case 0:
20934 : if (!
20935 : #line 9220 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20936 : (TARGET_MMX_WITH_SSE && TARGET_AVX512VL))
20937 : return -1;
20938 : return 4935; /* floatunsv2siv2df2 */
20939 :
20940 : case 1:
20941 : if (!(
20942 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20943 : (TARGET_AVX512DQ) &&
20944 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20945 : (TARGET_AVX512VL)))
20946 : return -1;
20947 : return 5006; /* floatunsv2div2df2 */
20948 :
20949 : default:
20950 : return -1;
20951 : }
20952 :
20953 : case E_V8DFmode:
20954 : if (!register_operand (operands[0], E_V8DFmode)
20955 : || GET_MODE (x3) != E_V8DFmode)
20956 : return -1;
20957 : switch (GET_MODE (operands[1]))
20958 : {
20959 : case E_V8DImode:
20960 : if (!nonimmediate_operand (operands[1], E_V8DImode)
20961 : || !
20962 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20963 : (TARGET_AVX512DQ))
20964 : return -1;
20965 : return 4990; /* floatunsv8div8df2 */
20966 :
20967 : case E_V8SImode:
20968 : if (!nonimmediate_operand (operands[1], E_V8SImode)
20969 : || !
20970 : #line 9668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20971 : (TARGET_AVX512F))
20972 : return -1;
20973 : return 5028; /* floatunsv8siv8df2 */
20974 :
20975 : default:
20976 : return -1;
20977 : }
20978 :
20979 : case E_V4DFmode:
20980 : if (!register_operand (operands[0], E_V4DFmode)
20981 : || GET_MODE (x3) != E_V4DFmode)
20982 : return -1;
20983 : switch (GET_MODE (operands[1]))
20984 : {
20985 : case E_V4DImode:
20986 : if (!nonimmediate_operand (operands[1], E_V4DImode)
20987 : || !(
20988 : #line 9504 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20989 : (TARGET_AVX512DQ) &&
20990 : #line 531 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20991 : (TARGET_AVX512VL)))
20992 : return -1;
20993 : return 4998; /* floatunsv4div4df2 */
20994 :
20995 : case E_V4SImode:
20996 : if (!nonimmediate_operand (operands[1], E_V4SImode)
20997 : || !(
20998 : #line 9668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
20999 : (TARGET_AVX512F) &&
21000 : #line 469 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21001 : (TARGET_AVX512VL)))
21002 : return -1;
21003 : return 5030; /* floatunsv4siv4df2 */
21004 :
21005 : default:
21006 : return -1;
21007 : }
21008 :
21009 : default:
21010 : return -1;
21011 : }
21012 :
21013 : case VEC_SELECT:
21014 : if (GET_MODE (x4) != E_V2SImode)
21015 : return -1;
21016 : x5 = XEXP (x4, 1);
21017 : if (GET_CODE (x5) != PARALLEL
21018 : || XVECLEN (x5, 0) != 2)
21019 : return -1;
21020 : x6 = XVECEXP (x5, 0, 0);
21021 : if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21022 : return -1;
21023 : x7 = XVECEXP (x5, 0, 1);
21024 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
21025 : || !register_operand (operands[0], E_V2DFmode)
21026 : || GET_MODE (x3) != E_V2DFmode)
21027 : return -1;
21028 : x8 = XEXP (x4, 0);
21029 : operands[1] = x8;
21030 : if (!nonimmediate_operand (operands[1], E_V4SImode)
21031 : || !
21032 : #line 9680 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21033 : (TARGET_AVX512VL))
21034 : return -1;
21035 : return 5032; /* *floatunsv2siv2df2 */
21036 :
21037 : default:
21038 : return -1;
21039 : }
21040 : }
21041 :
21042 : int
21043 : recog_348 (rtx x1 ATTRIBUTE_UNUSED,
21044 : rtx_insn *insn ATTRIBUTE_UNUSED,
21045 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21046 : {
21047 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21048 : rtx x2, x3, x4, x5, x6;
21049 : int res ATTRIBUTE_UNUSED;
21050 : x2 = XEXP (x1, 0);
21051 : operands[0] = x2;
21052 : x3 = XEXP (x1, 1);
21053 : switch (GET_CODE (x3))
21054 : {
21055 : case AND:
21056 : res = recog_308 (x1, insn, pnum_clobbers);
21057 : if (res >= 0)
21058 : return res;
21059 : break;
21060 :
21061 : case IOR:
21062 : res = recog_320 (x1, insn, pnum_clobbers);
21063 : if (res >= 0)
21064 : return res;
21065 : break;
21066 :
21067 : case XOR:
21068 : res = recog_313 (x1, insn, pnum_clobbers);
21069 : if (res >= 0)
21070 : return res;
21071 : break;
21072 :
21073 : case NOT:
21074 : x4 = XEXP (x3, 0);
21075 : if (GET_CODE (x4) == XOR)
21076 : {
21077 : x5 = XEXP (x4, 0);
21078 : operands[1] = x5;
21079 : x6 = XEXP (x4, 1);
21080 : operands[2] = x6;
21081 : switch (GET_MODE (operands[0]))
21082 : {
21083 : case E_V16SImode:
21084 : if (pattern815 (x3,
21085 : E_V16SImode) == 0
21086 : && (
21087 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21088 : ((64 == 64 || TARGET_AVX512VL
21089 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21090 : && (register_operand (operands[1], V16SImode)
21091 : || register_operand (operands[2], V16SImode))) &&
21092 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21093 : (TARGET_AVX512F)))
21094 : return 8118; /* *xnorv16si3 */
21095 : break;
21096 :
21097 : case E_V8DImode:
21098 : if (pattern815 (x3,
21099 : E_V8DImode) == 0
21100 : && (
21101 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21102 : ((64 == 64 || TARGET_AVX512VL
21103 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21104 : && (register_operand (operands[1], V8DImode)
21105 : || register_operand (operands[2], V8DImode))) &&
21106 : #line 556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21107 : (TARGET_AVX512F)))
21108 : return 8119; /* *xnorv8di3 */
21109 : break;
21110 :
21111 : case E_V64QImode:
21112 : if (pattern815 (x3,
21113 : E_V64QImode) == 0
21114 : && (
21115 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21116 : ((64 == 64 || TARGET_AVX512VL
21117 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21118 : && (register_operand (operands[1], V64QImode)
21119 : || register_operand (operands[2], V64QImode))) &&
21120 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21121 : (TARGET_AVX512BW)))
21122 : return 8120; /* *xnorv64qi3 */
21123 : break;
21124 :
21125 : case E_V32QImode:
21126 : if (pattern815 (x3,
21127 : E_V32QImode) == 0
21128 : && (
21129 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21130 : ((32 == 64 || TARGET_AVX512VL
21131 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21132 : && (register_operand (operands[1], V32QImode)
21133 : || register_operand (operands[2], V32QImode))) &&
21134 : #line 557 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21135 : (TARGET_AVX)))
21136 : return 8121; /* *xnorv32qi3 */
21137 : break;
21138 :
21139 : case E_V16QImode:
21140 : if (pattern815 (x3,
21141 : E_V16QImode) == 0
21142 : &&
21143 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21144 : ((16 == 64 || TARGET_AVX512VL
21145 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21146 : && (register_operand (operands[1], V16QImode)
21147 : || register_operand (operands[2], V16QImode))))
21148 : return 8122; /* *xnorv16qi3 */
21149 : break;
21150 :
21151 : case E_V32HImode:
21152 : if (pattern815 (x3,
21153 : E_V32HImode) == 0
21154 : && (
21155 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21156 : ((64 == 64 || TARGET_AVX512VL
21157 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21158 : && (register_operand (operands[1], V32HImode)
21159 : || register_operand (operands[2], V32HImode))) &&
21160 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21161 : (TARGET_AVX512BW)))
21162 : return 8123; /* *xnorv32hi3 */
21163 : break;
21164 :
21165 : case E_V16HImode:
21166 : if (pattern815 (x3,
21167 : E_V16HImode) == 0
21168 : && (
21169 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21170 : ((32 == 64 || TARGET_AVX512VL
21171 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21172 : && (register_operand (operands[1], V16HImode)
21173 : || register_operand (operands[2], V16HImode))) &&
21174 : #line 558 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21175 : (TARGET_AVX)))
21176 : return 8124; /* *xnorv16hi3 */
21177 : break;
21178 :
21179 : case E_V8HImode:
21180 : if (pattern815 (x3,
21181 : E_V8HImode) == 0
21182 : &&
21183 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21184 : ((16 == 64 || TARGET_AVX512VL
21185 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21186 : && (register_operand (operands[1], V8HImode)
21187 : || register_operand (operands[2], V8HImode))))
21188 : return 8125; /* *xnorv8hi3 */
21189 : break;
21190 :
21191 : case E_V8SImode:
21192 : if (pattern815 (x3,
21193 : E_V8SImode) == 0
21194 : && (
21195 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21196 : ((32 == 64 || TARGET_AVX512VL
21197 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21198 : && (register_operand (operands[1], V8SImode)
21199 : || register_operand (operands[2], V8SImode))) &&
21200 : #line 559 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21201 : (TARGET_AVX)))
21202 : return 8126; /* *xnorv8si3 */
21203 : break;
21204 :
21205 : case E_V4SImode:
21206 : if (pattern815 (x3,
21207 : E_V4SImode) == 0
21208 : &&
21209 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21210 : ((16 == 64 || TARGET_AVX512VL
21211 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21212 : && (register_operand (operands[1], V4SImode)
21213 : || register_operand (operands[2], V4SImode))))
21214 : return 8127; /* *xnorv4si3 */
21215 : break;
21216 :
21217 : case E_V4DImode:
21218 : if (pattern815 (x3,
21219 : E_V4DImode) == 0
21220 : && (
21221 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21222 : ((32 == 64 || TARGET_AVX512VL
21223 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21224 : && (register_operand (operands[1], V4DImode)
21225 : || register_operand (operands[2], V4DImode))) &&
21226 : #line 560 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21227 : (TARGET_AVX)))
21228 : return 8128; /* *xnorv4di3 */
21229 : break;
21230 :
21231 : case E_V2DImode:
21232 : if (pattern815 (x3,
21233 : E_V2DImode) == 0
21234 : &&
21235 : #line 19328 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21236 : ((16 == 64 || TARGET_AVX512VL
21237 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21238 : && (register_operand (operands[1], V2DImode)
21239 : || register_operand (operands[2], V2DImode))))
21240 : return 8129; /* *xnorv2di3 */
21241 : break;
21242 :
21243 : default:
21244 : break;
21245 : }
21246 : }
21247 : break;
21248 :
21249 : default:
21250 : break;
21251 : }
21252 : operands[1] = x3;
21253 : switch (pattern204 ())
21254 : {
21255 : case 0:
21256 : if ((
21257 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21258 : ((64 == 64 || TARGET_AVX512VL
21259 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21260 : && ix86_pre_reload_split ()) &&
21261 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21262 : (TARGET_AVX512F)))
21263 : return 5526; /* *avx512bw_vpternlogv32hf_0 */
21264 : break;
21265 :
21266 : case 1:
21267 : if ((
21268 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21269 : ((32 == 64 || TARGET_AVX512VL
21270 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21271 : && ix86_pre_reload_split ()) &&
21272 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21273 : (TARGET_AVX)))
21274 : return 5527; /* *avx512vl_vpternlogv16hf_0 */
21275 : break;
21276 :
21277 : case 2:
21278 : if (
21279 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21280 : ((16 == 64 || TARGET_AVX512VL
21281 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21282 : && ix86_pre_reload_split ()))
21283 : return 5528; /* *avx512fp16_vpternlogv8hf_0 */
21284 : break;
21285 :
21286 : case 3:
21287 : if ((
21288 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21289 : ((64 == 64 || TARGET_AVX512VL
21290 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21291 : && ix86_pre_reload_split ()) &&
21292 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21293 : (TARGET_AVX512F)))
21294 : return 5529; /* *avx512bw_vpternlogv32bf_0 */
21295 : break;
21296 :
21297 : case 4:
21298 : if ((
21299 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21300 : ((32 == 64 || TARGET_AVX512VL
21301 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21302 : && ix86_pre_reload_split ()) &&
21303 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21304 : (TARGET_AVX)))
21305 : return 5530; /* *avx512vl_vpternlogv16bf_0 */
21306 : break;
21307 :
21308 : case 5:
21309 : if (
21310 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21311 : ((16 == 64 || TARGET_AVX512VL
21312 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21313 : && ix86_pre_reload_split ()))
21314 : return 5531; /* *avx512vl_vpternlogv8bf_0 */
21315 : break;
21316 :
21317 : case 6:
21318 : if ((
21319 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21320 : ((64 == 64 || TARGET_AVX512VL
21321 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21322 : && ix86_pre_reload_split ()) &&
21323 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21324 : (TARGET_AVX512F)))
21325 : return 5532; /* *avx512f_vpternlogv16sf_0 */
21326 : break;
21327 :
21328 : case 7:
21329 : if ((
21330 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21331 : ((32 == 64 || TARGET_AVX512VL
21332 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21333 : && ix86_pre_reload_split ()) &&
21334 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21335 : (TARGET_AVX)))
21336 : return 5533; /* *avx512vl_vpternlogv8sf_0 */
21337 : break;
21338 :
21339 : case 8:
21340 : if (
21341 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21342 : ((16 == 64 || TARGET_AVX512VL
21343 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21344 : && ix86_pre_reload_split ()))
21345 : return 5534; /* *avx512vl_vpternlogv4sf_0 */
21346 : break;
21347 :
21348 : case 9:
21349 : if ((
21350 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21351 : ((64 == 64 || TARGET_AVX512VL
21352 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21353 : && ix86_pre_reload_split ()) &&
21354 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21355 : (TARGET_AVX512F)))
21356 : return 5535; /* *avx512f_vpternlogv8df_0 */
21357 : break;
21358 :
21359 : case 10:
21360 : if ((
21361 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21362 : ((32 == 64 || TARGET_AVX512VL
21363 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21364 : && ix86_pre_reload_split ()) &&
21365 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21366 : (TARGET_AVX)))
21367 : return 5536; /* *avx512vl_vpternlogv4df_0 */
21368 : break;
21369 :
21370 : case 11:
21371 : if ((
21372 : #line 14072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21373 : ((16 == 64 || TARGET_AVX512VL
21374 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
21375 : && ix86_pre_reload_split ()) &&
21376 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21377 : (TARGET_SSE2)))
21378 : return 5537; /* *avx512vl_vpternlogv2df_0 */
21379 : break;
21380 :
21381 : default:
21382 : break;
21383 : }
21384 : switch (GET_CODE (x3))
21385 : {
21386 : case AND:
21387 : return recog_319 (x1, insn, pnum_clobbers);
21388 :
21389 : case IOR:
21390 : return recog_318 (x1, insn, pnum_clobbers);
21391 :
21392 : case XOR:
21393 : return recog_317 (x1, insn, pnum_clobbers);
21394 :
21395 : default:
21396 : return -1;
21397 : }
21398 : }
21399 :
21400 : int
21401 : recog_358 (rtx x1 ATTRIBUTE_UNUSED,
21402 : rtx_insn *insn ATTRIBUTE_UNUSED,
21403 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21404 : {
21405 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21406 : int res ATTRIBUTE_UNUSED;
21407 : switch (pattern33 (x1))
21408 : {
21409 : case 0:
21410 : if (!
21411 : #line 17878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21412 : (TARGET_SSE2 && TARGET_64BIT
21413 : && ix86_pre_reload_split ()))
21414 : return -1;
21415 : return 7735; /* *rotlv1ti3_internal */
21416 :
21417 : case 1:
21418 : if (!
21419 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21420 : (TARGET_AVX512F))
21421 : return -1;
21422 : return 7771; /* avx512f_rolv16si */
21423 :
21424 : case 2:
21425 : if (!(
21426 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21427 : (TARGET_AVX512F) &&
21428 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21429 : (TARGET_AVX512VL)))
21430 : return -1;
21431 : return 7775; /* avx512vl_rolv8si */
21432 :
21433 : case 3:
21434 : if (const_0_to_255_operand (operands[2], E_SImode)
21435 : && (
21436 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21437 : (TARGET_AVX512F) &&
21438 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21439 : (TARGET_AVX512VL)))
21440 : return 7779; /* avx512vl_rolv4si */
21441 : if (!const_0_to_31_operand (operands[2], E_SImode)
21442 : || !
21443 : #line 27215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21444 : (TARGET_XOP))
21445 : return -1;
21446 : return 9089; /* xop_rotlv4si3 */
21447 :
21448 : case 4:
21449 : if (!
21450 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21451 : (TARGET_AVX512F))
21452 : return -1;
21453 : return 7783; /* avx512f_rolv8di */
21454 :
21455 : case 5:
21456 : if (!(
21457 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21458 : (TARGET_AVX512F) &&
21459 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21460 : (TARGET_AVX512VL)))
21461 : return -1;
21462 : return 7787; /* avx512vl_rolv4di */
21463 :
21464 : case 6:
21465 : if (const_0_to_255_operand (operands[2], E_SImode)
21466 : && (
21467 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21468 : (TARGET_AVX512F) &&
21469 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21470 : (TARGET_AVX512VL)))
21471 : return 7791; /* avx512vl_rolv2di */
21472 : if (!const_0_to_63_operand (operands[2], E_SImode)
21473 : || !
21474 : #line 27215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21475 : (TARGET_XOP))
21476 : return -1;
21477 : return 9090; /* xop_rotlv2di3 */
21478 :
21479 : case 7:
21480 : if (!
21481 : #line 27215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21482 : (TARGET_XOP))
21483 : return -1;
21484 : return 9087; /* xop_rotlv16qi3 */
21485 :
21486 : case 8:
21487 : if (!
21488 : #line 27215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21489 : (TARGET_XOP))
21490 : return -1;
21491 : return 9088; /* xop_rotlv8hi3 */
21492 :
21493 : case 9:
21494 : if (!
21495 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21496 : (TARGET_AVX512F))
21497 : return -1;
21498 : return 7747; /* avx512f_rolvv16si */
21499 :
21500 : case 10:
21501 : if (!(
21502 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21503 : (TARGET_AVX512F) &&
21504 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21505 : (TARGET_AVX512VL)))
21506 : return -1;
21507 : return 7751; /* avx512vl_rolvv8si */
21508 :
21509 : case 11:
21510 : if (!(
21511 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21512 : (TARGET_AVX512F) &&
21513 : #line 496 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21514 : (TARGET_AVX512VL)))
21515 : return -1;
21516 : return 7755; /* avx512vl_rolvv4si */
21517 :
21518 : case 12:
21519 : if (!
21520 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21521 : (TARGET_AVX512F))
21522 : return -1;
21523 : return 7759; /* avx512f_rolvv8di */
21524 :
21525 : case 13:
21526 : if (!(
21527 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21528 : (TARGET_AVX512F) &&
21529 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21530 : (TARGET_AVX512VL)))
21531 : return -1;
21532 : return 7763; /* avx512vl_rolvv4di */
21533 :
21534 : case 14:
21535 : if (!(
21536 : #line 17964 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21537 : (TARGET_AVX512F) &&
21538 : #line 497 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
21539 : (TARGET_AVX512VL)))
21540 : return -1;
21541 : return 7767; /* avx512vl_rolvv2di */
21542 :
21543 : default:
21544 : return -1;
21545 : }
21546 : }
21547 :
21548 : int
21549 : recog_370 (rtx x1 ATTRIBUTE_UNUSED,
21550 : rtx_insn *insn ATTRIBUTE_UNUSED,
21551 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21552 : {
21553 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21554 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21555 : int res ATTRIBUTE_UNUSED;
21556 : x2 = XVECEXP (x1, 0, 0);
21557 : x3 = XEXP (x2, 1);
21558 : x4 = XEXP (x3, 1);
21559 : if (GET_CODE (x4) != CONST_INT)
21560 : return -1;
21561 : x5 = XVECEXP (x1, 0, 1);
21562 : if (GET_CODE (x5) != CLOBBER)
21563 : return -1;
21564 : x6 = XEXP (x5, 0);
21565 : if (GET_CODE (x6) != REG
21566 : || REGNO (x6) != 17
21567 : || GET_MODE (x6) != E_CCmode)
21568 : return -1;
21569 : x7 = XEXP (x3, 0);
21570 : operands[1] = x7;
21571 : if (XWINT (x4, 0) == 1L)
21572 : {
21573 : x8 = XEXP (x2, 0);
21574 : if (GET_CODE (x8) == SUBREG)
21575 : {
21576 : switch (pattern1324 (x2))
21577 : {
21578 : case 0:
21579 : if (
21580 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21581 : (TARGET_USE_BT && ix86_pre_reload_split ()))
21582 : return 1466; /* *btsi_setcqi */
21583 : break;
21584 :
21585 : case 1:
21586 : if ((
21587 : #line 19684 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21588 : (TARGET_USE_BT && ix86_pre_reload_split ()) &&
21589 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21590 : (TARGET_64BIT)))
21591 : return 1467; /* *btdi_setcqi */
21592 : break;
21593 :
21594 : default:
21595 : break;
21596 : }
21597 : }
21598 : x9 = XEXP (x3, 2);
21599 : if (GET_CODE (x9) == SUBREG)
21600 : {
21601 : switch (pattern1326 (x2))
21602 : {
21603 : case 0:
21604 : if (
21605 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21606 : (TARGET_USE_BT
21607 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (SImode)-1))
21608 : == GET_MODE_BITSIZE (SImode)-1
21609 : && ix86_pre_reload_split ()))
21610 : return 1474; /* *btsi_setcsi_mask */
21611 : break;
21612 :
21613 : case 1:
21614 : if ((
21615 : #line 19765 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21616 : (TARGET_USE_BT
21617 : && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (DImode)-1))
21618 : == GET_MODE_BITSIZE (DImode)-1
21619 : && ix86_pre_reload_split ()) &&
21620 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21621 : (TARGET_64BIT)))
21622 : return 1475; /* *btdi_setcdi_mask */
21623 : break;
21624 :
21625 : default:
21626 : break;
21627 : }
21628 : }
21629 : }
21630 : x8 = XEXP (x2, 0);
21631 : operands[0] = x8;
21632 : operands[2] = x4;
21633 : if (!const_0_to_255_operand (operands[2], E_QImode))
21634 : return -1;
21635 : x9 = XEXP (x3, 2);
21636 : operands[3] = x9;
21637 : if (!const_0_to_255_operand (operands[3], E_QImode))
21638 : return -1;
21639 : switch (pattern408 (x3))
21640 : {
21641 : case 0:
21642 : if (!
21643 : #line 22524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21644 : (TARGET_TBM))
21645 : return -1;
21646 : return 1638; /* tbm_bextri_si */
21647 :
21648 : case 1:
21649 : if (!(
21650 : #line 22524 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21651 : (TARGET_TBM) &&
21652 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21653 : (TARGET_64BIT)))
21654 : return -1;
21655 : return 1639; /* tbm_bextri_di */
21656 :
21657 : default:
21658 : return -1;
21659 : }
21660 : }
21661 :
21662 : int
21663 : recog_372 (rtx x1 ATTRIBUTE_UNUSED,
21664 : rtx_insn *insn ATTRIBUTE_UNUSED,
21665 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21666 : {
21667 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21668 : rtx x2, x3, x4, x5, x6, x7;
21669 : int res ATTRIBUTE_UNUSED;
21670 : x2 = XVECEXP (x1, 0, 1);
21671 : x3 = XEXP (x2, 1);
21672 : if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21673 : return -1;
21674 : x4 = XVECEXP (x1, 0, 0);
21675 : x5 = XEXP (x4, 0);
21676 : operands[0] = x5;
21677 : x6 = XEXP (x4, 1);
21678 : x7 = XVECEXP (x6, 0, 0);
21679 : operands[1] = x7;
21680 : switch (pattern1159 (x1))
21681 : {
21682 : case 0:
21683 : if (!(
21684 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21685 : (ptr_mode == SImode) &&
21686 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21687 : (word_mode == SImode)))
21688 : return -1;
21689 : *pnum_clobbers = 1;
21690 : return 1921; /* stack_protect_set_1_si_si */
21691 :
21692 : case 1:
21693 : if (!(
21694 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21695 : (ptr_mode == SImode) &&
21696 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21697 : (word_mode == DImode)))
21698 : return -1;
21699 : *pnum_clobbers = 1;
21700 : return 1923; /* stack_protect_set_1_si_di */
21701 :
21702 : case 2:
21703 : if (!(
21704 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21705 : (ptr_mode == DImode) &&
21706 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21707 : (word_mode == SImode)))
21708 : return -1;
21709 : *pnum_clobbers = 1;
21710 : return 1922; /* stack_protect_set_1_di_si */
21711 :
21712 : case 3:
21713 : if (!(
21714 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21715 : (ptr_mode == DImode) &&
21716 : #line 1404 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21717 : (word_mode == DImode)))
21718 : return -1;
21719 : *pnum_clobbers = 1;
21720 : return 1924; /* stack_protect_set_1_di_di */
21721 :
21722 : default:
21723 : return -1;
21724 : }
21725 : }
21726 :
21727 : int
21728 : recog_375 (rtx x1 ATTRIBUTE_UNUSED,
21729 : rtx_insn *insn ATTRIBUTE_UNUSED,
21730 : int *pnum_clobbers ATTRIBUTE_UNUSED)
21731 : {
21732 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
21733 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
21734 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
21735 : rtx x18;
21736 : int res ATTRIBUTE_UNUSED;
21737 : x2 = XVECEXP (x1, 0, 0);
21738 : x3 = XEXP (x2, 1);
21739 : switch (XINT (x3, 1))
21740 : {
21741 : case 106:
21742 : if (GET_MODE (x3) != E_TImode)
21743 : return -1;
21744 : x4 = XVECEXP (x1, 0, 1);
21745 : if (GET_CODE (x4) != UNSPEC
21746 : || XVECLEN (x4, 0) != 1
21747 : || XINT (x4, 1) != 109
21748 : || GET_MODE (x4) != E_DImode)
21749 : return -1;
21750 : x5 = XVECEXP (x4, 0, 0);
21751 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
21752 : return -1;
21753 : x6 = XEXP (x2, 0);
21754 : operands[0] = x6;
21755 : if (!push_operand (operands[0], E_TImode))
21756 : return -1;
21757 : x7 = XVECEXP (x3, 0, 0);
21758 : operands[1] = x7;
21759 : if (!register_operand (operands[1], E_DImode))
21760 : return -1;
21761 : x8 = XVECEXP (x3, 0, 1);
21762 : operands[2] = x8;
21763 : if (!register_operand (operands[2], E_DImode)
21764 : || !
21765 : #line 3939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21766 : (TARGET_APX_PUSH2POP2 && TARGET_APX_PPX))
21767 : return -1;
21768 : return 167; /* push2p_di */
21769 :
21770 : case 41:
21771 : x8 = XVECEXP (x3, 0, 1);
21772 : if (GET_CODE (x8) != CONST_INT)
21773 : return -1;
21774 : x6 = XEXP (x2, 0);
21775 : if (GET_CODE (x6) != REG
21776 : || REGNO (x6) != 17)
21777 : return -1;
21778 : x7 = XVECEXP (x3, 0, 0);
21779 : switch (GET_CODE (x7))
21780 : {
21781 : case REG:
21782 : case SUBREG:
21783 : case MEM:
21784 : operands[1] = x7;
21785 : if (XWINT (x8, 0) == 0L)
21786 : {
21787 : res = recog_373 (x1, insn, pnum_clobbers);
21788 : if (res >= 0)
21789 : return res;
21790 : }
21791 : x4 = XVECEXP (x1, 0, 1);
21792 : if (GET_CODE (x4) != SET)
21793 : return -1;
21794 : x9 = XEXP (x4, 1);
21795 : if (GET_CODE (x9) != NEG
21796 : || GET_MODE (x6) != E_CCOmode
21797 : || GET_MODE (x3) != E_CCOmode)
21798 : return -1;
21799 : operands[2] = x8;
21800 : x10 = XEXP (x4, 0);
21801 : operands[0] = x10;
21802 : x11 = XEXP (x9, 0);
21803 : if (!rtx_equal_p (x11, operands[1]))
21804 : return -1;
21805 : switch (GET_MODE (operands[1]))
21806 : {
21807 : case E_QImode:
21808 : if (pattern1678 (x9,
21809 : E_QImode) != 0
21810 : || !
21811 : #line 14877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21812 : (ix86_unary_operator_ok (NEG, QImode, operands)
21813 : && mode_signbit_p (QImode, operands[2])))
21814 : return -1;
21815 : return 1023; /* *negvqi3 */
21816 :
21817 : case E_HImode:
21818 : if (pattern1678 (x9,
21819 : E_HImode) != 0
21820 : || !
21821 : #line 14877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21822 : (ix86_unary_operator_ok (NEG, HImode, operands)
21823 : && mode_signbit_p (HImode, operands[2])))
21824 : return -1;
21825 : return 1024; /* *negvhi3 */
21826 :
21827 : case E_SImode:
21828 : if (pattern1678 (x9,
21829 : E_SImode) != 0
21830 : || !
21831 : #line 14877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21832 : (ix86_unary_operator_ok (NEG, SImode, operands)
21833 : && mode_signbit_p (SImode, operands[2])))
21834 : return -1;
21835 : return 1025; /* *negvsi3 */
21836 :
21837 : case E_DImode:
21838 : if (pattern1678 (x9,
21839 : E_DImode) != 0
21840 : || !(
21841 : #line 14877 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21842 : (ix86_unary_operator_ok (NEG, DImode, operands)
21843 : && mode_signbit_p (DImode, operands[2])) &&
21844 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21845 : (TARGET_64BIT)))
21846 : return -1;
21847 : return 1026; /* *negvdi3 */
21848 :
21849 : default:
21850 : return -1;
21851 : }
21852 :
21853 : case AND:
21854 : x12 = XEXP (x7, 1);
21855 : if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
21856 : || XWINT (x8, 0) != 0L)
21857 : return -1;
21858 : x4 = XVECEXP (x1, 0, 1);
21859 : if (GET_CODE (x4) != SET
21860 : || GET_MODE (x6) != E_CCCmode
21861 : || GET_MODE (x3) != E_CCCmode)
21862 : return -1;
21863 : x13 = XEXP (x7, 0);
21864 : operands[1] = x13;
21865 : x10 = XEXP (x4, 0);
21866 : operands[0] = x10;
21867 : x9 = XEXP (x4, 1);
21868 : switch (GET_CODE (x9))
21869 : {
21870 : case LSHIFTRT:
21871 : switch (pattern1634 (x1))
21872 : {
21873 : case 0:
21874 : return 1419; /* lshrsi3_carry */
21875 :
21876 : case 1:
21877 : if (!
21878 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21879 : (TARGET_64BIT))
21880 : return -1;
21881 : return 1421; /* lshrdi3_carry */
21882 :
21883 : default:
21884 : return -1;
21885 : }
21886 :
21887 : case ASHIFTRT:
21888 : switch (pattern1634 (x1))
21889 : {
21890 : case 0:
21891 : return 1420; /* ashrsi3_carry */
21892 :
21893 : case 1:
21894 : if (!
21895 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21896 : (TARGET_64BIT))
21897 : return -1;
21898 : return 1422; /* ashrdi3_carry */
21899 :
21900 : default:
21901 : return -1;
21902 : }
21903 :
21904 : default:
21905 : return -1;
21906 : }
21907 :
21908 : default:
21909 : return -1;
21910 : }
21911 :
21912 : case 99:
21913 : if (pattern348 (x1) != 0)
21914 : return -1;
21915 : x7 = XVECEXP (x3, 0, 0);
21916 : operands[1] = x7;
21917 : x8 = XVECEXP (x3, 0, 1);
21918 : operands[2] = x8;
21919 : switch (GET_MODE (operands[0]))
21920 : {
21921 : case E_SImode:
21922 : if (pattern1430 (x3,
21923 : E_SImode) != 0
21924 : || !
21925 : #line 22106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21926 : (TARGET_BMI))
21927 : return -1;
21928 : return 1600; /* bmi_bextr_si */
21929 :
21930 : case E_DImode:
21931 : if (pattern1430 (x3,
21932 : E_DImode) != 0
21933 : || !(
21934 : #line 22106 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21935 : (TARGET_BMI) &&
21936 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21937 : (TARGET_64BIT)))
21938 : return -1;
21939 : return 1601; /* bmi_bextr_di */
21940 :
21941 : default:
21942 : return -1;
21943 : }
21944 :
21945 : case 67:
21946 : if (GET_MODE (x3) != E_XFmode)
21947 : return -1;
21948 : x4 = XVECEXP (x1, 0, 1);
21949 : if (GET_CODE (x4) != CLOBBER)
21950 : return -1;
21951 : x6 = XEXP (x2, 0);
21952 : operands[0] = x6;
21953 : if (!register_operand (operands[0], E_XFmode))
21954 : return -1;
21955 : x7 = XVECEXP (x3, 0, 0);
21956 : operands[2] = x7;
21957 : if (!register_operand (operands[2], E_XFmode))
21958 : return -1;
21959 : x8 = XVECEXP (x3, 0, 1);
21960 : operands[1] = x8;
21961 : if (!register_operand (operands[1], E_XFmode))
21962 : return -1;
21963 : x10 = XEXP (x4, 0);
21964 : operands[3] = x10;
21965 : if (!scratch_operand (operands[3], E_XFmode)
21966 : || !
21967 : #line 24512 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21968 : (TARGET_USE_FANCY_MATH_387
21969 : && flag_unsafe_math_optimizations))
21970 : return -1;
21971 : return 1755; /* atan2xf3 */
21972 :
21973 : case 68:
21974 : if (pattern554 (x1) != 0
21975 : || !
21976 : #line 24815 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21977 : (TARGET_USE_FANCY_MATH_387
21978 : && flag_unsafe_math_optimizations))
21979 : return -1;
21980 : return 1756; /* fyl2xxf3_i387 */
21981 :
21982 : case 69:
21983 : if (pattern554 (x1) != 0
21984 : || !
21985 : #line 24912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
21986 : (TARGET_USE_FANCY_MATH_387
21987 : && flag_unsafe_math_optimizations))
21988 : return -1;
21989 : return 1757; /* fyl2xp1xf3_i387 */
21990 :
21991 : case 85:
21992 : if (GET_MODE (x3) != E_XFmode)
21993 : return -1;
21994 : x4 = XVECEXP (x1, 0, 1);
21995 : if (GET_CODE (x4) != SET)
21996 : return -1;
21997 : x9 = XEXP (x4, 1);
21998 : if (pattern824 (x9,
21999 : E_XFmode,
22000 : 86,
22001 : 2,
22002 : UNSPEC) != 0)
22003 : return -1;
22004 : x6 = XEXP (x2, 0);
22005 : operands[0] = x6;
22006 : if (!register_operand (operands[0], E_XFmode)
22007 : || pattern1431 (x1) != 0
22008 : || !
22009 : #line 25047 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22010 : (TARGET_USE_FANCY_MATH_387
22011 : && flag_unsafe_math_optimizations))
22012 : return -1;
22013 : return 1760; /* fscalexf4_i387 */
22014 :
22015 : case 94:
22016 : if (GET_MODE (x3) != E_CCZmode)
22017 : return -1;
22018 : x4 = XVECEXP (x1, 0, 1);
22019 : if (GET_CODE (x4) != CLOBBER)
22020 : return -1;
22021 : x6 = XEXP (x2, 0);
22022 : operands[0] = x6;
22023 : if (!flags_reg_operand (operands[0], E_CCZmode))
22024 : return -1;
22025 : x7 = XVECEXP (x3, 0, 0);
22026 : operands[1] = x7;
22027 : x8 = XVECEXP (x3, 0, 1);
22028 : operands[2] = x8;
22029 : x10 = XEXP (x4, 0);
22030 : operands[3] = x10;
22031 : switch (GET_MODE (operands[1]))
22032 : {
22033 : case E_SImode:
22034 : if (!memory_operand (operands[1], E_SImode)
22035 : || !memory_operand (operands[2], E_SImode)
22036 : || !scratch_operand (operands[3], E_SImode)
22037 : || !
22038 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22039 : (ptr_mode == SImode))
22040 : return -1;
22041 : return 1937; /* stack_protect_test_1_si */
22042 :
22043 : case E_DImode:
22044 : if (!memory_operand (operands[1], E_DImode)
22045 : || !memory_operand (operands[2], E_DImode)
22046 : || !scratch_operand (operands[3], E_DImode)
22047 : || !
22048 : #line 1409 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22049 : (ptr_mode == DImode))
22050 : return -1;
22051 : return 1938; /* stack_protect_test_1_di */
22052 :
22053 : default:
22054 : return -1;
22055 : }
22056 :
22057 : case 64:
22058 : if (pattern555 (x1) != 0
22059 : || !
22060 : #line 913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22061 : (TARGET_3DNOW))
22062 : return -1;
22063 : return 2114; /* mmx_ieee_maxv2sf3 */
22064 :
22065 : case 63:
22066 : if (pattern555 (x1) != 0
22067 : || !
22068 : #line 913 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
22069 : (TARGET_3DNOW))
22070 : return -1;
22071 : return 2115; /* mmx_ieee_minv2sf3 */
22072 :
22073 : case 161:
22074 : x6 = XEXP (x2, 0);
22075 : if (GET_CODE (x6) != MEM)
22076 : return -1;
22077 : operands[5] = x6;
22078 : x14 = XEXP (x6, 0);
22079 : if (GET_CODE (x14) != UNSPEC
22080 : || XVECLEN (x14, 0) != 4
22081 : || XINT (x14, 1) != 155)
22082 : return -1;
22083 : x4 = XVECEXP (x1, 0, 1);
22084 : if (GET_CODE (x4) != CLOBBER)
22085 : return -1;
22086 : x15 = XVECEXP (x14, 0, 0);
22087 : operands[0] = x15;
22088 : x16 = XVECEXP (x14, 0, 1);
22089 : operands[2] = x16;
22090 : x17 = XVECEXP (x14, 0, 2);
22091 : operands[4] = x17;
22092 : if (!const1248_operand (operands[4], E_SImode))
22093 : return -1;
22094 : x18 = XVECEXP (x14, 0, 3);
22095 : operands[6] = x18;
22096 : x8 = XVECEXP (x3, 0, 1);
22097 : operands[3] = x8;
22098 : x10 = XEXP (x4, 0);
22099 : operands[1] = x10;
22100 : x7 = XVECEXP (x3, 0, 0);
22101 : if (!rtx_equal_p (x7, operands[6]))
22102 : return -1;
22103 : switch (GET_MODE (operands[5]))
22104 : {
22105 : case E_V16SImode:
22106 : if (!vsib_mem_operator (operands[5], E_V16SImode)
22107 : || GET_MODE (x3) != E_V16SImode)
22108 : return -1;
22109 : switch (GET_MODE (x14))
22110 : {
22111 : case E_SImode:
22112 : switch (pattern1794 (
22113 : E_SImode))
22114 : {
22115 : case 0:
22116 : if (!(
22117 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22118 : (TARGET_AVX512F) &&
22119 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22120 : (Pmode == SImode)))
22121 : return -1;
22122 : return 9912; /* *avx512f_scattersiv16si */
22123 :
22124 : case 1:
22125 : if (!(
22126 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22127 : (TARGET_AVX512F) &&
22128 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22129 : (Pmode == SImode)))
22130 : return -1;
22131 : return 9936; /* *avx512f_scatterdiv16si */
22132 :
22133 : default:
22134 : return -1;
22135 : }
22136 :
22137 : case E_DImode:
22138 : switch (pattern1794 (
22139 : E_DImode))
22140 : {
22141 : case 0:
22142 : if (!(
22143 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22144 : (TARGET_AVX512F) &&
22145 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22146 : (Pmode == DImode)))
22147 : return -1;
22148 : return 9924; /* *avx512f_scattersiv16si */
22149 :
22150 : case 1:
22151 : if (!(
22152 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22153 : (TARGET_AVX512F) &&
22154 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22155 : (Pmode == DImode)))
22156 : return -1;
22157 : return 9948; /* *avx512f_scatterdiv16si */
22158 :
22159 : default:
22160 : return -1;
22161 : }
22162 :
22163 : default:
22164 : return -1;
22165 : }
22166 :
22167 : case E_V16SFmode:
22168 : if (!vsib_mem_operator (operands[5], E_V16SFmode)
22169 : || GET_MODE (x3) != E_V16SFmode)
22170 : return -1;
22171 : switch (GET_MODE (x14))
22172 : {
22173 : case E_SImode:
22174 : switch (pattern1795 (
22175 : E_SImode))
22176 : {
22177 : case 0:
22178 : if (!(
22179 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22180 : (TARGET_AVX512F) &&
22181 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22182 : (Pmode == SImode)))
22183 : return -1;
22184 : return 9913; /* *avx512f_scattersiv16sf */
22185 :
22186 : case 1:
22187 : if (!(
22188 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22189 : (TARGET_AVX512F) &&
22190 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22191 : (Pmode == SImode)))
22192 : return -1;
22193 : return 9937; /* *avx512f_scatterdiv16sf */
22194 :
22195 : default:
22196 : return -1;
22197 : }
22198 :
22199 : case E_DImode:
22200 : switch (pattern1795 (
22201 : E_DImode))
22202 : {
22203 : case 0:
22204 : if (!(
22205 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22206 : (TARGET_AVX512F) &&
22207 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22208 : (Pmode == DImode)))
22209 : return -1;
22210 : return 9925; /* *avx512f_scattersiv16sf */
22211 :
22212 : case 1:
22213 : if (!(
22214 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22215 : (TARGET_AVX512F) &&
22216 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22217 : (Pmode == DImode)))
22218 : return -1;
22219 : return 9949; /* *avx512f_scatterdiv16sf */
22220 :
22221 : default:
22222 : return -1;
22223 : }
22224 :
22225 : default:
22226 : return -1;
22227 : }
22228 :
22229 : case E_V8DImode:
22230 : switch (pattern1730 (x2,
22231 : E_V8DImode))
22232 : {
22233 : case 0:
22234 : if (!(
22235 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22236 : (TARGET_AVX512F) &&
22237 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22238 : (Pmode == SImode)))
22239 : return -1;
22240 : return 9914; /* *avx512f_scattersiv8di */
22241 :
22242 : case 1:
22243 : if (!(
22244 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22245 : (TARGET_AVX512F) &&
22246 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22247 : (Pmode == SImode)))
22248 : return -1;
22249 : return 9938; /* *avx512f_scatterdiv8di */
22250 :
22251 : case 2:
22252 : if (!(
22253 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22254 : (TARGET_AVX512F) &&
22255 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22256 : (Pmode == DImode)))
22257 : return -1;
22258 : return 9926; /* *avx512f_scattersiv8di */
22259 :
22260 : case 3:
22261 : if (!(
22262 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22263 : (TARGET_AVX512F) &&
22264 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22265 : (Pmode == DImode)))
22266 : return -1;
22267 : return 9950; /* *avx512f_scatterdiv8di */
22268 :
22269 : default:
22270 : return -1;
22271 : }
22272 :
22273 : case E_V8DFmode:
22274 : switch (pattern1730 (x2,
22275 : E_V8DFmode))
22276 : {
22277 : case 0:
22278 : if (!(
22279 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22280 : (TARGET_AVX512F) &&
22281 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22282 : (Pmode == SImode)))
22283 : return -1;
22284 : return 9915; /* *avx512f_scattersiv8df */
22285 :
22286 : case 1:
22287 : if (!(
22288 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22289 : (TARGET_AVX512F) &&
22290 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22291 : (Pmode == SImode)))
22292 : return -1;
22293 : return 9939; /* *avx512f_scatterdiv8df */
22294 :
22295 : case 2:
22296 : if (!(
22297 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22298 : (TARGET_AVX512F) &&
22299 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22300 : (Pmode == DImode)))
22301 : return -1;
22302 : return 9927; /* *avx512f_scattersiv8df */
22303 :
22304 : case 3:
22305 : if (!(
22306 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22307 : (TARGET_AVX512F) &&
22308 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22309 : (Pmode == DImode)))
22310 : return -1;
22311 : return 9951; /* *avx512f_scatterdiv8df */
22312 :
22313 : default:
22314 : return -1;
22315 : }
22316 :
22317 : case E_V8SImode:
22318 : switch (pattern1731 (x2,
22319 : E_V8SImode))
22320 : {
22321 : case 0:
22322 : switch (pattern1847 (
22323 : E_SImode))
22324 : {
22325 : case 0:
22326 : if (!(
22327 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22328 : (TARGET_AVX512F) && ((((
22329 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22330 : (TARGET_AVX512VL) &&
22331 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22332 : (Pmode == SImode)) &&
22333 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22334 : (Pmode == SImode)) &&
22335 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22336 : (TARGET_AVX512VL)) &&
22337 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22338 : (TARGET_AVX512VL))))
22339 : return -1;
22340 : return 9916; /* *avx512f_scattersiv8si */
22341 :
22342 : case 1:
22343 : if (!(
22344 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22345 : (TARGET_AVX512F) && (((
22346 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22347 : (TARGET_AVX512VL) &&
22348 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22349 : (Pmode == SImode)) &&
22350 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22351 : (Pmode == SImode)) &&
22352 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22353 : (TARGET_AVX512VL))))
22354 : return -1;
22355 : return 9940; /* *avx512f_scatterdiv8si */
22356 :
22357 : default:
22358 : return -1;
22359 : }
22360 :
22361 : case 1:
22362 : switch (pattern1847 (
22363 : E_DImode))
22364 : {
22365 : case 0:
22366 : if (!(
22367 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22368 : (TARGET_AVX512F) && ((((
22369 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22370 : (TARGET_AVX512VL) &&
22371 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22372 : (Pmode == DImode)) &&
22373 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22374 : (Pmode == DImode)) &&
22375 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22376 : (TARGET_AVX512VL)) &&
22377 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22378 : (TARGET_AVX512VL))))
22379 : return -1;
22380 : return 9928; /* *avx512f_scattersiv8si */
22381 :
22382 : case 1:
22383 : if (!(
22384 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22385 : (TARGET_AVX512F) && (((
22386 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22387 : (TARGET_AVX512VL) &&
22388 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22389 : (Pmode == DImode)) &&
22390 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22391 : (Pmode == DImode)) &&
22392 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22393 : (TARGET_AVX512VL))))
22394 : return -1;
22395 : return 9952; /* *avx512f_scatterdiv8si */
22396 :
22397 : default:
22398 : return -1;
22399 : }
22400 :
22401 : default:
22402 : return -1;
22403 : }
22404 :
22405 : case E_V8SFmode:
22406 : switch (pattern1731 (x2,
22407 : E_V8SFmode))
22408 : {
22409 : case 0:
22410 : switch (pattern1848 (
22411 : E_SImode))
22412 : {
22413 : case 0:
22414 : if (!(
22415 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22416 : (TARGET_AVX512F) && ((((
22417 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22418 : (TARGET_AVX512VL) &&
22419 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22420 : (Pmode == SImode)) &&
22421 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22422 : (Pmode == SImode)) &&
22423 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22424 : (TARGET_AVX512VL)) &&
22425 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22426 : (TARGET_AVX512VL))))
22427 : return -1;
22428 : return 9917; /* *avx512f_scattersiv8sf */
22429 :
22430 : case 1:
22431 : if (!(
22432 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22433 : (TARGET_AVX512F) && (((
22434 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22435 : (TARGET_AVX512VL) &&
22436 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22437 : (Pmode == SImode)) &&
22438 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22439 : (Pmode == SImode)) &&
22440 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22441 : (TARGET_AVX512VL))))
22442 : return -1;
22443 : return 9941; /* *avx512f_scatterdiv8sf */
22444 :
22445 : default:
22446 : return -1;
22447 : }
22448 :
22449 : case 1:
22450 : switch (pattern1848 (
22451 : E_DImode))
22452 : {
22453 : case 0:
22454 : if (!(
22455 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22456 : (TARGET_AVX512F) && ((((
22457 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22458 : (TARGET_AVX512VL) &&
22459 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22460 : (Pmode == DImode)) &&
22461 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22462 : (Pmode == DImode)) &&
22463 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22464 : (TARGET_AVX512VL)) &&
22465 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22466 : (TARGET_AVX512VL))))
22467 : return -1;
22468 : return 9929; /* *avx512f_scattersiv8sf */
22469 :
22470 : case 1:
22471 : if (!(
22472 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22473 : (TARGET_AVX512F) && (((
22474 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22475 : (TARGET_AVX512VL) &&
22476 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22477 : (Pmode == DImode)) &&
22478 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22479 : (Pmode == DImode)) &&
22480 : #line 993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22481 : (TARGET_AVX512VL))))
22482 : return -1;
22483 : return 9953; /* *avx512f_scatterdiv8sf */
22484 :
22485 : default:
22486 : return -1;
22487 : }
22488 :
22489 : default:
22490 : return -1;
22491 : }
22492 :
22493 : case E_V4DImode:
22494 : switch (pattern1733 (x2,
22495 : E_V4DImode))
22496 : {
22497 : case 0:
22498 : if (!(
22499 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22500 : (TARGET_AVX512F) && ((((
22501 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22502 : (TARGET_AVX512VL) &&
22503 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22504 : (Pmode == SImode)) &&
22505 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22506 : (Pmode == SImode)) &&
22507 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22508 : (TARGET_AVX512VL)) &&
22509 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22510 : (TARGET_AVX512VL))))
22511 : return -1;
22512 : return 9918; /* *avx512f_scattersiv4di */
22513 :
22514 : case 1:
22515 : if (!(
22516 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22517 : (TARGET_AVX512F) && (((
22518 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22519 : (TARGET_AVX512VL) &&
22520 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22521 : (Pmode == SImode)) &&
22522 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22523 : (Pmode == SImode)) &&
22524 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22525 : (TARGET_AVX512VL))))
22526 : return -1;
22527 : return 9942; /* *avx512f_scatterdiv4di */
22528 :
22529 : case 2:
22530 : if (!(
22531 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22532 : (TARGET_AVX512F) && ((((
22533 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22534 : (TARGET_AVX512VL) &&
22535 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22536 : (Pmode == DImode)) &&
22537 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22538 : (Pmode == DImode)) &&
22539 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22540 : (TARGET_AVX512VL)) &&
22541 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22542 : (TARGET_AVX512VL))))
22543 : return -1;
22544 : return 9930; /* *avx512f_scattersiv4di */
22545 :
22546 : case 3:
22547 : if (!(
22548 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22549 : (TARGET_AVX512F) && (((
22550 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22551 : (TARGET_AVX512VL) &&
22552 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22553 : (Pmode == DImode)) &&
22554 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22555 : (Pmode == DImode)) &&
22556 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22557 : (TARGET_AVX512VL))))
22558 : return -1;
22559 : return 9954; /* *avx512f_scatterdiv4di */
22560 :
22561 : default:
22562 : return -1;
22563 : }
22564 :
22565 : case E_V4DFmode:
22566 : switch (pattern1733 (x2,
22567 : E_V4DFmode))
22568 : {
22569 : case 0:
22570 : if (!(
22571 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22572 : (TARGET_AVX512F) && ((((
22573 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22574 : (TARGET_AVX512VL) &&
22575 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22576 : (Pmode == SImode)) &&
22577 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22578 : (Pmode == SImode)) &&
22579 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22580 : (TARGET_AVX512VL)) &&
22581 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22582 : (TARGET_AVX512VL))))
22583 : return -1;
22584 : return 9919; /* *avx512f_scattersiv4df */
22585 :
22586 : case 1:
22587 : if (!(
22588 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22589 : (TARGET_AVX512F) && (((
22590 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22591 : (TARGET_AVX512VL) &&
22592 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22593 : (Pmode == SImode)) &&
22594 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22595 : (Pmode == SImode)) &&
22596 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22597 : (TARGET_AVX512VL))))
22598 : return -1;
22599 : return 9943; /* *avx512f_scatterdiv4df */
22600 :
22601 : case 2:
22602 : if (!(
22603 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22604 : (TARGET_AVX512F) && ((((
22605 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22606 : (TARGET_AVX512VL) &&
22607 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22608 : (Pmode == DImode)) &&
22609 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22610 : (Pmode == DImode)) &&
22611 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22612 : (TARGET_AVX512VL)) &&
22613 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22614 : (TARGET_AVX512VL))))
22615 : return -1;
22616 : return 9931; /* *avx512f_scattersiv4df */
22617 :
22618 : case 3:
22619 : if (!(
22620 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22621 : (TARGET_AVX512F) && (((
22622 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22623 : (TARGET_AVX512VL) &&
22624 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22625 : (Pmode == DImode)) &&
22626 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22627 : (Pmode == DImode)) &&
22628 : #line 994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22629 : (TARGET_AVX512VL))))
22630 : return -1;
22631 : return 9955; /* *avx512f_scatterdiv4df */
22632 :
22633 : default:
22634 : return -1;
22635 : }
22636 :
22637 : case E_V4SImode:
22638 : switch (pattern1735 (x2,
22639 : E_V4SImode))
22640 : {
22641 : case 0:
22642 : if (!(
22643 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22644 : (TARGET_AVX512F) && ((((
22645 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22646 : (TARGET_AVX512VL) &&
22647 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22648 : (Pmode == SImode)) &&
22649 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22650 : (Pmode == SImode)) &&
22651 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22652 : (TARGET_AVX512VL)) &&
22653 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22654 : (TARGET_AVX512VL))))
22655 : return -1;
22656 : return 9920; /* *avx512f_scattersiv4si */
22657 :
22658 : case 1:
22659 : if (!(
22660 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22661 : (TARGET_AVX512F) && (((
22662 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22663 : (TARGET_AVX512VL) &&
22664 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22665 : (Pmode == SImode)) &&
22666 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22667 : (Pmode == SImode)) &&
22668 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22669 : (TARGET_AVX512VL))))
22670 : return -1;
22671 : return 9944; /* *avx512f_scatterdiv4si */
22672 :
22673 : case 2:
22674 : if (!(
22675 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22676 : (TARGET_AVX512F) && ((((
22677 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22678 : (TARGET_AVX512VL) &&
22679 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22680 : (Pmode == DImode)) &&
22681 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22682 : (Pmode == DImode)) &&
22683 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22684 : (TARGET_AVX512VL)) &&
22685 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22686 : (TARGET_AVX512VL))))
22687 : return -1;
22688 : return 9932; /* *avx512f_scattersiv4si */
22689 :
22690 : case 3:
22691 : if (!(
22692 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22693 : (TARGET_AVX512F) && (((
22694 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22695 : (TARGET_AVX512VL) &&
22696 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22697 : (Pmode == DImode)) &&
22698 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22699 : (Pmode == DImode)) &&
22700 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22701 : (TARGET_AVX512VL))))
22702 : return -1;
22703 : return 9956; /* *avx512f_scatterdiv4si */
22704 :
22705 : default:
22706 : return -1;
22707 : }
22708 :
22709 : case E_V4SFmode:
22710 : switch (pattern1735 (x2,
22711 : E_V4SFmode))
22712 : {
22713 : case 0:
22714 : if (!(
22715 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22716 : (TARGET_AVX512F) && ((((
22717 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22718 : (TARGET_AVX512VL) &&
22719 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22720 : (Pmode == SImode)) &&
22721 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22722 : (Pmode == SImode)) &&
22723 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22724 : (TARGET_AVX512VL)) &&
22725 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22726 : (TARGET_AVX512VL))))
22727 : return -1;
22728 : return 9921; /* *avx512f_scattersiv4sf */
22729 :
22730 : case 1:
22731 : if (!(
22732 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22733 : (TARGET_AVX512F) && (((
22734 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22735 : (TARGET_AVX512VL) &&
22736 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22737 : (Pmode == SImode)) &&
22738 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22739 : (Pmode == SImode)) &&
22740 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22741 : (TARGET_AVX512VL))))
22742 : return -1;
22743 : return 9945; /* *avx512f_scatterdiv4sf */
22744 :
22745 : case 2:
22746 : if (!(
22747 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22748 : (TARGET_AVX512F) && ((((
22749 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22750 : (TARGET_AVX512VL) &&
22751 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22752 : (Pmode == DImode)) &&
22753 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22754 : (Pmode == DImode)) &&
22755 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22756 : (TARGET_AVX512VL)) &&
22757 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22758 : (TARGET_AVX512VL))))
22759 : return -1;
22760 : return 9933; /* *avx512f_scattersiv4sf */
22761 :
22762 : case 3:
22763 : if (!(
22764 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22765 : (TARGET_AVX512F) && (((
22766 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22767 : (TARGET_AVX512VL) &&
22768 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22769 : (Pmode == DImode)) &&
22770 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22771 : (Pmode == DImode)) &&
22772 : #line 995 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22773 : (TARGET_AVX512VL))))
22774 : return -1;
22775 : return 9957; /* *avx512f_scatterdiv4sf */
22776 :
22777 : default:
22778 : return -1;
22779 : }
22780 :
22781 : case E_V2DImode:
22782 : switch (pattern1735 (x2,
22783 : E_V2DImode))
22784 : {
22785 : case 0:
22786 : if (!(
22787 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22788 : (TARGET_AVX512F) && ((((
22789 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22790 : (TARGET_AVX512VL) &&
22791 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22792 : (Pmode == SImode)) &&
22793 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22794 : (Pmode == SImode)) &&
22795 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22796 : (TARGET_AVX512VL)) &&
22797 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22798 : (TARGET_AVX512VL))))
22799 : return -1;
22800 : return 9922; /* *avx512f_scattersiv2di */
22801 :
22802 : case 1:
22803 : if (!(
22804 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22805 : (TARGET_AVX512F) && (((
22806 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22807 : (TARGET_AVX512VL) &&
22808 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22809 : (Pmode == SImode)) &&
22810 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22811 : (Pmode == SImode)) &&
22812 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22813 : (TARGET_AVX512VL))))
22814 : return -1;
22815 : return 9946; /* *avx512f_scatterdiv2di */
22816 :
22817 : case 2:
22818 : if (!(
22819 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22820 : (TARGET_AVX512F) && ((((
22821 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22822 : (TARGET_AVX512VL) &&
22823 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22824 : (Pmode == DImode)) &&
22825 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22826 : (Pmode == DImode)) &&
22827 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22828 : (TARGET_AVX512VL)) &&
22829 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22830 : (TARGET_AVX512VL))))
22831 : return -1;
22832 : return 9934; /* *avx512f_scattersiv2di */
22833 :
22834 : case 3:
22835 : if (!(
22836 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22837 : (TARGET_AVX512F) && (((
22838 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22839 : (TARGET_AVX512VL) &&
22840 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22841 : (Pmode == DImode)) &&
22842 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22843 : (Pmode == DImode)) &&
22844 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22845 : (TARGET_AVX512VL))))
22846 : return -1;
22847 : return 9958; /* *avx512f_scatterdiv2di */
22848 :
22849 : default:
22850 : return -1;
22851 : }
22852 :
22853 : case E_V2DFmode:
22854 : switch (pattern1735 (x2,
22855 : E_V2DFmode))
22856 : {
22857 : case 0:
22858 : if (!(
22859 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22860 : (TARGET_AVX512F) && ((((
22861 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22862 : (TARGET_AVX512VL) &&
22863 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22864 : (Pmode == SImode)) &&
22865 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22866 : (Pmode == SImode)) &&
22867 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22868 : (TARGET_AVX512VL)) &&
22869 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22870 : (TARGET_AVX512VL))))
22871 : return -1;
22872 : return 9923; /* *avx512f_scattersiv2df */
22873 :
22874 : case 1:
22875 : if (!(
22876 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22877 : (TARGET_AVX512F) && (((
22878 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22879 : (TARGET_AVX512VL) &&
22880 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22881 : (Pmode == SImode)) &&
22882 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22883 : (Pmode == SImode)) &&
22884 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22885 : (TARGET_AVX512VL))))
22886 : return -1;
22887 : return 9947; /* *avx512f_scatterdiv2df */
22888 :
22889 : case 2:
22890 : if (!(
22891 : #line 30300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22892 : (TARGET_AVX512F) && ((((
22893 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22894 : (TARGET_AVX512VL) &&
22895 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22896 : (Pmode == DImode)) &&
22897 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22898 : (Pmode == DImode)) &&
22899 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22900 : (TARGET_AVX512VL)) &&
22901 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22902 : (TARGET_AVX512VL))))
22903 : return -1;
22904 : return 9935; /* *avx512f_scattersiv2df */
22905 :
22906 : case 3:
22907 : if (!(
22908 : #line 30340 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22909 : (TARGET_AVX512F) && (((
22910 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22911 : (TARGET_AVX512VL) &&
22912 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22913 : (Pmode == DImode)) &&
22914 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
22915 : (Pmode == DImode)) &&
22916 : #line 996 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
22917 : (TARGET_AVX512VL))))
22918 : return -1;
22919 : return 9959; /* *avx512f_scatterdiv2df */
22920 :
22921 : default:
22922 : return -1;
22923 : }
22924 :
22925 : default:
22926 : return -1;
22927 : }
22928 :
22929 : default:
22930 : return -1;
22931 : }
22932 : }
22933 :
22934 : int
22935 : recog_405 (rtx x1 ATTRIBUTE_UNUSED,
22936 : rtx_insn *insn ATTRIBUTE_UNUSED,
22937 : int *pnum_clobbers ATTRIBUTE_UNUSED)
22938 : {
22939 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
22940 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
22941 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
22942 : rtx x18, x19;
22943 : int res ATTRIBUTE_UNUSED;
22944 : x2 = XVECEXP (x1, 0, 0);
22945 : x3 = XEXP (x2, 1);
22946 : x4 = XEXP (x3, 0);
22947 : switch (GET_CODE (x4))
22948 : {
22949 : case NE:
22950 : case EQ:
22951 : if (bt_comparison_operator (x4, E_VOIDmode))
22952 : {
22953 : res = recog_404 (x1, insn, pnum_clobbers);
22954 : if (res >= 0)
22955 : return res;
22956 : }
22957 : if (GET_CODE (x4) != NE)
22958 : return -1;
22959 : x5 = XEXP (x4, 1);
22960 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22961 : return -1;
22962 : x6 = XEXP (x4, 0);
22963 : switch (GET_CODE (x6))
22964 : {
22965 : case REG:
22966 : case SUBREG:
22967 : operands[2] = x6;
22968 : if (!register_operand (operands[2], E_QImode))
22969 : return -1;
22970 : x7 = XEXP (x3, 1);
22971 : if (GET_CODE (x7) != ZERO_EXTRACT)
22972 : return -1;
22973 : x8 = XEXP (x7, 1);
22974 : if (GET_CODE (x8) != UMIN
22975 : || GET_MODE (x8) != E_QImode)
22976 : return -1;
22977 : x9 = XEXP (x7, 2);
22978 : if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
22979 : return -1;
22980 : x10 = XEXP (x3, 2);
22981 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
22982 : || pattern344 (x1) != 0
22983 : || GET_MODE (x4) != E_QImode)
22984 : return -1;
22985 : x11 = XEXP (x7, 0);
22986 : operands[1] = x11;
22987 : x12 = XEXP (x8, 1);
22988 : operands[3] = x12;
22989 : if (!const_int_operand (operands[3], E_QImode))
22990 : return -1;
22991 : x13 = XEXP (x8, 0);
22992 : if (!rtx_equal_p (x13, operands[2]))
22993 : return -1;
22994 : switch (GET_MODE (operands[0]))
22995 : {
22996 : case E_SImode:
22997 : if (pattern1441 (x3,
22998 : E_SImode) != 0
22999 : || !
23000 : #line 22408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23001 : (TARGET_BMI2 && INTVAL (operands[3]) == 4 * BITS_PER_UNIT))
23002 : return -1;
23003 : return 1624; /* *bmi2_bzhi_si3 */
23004 :
23005 : case E_DImode:
23006 : if (pattern1441 (x3,
23007 : E_DImode) != 0
23008 : || !(
23009 : #line 22408 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23010 : (TARGET_BMI2 && INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
23011 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23012 : (TARGET_64BIT)))
23013 : return -1;
23014 : return 1625; /* *bmi2_bzhi_di3 */
23015 :
23016 : default:
23017 : return -1;
23018 : }
23019 :
23020 : case UNSPEC:
23021 : if (XVECLEN (x6, 0) != 1
23022 : || XINT (x6, 1) != 36)
23023 : return -1;
23024 : x14 = XVECEXP (x6, 0, 0);
23025 : if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23026 : return -1;
23027 : x7 = XEXP (x3, 1);
23028 : if (GET_CODE (x7) != LABEL_REF)
23029 : return -1;
23030 : x10 = XEXP (x3, 2);
23031 : if (GET_CODE (x10) != PC)
23032 : return -1;
23033 : x15 = XEXP (x2, 0);
23034 : if (GET_CODE (x15) != PC)
23035 : return -1;
23036 : x16 = XVECEXP (x1, 0, 1);
23037 : if (GET_CODE (x16) != SET)
23038 : return -1;
23039 : x17 = XEXP (x16, 1);
23040 : if (pattern824 (x17,
23041 : E_SImode,
23042 : 46,
23043 : 1,
23044 : UNSPEC_VOLATILE) != 0)
23045 : return -1;
23046 : x11 = XEXP (x7, 0);
23047 : operands[1] = x11;
23048 : x18 = XEXP (x16, 0);
23049 : operands[0] = x18;
23050 : if (!register_operand (operands[0], E_SImode))
23051 : return -1;
23052 : x19 = XVECEXP (x17, 0, 0);
23053 : if (!rtx_equal_p (x19, operands[0])
23054 : || !
23055 : #line 30339 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23056 : (TARGET_RTM))
23057 : return -1;
23058 : return 2023; /* xbegin_1 */
23059 :
23060 : default:
23061 : return -1;
23062 : }
23063 :
23064 : case LTU:
23065 : case UNLT:
23066 : operands[1] = x4;
23067 : if (!ix86_carry_flag_operator (operands[1], E_VOIDmode))
23068 : return -1;
23069 : x6 = XEXP (x4, 0);
23070 : if (GET_CODE (x6) != REG
23071 : || REGNO (x6) != 17)
23072 : return -1;
23073 : x5 = XEXP (x4, 1);
23074 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
23075 : return -1;
23076 : x7 = XEXP (x3, 1);
23077 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
23078 : return -1;
23079 : x10 = XEXP (x3, 2);
23080 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
23081 : || pattern344 (x1) != 0)
23082 : return -1;
23083 : switch (pattern1579 (x3))
23084 : {
23085 : case 0:
23086 : return 1829; /* *x86_movsicc_0_m1 */
23087 :
23088 : case 1:
23089 : if (!
23090 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23091 : (TARGET_64BIT))
23092 : return -1;
23093 : return 1830; /* *x86_movdicc_0_m1 */
23094 :
23095 : default:
23096 : return -1;
23097 : }
23098 :
23099 : default:
23100 : return -1;
23101 : }
23102 : }
23103 :
23104 : int
23105 : recog_410 (rtx x1 ATTRIBUTE_UNUSED,
23106 : rtx_insn *insn ATTRIBUTE_UNUSED,
23107 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23108 : {
23109 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23110 : rtx x2, x3, x4, x5;
23111 : int res ATTRIBUTE_UNUSED;
23112 : switch (pattern561 (x1))
23113 : {
23114 : case 0:
23115 : x2 = XVECEXP (x1, 0, 1);
23116 : x3 = XEXP (x2, 0);
23117 : if (GET_CODE (x3) != REG
23118 : || REGNO (x3) != 17
23119 : || GET_MODE (x3) != E_CCmode)
23120 : return -1;
23121 : switch (GET_MODE (operands[0]))
23122 : {
23123 : case E_DImode:
23124 : if (!nonimmediate_operand (operands[0], E_DImode))
23125 : return -1;
23126 : x4 = XVECEXP (x1, 0, 0);
23127 : x5 = XEXP (x4, 1);
23128 : if (GET_MODE (x5) != E_DImode
23129 : || !nonimmediate_operand (operands[1], E_DImode))
23130 : return -1;
23131 : if (x86_64_hilo_general_operand (operands[2], E_DImode)
23132 : && (
23133 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23134 : (ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)) &&
23135 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23136 : (!TARGET_64BIT)))
23137 : return 731; /* *anddi3_doubleword */
23138 : if (x86_64_szext_general_operand (operands[2], E_DImode)
23139 : &&
23140 : #line 12885 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23141 : (TARGET_64BIT
23142 : && ix86_binary_operator_ok (AND, DImode, operands, TARGET_APX_NDD)
23143 : && true))
23144 : return 734; /* *anddi_1 */
23145 : if (!const_int_operand (operands[2], E_DImode)
23146 : || !
23147 : #line 12918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23148 : (TARGET_64BIT && TARGET_USE_BT
23149 : && ix86_binary_operator_ok (AND, DImode, operands)
23150 : && IN_RANGE (exact_log2 (~INTVAL (operands[2])), 31, 63)))
23151 : return -1;
23152 : return 735; /* *anddi_1_btr */
23153 :
23154 : case E_TImode:
23155 : x4 = XVECEXP (x1, 0, 0);
23156 : x5 = XEXP (x4, 1);
23157 : if (pattern566 (x5,
23158 : E_TImode) != 0
23159 : || !(
23160 : #line 12843 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23161 : (ix86_binary_operator_ok (AND, TImode, operands, TARGET_APX_NDD)) &&
23162 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23163 : (TARGET_64BIT)))
23164 : return -1;
23165 : return 732; /* *andti3_doubleword */
23166 :
23167 : case E_HImode:
23168 : x4 = XVECEXP (x1, 0, 0);
23169 : x5 = XEXP (x4, 1);
23170 : if (pattern567 (x5,
23171 : E_HImode) != 0
23172 : || !
23173 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23174 : (ix86_binary_operator_ok (AND, HImode, operands, TARGET_APX_NDD)
23175 : && true))
23176 : return -1;
23177 : return 748; /* *andhi_1 */
23178 :
23179 : case E_SImode:
23180 : x4 = XVECEXP (x1, 0, 0);
23181 : x5 = XEXP (x4, 1);
23182 : if (pattern568 (x5) != 0
23183 : || !
23184 : #line 13013 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23185 : (ix86_binary_operator_ok (AND, SImode, operands, TARGET_APX_NDD)
23186 : && true))
23187 : return -1;
23188 : return 750; /* *andsi_1 */
23189 :
23190 : case E_QImode:
23191 : x4 = XVECEXP (x1, 0, 0);
23192 : x5 = XEXP (x4, 1);
23193 : if (pattern567 (x5,
23194 : E_QImode) != 0
23195 : || !
23196 : #line 13051 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23197 : (ix86_binary_operator_ok (AND, QImode, operands, TARGET_APX_NDD)
23198 : && true))
23199 : return -1;
23200 : return 752; /* *andqi_1 */
23201 :
23202 : case E_V4QImode:
23203 : x4 = XVECEXP (x1, 0, 0);
23204 : x5 = XEXP (x4, 1);
23205 : if (pattern569 (x5,
23206 : E_V4QImode) != 0
23207 : || !
23208 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23209 : (ix86_binary_operator_ok (AND, V4QImode, operands)))
23210 : return -1;
23211 : return 2340; /* *andv4qi3 */
23212 :
23213 : case E_V2QImode:
23214 : x4 = XVECEXP (x1, 0, 0);
23215 : x5 = XEXP (x4, 1);
23216 : if (pattern569 (x5,
23217 : E_V2QImode) != 0
23218 : || !
23219 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23220 : (ix86_binary_operator_ok (AND, V2QImode, operands)))
23221 : return -1;
23222 : return 2343; /* *andv2qi3 */
23223 :
23224 : case E_V2HImode:
23225 : x4 = XVECEXP (x1, 0, 0);
23226 : x5 = XEXP (x4, 1);
23227 : if (pattern569 (x5,
23228 : E_V2HImode) != 0
23229 : || !
23230 : #line 4741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23231 : (ix86_binary_operator_ok (AND, V2HImode, operands)))
23232 : return -1;
23233 : return 2346; /* *andv2hi3 */
23234 :
23235 : default:
23236 : return -1;
23237 : }
23238 :
23239 : case 1:
23240 : switch (pattern571 (x1))
23241 : {
23242 : case 0:
23243 : if (!
23244 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23245 : (TARGET_AVX512F))
23246 : return -1;
23247 : return 2635; /* kandqi */
23248 :
23249 : case 1:
23250 : if (!
23251 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23252 : (TARGET_AVX512F))
23253 : return -1;
23254 : return 2638; /* kandhi */
23255 :
23256 : case 2:
23257 : if (!(
23258 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23259 : (TARGET_AVX512F) &&
23260 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23261 : (TARGET_AVX512BW)))
23262 : return -1;
23263 : return 2641; /* kandsi */
23264 :
23265 : case 3:
23266 : if (!(
23267 : #line 2117 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23268 : (TARGET_AVX512F) &&
23269 : #line 2098 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23270 : (TARGET_AVX512BW)))
23271 : return -1;
23272 : return 2644; /* kanddi */
23273 :
23274 : default:
23275 : return -1;
23276 : }
23277 :
23278 : case 2:
23279 : if (!
23280 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23281 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23282 : return -1;
23283 : return 753; /* *andqi_1_slp */
23284 :
23285 : case 3:
23286 : if (!
23287 : #line 13083 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23288 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23289 : return -1;
23290 : return 756; /* *andhi_1_slp */
23291 :
23292 : default:
23293 : return -1;
23294 : }
23295 : }
23296 :
23297 : int
23298 : recog_416 (rtx x1 ATTRIBUTE_UNUSED,
23299 : rtx_insn *insn ATTRIBUTE_UNUSED,
23300 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23301 : {
23302 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23303 : rtx x2, x3, x4, x5, x6;
23304 : int res ATTRIBUTE_UNUSED;
23305 : x2 = XVECEXP (x1, 0, 0);
23306 : x3 = XEXP (x2, 1);
23307 : x4 = XEXP (x3, 0);
23308 : switch (GET_CODE (x4))
23309 : {
23310 : case REG:
23311 : case SUBREG:
23312 : case MEM:
23313 : switch (pattern378 (x1))
23314 : {
23315 : case 0:
23316 : x5 = XVECEXP (x1, 0, 1);
23317 : x6 = XEXP (x5, 0);
23318 : if (GET_CODE (x6) != REG
23319 : || REGNO (x6) != 17
23320 : || GET_MODE (x6) != E_CCmode)
23321 : return -1;
23322 : switch (GET_MODE (operands[0]))
23323 : {
23324 : case E_DImode:
23325 : if (!nonimmediate_operand (operands[0], E_DImode)
23326 : || GET_MODE (x3) != E_DImode
23327 : || !nonimmediate_operand (operands[1], E_DImode))
23328 : return -1;
23329 : if ((
23330 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23331 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)) &&
23332 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23333 : (!TARGET_64BIT)))
23334 : return 984; /* *negdi2_doubleword */
23335 : if (!(
23336 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23337 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)
23338 : && true) &&
23339 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23340 : (TARGET_64BIT)))
23341 : return -1;
23342 : return 993; /* *negdi_1 */
23343 :
23344 : case E_TImode:
23345 : if (!nonimmediate_operand (operands[0], E_TImode)
23346 : || GET_MODE (x3) != E_TImode
23347 : || !nonimmediate_operand (operands[1], E_TImode)
23348 : || !(
23349 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23350 : (ix86_unary_operator_ok (NEG, TImode, operands, TARGET_APX_NDD)) &&
23351 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23352 : (TARGET_64BIT)))
23353 : return -1;
23354 : return 985; /* *negti2_doubleword */
23355 :
23356 : case E_QImode:
23357 : if (!nonimmediate_operand (operands[0], E_QImode)
23358 : || GET_MODE (x3) != E_QImode
23359 : || !nonimmediate_operand (operands[1], E_QImode)
23360 : || !
23361 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23362 : (ix86_unary_operator_ok (NEG, QImode, operands, TARGET_APX_NDD)
23363 : && true))
23364 : return -1;
23365 : return 987; /* *negqi_1 */
23366 :
23367 : case E_HImode:
23368 : if (!nonimmediate_operand (operands[0], E_HImode)
23369 : || GET_MODE (x3) != E_HImode
23370 : || !nonimmediate_operand (operands[1], E_HImode)
23371 : || !
23372 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23373 : (ix86_unary_operator_ok (NEG, HImode, operands, TARGET_APX_NDD)
23374 : && true))
23375 : return -1;
23376 : return 989; /* *neghi_1 */
23377 :
23378 : case E_SImode:
23379 : if (!nonimmediate_operand (operands[0], E_SImode)
23380 : || GET_MODE (x3) != E_SImode
23381 : || !nonimmediate_operand (operands[1], E_SImode)
23382 : || !
23383 : #line 14682 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23384 : (ix86_unary_operator_ok (NEG, SImode, operands, TARGET_APX_NDD)
23385 : && true))
23386 : return -1;
23387 : return 991; /* *negsi_1 */
23388 :
23389 : case E_SFmode:
23390 : if (!register_operand (operands[0], E_SFmode)
23391 : || GET_MODE (x3) != E_SFmode
23392 : || !register_operand (operands[1], E_SFmode)
23393 : || !
23394 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23395 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23396 : return -1;
23397 : return 1043; /* *negsf2_i387_1 */
23398 :
23399 : case E_DFmode:
23400 : if (!register_operand (operands[0], E_DFmode)
23401 : || GET_MODE (x3) != E_DFmode
23402 : || !register_operand (operands[1], E_DFmode)
23403 : || !
23404 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23405 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23406 : return -1;
23407 : return 1045; /* *negdf2_i387_1 */
23408 :
23409 : case E_XFmode:
23410 : if (!register_operand (operands[0], E_XFmode)
23411 : || GET_MODE (x3) != E_XFmode
23412 : || !register_operand (operands[1], E_XFmode)
23413 : || !
23414 : #line 15155 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23415 : (TARGET_80387 && !(SSE_FLOAT_MODE_P (XFmode) && TARGET_SSE_MATH)))
23416 : return -1;
23417 : return 1047; /* *negxf2_i387_1 */
23418 :
23419 : case E_V2QImode:
23420 : if (!register_operand (operands[0], E_V2QImode)
23421 : || GET_MODE (x3) != E_V2QImode
23422 : || !register_operand (operands[1], E_V2QImode)
23423 : || !
23424 : #line 3162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23425 : (!TARGET_PARTIAL_REG_STALL || optimize_size || TARGET_SSE2))
23426 : return -1;
23427 : return 2180; /* negv2qi2 */
23428 :
23429 : default:
23430 : return -1;
23431 : }
23432 :
23433 : case 1:
23434 : switch (pattern709 (x1, pnum_clobbers))
23435 : {
23436 : case 0:
23437 : if (!
23438 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23439 : (TARGET_SSE))
23440 : return -1;
23441 : return 1040; /* *negtf2_1 */
23442 :
23443 : case 1:
23444 : if (!
23445 : #line 15179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23446 : (TARGET_AVX512FP16))
23447 : return -1;
23448 : *pnum_clobbers = 1;
23449 : return 1049; /* *neghf2_1 */
23450 :
23451 : case 2:
23452 : if (!
23453 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23454 : (TARGET_80387 || (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH)))
23455 : return -1;
23456 : *pnum_clobbers = 1;
23457 : return 1051; /* *negsf2_1 */
23458 :
23459 : case 3:
23460 : if (!
23461 : #line 15195 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23462 : (TARGET_80387 || (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH)))
23463 : return -1;
23464 : *pnum_clobbers = 1;
23465 : return 1053; /* *negdf2_1 */
23466 :
23467 : case 4:
23468 : if (!
23469 : #line 706 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23470 : (TARGET_MMX_WITH_SSE))
23471 : return -1;
23472 : return 2107; /* *mmx_negv2sf2 */
23473 :
23474 : case 5:
23475 : if (!
23476 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23477 : (TARGET_SSE))
23478 : return -1;
23479 : return 2153; /* *mmx_negv2bf */
23480 :
23481 : case 6:
23482 : if (!(
23483 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23484 : (TARGET_SSE) &&
23485 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23486 : (TARGET_MMX_WITH_SSE)))
23487 : return -1;
23488 : return 2155; /* *mmx_negv4bf */
23489 :
23490 : case 7:
23491 : if (!
23492 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23493 : (TARGET_SSE))
23494 : return -1;
23495 : return 2157; /* *mmx_negv2hf */
23496 :
23497 : case 8:
23498 : if (!(
23499 : #line 2263 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23500 : (TARGET_SSE) &&
23501 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23502 : (TARGET_MMX_WITH_SSE)))
23503 : return -1;
23504 : return 2159; /* *mmx_negv4hf */
23505 :
23506 : case 9:
23507 : if (!(
23508 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23509 : (TARGET_SSE) &&
23510 : #line 415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23511 : (TARGET_AVX512F)))
23512 : return -1;
23513 : return 2717; /* *negv32bf2 */
23514 :
23515 : case 10:
23516 : if (!(
23517 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23518 : (TARGET_SSE) &&
23519 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23520 : (TARGET_AVX)))
23521 : return -1;
23522 : return 2719; /* *negv16bf2 */
23523 :
23524 : case 11:
23525 : if (!(
23526 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23527 : (TARGET_SSE) &&
23528 : #line 416 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23529 : (TARGET_SSE2)))
23530 : return -1;
23531 : return 2721; /* *negv8bf2 */
23532 :
23533 : case 12:
23534 : if (!(
23535 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23536 : (TARGET_SSE) &&
23537 : #line 417 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23538 : (TARGET_AVX512F)))
23539 : return -1;
23540 : return 2723; /* *negv32hf2 */
23541 :
23542 : case 13:
23543 : if (!(
23544 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23545 : (TARGET_SSE) &&
23546 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23547 : (TARGET_AVX)))
23548 : return -1;
23549 : return 2725; /* *negv16hf2 */
23550 :
23551 : case 14:
23552 : if (!(
23553 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23554 : (TARGET_SSE) &&
23555 : #line 418 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23556 : (TARGET_SSE2)))
23557 : return -1;
23558 : return 2727; /* *negv8hf2 */
23559 :
23560 : case 15:
23561 : if (!(
23562 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23563 : (TARGET_SSE) &&
23564 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23565 : (TARGET_AVX512F)))
23566 : return -1;
23567 : return 2729; /* *negv16sf2 */
23568 :
23569 : case 16:
23570 : if (!(
23571 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23572 : (TARGET_SSE) &&
23573 : #line 419 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23574 : (TARGET_AVX)))
23575 : return -1;
23576 : return 2731; /* *negv8sf2 */
23577 :
23578 : case 17:
23579 : if (!
23580 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23581 : (TARGET_SSE))
23582 : return -1;
23583 : return 2733; /* *negv4sf2 */
23584 :
23585 : case 18:
23586 : if (!(
23587 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23588 : (TARGET_SSE) &&
23589 : #line 420 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23590 : (TARGET_AVX512F)))
23591 : return -1;
23592 : return 2735; /* *negv8df2 */
23593 :
23594 : case 19:
23595 : if (!(
23596 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23597 : (TARGET_SSE) &&
23598 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23599 : (TARGET_AVX)))
23600 : return -1;
23601 : return 2737; /* *negv4df2 */
23602 :
23603 : case 20:
23604 : if (!(
23605 : #line 2609 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23606 : (TARGET_SSE) &&
23607 : #line 421 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23608 : (TARGET_SSE2)))
23609 : return -1;
23610 : return 2739; /* *negv2df2 */
23611 :
23612 : default:
23613 : return -1;
23614 : }
23615 :
23616 : case 2:
23617 : if (!
23618 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23619 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23620 : return -1;
23621 : return 1005; /* *negqi_1_slp */
23622 :
23623 : case 3:
23624 : if (!
23625 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23626 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)))
23627 : return -1;
23628 : return 1006; /* *neghi_1_slp */
23629 :
23630 : default:
23631 : return -1;
23632 : }
23633 :
23634 : case ABS:
23635 : switch (pattern380 (x1))
23636 : {
23637 : case 0:
23638 : if ((
23639 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23640 : (TARGET_CMOVE
23641 : && ix86_pre_reload_split ()) &&
23642 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23643 : (!TARGET_64BIT)))
23644 : return 1029; /* *nabsdi2_doubleword */
23645 : if (!(
23646 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23647 : (TARGET_CMOVE
23648 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
23649 : && ix86_pre_reload_split ()) &&
23650 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23651 : (TARGET_64BIT)))
23652 : return -1;
23653 : return 1038; /* *nabsdi2_1 */
23654 :
23655 : case 1:
23656 : if (!(
23657 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23658 : (TARGET_CMOVE
23659 : && ix86_pre_reload_split ()) &&
23660 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23661 : (TARGET_64BIT)))
23662 : return -1;
23663 : return 1030; /* *nabsti2_doubleword */
23664 :
23665 : case 2:
23666 : if (!
23667 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23668 : (TARGET_CMOVE
23669 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
23670 : && ix86_pre_reload_split ()))
23671 : return -1;
23672 : return 1035; /* *nabsqi2_1 */
23673 :
23674 : case 3:
23675 : if (!
23676 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23677 : (TARGET_CMOVE
23678 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
23679 : && ix86_pre_reload_split ()))
23680 : return -1;
23681 : return 1036; /* *nabshi2_1 */
23682 :
23683 : case 4:
23684 : if (!
23685 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23686 : (TARGET_CMOVE
23687 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
23688 : && ix86_pre_reload_split ()))
23689 : return -1;
23690 : return 1037; /* *nabssi2_1 */
23691 :
23692 : case 5:
23693 : switch (GET_MODE (operands[0]))
23694 : {
23695 : case E_TFmode:
23696 : if (pattern1061 (x3,
23697 : E_TFmode) != 0
23698 : || !
23699 : #line 15118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23700 : (TARGET_SSE))
23701 : return -1;
23702 : return 1041; /* *nabstf2_1 */
23703 :
23704 : case E_SFmode:
23705 : if (pattern1062 (x3,
23706 : E_V4SFmode,
23707 : E_SFmode) != 0
23708 : || !
23709 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23710 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH))
23711 : return -1;
23712 : return 1054; /* *nabssf2_1 */
23713 :
23714 : case E_DFmode:
23715 : if (pattern1062 (x3,
23716 : E_V2DFmode,
23717 : E_DFmode) != 0
23718 : || !
23719 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23720 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH))
23721 : return -1;
23722 : return 1055; /* *nabsdf2_1 */
23723 :
23724 : case E_V2SFmode:
23725 : if (pattern1063 (x3) != 0
23726 : || !
23727 : #line 723 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23728 : (TARGET_MMX_WITH_SSE))
23729 : return -1;
23730 : return 2108; /* *mmx_nabsv2sf2 */
23731 :
23732 : case E_V2BFmode:
23733 : if (pattern1064 (x3,
23734 : E_V2BFmode) != 0
23735 : || !
23736 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23737 : (TARGET_SSE))
23738 : return -1;
23739 : return 2160; /* *mmx_nabsv2bf2 */
23740 :
23741 : case E_V4BFmode:
23742 : if (pattern1064 (x3,
23743 : E_V4BFmode) != 0
23744 : || !(
23745 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23746 : (TARGET_SSE) &&
23747 : #line 2248 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23748 : (TARGET_MMX_WITH_SSE)))
23749 : return -1;
23750 : return 2161; /* *mmx_nabsv4bf2 */
23751 :
23752 : case E_V2HFmode:
23753 : if (pattern1064 (x3,
23754 : E_V2HFmode) != 0
23755 : || !
23756 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23757 : (TARGET_SSE))
23758 : return -1;
23759 : return 2162; /* *mmx_nabsv2hf2 */
23760 :
23761 : case E_V4HFmode:
23762 : if (pattern1064 (x3,
23763 : E_V4HFmode) != 0
23764 : || !(
23765 : #line 2280 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23766 : (TARGET_SSE) &&
23767 : #line 2249 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
23768 : (TARGET_MMX_WITH_SSE)))
23769 : return -1;
23770 : return 2163; /* *mmx_nabsv4hf2 */
23771 :
23772 : case E_V16SFmode:
23773 : if (pattern1061 (x3,
23774 : E_V16SFmode) != 0
23775 : || !(
23776 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23777 : (TARGET_SSE) &&
23778 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23779 : (TARGET_AVX512F)))
23780 : return -1;
23781 : return 2740; /* *nabsv16sf2 */
23782 :
23783 : case E_V8SFmode:
23784 : if (pattern1061 (x3,
23785 : E_V8SFmode) != 0
23786 : || !(
23787 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23788 : (TARGET_SSE) &&
23789 : #line 382 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23790 : (TARGET_AVX)))
23791 : return -1;
23792 : return 2741; /* *nabsv8sf2 */
23793 :
23794 : case E_V4SFmode:
23795 : if (pattern1061 (x3,
23796 : E_V4SFmode) != 0
23797 : || !
23798 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23799 : (TARGET_SSE))
23800 : return -1;
23801 : return 2742; /* *nabsv4sf2 */
23802 :
23803 : case E_V8DFmode:
23804 : if (pattern1061 (x3,
23805 : E_V8DFmode) != 0
23806 : || !(
23807 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23808 : (TARGET_SSE) &&
23809 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23810 : (TARGET_AVX512F)))
23811 : return -1;
23812 : return 2743; /* *nabsv8df2 */
23813 :
23814 : case E_V4DFmode:
23815 : if (pattern1061 (x3,
23816 : E_V4DFmode) != 0
23817 : || !(
23818 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23819 : (TARGET_SSE) &&
23820 : #line 383 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23821 : (TARGET_AVX)))
23822 : return -1;
23823 : return 2744; /* *nabsv4df2 */
23824 :
23825 : case E_V2DFmode:
23826 : if (pattern1061 (x3,
23827 : E_V2DFmode) != 0
23828 : || !(
23829 : #line 2634 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23830 : (TARGET_SSE) &&
23831 : #line 384 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
23832 : (TARGET_SSE2)))
23833 : return -1;
23834 : return 2745; /* *nabsv2df2 */
23835 :
23836 : default:
23837 : return -1;
23838 : }
23839 :
23840 : default:
23841 : return -1;
23842 : }
23843 :
23844 : case LTU:
23845 : case UNLT:
23846 : operands[1] = x4;
23847 : if (pattern575 (operands[1]) != 0
23848 : || pattern344 (x1) != 0)
23849 : return -1;
23850 : switch (GET_MODE (operands[0]))
23851 : {
23852 : case E_QImode:
23853 : if (!register_operand (operands[0], E_QImode)
23854 : || GET_MODE (x3) != E_QImode)
23855 : return -1;
23856 : return 1833; /* *x86_movqicc_0_m1_neg */
23857 :
23858 : case E_HImode:
23859 : if (!register_operand (operands[0], E_HImode)
23860 : || GET_MODE (x3) != E_HImode)
23861 : return -1;
23862 : return 1834; /* *x86_movhicc_0_m1_neg */
23863 :
23864 : case E_SImode:
23865 : if (!register_operand (operands[0], E_SImode)
23866 : || GET_MODE (x3) != E_SImode)
23867 : return -1;
23868 : return 1835; /* *x86_movsicc_0_m1_neg */
23869 :
23870 : case E_DImode:
23871 : if (!register_operand (operands[0], E_DImode)
23872 : || GET_MODE (x3) != E_DImode
23873 : || !
23874 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23875 : (TARGET_64BIT))
23876 : return -1;
23877 : return 1836; /* *x86_movdicc_0_m1_neg */
23878 :
23879 : default:
23880 : return -1;
23881 : }
23882 :
23883 : default:
23884 : return -1;
23885 : }
23886 : }
23887 :
23888 : int
23889 : recog_434 (rtx x1 ATTRIBUTE_UNUSED,
23890 : rtx_insn *insn ATTRIBUTE_UNUSED,
23891 : int *pnum_clobbers ATTRIBUTE_UNUSED)
23892 : {
23893 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
23894 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
23895 : rtx x10, x11, x12, x13, x14, x15, x16;
23896 : int res ATTRIBUTE_UNUSED;
23897 : x2 = XVECEXP (x1, 0, 0);
23898 : x3 = XEXP (x2, 1);
23899 : x4 = XEXP (x3, 0);
23900 : if (GET_CODE (x4) != MEM
23901 : || GET_MODE (x4) != E_QImode)
23902 : return -1;
23903 : x5 = XEXP (x2, 0);
23904 : operands[0] = x5;
23905 : x6 = XEXP (x4, 0);
23906 : switch (GET_CODE (x6))
23907 : {
23908 : case SUBREG:
23909 : case MEM:
23910 : operands[1] = x6;
23911 : if (!memory_operand (operands[1], E_SImode)
23912 : || pattern386 (x1) != 0)
23913 : return -1;
23914 : x7 = XEXP (x3, 1);
23915 : operands[2] = x7;
23916 : x8 = XVECEXP (x1, 0, 1);
23917 : x9 = XEXP (x8, 1);
23918 : x10 = XEXP (x9, 1);
23919 : operands[3] = x10;
23920 : if (!immediate_operand (operands[3], E_SImode)
23921 : || !
23922 : #line 20827 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23923 : (!TARGET_64BIT && !TARGET_INDIRECT_BRANCH_REGISTER))
23924 : return -1;
23925 : return 1517; /* *sibcall_value_pop_memory */
23926 :
23927 : case SYMBOL_REF:
23928 : if (!constant_call_address_operand (x6, E_VOIDmode))
23929 : return -1;
23930 : x8 = XVECEXP (x1, 0, 1);
23931 : if (GET_CODE (x8) != UNSPEC)
23932 : return -1;
23933 : x11 = XVECEXP (x1, 0, 2);
23934 : if (GET_CODE (x11) != CLOBBER)
23935 : return -1;
23936 : switch (pattern1180 (x8))
23937 : {
23938 : case 0:
23939 : operands[2] = x6;
23940 : x7 = XEXP (x3, 1);
23941 : operands[3] = x7;
23942 : x12 = XVECEXP (x8, 0, 0);
23943 : operands[1] = x12;
23944 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
23945 : return -1;
23946 : x13 = XEXP (x11, 0);
23947 : operands[4] = x13;
23948 : switch (GET_MODE (operands[0]))
23949 : {
23950 : case E_SImode:
23951 : if (pattern1750 (x1,
23952 : E_SImode) != 0
23953 : || !(
23954 : #line 23349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23955 : (TARGET_64BIT) &&
23956 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23957 : (Pmode == SImode)))
23958 : return -1;
23959 : return 1684; /* *tls_global_dynamic_64_si */
23960 :
23961 : case E_DImode:
23962 : if (pattern1750 (x1,
23963 : E_DImode) != 0
23964 : || !(
23965 : #line 23349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23966 : (TARGET_64BIT) &&
23967 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23968 : (Pmode == DImode)))
23969 : return -1;
23970 : return 1685; /* *tls_global_dynamic_64_di */
23971 :
23972 : default:
23973 : return -1;
23974 : }
23975 :
23976 : case 1:
23977 : operands[1] = x6;
23978 : x7 = XEXP (x3, 1);
23979 : operands[2] = x7;
23980 : x13 = XEXP (x11, 0);
23981 : operands[3] = x13;
23982 : switch (GET_MODE (operands[0]))
23983 : {
23984 : case E_SImode:
23985 : if (pattern1679 (x1,
23986 : E_SImode) != 0
23987 : || !(
23988 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23989 : (TARGET_64BIT) &&
23990 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
23991 : (Pmode == SImode)))
23992 : return -1;
23993 : return 1688; /* *tls_local_dynamic_base_64_si */
23994 :
23995 : case E_DImode:
23996 : if (pattern1679 (x1,
23997 : E_DImode) != 0
23998 : || !(
23999 : #line 23472 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24000 : (TARGET_64BIT) &&
24001 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24002 : (Pmode == DImode)))
24003 : return -1;
24004 : return 1689; /* *tls_local_dynamic_base_64_di */
24005 :
24006 : default:
24007 : return -1;
24008 : }
24009 :
24010 : default:
24011 : return -1;
24012 : }
24013 :
24014 : case PLUS:
24015 : if (GET_MODE (x6) != E_DImode)
24016 : return -1;
24017 : x8 = XVECEXP (x1, 0, 1);
24018 : if (GET_CODE (x8) != UNSPEC)
24019 : return -1;
24020 : x11 = XVECEXP (x1, 0, 2);
24021 : if (GET_CODE (x11) != CLOBBER
24022 : || !register_operand (operands[0], E_DImode)
24023 : || GET_MODE (x3) != E_DImode)
24024 : return -1;
24025 : x14 = XEXP (x6, 0);
24026 : if (!register_operand (x14, E_DImode))
24027 : return -1;
24028 : x15 = XEXP (x6, 1);
24029 : if (!immediate_operand (x15, E_DImode)
24030 : || GET_MODE (x8) != E_DImode)
24031 : return -1;
24032 : x13 = XEXP (x11, 0);
24033 : if (!register_operand (x13, E_DImode))
24034 : return -1;
24035 : switch (pattern1180 (x8))
24036 : {
24037 : case 0:
24038 : x16 = XVECEXP (x8, 0, 1);
24039 : if (GET_MODE (x16) != E_DImode)
24040 : return -1;
24041 : operands[2] = x14;
24042 : operands[3] = x15;
24043 : x7 = XEXP (x3, 1);
24044 : operands[4] = x7;
24045 : x12 = XVECEXP (x8, 0, 0);
24046 : operands[1] = x12;
24047 : if (!tls_symbolic_operand (operands[1], E_VOIDmode))
24048 : return -1;
24049 : operands[5] = x13;
24050 : if (!
24051 : #line 23392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24052 : (TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
24053 : && GET_CODE (operands[3]) == CONST
24054 : && GET_CODE (XEXP (operands[3], 0)) == UNSPEC
24055 : && XINT (XEXP (operands[3], 0), 1) == UNSPEC_PLTOFF))
24056 : return -1;
24057 : return 1686; /* *tls_global_dynamic_64_largepic */
24058 :
24059 : case 1:
24060 : x12 = XVECEXP (x8, 0, 0);
24061 : if (GET_MODE (x12) != E_DImode)
24062 : return -1;
24063 : operands[1] = x14;
24064 : operands[2] = x15;
24065 : x7 = XEXP (x3, 1);
24066 : operands[3] = x7;
24067 : operands[4] = x13;
24068 : if (!
24069 : #line 23494 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24070 : (TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
24071 : && GET_CODE (operands[2]) == CONST
24072 : && GET_CODE (XEXP (operands[2], 0)) == UNSPEC
24073 : && XINT (XEXP (operands[2], 0), 1) == UNSPEC_PLTOFF))
24074 : return -1;
24075 : return 1690; /* *tls_local_dynamic_base_64_largepic */
24076 :
24077 : default:
24078 : return -1;
24079 : }
24080 :
24081 : default:
24082 : return -1;
24083 : }
24084 : }
24085 :
24086 : int
24087 : recog_439 (rtx x1 ATTRIBUTE_UNUSED,
24088 : rtx_insn *insn ATTRIBUTE_UNUSED,
24089 : int *pnum_clobbers ATTRIBUTE_UNUSED)
24090 : {
24091 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24092 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
24093 : rtx x10, x11, x12, x13, x14, x15, x16;
24094 : int res ATTRIBUTE_UNUSED;
24095 : x2 = XVECEXP (x1, 0, 0);
24096 : if (GET_CODE (x2) != SET)
24097 : return -1;
24098 : x3 = XVECEXP (x1, 0, 3);
24099 : if (GET_CODE (x3) != CLOBBER)
24100 : return -1;
24101 : x4 = XEXP (x2, 1);
24102 : switch (GET_CODE (x4))
24103 : {
24104 : case UNSIGNED_FIX:
24105 : switch (pattern388 (x1))
24106 : {
24107 : case 0:
24108 : if (!
24109 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24110 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
24111 : && optimize_function_for_speed_p (cfun)))
24112 : return -1;
24113 : return 227; /* *fixuns_truncsf_1 */
24114 :
24115 : case 1:
24116 : if (!
24117 : #line 5920 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24118 : (!TARGET_64BIT && TARGET_SSE2 && TARGET_SSE_MATH
24119 : && optimize_function_for_speed_p (cfun)))
24120 : return -1;
24121 : return 228; /* *fixuns_truncdf_1 */
24122 :
24123 : default:
24124 : return -1;
24125 : }
24126 :
24127 : case FIX:
24128 : if (GET_MODE (x4) != E_DImode)
24129 : return -1;
24130 : x5 = XVECEXP (x1, 0, 1);
24131 : if (GET_CODE (x5) != USE)
24132 : return -1;
24133 : x6 = XVECEXP (x1, 0, 2);
24134 : if (GET_CODE (x6) != USE)
24135 : return -1;
24136 : x7 = XEXP (x2, 0);
24137 : operands[0] = x7;
24138 : if (!nonimmediate_operand (operands[0], E_DImode))
24139 : return -1;
24140 : x8 = XEXP (x4, 0);
24141 : operands[1] = x8;
24142 : if (!register_operand (operands[1], E_VOIDmode))
24143 : return -1;
24144 : x9 = XEXP (x5, 0);
24145 : operands[2] = x9;
24146 : if (!memory_operand (operands[2], E_HImode))
24147 : return -1;
24148 : x10 = XEXP (x6, 0);
24149 : operands[3] = x10;
24150 : if (!memory_operand (operands[3], E_HImode))
24151 : return -1;
24152 : x11 = XEXP (x3, 0);
24153 : operands[4] = x11;
24154 : if (!scratch_operand (operands[4], E_XFmode)
24155 : || !
24156 : #line 6030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24157 : (X87_FLOAT_MODE_P (GET_MODE (operands[1]))
24158 : && !TARGET_FISTTP
24159 : && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))))
24160 : return -1;
24161 : return 239; /* fix_truncdi_i387 */
24162 :
24163 : case FLOAT:
24164 : switch (pattern390 (x1))
24165 : {
24166 : case 0:
24167 : if (!
24168 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24169 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
24170 : && TARGET_80387 && X87_ENABLE_FLOAT (SFmode, DImode)
24171 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
24172 : return -1;
24173 : return 258; /* floatdisf2_i387_with_xmm */
24174 :
24175 : case 1:
24176 : if (!
24177 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24178 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
24179 : && TARGET_80387 && X87_ENABLE_FLOAT (DFmode, DImode)
24180 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
24181 : return -1;
24182 : return 259; /* floatdidf2_i387_with_xmm */
24183 :
24184 : case 2:
24185 : if (!
24186 : #line 6215 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24187 : (!TARGET_64BIT && TARGET_INTER_UNIT_MOVES_TO_VEC
24188 : && TARGET_80387 && X87_ENABLE_FLOAT (XFmode, DImode)
24189 : && TARGET_SSE2 && optimize_function_for_speed_p (cfun)))
24190 : return -1;
24191 : return 260; /* floatdixf2_i387_with_xmm */
24192 :
24193 : default:
24194 : return -1;
24195 : }
24196 :
24197 : case DIV:
24198 : switch (pattern395 (x1,
24199 : MOD))
24200 : {
24201 : case 0:
24202 : return 667; /* divmodsi4_1 */
24203 :
24204 : case 1:
24205 : if (!
24206 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24207 : (TARGET_64BIT))
24208 : return -1;
24209 : return 668; /* divmoddi4_1 */
24210 :
24211 : case 2:
24212 : if (!
24213 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24214 : (TARGET_HIMODE_MATH))
24215 : return -1;
24216 : return 695; /* *divmodhi4_noext */
24217 :
24218 : case 3:
24219 : return 697; /* *divmodsi4_noext */
24220 :
24221 : case 4:
24222 : if (!
24223 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24224 : (TARGET_64BIT))
24225 : return -1;
24226 : return 699; /* *divmoddi4_noext */
24227 :
24228 : default:
24229 : return -1;
24230 : }
24231 :
24232 : case UDIV:
24233 : switch (pattern395 (x1,
24234 : UMOD))
24235 : {
24236 : case 0:
24237 : return 669; /* udivmodsi4_1 */
24238 :
24239 : case 1:
24240 : if (!
24241 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24242 : (TARGET_64BIT))
24243 : return -1;
24244 : return 670; /* udivmoddi4_1 */
24245 :
24246 : case 2:
24247 : if (!
24248 : #line 1192 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24249 : (TARGET_HIMODE_MATH))
24250 : return -1;
24251 : return 696; /* *udivmodhi4_noext */
24252 :
24253 : case 3:
24254 : return 698; /* *udivmodsi4_noext */
24255 :
24256 : case 4:
24257 : if (!
24258 : #line 1193 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24259 : (TARGET_64BIT))
24260 : return -1;
24261 : return 700; /* *udivmoddi4_noext */
24262 :
24263 : default:
24264 : return -1;
24265 : }
24266 :
24267 : case ZERO_EXTEND:
24268 : if (GET_MODE (x4) != E_DImode)
24269 : return -1;
24270 : x5 = XVECEXP (x1, 0, 1);
24271 : if (GET_CODE (x5) != SET)
24272 : return -1;
24273 : x11 = XEXP (x3, 0);
24274 : if (GET_CODE (x11) != REG
24275 : || REGNO (x11) != 17
24276 : || GET_MODE (x11) != E_CCmode)
24277 : return -1;
24278 : switch (pattern1065 (x1))
24279 : {
24280 : case 0:
24281 : switch (pattern1510 (x1,
24282 : MOD))
24283 : {
24284 : case 0:
24285 : if (!
24286 : #line 11828 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24287 : (TARGET_64BIT))
24288 : return -1;
24289 : return 671; /* divmodsi4_zext_1 */
24290 :
24291 : case 1:
24292 : if (!
24293 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24294 : (TARGET_64BIT))
24295 : return -1;
24296 : return 701; /* *divmodsi4_noext_zext_1 */
24297 :
24298 : default:
24299 : return -1;
24300 : }
24301 :
24302 : case 1:
24303 : switch (pattern1510 (x1,
24304 : UMOD))
24305 : {
24306 : case 0:
24307 : if (!
24308 : #line 11864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24309 : (TARGET_64BIT))
24310 : return -1;
24311 : return 672; /* udivmodsi4_zext_1 */
24312 :
24313 : case 1:
24314 : if (!
24315 : #line 12223 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24316 : (TARGET_64BIT))
24317 : return -1;
24318 : return 702; /* *udivmodsi4_noext_zext_1 */
24319 :
24320 : default:
24321 : return -1;
24322 : }
24323 :
24324 : case 2:
24325 : switch (pattern1511 (x1,
24326 : DIV))
24327 : {
24328 : case 0:
24329 : if (!
24330 : #line 11887 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24331 : (TARGET_64BIT))
24332 : return -1;
24333 : return 673; /* divmodsi4_zext_2 */
24334 :
24335 : case 1:
24336 : if (!
24337 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24338 : (TARGET_64BIT))
24339 : return -1;
24340 : return 703; /* *divmodsi4_noext_zext_2 */
24341 :
24342 : default:
24343 : return -1;
24344 : }
24345 :
24346 : case 3:
24347 : switch (pattern1511 (x1,
24348 : UDIV))
24349 : {
24350 : case 0:
24351 : if (!
24352 : #line 11924 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24353 : (TARGET_64BIT))
24354 : return -1;
24355 : return 674; /* udivmodsi4_zext_2 */
24356 :
24357 : case 1:
24358 : if (!
24359 : #line 12237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24360 : (TARGET_64BIT))
24361 : return -1;
24362 : return 704; /* *udivmodsi4_noext_zext_2 */
24363 :
24364 : default:
24365 : return -1;
24366 : }
24367 :
24368 : default:
24369 : return -1;
24370 : }
24371 :
24372 : case UNSPEC:
24373 : x7 = XEXP (x2, 0);
24374 : operands[0] = x7;
24375 : switch (XVECLEN (x4, 0))
24376 : {
24377 : case 4:
24378 : if (XINT (x4, 1) != 21
24379 : || pattern825 (x4) != 0
24380 : || pattern1260 (x1) != 0
24381 : || !tls_symbolic_operand (operands[2], E_VOIDmode))
24382 : return -1;
24383 : x12 = XVECEXP (x4, 0, 2);
24384 : operands[3] = x12;
24385 : if (!constant_call_address_operand (operands[3], E_VOIDmode))
24386 : return -1;
24387 : x5 = XVECEXP (x1, 0, 1);
24388 : x9 = XEXP (x5, 0);
24389 : operands[4] = x9;
24390 : if (!scratch_operand (operands[4], E_SImode))
24391 : return -1;
24392 : x6 = XVECEXP (x1, 0, 2);
24393 : x10 = XEXP (x6, 0);
24394 : operands[5] = x10;
24395 : if (!scratch_operand (operands[5], E_SImode)
24396 : || !
24397 : #line 23305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24398 : (!TARGET_64BIT && TARGET_GNU_TLS))
24399 : return -1;
24400 : return 1683; /* *tls_global_dynamic_32_gnu */
24401 :
24402 : case 3:
24403 : if (XINT (x4, 1) != 22
24404 : || GET_MODE (x4) != E_SImode)
24405 : return -1;
24406 : x12 = XVECEXP (x4, 0, 2);
24407 : if (GET_CODE (x12) != REG
24408 : || REGNO (x12) != 7
24409 : || GET_MODE (x12) != E_SImode
24410 : || pattern1260 (x1) != 0
24411 : || !constant_call_address_operand (operands[2], E_VOIDmode))
24412 : return -1;
24413 : x5 = XVECEXP (x1, 0, 1);
24414 : x9 = XEXP (x5, 0);
24415 : operands[3] = x9;
24416 : if (!scratch_operand (operands[3], E_SImode))
24417 : return -1;
24418 : x6 = XVECEXP (x1, 0, 2);
24419 : x10 = XEXP (x6, 0);
24420 : operands[4] = x10;
24421 : if (!scratch_operand (operands[4], E_SImode)
24422 : || !
24423 : #line 23433 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24424 : (!TARGET_64BIT && TARGET_GNU_TLS))
24425 : return -1;
24426 : return 1687; /* *tls_local_dynamic_base_32_gnu */
24427 :
24428 : case 1:
24429 : x5 = XVECEXP (x1, 0, 1);
24430 : if (GET_CODE (x5) != USE)
24431 : return -1;
24432 : x6 = XVECEXP (x1, 0, 2);
24433 : if (GET_CODE (x6) != USE
24434 : || !nonimmediate_operand (operands[0], E_DImode)
24435 : || GET_MODE (x4) != E_DImode)
24436 : return -1;
24437 : x13 = XVECEXP (x4, 0, 0);
24438 : operands[1] = x13;
24439 : if (!register_operand (operands[1], E_XFmode))
24440 : return -1;
24441 : x9 = XEXP (x5, 0);
24442 : operands[2] = x9;
24443 : if (!memory_operand (operands[2], E_HImode))
24444 : return -1;
24445 : x10 = XEXP (x6, 0);
24446 : operands[3] = x10;
24447 : if (!memory_operand (operands[3], E_HImode))
24448 : return -1;
24449 : x11 = XEXP (x3, 0);
24450 : operands[4] = x11;
24451 : if (!scratch_operand (operands[4], E_XFmode))
24452 : return -1;
24453 : switch (XINT (x4, 1))
24454 : {
24455 : case 79:
24456 : if (!
24457 : #line 25741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24458 : (TARGET_USE_FANCY_MATH_387
24459 : && flag_unsafe_math_optimizations))
24460 : return -1;
24461 : return 1784; /* fistdi2_floor */
24462 :
24463 : case 80:
24464 : if (!
24465 : #line 25741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24466 : (TARGET_USE_FANCY_MATH_387
24467 : && flag_unsafe_math_optimizations))
24468 : return -1;
24469 : return 1785; /* fistdi2_ceil */
24470 :
24471 : default:
24472 : return -1;
24473 : }
24474 :
24475 : default:
24476 : return -1;
24477 : }
24478 :
24479 : case PLUS:
24480 : if (pattern396 (x1) != 0)
24481 : return -1;
24482 : return 1691; /* *tls_local_dynamic_32_once */
24483 :
24484 : case UNSPEC_VOLATILE:
24485 : if (XVECLEN (x4, 0) != 1
24486 : || XINT (x4, 1) != 3)
24487 : return -1;
24488 : x5 = XVECEXP (x1, 0, 1);
24489 : if (pattern720 (x5,
24490 : 7,
24491 : MINUS) != 0)
24492 : return -1;
24493 : x6 = XVECEXP (x1, 0, 2);
24494 : if (pattern953 (x6,
24495 : E_CCmode,
24496 : 17) != 0)
24497 : return -1;
24498 : x11 = XEXP (x3, 0);
24499 : if (GET_CODE (x11) != MEM
24500 : || GET_MODE (x11) != E_BLKmode)
24501 : return -1;
24502 : x14 = XEXP (x11, 0);
24503 : if (GET_CODE (x14) != SCRATCH)
24504 : return -1;
24505 : x7 = XEXP (x2, 0);
24506 : operands[0] = x7;
24507 : x13 = XVECEXP (x4, 0, 0);
24508 : operands[1] = x13;
24509 : x15 = XEXP (x5, 1);
24510 : x16 = XEXP (x15, 1);
24511 : operands[2] = x16;
24512 : switch (GET_MODE (operands[0]))
24513 : {
24514 : case E_SImode:
24515 : if (pattern1802 (x1,
24516 : E_SImode) != 0
24517 : || !
24518 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24519 : (Pmode == SImode))
24520 : return -1;
24521 : return 1917; /* adjust_stack_and_probe_si */
24522 :
24523 : case E_DImode:
24524 : if (pattern1802 (x1,
24525 : E_DImode) != 0
24526 : || !
24527 : #line 1399 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24528 : (Pmode == DImode))
24529 : return -1;
24530 : return 1918; /* adjust_stack_and_probe_di */
24531 :
24532 : default:
24533 : return -1;
24534 : }
24535 :
24536 : default:
24537 : return -1;
24538 : }
24539 : }
24540 :
24541 : rtx_insn *
24542 : split_8 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
24543 : {
24544 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
24545 : rtx x2, x3, x4, x5, x6, x7;
24546 : rtx_insn *res ATTRIBUTE_UNUSED;
24547 : x2 = XEXP (x1, 0);
24548 : operands[0] = x2;
24549 : x3 = XEXP (x1, 1);
24550 : x4 = XEXP (x3, 0);
24551 : switch (GET_CODE (x4))
24552 : {
24553 : case AND:
24554 : switch (pattern76 (x3))
24555 : {
24556 : case 0:
24557 : if (!(
24558 : #line 3715 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24559 : (TARGET_64BIT
24560 : && CONST_WIDE_INT_P (operands[3])
24561 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24562 : && CONST_WIDE_INT_ELT (operands[3], 0) == -1
24563 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0) &&
24564 : #line 3721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24565 : ( reload_completed)))
24566 : return NULL;
24567 : return gen_split_30 (insn, operands);
24568 :
24569 : case 1:
24570 : if (!(
24571 : #line 3737 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24572 : (TARGET_64BIT
24573 : && CONST_WIDE_INT_P (operands[3])
24574 : && CONST_WIDE_INT_NUNITS (operands[3]) == 2
24575 : && CONST_WIDE_INT_ELT (operands[3], 0) == 0
24576 : && CONST_WIDE_INT_ELT (operands[3], 1) == -1) &&
24577 : #line 3743 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24578 : ( reload_completed)))
24579 : return NULL;
24580 : return gen_split_33 (insn, operands);
24581 :
24582 : case 2:
24583 : if (!(
24584 : #line 3759 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24585 : (!TARGET_64BIT
24586 : && CONST_INT_P (operands[3])
24587 : && UINTVAL (operands[3]) == 0xffffffff00000000ll) &&
24588 : #line 3763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24589 : ( reload_completed)))
24590 : return NULL;
24591 : return gen_split_36 (insn, operands);
24592 :
24593 : default:
24594 : return NULL;
24595 : }
24596 :
24597 : case ASHIFT:
24598 : x5 = XEXP (x4, 1);
24599 : operands[2] = x5;
24600 : x6 = XEXP (x4, 0);
24601 : switch (GET_CODE (x6))
24602 : {
24603 : case REG:
24604 : case SUBREG:
24605 : operands[1] = x6;
24606 : x7 = XEXP (x3, 1);
24607 : switch (GET_CODE (x7))
24608 : {
24609 : case CONST_INT:
24610 : case CONST_WIDE_INT:
24611 : operands[3] = x7;
24612 : switch (GET_MODE (operands[0]))
24613 : {
24614 : case E_QImode:
24615 : if (pattern614 (x3,
24616 : E_QImode) != 0
24617 : || !(
24618 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24619 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24620 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24621 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24622 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24623 : ( reload_completed)))
24624 : return NULL;
24625 : return gen_split_167 (insn, operands);
24626 :
24627 : case E_HImode:
24628 : if (pattern614 (x3,
24629 : E_HImode) != 0
24630 : || !(
24631 : #line 8048 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24632 : ((!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
24633 : && ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24634 : < (HOST_WIDE_INT_1U << INTVAL (operands[2])))) &&
24635 : #line 8052 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24636 : ( reload_completed)))
24637 : return NULL;
24638 : return gen_split_169 (insn, operands);
24639 :
24640 : case E_SImode:
24641 : if (pattern614 (x3,
24642 : E_SImode) != 0
24643 : || !(
24644 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24645 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24646 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24647 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24648 : ( reload_completed)))
24649 : return NULL;
24650 : return gen_split_171 (insn, operands);
24651 :
24652 : case E_DImode:
24653 : if (GET_MODE (x3) != E_DImode
24654 : || GET_MODE (x4) != E_DImode)
24655 : return NULL;
24656 : if (register_operand (operands[0], E_DImode)
24657 : && register_no_SP_operand (operands[1], E_DImode)
24658 : && const_0_to_3_operand (operands[2], E_VOIDmode)
24659 : && const_int_operand (operands[3], E_VOIDmode)
24660 : && ((
24661 : #line 8072 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24662 : ((unsigned HOST_WIDE_INT) INTVAL (operands[3])
24663 : < (HOST_WIDE_INT_1U << INTVAL (operands[2]))) &&
24664 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24665 : (TARGET_64BIT)) &&
24666 : #line 8075 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24667 : ( reload_completed)))
24668 : return gen_split_173 (insn, operands);
24669 : if (!nonimmediate_operand (operands[0], E_DImode)
24670 : || !register_operand (operands[1], E_DImode)
24671 : || !const_int_operand (operands[2], E_QImode)
24672 : || !const_scalar_int_operand (operands[3], E_DImode)
24673 : || !((
24674 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24675 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT / 2
24676 : && (DImode == DImode
24677 : ? CONST_INT_P (operands[3])
24678 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24679 : : CONST_INT_P (operands[3])
24680 : ? INTVAL (operands[3]) >= 0
24681 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24682 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24683 : && !(CONST_INT_P (operands[3])
24684 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24685 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24686 : 0)),
24687 : VOIDmode))) &&
24688 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24689 : (!TARGET_64BIT)) &&
24690 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24691 : ( reload_completed)))
24692 : return NULL;
24693 : return gen_split_474 (insn, operands);
24694 :
24695 : case E_TImode:
24696 : if (pattern615 (x3,
24697 : E_TImode) != 0
24698 : || !((
24699 : #line 14473 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24700 : (INTVAL (operands[2]) == 16 * BITS_PER_UNIT / 2
24701 : && (TImode == DImode
24702 : ? CONST_INT_P (operands[3])
24703 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24704 : : CONST_INT_P (operands[3])
24705 : ? INTVAL (operands[3]) >= 0
24706 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24707 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24708 : && !(CONST_INT_P (operands[3])
24709 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24710 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24711 : 0)),
24712 : VOIDmode))) &&
24713 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24714 : (TARGET_64BIT)) &&
24715 : #line 14487 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24716 : ( reload_completed)))
24717 : return NULL;
24718 : return gen_split_477 (insn, operands);
24719 :
24720 : default:
24721 : return NULL;
24722 : }
24723 :
24724 : case ZERO_EXTEND:
24725 : switch (pattern955 (x3))
24726 : {
24727 : case 0:
24728 : if (!((
24729 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24730 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24731 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24732 : (!TARGET_64BIT)) &&
24733 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24734 : ( reload_completed)))
24735 : return NULL;
24736 : return gen_split_438 (insn, operands);
24737 :
24738 : case 1:
24739 : if (!((
24740 : #line 14396 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24741 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24742 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24743 : (TARGET_64BIT)) &&
24744 : #line 14398 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24745 : ( reload_completed)))
24746 : return NULL;
24747 : return gen_split_441 (insn, operands);
24748 :
24749 : default:
24750 : return NULL;
24751 : }
24752 :
24753 : default:
24754 : return NULL;
24755 : }
24756 :
24757 : case SIGN_EXTEND:
24758 : switch (pattern723 (x3))
24759 : {
24760 : case 0:
24761 : if (!((
24762 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24763 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24764 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24765 : (!TARGET_64BIT)) &&
24766 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24767 : ( reload_completed)))
24768 : return NULL;
24769 : return gen_split_450 (insn, operands);
24770 :
24771 : case 1:
24772 : if (!((
24773 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24774 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24775 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24776 : (TARGET_64BIT)) &&
24777 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24778 : ( reload_completed)))
24779 : return NULL;
24780 : return gen_split_456 (insn, operands);
24781 :
24782 : case 2:
24783 : if (!((
24784 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24785 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24786 : && (DImode == DImode
24787 : ? CONST_INT_P (operands[3])
24788 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24789 : : CONST_INT_P (operands[3])
24790 : ? INTVAL (operands[3]) >= 0
24791 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24792 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24793 : && !(CONST_INT_P (operands[3])
24794 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24795 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24796 : 0)),
24797 : VOIDmode))) &&
24798 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24799 : (!TARGET_64BIT)) &&
24800 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24801 : ( reload_completed)))
24802 : return NULL;
24803 : return gen_split_480 (insn, operands);
24804 :
24805 : case 3:
24806 : if (!((
24807 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24808 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24809 : && (TImode == DImode
24810 : ? CONST_INT_P (operands[3])
24811 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24812 : : CONST_INT_P (operands[3])
24813 : ? INTVAL (operands[3]) >= 0
24814 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24815 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24816 : && !(CONST_INT_P (operands[3])
24817 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24818 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24819 : 0)),
24820 : VOIDmode))) &&
24821 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24822 : (TARGET_64BIT)) &&
24823 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24824 : ( reload_completed)))
24825 : return NULL;
24826 : return gen_split_486 (insn, operands);
24827 :
24828 : default:
24829 : return NULL;
24830 : }
24831 :
24832 : case ZERO_EXTEND:
24833 : switch (pattern723 (x3))
24834 : {
24835 : case 0:
24836 : if (!((
24837 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24838 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT) &&
24839 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24840 : (!TARGET_64BIT)) &&
24841 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24842 : ( reload_completed)))
24843 : return NULL;
24844 : return gen_split_453 (insn, operands);
24845 :
24846 : case 1:
24847 : if (!((
24848 : #line 14432 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24849 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT) &&
24850 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24851 : (TARGET_64BIT)) &&
24852 : #line 14434 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24853 : ( reload_completed)))
24854 : return NULL;
24855 : return gen_split_459 (insn, operands);
24856 :
24857 : case 2:
24858 : if (!((
24859 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24860 : (INTVAL (operands[2]) == 4 * BITS_PER_UNIT
24861 : && (DImode == DImode
24862 : ? CONST_INT_P (operands[3])
24863 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24864 : : CONST_INT_P (operands[3])
24865 : ? INTVAL (operands[3]) >= 0
24866 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24867 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24868 : && !(CONST_INT_P (operands[3])
24869 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24870 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24871 : 0)),
24872 : VOIDmode))) &&
24873 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24874 : (!TARGET_64BIT)) &&
24875 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24876 : ( reload_completed)))
24877 : return NULL;
24878 : return gen_split_483 (insn, operands);
24879 :
24880 : case 3:
24881 : if (!((
24882 : #line 14505 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24883 : (INTVAL (operands[2]) == 8 * BITS_PER_UNIT
24884 : && (TImode == DImode
24885 : ? CONST_INT_P (operands[3])
24886 : && (UINTVAL (operands[3]) & ~GET_MODE_MASK (SImode)) == 0
24887 : : CONST_INT_P (operands[3])
24888 : ? INTVAL (operands[3]) >= 0
24889 : : CONST_WIDE_INT_NUNITS (operands[3]) == 2
24890 : && CONST_WIDE_INT_ELT (operands[3], 1) == 0)
24891 : && !(CONST_INT_P (operands[3])
24892 : ? ix86_endbr_immediate_operand (operands[3], VOIDmode)
24893 : : ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[3],
24894 : 0)),
24895 : VOIDmode))) &&
24896 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24897 : (TARGET_64BIT)) &&
24898 : #line 14519 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24899 : ( reload_completed)))
24900 : return NULL;
24901 : return gen_split_489 (insn, operands);
24902 :
24903 : default:
24904 : return NULL;
24905 : }
24906 :
24907 : default:
24908 : return NULL;
24909 : }
24910 :
24911 : case ZERO_EXTEND:
24912 : switch (pattern405 (x3))
24913 : {
24914 : case 0:
24915 : if (!((
24916 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24917 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24918 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24919 : (!TARGET_64BIT)) &&
24920 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24921 : ( reload_completed)))
24922 : return NULL;
24923 : return gen_split_444 (insn, operands);
24924 :
24925 : case 1:
24926 : if (!((
24927 : #line 14413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24928 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24929 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24930 : (TARGET_64BIT)) &&
24931 : #line 14415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24932 : ( reload_completed)))
24933 : return NULL;
24934 : return gen_split_447 (insn, operands);
24935 :
24936 : case 2:
24937 : if (!((
24938 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24939 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24940 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24941 : (!TARGET_64BIT)) &&
24942 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24943 : ( reload_completed)))
24944 : return NULL;
24945 : return gen_split_462 (insn, operands);
24946 :
24947 : case 3:
24948 : if (!((
24949 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24950 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24951 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24952 : (TARGET_64BIT)) &&
24953 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24954 : ( reload_completed)))
24955 : return NULL;
24956 : return gen_split_468 (insn, operands);
24957 :
24958 : case 4:
24959 : if (!((
24960 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24961 : (INTVAL (operands[3]) == 4 * BITS_PER_UNIT) &&
24962 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24963 : (!TARGET_64BIT)) &&
24964 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24965 : ( reload_completed)))
24966 : return NULL;
24967 : return gen_split_465 (insn, operands);
24968 :
24969 : case 5:
24970 : if (!((
24971 : #line 14457 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24972 : (INTVAL (operands[3]) == 8 * BITS_PER_UNIT) &&
24973 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24974 : (TARGET_64BIT)) &&
24975 : #line 14459 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24976 : ( reload_completed)))
24977 : return NULL;
24978 : return gen_split_471 (insn, operands);
24979 :
24980 : case 6:
24981 : if (!((
24982 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24983 : (DImode == DImode
24984 : ? CONST_INT_P (operands[2])
24985 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
24986 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
24987 : : CONST_WIDE_INT_P (operands[2])
24988 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
24989 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
24990 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
24991 : 1)),
24992 : VOIDmode)) &&
24993 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24994 : (!TARGET_64BIT)) &&
24995 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
24996 : ( reload_completed)))
24997 : return NULL;
24998 : return gen_split_492 (insn, operands);
24999 :
25000 : case 7:
25001 : if (!((
25002 : #line 14534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25003 : (TImode == DImode
25004 : ? CONST_INT_P (operands[2])
25005 : && (UINTVAL (operands[2]) & GET_MODE_MASK (SImode)) == 0
25006 : && !ix86_endbr_immediate_operand (operands[2], VOIDmode)
25007 : : CONST_WIDE_INT_P (operands[2])
25008 : && CONST_WIDE_INT_NUNITS (operands[2]) == 2
25009 : && CONST_WIDE_INT_ELT (operands[2], 0) == 0
25010 : && !ix86_endbr_immediate_operand (GEN_INT (CONST_WIDE_INT_ELT (operands[2],
25011 : 1)),
25012 : VOIDmode)) &&
25013 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25014 : (TARGET_64BIT)) &&
25015 : #line 14545 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25016 : ( reload_completed)))
25017 : return NULL;
25018 : return gen_split_495 (insn, operands);
25019 :
25020 : default:
25021 : return NULL;
25022 : }
25023 :
25024 : default:
25025 : return NULL;
25026 : }
25027 : }
25028 :
25029 : rtx_insn *
25030 : split_17 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25031 : {
25032 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25033 : rtx x2, x3, x4, x5;
25034 : rtx_insn *res ATTRIBUTE_UNUSED;
25035 : x2 = XVECEXP (x1, 0, 0);
25036 : switch (pattern937 (x2))
25037 : {
25038 : case 0:
25039 : x3 = XEXP (x2, 0);
25040 : operands[0] = x3;
25041 : x4 = XEXP (x2, 1);
25042 : x5 = XEXP (x4, 1);
25043 : if (GET_CODE (x5) == SUBREG)
25044 : {
25045 : switch (pattern1429 (x4))
25046 : {
25047 : case 0:
25048 : if (((
25049 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25050 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
25051 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
25052 : == (2 * 4 * BITS_PER_UNIT - 1)))
25053 : && ix86_pre_reload_split ()) &&
25054 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25055 : (!TARGET_64BIT)) &&
25056 : #line 16923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25057 : ( 1)))
25058 : return gen_split_596 (insn, operands);
25059 : break;
25060 :
25061 : case 1:
25062 : if (((
25063 : #line 16918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25064 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
25065 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
25066 : == (2 * 8 * BITS_PER_UNIT - 1)))
25067 : && ix86_pre_reload_split ()) &&
25068 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25069 : (TARGET_64BIT)) &&
25070 : #line 16923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25071 : ( 1)))
25072 : return gen_split_598 (insn, operands);
25073 : break;
25074 :
25075 : default:
25076 : break;
25077 : }
25078 : }
25079 : if (GET_MODE (x4) == E_SImode
25080 : && nonimmediate_operand (operands[1], E_SImode))
25081 : {
25082 : if (register_operand (operands[0], E_SImode))
25083 : {
25084 : operands[2] = x5;
25085 : if (register_operand (operands[2], E_QImode)
25086 : &&
25087 : #line 17771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25088 : (TARGET_BMI2 && reload_completed))
25089 : return gen_split_629 (insn, operands);
25090 : }
25091 : if (GET_CODE (x5) == SUBREG)
25092 : {
25093 : switch (pattern1541 (x5))
25094 : {
25095 : case 0:
25096 : if ((
25097 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25098 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25099 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25100 : == 4 * BITS_PER_UNIT - 1
25101 : && ix86_pre_reload_split ()) &&
25102 : #line 18179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25103 : ( 1)))
25104 : return gen_split_646 (insn, operands);
25105 : break;
25106 :
25107 : case 1:
25108 : if ((
25109 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25110 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25111 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25112 : && ix86_pre_reload_split ()) &&
25113 : #line 18226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25114 : ( 1)))
25115 : return gen_split_658 (insn, operands);
25116 : break;
25117 :
25118 : case 2:
25119 : if ((
25120 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25121 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25122 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25123 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25124 : == 4 * BITS_PER_UNIT - 1)
25125 : && ix86_pre_reload_split ()) &&
25126 : #line 18274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25127 : ( 1)))
25128 : return gen_split_670 (insn, operands);
25129 : break;
25130 :
25131 : default:
25132 : break;
25133 : }
25134 : }
25135 : }
25136 : operands[2] = x5;
25137 : switch (pattern1345 (x2))
25138 : {
25139 : case 0:
25140 : if (register_operand (operands[1], E_DImode)
25141 : && nonmemory_operand (operands[2], E_QImode)
25142 : && (
25143 : #line 17030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25144 : (epilogue_completed) &&
25145 : #line 1196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25146 : (!TARGET_64BIT)))
25147 : return gen_split_604 (insn, operands);
25148 : if (nonimmediate_operand (operands[1], E_DImode)
25149 : && register_operand (operands[2], E_QImode)
25150 : && (
25151 : #line 17771 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25152 : (TARGET_BMI2 && reload_completed) &&
25153 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25154 : (TARGET_64BIT)))
25155 : return gen_split_631 (insn, operands);
25156 : break;
25157 :
25158 : case 1:
25159 : if ((
25160 : #line 17030 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25161 : (epilogue_completed) &&
25162 : #line 1197 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25163 : (TARGET_64BIT)))
25164 : return gen_split_606 (insn, operands);
25165 : break;
25166 :
25167 : case 2:
25168 : if ((
25169 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25170 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25171 : #line 17985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25172 : ( reload_completed
25173 : && !(rtx_equal_p (operands[0], operands[1])))))
25174 : return gen_split_635 (insn, operands);
25175 : break;
25176 :
25177 : case 3:
25178 : if ((
25179 : #line 17974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25180 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25181 : #line 17985 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25182 : ( reload_completed
25183 : && !(rtx_equal_p (operands[0], operands[1])))))
25184 : return gen_split_637 (insn, operands);
25185 : break;
25186 :
25187 : default:
25188 : break;
25189 : }
25190 : if (GET_CODE (x5) != SUBREG)
25191 : return NULL;
25192 : switch (pattern1244 (x2,
25193 : E_DImode))
25194 : {
25195 : case 0:
25196 : if (!((
25197 : #line 18174 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25198 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25199 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25200 : == 8 * BITS_PER_UNIT - 1
25201 : && ix86_pre_reload_split ()) &&
25202 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25203 : (TARGET_64BIT)) &&
25204 : #line 18179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25205 : ( 1)))
25206 : return NULL;
25207 : return gen_split_649 (insn, operands);
25208 :
25209 : case 1:
25210 : if (!((
25211 : #line 18222 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25212 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25213 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25214 : && ix86_pre_reload_split ()) &&
25215 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25216 : (TARGET_64BIT)) &&
25217 : #line 18226 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25218 : ( 1)))
25219 : return NULL;
25220 : return gen_split_661 (insn, operands);
25221 :
25222 : case 2:
25223 : if (!((
25224 : #line 18268 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25225 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25226 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25227 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25228 : == 8 * BITS_PER_UNIT - 1)
25229 : && ix86_pre_reload_split ()) &&
25230 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25231 : (TARGET_64BIT)) &&
25232 : #line 18274 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25233 : ( 1)))
25234 : return NULL;
25235 : return gen_split_673 (insn, operands);
25236 :
25237 : default:
25238 : return NULL;
25239 : }
25240 :
25241 : case 1:
25242 : if (register_operand (operands[0], E_DImode)
25243 : && register_operand (operands[1], E_DImode)
25244 : && ((
25245 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25246 : (((INTVAL (operands[3]) & (4 * BITS_PER_UNIT)) == 0
25247 : || ((INTVAL (operands[3]) & (2 * 4 * BITS_PER_UNIT - 1))
25248 : == (2 * 4 * BITS_PER_UNIT - 1)))
25249 : && ix86_pre_reload_split ()) &&
25250 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25251 : (!TARGET_64BIT)) &&
25252 : #line 16984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25253 : ( 1)))
25254 : return gen_split_600 (insn, operands);
25255 : if (!nonimmediate_operand (operands[0], E_DImode)
25256 : || !nonimmediate_operand (operands[1], E_DImode)
25257 : || !((
25258 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25259 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25260 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25261 : == 8 * BITS_PER_UNIT - 1
25262 : && ix86_pre_reload_split ()) &&
25263 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25264 : (TARGET_64BIT)) &&
25265 : #line 18204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25266 : ( 1)))
25267 : return NULL;
25268 : return gen_split_655 (insn, operands);
25269 :
25270 : case 2:
25271 : if (!((
25272 : #line 16979 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25273 : (((INTVAL (operands[3]) & (8 * BITS_PER_UNIT)) == 0
25274 : || ((INTVAL (operands[3]) & (2 * 8 * BITS_PER_UNIT - 1))
25275 : == (2 * 8 * BITS_PER_UNIT - 1)))
25276 : && ix86_pre_reload_split ()) &&
25277 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25278 : (TARGET_64BIT)) &&
25279 : #line 16984 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25280 : ( 1)))
25281 : return NULL;
25282 : return gen_split_602 (insn, operands);
25283 :
25284 : case 3:
25285 : if (!(
25286 : #line 18199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25287 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25288 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25289 : == 4 * BITS_PER_UNIT - 1
25290 : && ix86_pre_reload_split ()) &&
25291 : #line 18204 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25292 : ( 1)))
25293 : return NULL;
25294 : return gen_split_652 (insn, operands);
25295 :
25296 : case 4:
25297 : if (!(
25298 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25299 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25300 : && (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25301 : && ix86_pre_reload_split ()) &&
25302 : #line 18250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25303 : ( 1)))
25304 : return NULL;
25305 : return gen_split_664 (insn, operands);
25306 :
25307 : case 5:
25308 : if (!((
25309 : #line 18246 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25310 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25311 : && (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25312 : && ix86_pre_reload_split ()) &&
25313 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25314 : (TARGET_64BIT)) &&
25315 : #line 18250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25316 : ( 1)))
25317 : return NULL;
25318 : return gen_split_667 (insn, operands);
25319 :
25320 : case 6:
25321 : if (!(
25322 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25323 : (ix86_binary_operator_ok (ASHIFTRT, SImode, operands)
25324 : && ((INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1)) == 0
25325 : || (INTVAL (operands[3]) & (4 * BITS_PER_UNIT - 1))
25326 : == 4 * BITS_PER_UNIT - 1)
25327 : && ix86_pre_reload_split ()) &&
25328 : #line 18307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25329 : ( 1)))
25330 : return NULL;
25331 : return gen_split_676 (insn, operands);
25332 :
25333 : case 7:
25334 : if (!((
25335 : #line 18301 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25336 : (ix86_binary_operator_ok (ASHIFTRT, DImode, operands)
25337 : && ((INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1)) == 0
25338 : || (INTVAL (operands[3]) & (8 * BITS_PER_UNIT - 1))
25339 : == 8 * BITS_PER_UNIT - 1)
25340 : && ix86_pre_reload_split ()) &&
25341 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25342 : (TARGET_64BIT)) &&
25343 : #line 18307 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25344 : ( 1)))
25345 : return NULL;
25346 : return gen_split_679 (insn, operands);
25347 :
25348 : case 8:
25349 : if (!((
25350 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25351 : (INTVAL (operands[2]) == INTVAL (operands[3])
25352 : && UINTVAL (operands[2]) < 4 * BITS_PER_UNIT) &&
25353 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25354 : (!TARGET_64BIT)) &&
25355 : #line 18333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25356 : ( reload_completed)))
25357 : return NULL;
25358 : return gen_split_680 (insn, operands);
25359 :
25360 : case 9:
25361 : if (!((
25362 : #line 18330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25363 : (INTVAL (operands[2]) == INTVAL (operands[3])
25364 : && UINTVAL (operands[2]) < 8 * BITS_PER_UNIT) &&
25365 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25366 : (TARGET_64BIT)) &&
25367 : #line 18333 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25368 : ( reload_completed)))
25369 : return NULL;
25370 : return gen_split_681 (insn, operands);
25371 :
25372 : default:
25373 : return NULL;
25374 : }
25375 : }
25376 :
25377 : rtx_insn *
25378 : split_31 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25379 : {
25380 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25381 : rtx x2, x3, x4, x5, x6;
25382 : rtx_insn *res ATTRIBUTE_UNUSED;
25383 : x2 = XVECEXP (x1, 0, 0);
25384 : x3 = XEXP (x2, 1);
25385 : x4 = XEXP (x3, 0);
25386 : switch (GET_CODE (x4))
25387 : {
25388 : case REG:
25389 : case SUBREG:
25390 : case MEM:
25391 : switch (pattern378 (x1))
25392 : {
25393 : case 0:
25394 : x5 = XVECEXP (x1, 0, 1);
25395 : x6 = XEXP (x5, 0);
25396 : if (GET_CODE (x6) != REG
25397 : || REGNO (x6) != 17
25398 : || GET_MODE (x6) != E_CCmode)
25399 : return NULL;
25400 : switch (GET_MODE (operands[0]))
25401 : {
25402 : case E_DImode:
25403 : if (!nonimmediate_operand (operands[0], E_DImode)
25404 : || GET_MODE (x3) != E_DImode
25405 : || !nonimmediate_operand (operands[1], E_DImode)
25406 : || !((
25407 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25408 : (ix86_unary_operator_ok (NEG, DImode, operands, TARGET_APX_NDD)) &&
25409 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25410 : (!TARGET_64BIT)) &&
25411 : #line 14575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25412 : ( reload_completed)))
25413 : return NULL;
25414 : return gen_split_496 (insn, operands);
25415 :
25416 : case E_TImode:
25417 : if (!nonimmediate_operand (operands[0], E_TImode)
25418 : || GET_MODE (x3) != E_TImode
25419 : || !nonimmediate_operand (operands[1], E_TImode)
25420 : || !((
25421 : #line 14573 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25422 : (ix86_unary_operator_ok (NEG, TImode, operands, TARGET_APX_NDD)) &&
25423 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25424 : (TARGET_64BIT)) &&
25425 : #line 14575 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25426 : ( reload_completed)))
25427 : return NULL;
25428 : return gen_split_497 (insn, operands);
25429 :
25430 : case E_SFmode:
25431 : if (GET_MODE (x3) != E_SFmode)
25432 : return NULL;
25433 : if (fp_register_operand (operands[0], E_SFmode)
25434 : && fp_register_operand (operands[1], E_SFmode)
25435 : &&
25436 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25437 : (TARGET_80387 && reload_completed))
25438 : return gen_split_519 (insn, operands);
25439 : if (!general_reg_operand (operands[0], E_SFmode)
25440 : || !general_reg_operand (operands[1], E_SFmode)
25441 : || !
25442 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25443 : (TARGET_80387 && reload_completed))
25444 : return NULL;
25445 : return gen_split_525 (insn, operands);
25446 :
25447 : case E_DFmode:
25448 : if (GET_MODE (x3) != E_DFmode)
25449 : return NULL;
25450 : if (fp_register_operand (operands[0], E_DFmode)
25451 : && fp_register_operand (operands[1], E_DFmode)
25452 : &&
25453 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25454 : (TARGET_80387 && reload_completed))
25455 : return gen_split_521 (insn, operands);
25456 : if (!general_reg_operand (operands[0], E_DFmode)
25457 : || !general_reg_operand (operands[1], E_DFmode)
25458 : || !
25459 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25460 : (TARGET_80387 && reload_completed))
25461 : return NULL;
25462 : return gen_split_527 (insn, operands);
25463 :
25464 : case E_XFmode:
25465 : if (GET_MODE (x3) != E_XFmode)
25466 : return NULL;
25467 : if (fp_register_operand (operands[0], E_XFmode)
25468 : && fp_register_operand (operands[1], E_XFmode)
25469 : &&
25470 : #line 15162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25471 : (TARGET_80387 && reload_completed))
25472 : return gen_split_523 (insn, operands);
25473 : if (!general_reg_operand (operands[0], E_XFmode)
25474 : || !general_reg_operand (operands[1], E_XFmode)
25475 : || !
25476 : #line 15169 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25477 : (TARGET_80387 && reload_completed))
25478 : return NULL;
25479 : return gen_split_529 (insn, operands);
25480 :
25481 : default:
25482 : return NULL;
25483 : }
25484 :
25485 : case 1:
25486 : if (pattern843 (x1) != 0
25487 : || !(
25488 : #line 15093 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25489 : (TARGET_SSE) &&
25490 : #line 15095 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25491 : ( reload_completed)))
25492 : return NULL;
25493 : return gen_split_516 (insn, operands);
25494 :
25495 : case 2:
25496 : if (!(
25497 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25498 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25499 : #line 14735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25500 : ( reload_completed
25501 : && !(rtx_equal_p (operands[0], operands[1])))))
25502 : return NULL;
25503 : return gen_split_498 (insn, operands);
25504 :
25505 : case 3:
25506 : if (!(
25507 : #line 14731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25508 : (!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) &&
25509 : #line 14735 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25510 : ( reload_completed
25511 : && !(rtx_equal_p (operands[0], operands[1])))))
25512 : return NULL;
25513 : return gen_split_499 (insn, operands);
25514 :
25515 : default:
25516 : return NULL;
25517 : }
25518 :
25519 : case ABS:
25520 : switch (pattern380 (x1))
25521 : {
25522 : case 0:
25523 : if (((
25524 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25525 : (TARGET_CMOVE
25526 : && ix86_pre_reload_split ()) &&
25527 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25528 : (!TARGET_64BIT)) &&
25529 : #line 14992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25530 : ( 1)))
25531 : return gen_split_505 (insn, operands);
25532 : if (!((
25533 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25534 : (TARGET_CMOVE
25535 : && (DImode != QImode || !TARGET_PARTIAL_REG_STALL)
25536 : && ix86_pre_reload_split ()) &&
25537 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25538 : (TARGET_64BIT)) &&
25539 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25540 : ( 1)))
25541 : return NULL;
25542 : return gen_split_514 (insn, operands);
25543 :
25544 : case 1:
25545 : if (!((
25546 : #line 14989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25547 : (TARGET_CMOVE
25548 : && ix86_pre_reload_split ()) &&
25549 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25550 : (TARGET_64BIT)) &&
25551 : #line 14992 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25552 : ( 1)))
25553 : return NULL;
25554 : return gen_split_506 (insn, operands);
25555 :
25556 : case 2:
25557 : if (!(
25558 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25559 : (TARGET_CMOVE
25560 : && (QImode != QImode || !TARGET_PARTIAL_REG_STALL)
25561 : && ix86_pre_reload_split ()) &&
25562 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25563 : ( 1)))
25564 : return NULL;
25565 : return gen_split_511 (insn, operands);
25566 :
25567 : case 3:
25568 : if (!(
25569 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25570 : (TARGET_CMOVE
25571 : && (HImode != QImode || !TARGET_PARTIAL_REG_STALL)
25572 : && ix86_pre_reload_split ()) &&
25573 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25574 : ( 1)))
25575 : return NULL;
25576 : return gen_split_512 (insn, operands);
25577 :
25578 : case 4:
25579 : if (!(
25580 : #line 15060 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25581 : (TARGET_CMOVE
25582 : && (SImode != QImode || !TARGET_PARTIAL_REG_STALL)
25583 : && ix86_pre_reload_split ()) &&
25584 : #line 15064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25585 : ( 1)))
25586 : return NULL;
25587 : return gen_split_513 (insn, operands);
25588 :
25589 : case 5:
25590 : switch (GET_MODE (operands[0]))
25591 : {
25592 : case E_TFmode:
25593 : if (pattern1061 (x3,
25594 : E_TFmode) != 0
25595 : || !(
25596 : #line 15118 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25597 : (TARGET_SSE) &&
25598 : #line 15120 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25599 : ( reload_completed)))
25600 : return NULL;
25601 : return gen_split_517 (insn, operands);
25602 :
25603 : case E_SFmode:
25604 : if (pattern1062 (x3,
25605 : E_V4SFmode,
25606 : E_SFmode) != 0
25607 : || !(
25608 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25609 : (SSE_FLOAT_MODE_P (SFmode) && TARGET_SSE_MATH) &&
25610 : #line 15256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25611 : ( reload_completed)))
25612 : return NULL;
25613 : return gen_split_544 (insn, operands);
25614 :
25615 : case E_DFmode:
25616 : if (pattern1062 (x3,
25617 : E_V2DFmode,
25618 : E_DFmode) != 0
25619 : || !(
25620 : #line 15254 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25621 : (SSE_FLOAT_MODE_P (DFmode) && TARGET_SSE_MATH) &&
25622 : #line 15256 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25623 : ( reload_completed)))
25624 : return NULL;
25625 : return gen_split_545 (insn, operands);
25626 :
25627 : default:
25628 : return NULL;
25629 : }
25630 :
25631 : default:
25632 : return NULL;
25633 : }
25634 :
25635 : default:
25636 : return NULL;
25637 : }
25638 : }
25639 :
25640 : rtx_insn *
25641 : split_32 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25642 : {
25643 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25644 : rtx x2, x3, x4, x5, x6, x7, x8;
25645 : rtx_insn *res ATTRIBUTE_UNUSED;
25646 : if (pattern344 (x1) != 0)
25647 : return NULL;
25648 : x2 = XVECEXP (x1, 0, 0);
25649 : x3 = XEXP (x2, 1);
25650 : x4 = XEXP (x3, 0);
25651 : switch (GET_CODE (x4))
25652 : {
25653 : case REG:
25654 : case SUBREG:
25655 : case MEM:
25656 : operands[1] = x4;
25657 : switch (pattern1162 (x3))
25658 : {
25659 : case 0:
25660 : if (!(
25661 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25662 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25663 : #line 4852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25664 : ( reload_completed)))
25665 : return NULL;
25666 : return gen_split_63 (insn, operands);
25667 :
25668 : case 1:
25669 : if (!(
25670 : #line 4850 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25671 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25672 : #line 4852 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25673 : ( reload_completed)))
25674 : return NULL;
25675 : return gen_split_64 (insn, operands);
25676 :
25677 : case 2:
25678 : if (!(
25679 : #line 4904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25680 : (TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) &&
25681 : #line 4906 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25682 : ( reload_completed)))
25683 : return NULL;
25684 : return gen_split_65 (insn, operands);
25685 :
25686 : default:
25687 : return NULL;
25688 : }
25689 :
25690 : case PLUS:
25691 : if (GET_MODE (x4) != E_SImode
25692 : || !register_operand (operands[0], E_DImode)
25693 : || GET_MODE (x3) != E_DImode)
25694 : return NULL;
25695 : x5 = XEXP (x4, 0);
25696 : switch (GET_CODE (x5))
25697 : {
25698 : case REG:
25699 : case SUBREG:
25700 : operands[1] = x5;
25701 : if (!register_operand (operands[1], E_SImode))
25702 : return NULL;
25703 : x6 = XEXP (x4, 1);
25704 : operands[2] = x6;
25705 : if (!x86_64_nonmemory_operand (operands[2], E_SImode))
25706 : return NULL;
25707 : if (
25708 : #line 7110 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25709 : (TARGET_64BIT
25710 : && reload_completed && ix86_avoid_lea_for_add (insn, operands)))
25711 : return gen_split_130 (insn, operands);
25712 : if (!
25713 : #line 7160 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25714 : (TARGET_64BIT && reload_completed && ix86_lea_for_add_ok (insn, operands)))
25715 : return NULL;
25716 : return gen_split_139 (insn, operands);
25717 :
25718 : case UNSPEC:
25719 : if (pattern1165 (x5) != 0)
25720 : return NULL;
25721 : x6 = XEXP (x4, 1);
25722 : operands[1] = x6;
25723 : if (!register_operand (operands[1], E_SImode)
25724 : || !(
25725 : #line 23613 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25726 : (TARGET_X32) &&
25727 : #line 23615 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25728 : ( 1)))
25729 : return NULL;
25730 : return gen_split_932 (insn, operands);
25731 :
25732 : default:
25733 : return NULL;
25734 : }
25735 :
25736 : case ASHIFT:
25737 : if (GET_MODE (x4) != E_SImode
25738 : || GET_MODE (x3) != E_DImode)
25739 : return NULL;
25740 : x5 = XEXP (x4, 0);
25741 : operands[1] = x5;
25742 : x6 = XEXP (x4, 1);
25743 : operands[2] = x6;
25744 : switch (GET_CODE (operands[2]))
25745 : {
25746 : case REG:
25747 : case SUBREG:
25748 : if (!register_operand (operands[2], E_QImode)
25749 : || !register_operand (operands[0], E_DImode)
25750 : || !nonimmediate_operand (operands[1], E_SImode)
25751 : || !
25752 : #line 16424 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25753 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25754 : return NULL;
25755 : return gen_split_580 (insn, operands);
25756 :
25757 : case CONST_INT:
25758 : if (!const_0_to_3_operand (operands[2], E_VOIDmode)
25759 : || !general_reg_operand (operands[0], E_DImode)
25760 : || !index_reg_operand (operands[1], E_SImode)
25761 : || !
25762 : #line 16659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25763 : (TARGET_64BIT && reload_completed
25764 : && REGNO (operands[0]) != REGNO (operands[1])))
25765 : return NULL;
25766 : return gen_split_591 (insn, operands);
25767 :
25768 : default:
25769 : return NULL;
25770 : }
25771 :
25772 : case LSHIFTRT:
25773 : if (pattern1183 (x3) != 0
25774 : || !
25775 : #line 17858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25776 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25777 : return NULL;
25778 : return gen_split_632 (insn, operands);
25779 :
25780 : case ASHIFTRT:
25781 : if (pattern1183 (x3) != 0
25782 : || !
25783 : #line 17858 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25784 : (TARGET_64BIT && TARGET_BMI2 && reload_completed))
25785 : return NULL;
25786 : return gen_split_633 (insn, operands);
25787 :
25788 : case ROTATE:
25789 : if (pattern1184 (x3) != 0
25790 : || !
25791 : #line 18994 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25792 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
25793 : && !optimize_function_for_size_p (cfun)))
25794 : return NULL;
25795 : return gen_split_794 (insn, operands);
25796 :
25797 : case ROTATERT:
25798 : if (pattern1184 (x3) != 0
25799 : || !
25800 : #line 19010 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25801 : (TARGET_64BIT && TARGET_BMI2 && reload_completed
25802 : && !optimize_function_for_size_p (cfun)))
25803 : return NULL;
25804 : return gen_split_795 (insn, operands);
25805 :
25806 : case CTZ:
25807 : if (pattern1185 (x3,
25808 : E_SImode,
25809 : E_DImode) != 0
25810 : || !
25811 : #line 21542 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25812 : ((TARGET_BMI || TARGET_CPU_P (GENERIC))
25813 : && (TARGET_AVOID_FALSE_DEP_FOR_BMI || TARGET_AVOID_FALSE_DEP_FOR_TZCNT)
25814 : && epilogue_completed
25815 : && optimize_function_for_speed_p (cfun)
25816 : && !reg_mentioned_p (operands[0], operands[1])))
25817 : return NULL;
25818 : return gen_split_883 (insn, operands);
25819 :
25820 : case XOR:
25821 : if (GET_MODE (x4) != E_SImode)
25822 : return NULL;
25823 : x5 = XEXP (x4, 0);
25824 : if (GET_CODE (x5) != MINUS
25825 : || pattern1166 (x4) != 0
25826 : || !register_operand (operands[0], E_DImode)
25827 : || GET_MODE (x3) != E_DImode)
25828 : return NULL;
25829 : x7 = XEXP (x5, 1);
25830 : x8 = XEXP (x7, 0);
25831 : operands[1] = x8;
25832 : if (!nonimmediate_operand (operands[1], E_SImode)
25833 : || !(
25834 : #line 21705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25835 : (!TARGET_LZCNT && TARGET_64BIT && ix86_pre_reload_split ()) &&
25836 : #line 21707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25837 : ( 1)))
25838 : return NULL;
25839 : return gen_split_887 (insn, operands);
25840 :
25841 : case CLZ:
25842 : if (pattern1185 (x3,
25843 : E_SImode,
25844 : E_DImode) != 0
25845 : || !(
25846 : #line 21968 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25847 : (TARGET_LZCNT && TARGET_64BIT) &&
25848 : #line 21970 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25849 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25850 : && optimize_function_for_speed_p (cfun)
25851 : && !reg_mentioned_p (operands[0], operands[1]))))
25852 : return NULL;
25853 : return gen_split_899 (insn, operands);
25854 :
25855 : case POPCOUNT:
25856 : x5 = XEXP (x4, 0);
25857 : operands[1] = x5;
25858 : switch (GET_MODE (operands[0]))
25859 : {
25860 : case E_DImode:
25861 : if (pattern350 (x3,
25862 : E_SImode,
25863 : E_DImode) != 0
25864 : || !(
25865 : #line 22805 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25866 : (TARGET_POPCNT && TARGET_64BIT) &&
25867 : #line 22813 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25868 : ( TARGET_AVOID_FALSE_DEP_FOR_BMI && epilogue_completed
25869 : && optimize_function_for_speed_p (cfun)
25870 : && !reg_mentioned_p (operands[0], operands[1]))))
25871 : return NULL;
25872 : return gen_split_923 (insn, operands);
25873 :
25874 : case E_SImode:
25875 : if (pattern350 (x3,
25876 : E_HImode,
25877 : E_SImode) != 0
25878 : || !(
25879 : #line 22871 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25880 : (TARGET_POPCNT
25881 : && ix86_pre_reload_split ()) &&
25882 : #line 22874 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25883 : ( 1)))
25884 : return NULL;
25885 : return gen_split_925 (insn, operands);
25886 :
25887 : default:
25888 : return NULL;
25889 : }
25890 :
25891 : default:
25892 : return NULL;
25893 : }
25894 : }
25895 :
25896 : rtx_insn *
25897 : split_41 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
25898 : {
25899 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
25900 : rtx x2, x3, x4, x5, x6;
25901 : rtx_insn *res ATTRIBUTE_UNUSED;
25902 : x2 = XEXP (x1, 0);
25903 : operands[0] = x2;
25904 : x3 = XEXP (x1, 1);
25905 : x4 = XEXP (x3, 0);
25906 : switch (GET_CODE (x4))
25907 : {
25908 : case LEU:
25909 : x5 = XEXP (x4, 0);
25910 : operands[1] = x5;
25911 : if (!int_nonimmediate_operand (operands[1], E_VOIDmode))
25912 : return NULL;
25913 : x6 = XEXP (x4, 1);
25914 : operands[2] = x6;
25915 : if (!const_int_operand (operands[2], E_VOIDmode))
25916 : return NULL;
25917 : switch (GET_MODE (operands[0]))
25918 : {
25919 : case E_SImode:
25920 : if (!register_operand (operands[0], E_SImode)
25921 : || GET_MODE (x3) != E_SImode
25922 : || GET_MODE (x4) != E_SImode
25923 : || !
25924 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25925 : (x86_64_immediate_operand (operands[2], VOIDmode)
25926 : && INTVAL (operands[2]) != -1
25927 : && INTVAL (operands[2]) != 2147483647))
25928 : return NULL;
25929 : return gen_split_947 (insn, operands);
25930 :
25931 : case E_DImode:
25932 : if (!register_operand (operands[0], E_DImode)
25933 : || GET_MODE (x3) != E_DImode
25934 : || GET_MODE (x4) != E_DImode
25935 : || !(
25936 : #line 26741 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25937 : (x86_64_immediate_operand (operands[2], VOIDmode)
25938 : && INTVAL (operands[2]) != -1
25939 : && INTVAL (operands[2]) != 2147483647) &&
25940 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25941 : (TARGET_64BIT)))
25942 : return NULL;
25943 : return gen_split_948 (insn, operands);
25944 :
25945 : default:
25946 : return NULL;
25947 : }
25948 :
25949 : case EQ:
25950 : switch (pattern411 (x3))
25951 : {
25952 : case 0:
25953 : return gen_split_949 (insn, operands);
25954 :
25955 : case 1:
25956 : return gen_split_950 (insn, operands);
25957 :
25958 : case 2:
25959 : return gen_split_951 (insn, operands);
25960 :
25961 : case 3:
25962 : if (!
25963 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25964 : (TARGET_64BIT))
25965 : return NULL;
25966 : return gen_split_952 (insn, operands);
25967 :
25968 : default:
25969 : return NULL;
25970 : }
25971 :
25972 : case NE:
25973 : switch (pattern411 (x3))
25974 : {
25975 : case 0:
25976 : return gen_split_953 (insn, operands);
25977 :
25978 : case 1:
25979 : return gen_split_954 (insn, operands);
25980 :
25981 : case 2:
25982 : return gen_split_955 (insn, operands);
25983 :
25984 : case 3:
25985 : if (!
25986 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
25987 : (TARGET_64BIT))
25988 : return NULL;
25989 : return gen_split_956 (insn, operands);
25990 :
25991 : default:
25992 : return NULL;
25993 : }
25994 :
25995 : default:
25996 : return NULL;
25997 : }
25998 : }
25999 :
26000 : rtx_insn *
26001 : split_42 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26002 : {
26003 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26004 : rtx x2, x3, x4, x5, x6, x7, x8;
26005 : rtx_insn *res ATTRIBUTE_UNUSED;
26006 : x2 = XEXP (x1, 1);
26007 : x3 = XEXP (x2, 0);
26008 : x4 = XEXP (x3, 0);
26009 : if (GET_CODE (x4) != REG
26010 : || REGNO (x4) != 17)
26011 : return NULL;
26012 : x5 = XEXP (x3, 1);
26013 : if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26014 : return NULL;
26015 : x6 = XEXP (x1, 0);
26016 : operands[0] = x6;
26017 : x7 = XEXP (x2, 1);
26018 : operands[2] = x7;
26019 : x8 = XEXP (x2, 2);
26020 : operands[3] = x8;
26021 : switch (GET_MODE (operands[0]))
26022 : {
26023 : case E_HImode:
26024 : if (!register_operand (operands[0], E_HImode)
26025 : || GET_MODE (x2) != E_HImode
26026 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
26027 : return NULL;
26028 : if (nonimmediate_operand (operands[2], E_HImode)
26029 : && nonimmediate_operand (operands[3], E_HImode)
26030 : &&
26031 : #line 26834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26032 : (!TARGET_64BIT && TARGET_CMOVE
26033 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26034 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26035 : && can_create_pseudo_p ()
26036 : && optimize_insn_for_speed_p ()))
26037 : return gen_split_957 (insn, operands);
26038 : if (!register_operand (operands[2], E_HImode)
26039 : || !register_operand (operands[3], E_HImode)
26040 : || !
26041 : #line 26864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26042 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
26043 : && reload_completed))
26044 : return NULL;
26045 : return gen_split_961 (insn, operands);
26046 :
26047 : case E_SImode:
26048 : if (pattern1208 (x2,
26049 : E_SImode) != 0
26050 : || !
26051 : #line 26834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26052 : (!TARGET_64BIT && TARGET_CMOVE
26053 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26054 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26055 : && can_create_pseudo_p ()
26056 : && optimize_insn_for_speed_p ()))
26057 : return NULL;
26058 : return gen_split_958 (insn, operands);
26059 :
26060 : case E_DImode:
26061 : if (pattern1208 (x2,
26062 : E_DImode) != 0
26063 : || !(
26064 : #line 26834 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26065 : (!TARGET_64BIT && TARGET_CMOVE
26066 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26067 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26068 : && can_create_pseudo_p ()
26069 : && optimize_insn_for_speed_p ()) &&
26070 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26071 : (TARGET_64BIT)))
26072 : return NULL;
26073 : return gen_split_959 (insn, operands);
26074 :
26075 : case E_QImode:
26076 : if (pattern1209 (x2) != 0
26077 : || !
26078 : #line 26864 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26079 : (TARGET_CMOVE && !TARGET_PARTIAL_REG_STALL
26080 : && reload_completed))
26081 : return NULL;
26082 : return gen_split_960 (insn, operands);
26083 :
26084 : case E_DFmode:
26085 : if (GET_MODE (x2) != E_DFmode
26086 : || !nonimmediate_operand (operands[2], E_DFmode)
26087 : || !nonimmediate_operand (operands[3], E_DFmode))
26088 : return NULL;
26089 : if (general_reg_operand (operands[0], E_DFmode)
26090 : && fcmov_comparison_operator (operands[1], E_VOIDmode)
26091 : &&
26092 : #line 27080 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26093 : (!TARGET_64BIT && reload_completed))
26094 : return gen_split_962 (insn, operands);
26095 : if (!register_operand (operands[0], E_DFmode)
26096 : || !ix86_comparison_operator (operands[1], E_VOIDmode)
26097 : || !
26098 : #line 27114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26099 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
26100 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26101 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26102 : && can_create_pseudo_p ()
26103 : && optimize_insn_for_speed_p ()))
26104 : return NULL;
26105 : return gen_split_964 (insn, operands);
26106 :
26107 : case E_SFmode:
26108 : if (pattern1208 (x2,
26109 : E_SFmode) != 0
26110 : || !
26111 : #line 27114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26112 : (!TARGET_64BIT && TARGET_80387 && TARGET_CMOVE
26113 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
26114 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
26115 : && can_create_pseudo_p ()
26116 : && optimize_insn_for_speed_p ()))
26117 : return NULL;
26118 : return gen_split_963 (insn, operands);
26119 :
26120 : default:
26121 : return NULL;
26122 : }
26123 : }
26124 :
26125 : rtx_insn *
26126 : split_45 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26127 : {
26128 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26129 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26130 : rtx x10;
26131 : rtx_insn *res ATTRIBUTE_UNUSED;
26132 : x2 = XEXP (x1, 1);
26133 : x3 = XEXP (x2, 0);
26134 : switch (GET_CODE (x3))
26135 : {
26136 : case AND:
26137 : x4 = XEXP (x2, 1);
26138 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26139 : return NULL;
26140 : x5 = XEXP (x1, 0);
26141 : operands[0] = x5;
26142 : if (!flags_reg_operand (operands[0], E_VOIDmode))
26143 : return NULL;
26144 : operands[1] = x2;
26145 : if (!compare_operator (operands[1], E_VOIDmode))
26146 : return NULL;
26147 : x6 = XEXP (x3, 0);
26148 : operands[2] = x6;
26149 : if (!aligned_operand (operands[2], E_HImode))
26150 : return NULL;
26151 : x7 = XEXP (x3, 1);
26152 : operands[3] = x7;
26153 : if (!const_int_operand (operands[3], E_HImode)
26154 : || !
26155 : #line 28276 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
26156 : (! TARGET_PARTIAL_REG_STALL && reload_completed
26157 : && ! TARGET_FAST_PREFIX
26158 : && optimize_insn_for_speed_p ()
26159 : /* Ensure that the operand will remain sign-extended immediate. */
26160 : && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode)))
26161 : return NULL;
26162 : return gen_split_1013 (insn, operands);
26163 :
26164 : case UNSPEC:
26165 : if (XVECLEN (x3, 0) != 1
26166 : || XINT (x3, 1) != 50
26167 : || GET_MODE (x3) != E_SImode
26168 : || pattern46 (x1,
26169 : E_CCZmode) != 0)
26170 : return NULL;
26171 : x4 = XEXP (x2, 1);
26172 : operands[2] = x4;
26173 : if (!const_int_operand (operands[2], E_VOIDmode))
26174 : return NULL;
26175 : x8 = XVECEXP (x3, 0, 0);
26176 : switch (GET_CODE (x8))
26177 : {
26178 : case EQ:
26179 : x9 = XEXP (x8, 0);
26180 : operands[0] = x9;
26181 : x10 = XEXP (x8, 1);
26182 : operands[1] = x10;
26183 : switch (GET_MODE (x8))
26184 : {
26185 : case E_V32QImode:
26186 : if (!vector_operand (operands[0], E_V32QImode)
26187 : || !const0_operand (operands[1], E_V32QImode)
26188 : || !(
26189 : #line 22753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26190 : (TARGET_SSE4_1 && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
26191 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26192 : (TARGET_AVX2)))
26193 : return NULL;
26194 : return gen_split_3550 (insn, operands);
26195 :
26196 : case E_V16QImode:
26197 : if (!vector_operand (operands[0], E_V16QImode)
26198 : || !const0_operand (operands[1], E_V16QImode)
26199 : || !
26200 : #line 22753 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26201 : (TARGET_SSE4_1 && (INTVAL (operands[2]) == (int) (0xffff))))
26202 : return NULL;
26203 : return gen_split_3551 (insn, operands);
26204 :
26205 : default:
26206 : return NULL;
26207 : }
26208 :
26209 : case VEC_MERGE:
26210 : switch (pattern1271 (x8))
26211 : {
26212 : case 0:
26213 : if (!((
26214 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26215 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffffffff) &&
26216 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26217 : (TARGET_AVX2)) &&
26218 : #line 22772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26219 : ( 1)))
26220 : return NULL;
26221 : return gen_split_3552 (insn, operands);
26222 :
26223 : case 1:
26224 : if (!(
26225 : #line 22770 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26226 : (TARGET_AVX512VL && UINTVAL (operands[2]) <= 0xffff) &&
26227 : #line 22772 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26228 : ( 1)))
26229 : return NULL;
26230 : return gen_split_3553 (insn, operands);
26231 :
26232 : case 2:
26233 : if (!((
26234 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26235 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffffffff))) &&
26236 : #line 623 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26237 : (TARGET_AVX2)) &&
26238 : #line 22795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26239 : ( 1)))
26240 : return NULL;
26241 : return gen_split_3554 (insn, operands);
26242 :
26243 : case 3:
26244 : if (!(
26245 : #line 22793 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26246 : (TARGET_AVX512VL && (INTVAL (operands[2]) == (int) (0xffff))) &&
26247 : #line 22795 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26248 : ( 1)))
26249 : return NULL;
26250 : return gen_split_3555 (insn, operands);
26251 :
26252 : default:
26253 : return NULL;
26254 : }
26255 :
26256 : default:
26257 : return NULL;
26258 : }
26259 :
26260 : default:
26261 : return NULL;
26262 : }
26263 : }
26264 :
26265 : rtx_insn *
26266 : split_49 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26267 : {
26268 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26269 : rtx x2, x3, x4, x5, x6;
26270 : rtx_insn *res ATTRIBUTE_UNUSED;
26271 : x2 = XEXP (x1, 1);
26272 : x3 = XEXP (x2, 0);
26273 : if (GET_CODE (x3) != VEC_SELECT)
26274 : return NULL;
26275 : switch (pattern98 (x1))
26276 : {
26277 : case 0:
26278 : x4 = XEXP (x3, 0);
26279 : operands[1] = x4;
26280 : if (!register_operand (operands[1], E_V2SFmode)
26281 : || pattern976 (x2) != 0
26282 : || !register_operand (operands[0], E_SFmode)
26283 : || GET_MODE (x2) != E_SFmode
26284 : || GET_MODE (x3) != E_SFmode)
26285 : return NULL;
26286 : x5 = XEXP (x2, 1);
26287 : if (GET_MODE (x5) != E_SFmode)
26288 : return NULL;
26289 : x6 = XEXP (x5, 0);
26290 : if (!rtx_equal_p (x6, operands[1])
26291 : || !(
26292 : #line 1081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26293 : (TARGET_SSE3 && TARGET_MMX_WITH_SSE && ix86_partial_vec_fp_math
26294 : && ix86_pre_reload_split ()) &&
26295 : #line 1084 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26296 : ( 1)))
26297 : return NULL;
26298 : return gen_split_1073 (insn, operands);
26299 :
26300 : case 1:
26301 : switch (pattern864 (x2))
26302 : {
26303 : case 0:
26304 : if (!
26305 : #line 22975 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26306 : (TARGET_SSSE3 && reload_completed
26307 : && SSE_REGNO_P (REGNO (operands[0]))))
26308 : return NULL;
26309 : return gen_split_3558 (insn, operands);
26310 :
26311 : case 1:
26312 : if (!
26313 : #line 23062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26314 : (TARGET_SSSE3 && reload_completed
26315 : && SSE_REGNO_P (REGNO (operands[0]))))
26316 : return NULL;
26317 : return gen_split_3561 (insn, operands);
26318 :
26319 : default:
26320 : return NULL;
26321 : }
26322 :
26323 : default:
26324 : return NULL;
26325 : }
26326 : }
26327 :
26328 : rtx_insn *
26329 : split_51 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26330 : {
26331 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26332 : rtx x2, x3, x4, x5, x6, x7, x8;
26333 : rtx_insn *res ATTRIBUTE_UNUSED;
26334 : x2 = XEXP (x1, 1);
26335 : x3 = XEXP (x2, 1);
26336 : if (GET_CODE (x3) != PARALLEL)
26337 : return NULL;
26338 : x4 = XEXP (x1, 0);
26339 : operands[0] = x4;
26340 : x5 = XEXP (x2, 0);
26341 : switch (GET_CODE (x5))
26342 : {
26343 : case VEC_CONCAT:
26344 : switch (pattern274 (x2))
26345 : {
26346 : case 0:
26347 : x6 = XVECEXP (x3, 0, 1);
26348 : if (GET_CODE (x6) == CONST_INT)
26349 : {
26350 : switch (pattern980 (x2))
26351 : {
26352 : case 0:
26353 : if ((
26354 : #line 1714 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26355 : (TARGET_MMX_WITH_SSE) &&
26356 : #line 1716 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26357 : ( reload_completed)))
26358 : return gen_split_1074 (insn, operands);
26359 : break;
26360 :
26361 : case 1:
26362 : if ((
26363 : #line 5019 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26364 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26365 : #line 5024 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26366 : ( reload_completed
26367 : && SSE_REGNO_P (REGNO (operands[0])))))
26368 : return gen_split_1157 (insn, operands);
26369 : break;
26370 :
26371 : case 2:
26372 : if ((
26373 : #line 1731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26374 : (TARGET_MMX_WITH_SSE) &&
26375 : #line 1733 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26376 : ( reload_completed)))
26377 : return gen_split_1075 (insn, operands);
26378 : break;
26379 :
26380 : case 3:
26381 : if ((
26382 : #line 4998 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26383 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26384 : #line 5003 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26385 : ( reload_completed
26386 : && SSE_REGNO_P (REGNO (operands[0])))))
26387 : return gen_split_1156 (insn, operands);
26388 : break;
26389 :
26390 : default:
26391 : break;
26392 : }
26393 : }
26394 : x7 = XVECEXP (x3, 0, 0);
26395 : operands[3] = x7;
26396 : switch (pattern981 (x2))
26397 : {
26398 : case 0:
26399 : if (!(
26400 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26401 : (TARGET_SSE2) &&
26402 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26403 : ( reload_completed)))
26404 : return NULL;
26405 : return gen_split_1169 (insn, operands);
26406 :
26407 : case 1:
26408 : if (!(
26409 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26410 : (TARGET_SSE2) &&
26411 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26412 : ( reload_completed)))
26413 : return NULL;
26414 : return gen_split_1170 (insn, operands);
26415 :
26416 : case 2:
26417 : if (!(
26418 : #line 6225 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26419 : (TARGET_SSE2) &&
26420 : #line 6227 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26421 : ( reload_completed)))
26422 : return NULL;
26423 : return gen_split_1171 (insn, operands);
26424 :
26425 : default:
26426 : return NULL;
26427 : }
26428 :
26429 : case 1:
26430 : if (!(
26431 : #line 4878 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26432 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26433 : #line 4883 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26434 : ( reload_completed
26435 : && SSE_REGNO_P (REGNO (operands[0])))))
26436 : return NULL;
26437 : return gen_split_1150 (insn, operands);
26438 :
26439 : case 2:
26440 : if (!(
26441 : #line 4918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26442 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26443 : #line 4923 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26444 : ( reload_completed
26445 : && SSE_REGNO_P (REGNO (operands[0])))))
26446 : return NULL;
26447 : return gen_split_1152 (insn, operands);
26448 :
26449 : case 3:
26450 : if (!(
26451 : #line 4899 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26452 : (TARGET_SSE2) &&
26453 : #line 4901 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26454 : ( reload_completed)))
26455 : return NULL;
26456 : return gen_split_1151 (insn, operands);
26457 :
26458 : case 4:
26459 : if (!(
26460 : #line 4956 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26461 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26462 : #line 4961 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26463 : ( reload_completed
26464 : && SSE_REGNO_P (REGNO (operands[0])))))
26465 : return NULL;
26466 : return gen_split_1154 (insn, operands);
26467 :
26468 : case 5:
26469 : if (!(
26470 : #line 4939 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26471 : (TARGET_SSE2) &&
26472 : #line 4941 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26473 : ( reload_completed)))
26474 : return NULL;
26475 : return gen_split_1153 (insn, operands);
26476 :
26477 : case 6:
26478 : if (!(
26479 : #line 4977 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26480 : (TARGET_MMX || TARGET_MMX_WITH_SSE) &&
26481 : #line 4982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26482 : ( reload_completed
26483 : && SSE_REGNO_P (REGNO (operands[0])))))
26484 : return NULL;
26485 : return gen_split_1155 (insn, operands);
26486 :
26487 : default:
26488 : return NULL;
26489 : }
26490 :
26491 : case REG:
26492 : case SUBREG:
26493 : case MEM:
26494 : switch (XVECLEN (x3, 0))
26495 : {
26496 : case 1:
26497 : res = split_50 (x1, insn);
26498 : if (res != NULL_RTX)
26499 : return res;
26500 : break;
26501 :
26502 : case 2:
26503 : x7 = XVECEXP (x3, 0, 0);
26504 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 1])
26505 : {
26506 : x6 = XVECEXP (x3, 0, 1);
26507 : if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
26508 : && memory_operand (operands[0], E_V2SImode)
26509 : && GET_MODE (x2) == E_V2SImode
26510 : && rtx_equal_p (x5, operands[0])
26511 : &&
26512 : #line 5661 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/mmx.md"
26513 : (TARGET_64BIT && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())))
26514 : return gen_split_1161 (insn, operands);
26515 : }
26516 : break;
26517 :
26518 : default:
26519 : break;
26520 : }
26521 : if (XVECLEN (x3, 0) != 1)
26522 : return NULL;
26523 : x7 = XVECEXP (x3, 0, 0);
26524 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
26525 : && GET_MODE (x2) == E_DImode)
26526 : {
26527 : if (GET_CODE (x5) == SUBREG
26528 : && known_eq (SUBREG_BYTE (x5), 0)
26529 : && GET_MODE (x5) == E_V2DImode
26530 : && register_operand (operands[0], E_DImode))
26531 : {
26532 : x8 = XEXP (x5, 0);
26533 : switch (pattern1220 (x8))
26534 : {
26535 : case 0:
26536 : if (pshufb_truncv8hiv8qi_operand (operands[2], E_V16QImode)
26537 : && (
26538 : #line 15707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26539 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
26540 : #line 15709 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26541 : ( 1)))
26542 : return gen_split_3267 (insn, operands);
26543 : if (pshufb_truncv4siv4hi_operand (operands[2], E_V16QImode)
26544 : && (
26545 : #line 16062 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26546 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
26547 : #line 16064 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26548 : ( 1)))
26549 : return gen_split_3283 (insn, operands);
26550 : break;
26551 :
26552 : case 1:
26553 : if ((
26554 : #line 16303 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26555 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
26556 : #line 16305 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26557 : ( 1)))
26558 : return gen_split_3293 (insn, operands);
26559 : break;
26560 :
26561 : default:
26562 : break;
26563 : }
26564 : }
26565 : operands[1] = x5;
26566 : if (register_operand (operands[1], E_V2DImode))
26567 : {
26568 : if (general_reg_operand (operands[0], E_DImode)
26569 : &&
26570 : #line 21526 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26571 : (TARGET_SSE4_1 && !TARGET_64BIT
26572 : && reload_completed))
26573 : return gen_split_3479 (insn, operands);
26574 : if (nonimmediate_operand (operands[0], E_DImode)
26575 : &&
26576 : #line 21544 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26577 : (TARGET_SSE && reload_completed))
26578 : return gen_split_3481 (insn, operands);
26579 : }
26580 : }
26581 : if (!register_operand (operands[0], E_DImode)
26582 : || GET_MODE (x2) != E_DImode)
26583 : return NULL;
26584 : operands[1] = x5;
26585 : if (!memory_operand (operands[1], E_V2DImode))
26586 : return NULL;
26587 : operands[2] = x7;
26588 : if (!const_0_to_1_operand (operands[2], E_VOIDmode)
26589 : || !
26590 : #line 21731 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26591 : (TARGET_SSE && reload_completed))
26592 : return NULL;
26593 : return gen_split_3487 (insn, operands);
26594 :
26595 : case UNSPEC:
26596 : if (pattern275 (x2) != 0
26597 : || !
26598 : #line 8756 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26599 : (TARGET_SSE2 && reload_completed
26600 : && SSE_REG_P (operands[0])))
26601 : return NULL;
26602 : return gen_split_1601 (insn, operands);
26603 :
26604 : case FIX:
26605 : if (pattern277 (x2) != 0
26606 : || !
26607 : #line 8820 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26608 : (TARGET_SSE2 && reload_completed
26609 : && SSE_REG_P (operands[0])))
26610 : return NULL;
26611 : return gen_split_1603 (insn, operands);
26612 :
26613 : default:
26614 : return NULL;
26615 : }
26616 : }
26617 :
26618 : rtx_insn *
26619 : split_57 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
26620 : {
26621 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
26622 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
26623 : rtx x10, x11, x12, x13, x14;
26624 : rtx_insn *res ATTRIBUTE_UNUSED;
26625 : x2 = XEXP (x1, 1);
26626 : operands[3] = x2;
26627 : x3 = XEXP (x2, 0);
26628 : if (GET_CODE (x3) != UNSPEC
26629 : || XVECLEN (x3, 0) != 2
26630 : || XINT (x3, 1) != 131
26631 : || GET_MODE (x3) != E_CCZmode)
26632 : return NULL;
26633 : x4 = XVECEXP (x3, 0, 0);
26634 : if (GET_CODE (x4) != AND)
26635 : return NULL;
26636 : x5 = XEXP (x4, 0);
26637 : if (GET_CODE (x5) != NOT)
26638 : return NULL;
26639 : x6 = XVECEXP (x3, 0, 1);
26640 : if (GET_CODE (x6) != AND)
26641 : return NULL;
26642 : x7 = XEXP (x6, 0);
26643 : if (GET_CODE (x7) != NOT)
26644 : return NULL;
26645 : x8 = XEXP (x2, 1);
26646 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
26647 : return NULL;
26648 : x9 = XEXP (x5, 0);
26649 : operands[1] = x9;
26650 : x10 = XEXP (x4, 1);
26651 : operands[2] = x10;
26652 : x11 = XEXP (x7, 0);
26653 : if (!rtx_equal_p (x11, operands[1]))
26654 : return NULL;
26655 : x12 = XEXP (x6, 1);
26656 : if (!rtx_equal_p (x12, operands[2]))
26657 : return NULL;
26658 : x13 = XEXP (x1, 0);
26659 : switch (GET_CODE (x13))
26660 : {
26661 : case REG:
26662 : case SUBREG:
26663 : operands[0] = x13;
26664 : switch (GET_MODE (operands[0]))
26665 : {
26666 : case E_QImode:
26667 : if (!register_operand (operands[0], E_QImode))
26668 : return NULL;
26669 : switch (pattern1710 (x3,
26670 : E_QImode))
26671 : {
26672 : case 0:
26673 : if (!
26674 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26675 : (TARGET_SSE4_1))
26676 : return NULL;
26677 : return gen_split_3699 (insn, operands);
26678 :
26679 : case 1:
26680 : if (!
26681 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26682 : (TARGET_SSE4_1))
26683 : return NULL;
26684 : return gen_split_3700 (insn, operands);
26685 :
26686 : case 2:
26687 : if (!
26688 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26689 : (TARGET_SSE4_1))
26690 : return NULL;
26691 : return gen_split_3701 (insn, operands);
26692 :
26693 : case 3:
26694 : if (!
26695 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26696 : (TARGET_SSE4_1))
26697 : return NULL;
26698 : return gen_split_3702 (insn, operands);
26699 :
26700 : case 4:
26701 : if (!
26702 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26703 : (TARGET_SSE4_1))
26704 : return NULL;
26705 : return gen_split_3703 (insn, operands);
26706 :
26707 : case 5:
26708 : if (!
26709 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26710 : (TARGET_SSE4_1))
26711 : return NULL;
26712 : return gen_split_3704 (insn, operands);
26713 :
26714 : case 6:
26715 : if (!
26716 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26717 : (TARGET_SSE4_1))
26718 : return NULL;
26719 : return gen_split_3705 (insn, operands);
26720 :
26721 : case 7:
26722 : if (!(
26723 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26724 : (TARGET_SSE4_1) &&
26725 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26726 : (TARGET_AVX)))
26727 : return NULL;
26728 : return gen_split_3706 (insn, operands);
26729 :
26730 : case 8:
26731 : if (!(
26732 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26733 : (TARGET_SSE4_1) &&
26734 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26735 : (TARGET_AVX)))
26736 : return NULL;
26737 : return gen_split_3707 (insn, operands);
26738 :
26739 : case 9:
26740 : if (!(
26741 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26742 : (TARGET_SSE4_1) &&
26743 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26744 : (TARGET_AVX)))
26745 : return NULL;
26746 : return gen_split_3708 (insn, operands);
26747 :
26748 : case 10:
26749 : if (!(
26750 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26751 : (TARGET_SSE4_1) &&
26752 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26753 : (TARGET_AVX)))
26754 : return NULL;
26755 : return gen_split_3709 (insn, operands);
26756 :
26757 : case 11:
26758 : if (!(
26759 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26760 : (TARGET_SSE4_1) &&
26761 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26762 : (TARGET_AVX)))
26763 : return NULL;
26764 : return gen_split_3710 (insn, operands);
26765 :
26766 : case 12:
26767 : if (!(
26768 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26769 : (TARGET_SSE4_1) &&
26770 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26771 : (TARGET_AVX)))
26772 : return NULL;
26773 : return gen_split_3711 (insn, operands);
26774 :
26775 : case 13:
26776 : if (!(
26777 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26778 : (TARGET_SSE4_1) &&
26779 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26780 : (TARGET_AVX)))
26781 : return NULL;
26782 : return gen_split_3712 (insn, operands);
26783 :
26784 : default:
26785 : return NULL;
26786 : }
26787 :
26788 : case E_HImode:
26789 : if (!register_operand (operands[0], E_HImode))
26790 : return NULL;
26791 : switch (pattern1710 (x3,
26792 : E_HImode))
26793 : {
26794 : case 0:
26795 : if (!
26796 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26797 : (TARGET_SSE4_1))
26798 : return NULL;
26799 : return gen_split_3713 (insn, operands);
26800 :
26801 : case 1:
26802 : if (!
26803 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26804 : (TARGET_SSE4_1))
26805 : return NULL;
26806 : return gen_split_3714 (insn, operands);
26807 :
26808 : case 2:
26809 : if (!
26810 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26811 : (TARGET_SSE4_1))
26812 : return NULL;
26813 : return gen_split_3715 (insn, operands);
26814 :
26815 : case 3:
26816 : if (!
26817 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26818 : (TARGET_SSE4_1))
26819 : return NULL;
26820 : return gen_split_3716 (insn, operands);
26821 :
26822 : case 4:
26823 : if (!
26824 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26825 : (TARGET_SSE4_1))
26826 : return NULL;
26827 : return gen_split_3717 (insn, operands);
26828 :
26829 : case 5:
26830 : if (!
26831 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26832 : (TARGET_SSE4_1))
26833 : return NULL;
26834 : return gen_split_3718 (insn, operands);
26835 :
26836 : case 6:
26837 : if (!
26838 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26839 : (TARGET_SSE4_1))
26840 : return NULL;
26841 : return gen_split_3719 (insn, operands);
26842 :
26843 : case 7:
26844 : if (!(
26845 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26846 : (TARGET_SSE4_1) &&
26847 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26848 : (TARGET_AVX)))
26849 : return NULL;
26850 : return gen_split_3720 (insn, operands);
26851 :
26852 : case 8:
26853 : if (!(
26854 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26855 : (TARGET_SSE4_1) &&
26856 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26857 : (TARGET_AVX)))
26858 : return NULL;
26859 : return gen_split_3721 (insn, operands);
26860 :
26861 : case 9:
26862 : if (!(
26863 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26864 : (TARGET_SSE4_1) &&
26865 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26866 : (TARGET_AVX)))
26867 : return NULL;
26868 : return gen_split_3722 (insn, operands);
26869 :
26870 : case 10:
26871 : if (!(
26872 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26873 : (TARGET_SSE4_1) &&
26874 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26875 : (TARGET_AVX)))
26876 : return NULL;
26877 : return gen_split_3723 (insn, operands);
26878 :
26879 : case 11:
26880 : if (!(
26881 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26882 : (TARGET_SSE4_1) &&
26883 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26884 : (TARGET_AVX)))
26885 : return NULL;
26886 : return gen_split_3724 (insn, operands);
26887 :
26888 : case 12:
26889 : if (!(
26890 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26891 : (TARGET_SSE4_1) &&
26892 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26893 : (TARGET_AVX)))
26894 : return NULL;
26895 : return gen_split_3725 (insn, operands);
26896 :
26897 : case 13:
26898 : if (!(
26899 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26900 : (TARGET_SSE4_1) &&
26901 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26902 : (TARGET_AVX)))
26903 : return NULL;
26904 : return gen_split_3726 (insn, operands);
26905 :
26906 : default:
26907 : return NULL;
26908 : }
26909 :
26910 : case E_SImode:
26911 : if (!register_operand (operands[0], E_SImode))
26912 : return NULL;
26913 : switch (pattern1710 (x3,
26914 : E_SImode))
26915 : {
26916 : case 0:
26917 : if (!
26918 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26919 : (TARGET_SSE4_1))
26920 : return NULL;
26921 : return gen_split_3727 (insn, operands);
26922 :
26923 : case 1:
26924 : if (!
26925 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26926 : (TARGET_SSE4_1))
26927 : return NULL;
26928 : return gen_split_3728 (insn, operands);
26929 :
26930 : case 2:
26931 : if (!
26932 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26933 : (TARGET_SSE4_1))
26934 : return NULL;
26935 : return gen_split_3729 (insn, operands);
26936 :
26937 : case 3:
26938 : if (!
26939 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26940 : (TARGET_SSE4_1))
26941 : return NULL;
26942 : return gen_split_3730 (insn, operands);
26943 :
26944 : case 4:
26945 : if (!
26946 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26947 : (TARGET_SSE4_1))
26948 : return NULL;
26949 : return gen_split_3731 (insn, operands);
26950 :
26951 : case 5:
26952 : if (!
26953 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26954 : (TARGET_SSE4_1))
26955 : return NULL;
26956 : return gen_split_3732 (insn, operands);
26957 :
26958 : case 6:
26959 : if (!
26960 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26961 : (TARGET_SSE4_1))
26962 : return NULL;
26963 : return gen_split_3733 (insn, operands);
26964 :
26965 : case 7:
26966 : if (!(
26967 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26968 : (TARGET_SSE4_1) &&
26969 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26970 : (TARGET_AVX)))
26971 : return NULL;
26972 : return gen_split_3734 (insn, operands);
26973 :
26974 : case 8:
26975 : if (!(
26976 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26977 : (TARGET_SSE4_1) &&
26978 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26979 : (TARGET_AVX)))
26980 : return NULL;
26981 : return gen_split_3735 (insn, operands);
26982 :
26983 : case 9:
26984 : if (!(
26985 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26986 : (TARGET_SSE4_1) &&
26987 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26988 : (TARGET_AVX)))
26989 : return NULL;
26990 : return gen_split_3736 (insn, operands);
26991 :
26992 : case 10:
26993 : if (!(
26994 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26995 : (TARGET_SSE4_1) &&
26996 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
26997 : (TARGET_AVX)))
26998 : return NULL;
26999 : return gen_split_3737 (insn, operands);
27000 :
27001 : case 11:
27002 : if (!(
27003 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27004 : (TARGET_SSE4_1) &&
27005 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27006 : (TARGET_AVX)))
27007 : return NULL;
27008 : return gen_split_3738 (insn, operands);
27009 :
27010 : case 12:
27011 : if (!(
27012 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27013 : (TARGET_SSE4_1) &&
27014 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27015 : (TARGET_AVX)))
27016 : return NULL;
27017 : return gen_split_3739 (insn, operands);
27018 :
27019 : case 13:
27020 : if (!(
27021 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27022 : (TARGET_SSE4_1) &&
27023 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27024 : (TARGET_AVX)))
27025 : return NULL;
27026 : return gen_split_3740 (insn, operands);
27027 :
27028 : default:
27029 : return NULL;
27030 : }
27031 :
27032 : case E_DImode:
27033 : if (!register_operand (operands[0], E_DImode))
27034 : return NULL;
27035 : switch (pattern1710 (x3,
27036 : E_DImode))
27037 : {
27038 : case 0:
27039 : if (!(
27040 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27041 : (TARGET_SSE4_1) &&
27042 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27043 : (TARGET_64BIT)))
27044 : return NULL;
27045 : return gen_split_3741 (insn, operands);
27046 :
27047 : case 1:
27048 : if (!(
27049 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27050 : (TARGET_SSE4_1) &&
27051 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27052 : (TARGET_64BIT)))
27053 : return NULL;
27054 : return gen_split_3742 (insn, operands);
27055 :
27056 : case 2:
27057 : if (!(
27058 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27059 : (TARGET_SSE4_1) &&
27060 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27061 : (TARGET_64BIT)))
27062 : return NULL;
27063 : return gen_split_3743 (insn, operands);
27064 :
27065 : case 3:
27066 : if (!(
27067 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27068 : (TARGET_SSE4_1) &&
27069 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27070 : (TARGET_64BIT)))
27071 : return NULL;
27072 : return gen_split_3744 (insn, operands);
27073 :
27074 : case 4:
27075 : if (!(
27076 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27077 : (TARGET_SSE4_1) &&
27078 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27079 : (TARGET_64BIT)))
27080 : return NULL;
27081 : return gen_split_3745 (insn, operands);
27082 :
27083 : case 5:
27084 : if (!(
27085 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27086 : (TARGET_SSE4_1) &&
27087 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27088 : (TARGET_64BIT)))
27089 : return NULL;
27090 : return gen_split_3746 (insn, operands);
27091 :
27092 : case 6:
27093 : if (!(
27094 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27095 : (TARGET_SSE4_1) &&
27096 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27097 : (TARGET_64BIT)))
27098 : return NULL;
27099 : return gen_split_3747 (insn, operands);
27100 :
27101 : case 7:
27102 : if (!(
27103 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27104 : (TARGET_SSE4_1) && ((((((
27105 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27106 : (TARGET_64BIT) &&
27107 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27108 : (TARGET_AVX)) &&
27109 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27110 : (TARGET_AVX)) &&
27111 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27112 : (TARGET_AVX)) &&
27113 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27114 : (TARGET_AVX)) &&
27115 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27116 : (TARGET_AVX)) &&
27117 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27118 : (TARGET_AVX))))
27119 : return NULL;
27120 : return gen_split_3748 (insn, operands);
27121 :
27122 : case 8:
27123 : if (!(
27124 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27125 : (TARGET_SSE4_1) && ((((((
27126 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27127 : (TARGET_64BIT) &&
27128 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27129 : (TARGET_AVX)) &&
27130 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27131 : (TARGET_AVX)) &&
27132 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27133 : (TARGET_AVX)) &&
27134 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27135 : (TARGET_AVX)) &&
27136 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27137 : (TARGET_AVX)) &&
27138 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27139 : (TARGET_AVX))))
27140 : return NULL;
27141 : return gen_split_3749 (insn, operands);
27142 :
27143 : case 9:
27144 : if (!(
27145 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27146 : (TARGET_SSE4_1) && ((((((
27147 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27148 : (TARGET_64BIT) &&
27149 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27150 : (TARGET_AVX)) &&
27151 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27152 : (TARGET_AVX)) &&
27153 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27154 : (TARGET_AVX)) &&
27155 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27156 : (TARGET_AVX)) &&
27157 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27158 : (TARGET_AVX)) &&
27159 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27160 : (TARGET_AVX))))
27161 : return NULL;
27162 : return gen_split_3750 (insn, operands);
27163 :
27164 : case 10:
27165 : if (!(
27166 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27167 : (TARGET_SSE4_1) && ((((((
27168 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27169 : (TARGET_64BIT) &&
27170 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27171 : (TARGET_AVX)) &&
27172 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27173 : (TARGET_AVX)) &&
27174 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27175 : (TARGET_AVX)) &&
27176 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27177 : (TARGET_AVX)) &&
27178 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27179 : (TARGET_AVX)) &&
27180 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27181 : (TARGET_AVX))))
27182 : return NULL;
27183 : return gen_split_3751 (insn, operands);
27184 :
27185 : case 11:
27186 : if (!(
27187 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27188 : (TARGET_SSE4_1) && ((((((
27189 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27190 : (TARGET_64BIT) &&
27191 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27192 : (TARGET_AVX)) &&
27193 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27194 : (TARGET_AVX)) &&
27195 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27196 : (TARGET_AVX)) &&
27197 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27198 : (TARGET_AVX)) &&
27199 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27200 : (TARGET_AVX)) &&
27201 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27202 : (TARGET_AVX))))
27203 : return NULL;
27204 : return gen_split_3752 (insn, operands);
27205 :
27206 : case 12:
27207 : if (!(
27208 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27209 : (TARGET_SSE4_1) && ((((((
27210 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27211 : (TARGET_64BIT) &&
27212 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27213 : (TARGET_AVX)) &&
27214 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27215 : (TARGET_AVX)) &&
27216 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27217 : (TARGET_AVX)) &&
27218 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27219 : (TARGET_AVX)) &&
27220 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27221 : (TARGET_AVX)) &&
27222 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27223 : (TARGET_AVX))))
27224 : return NULL;
27225 : return gen_split_3753 (insn, operands);
27226 :
27227 : case 13:
27228 : if (!(
27229 : #line 25989 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27230 : (TARGET_SSE4_1) && ((((((
27231 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
27232 : (TARGET_64BIT) &&
27233 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27234 : (TARGET_AVX)) &&
27235 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27236 : (TARGET_AVX)) &&
27237 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27238 : (TARGET_AVX)) &&
27239 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27240 : (TARGET_AVX)) &&
27241 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27242 : (TARGET_AVX)) &&
27243 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27244 : (TARGET_AVX))))
27245 : return NULL;
27246 : return gen_split_3754 (insn, operands);
27247 :
27248 : default:
27249 : return NULL;
27250 : }
27251 :
27252 : default:
27253 : return NULL;
27254 : }
27255 :
27256 : case STRICT_LOW_PART:
27257 : x14 = XEXP (x13, 0);
27258 : operands[0] = x14;
27259 : if (!register_operand (operands[0], E_QImode))
27260 : return NULL;
27261 : switch (pattern1710 (x3,
27262 : E_QImode))
27263 : {
27264 : case 0:
27265 : if (!
27266 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27267 : (TARGET_SSE4_1))
27268 : return NULL;
27269 : return gen_split_3755 (insn, operands);
27270 :
27271 : case 1:
27272 : if (!
27273 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27274 : (TARGET_SSE4_1))
27275 : return NULL;
27276 : return gen_split_3756 (insn, operands);
27277 :
27278 : case 2:
27279 : if (!
27280 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27281 : (TARGET_SSE4_1))
27282 : return NULL;
27283 : return gen_split_3757 (insn, operands);
27284 :
27285 : case 3:
27286 : if (!
27287 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27288 : (TARGET_SSE4_1))
27289 : return NULL;
27290 : return gen_split_3758 (insn, operands);
27291 :
27292 : case 4:
27293 : if (!
27294 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27295 : (TARGET_SSE4_1))
27296 : return NULL;
27297 : return gen_split_3759 (insn, operands);
27298 :
27299 : case 5:
27300 : if (!
27301 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27302 : (TARGET_SSE4_1))
27303 : return NULL;
27304 : return gen_split_3760 (insn, operands);
27305 :
27306 : case 6:
27307 : if (!
27308 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27309 : (TARGET_SSE4_1))
27310 : return NULL;
27311 : return gen_split_3761 (insn, operands);
27312 :
27313 : case 7:
27314 : if (!(
27315 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27316 : (TARGET_SSE4_1) &&
27317 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27318 : (TARGET_AVX)))
27319 : return NULL;
27320 : return gen_split_3762 (insn, operands);
27321 :
27322 : case 8:
27323 : if (!(
27324 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27325 : (TARGET_SSE4_1) &&
27326 : #line 602 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27327 : (TARGET_AVX)))
27328 : return NULL;
27329 : return gen_split_3763 (insn, operands);
27330 :
27331 : case 9:
27332 : if (!(
27333 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27334 : (TARGET_SSE4_1) &&
27335 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27336 : (TARGET_AVX)))
27337 : return NULL;
27338 : return gen_split_3764 (insn, operands);
27339 :
27340 : case 10:
27341 : if (!(
27342 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27343 : (TARGET_SSE4_1) &&
27344 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27345 : (TARGET_AVX)))
27346 : return NULL;
27347 : return gen_split_3765 (insn, operands);
27348 :
27349 : case 11:
27350 : if (!(
27351 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27352 : (TARGET_SSE4_1) &&
27353 : #line 603 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27354 : (TARGET_AVX)))
27355 : return NULL;
27356 : return gen_split_3766 (insn, operands);
27357 :
27358 : case 12:
27359 : if (!(
27360 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27361 : (TARGET_SSE4_1) &&
27362 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27363 : (TARGET_AVX)))
27364 : return NULL;
27365 : return gen_split_3767 (insn, operands);
27366 :
27367 : case 13:
27368 : if (!(
27369 : #line 26004 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27370 : (TARGET_SSE4_1) &&
27371 : #line 604 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27372 : (TARGET_AVX)))
27373 : return NULL;
27374 : return gen_split_3768 (insn, operands);
27375 :
27376 : default:
27377 : return NULL;
27378 : }
27379 :
27380 : default:
27381 : return NULL;
27382 : }
27383 : }
27384 :
27385 : rtx_insn *
27386 : split_67 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
27387 : {
27388 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
27389 : rtx x2, x3, x4;
27390 : rtx_insn *res ATTRIBUTE_UNUSED;
27391 : x2 = XEXP (x1, 1);
27392 : x3 = XEXP (x2, 0);
27393 : x4 = XEXP (x3, 0);
27394 : switch (GET_CODE (x4))
27395 : {
27396 : case REG:
27397 : case SUBREG:
27398 : case MEM:
27399 : case NOT:
27400 : switch (pattern535 (x2))
27401 : {
27402 : case 0:
27403 : if (!((
27404 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27405 : ((64 == 64 || TARGET_AVX512VL
27406 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27407 : && ix86_pre_reload_split ()
27408 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27409 : STRIP_UNARY (operands[4]))
27410 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27411 : STRIP_UNARY (operands[4]))
27412 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27413 : STRIP_UNARY (operands[3]))
27414 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27415 : STRIP_UNARY (operands[3])))) &&
27416 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27417 : (TARGET_AVX512F)) &&
27418 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27419 : ( 1)))
27420 : return NULL;
27421 : return gen_split_1752 (insn, operands);
27422 :
27423 : case 1:
27424 : if (!((
27425 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27426 : ((32 == 64 || TARGET_AVX512VL
27427 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27428 : && ix86_pre_reload_split ()
27429 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27430 : STRIP_UNARY (operands[4]))
27431 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27432 : STRIP_UNARY (operands[4]))
27433 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27434 : STRIP_UNARY (operands[3]))
27435 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27436 : STRIP_UNARY (operands[3])))) &&
27437 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27438 : (TARGET_AVX)) &&
27439 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27440 : ( 1)))
27441 : return NULL;
27442 : return gen_split_1779 (insn, operands);
27443 :
27444 : case 2:
27445 : if (!(
27446 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27447 : ((16 == 64 || TARGET_AVX512VL
27448 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27449 : && ix86_pre_reload_split ()
27450 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27451 : STRIP_UNARY (operands[4]))
27452 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27453 : STRIP_UNARY (operands[4]))
27454 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27455 : STRIP_UNARY (operands[3]))
27456 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27457 : STRIP_UNARY (operands[3])))) &&
27458 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27459 : ( 1)))
27460 : return NULL;
27461 : return gen_split_1806 (insn, operands);
27462 :
27463 : case 3:
27464 : if (!((
27465 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27466 : ((64 == 64 || TARGET_AVX512VL
27467 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27468 : && ix86_pre_reload_split ()
27469 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27470 : STRIP_UNARY (operands[4]))
27471 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27472 : STRIP_UNARY (operands[4]))
27473 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27474 : STRIP_UNARY (operands[3]))
27475 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27476 : STRIP_UNARY (operands[3])))) &&
27477 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27478 : (TARGET_AVX512F)) &&
27479 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27480 : ( 1)))
27481 : return NULL;
27482 : return gen_split_1833 (insn, operands);
27483 :
27484 : case 4:
27485 : if (!((
27486 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27487 : ((32 == 64 || TARGET_AVX512VL
27488 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27489 : && ix86_pre_reload_split ()
27490 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27491 : STRIP_UNARY (operands[4]))
27492 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27493 : STRIP_UNARY (operands[4]))
27494 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27495 : STRIP_UNARY (operands[3]))
27496 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27497 : STRIP_UNARY (operands[3])))) &&
27498 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27499 : (TARGET_AVX)) &&
27500 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27501 : ( 1)))
27502 : return NULL;
27503 : return gen_split_1860 (insn, operands);
27504 :
27505 : case 5:
27506 : if (!(
27507 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27508 : ((16 == 64 || TARGET_AVX512VL
27509 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27510 : && ix86_pre_reload_split ()
27511 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27512 : STRIP_UNARY (operands[4]))
27513 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27514 : STRIP_UNARY (operands[4]))
27515 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27516 : STRIP_UNARY (operands[3]))
27517 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27518 : STRIP_UNARY (operands[3])))) &&
27519 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27520 : ( 1)))
27521 : return NULL;
27522 : return gen_split_1887 (insn, operands);
27523 :
27524 : case 6:
27525 : if (!((
27526 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27527 : ((64 == 64 || TARGET_AVX512VL
27528 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27529 : && ix86_pre_reload_split ()
27530 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27531 : STRIP_UNARY (operands[4]))
27532 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27533 : STRIP_UNARY (operands[4]))
27534 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27535 : STRIP_UNARY (operands[3]))
27536 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27537 : STRIP_UNARY (operands[3])))) &&
27538 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27539 : (TARGET_AVX512F)) &&
27540 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27541 : ( 1)))
27542 : return NULL;
27543 : return gen_split_1914 (insn, operands);
27544 :
27545 : case 7:
27546 : if (!((
27547 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27548 : ((32 == 64 || TARGET_AVX512VL
27549 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27550 : && ix86_pre_reload_split ()
27551 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27552 : STRIP_UNARY (operands[4]))
27553 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27554 : STRIP_UNARY (operands[4]))
27555 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27556 : STRIP_UNARY (operands[3]))
27557 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27558 : STRIP_UNARY (operands[3])))) &&
27559 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27560 : (TARGET_AVX)) &&
27561 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27562 : ( 1)))
27563 : return NULL;
27564 : return gen_split_1941 (insn, operands);
27565 :
27566 : case 8:
27567 : if (!(
27568 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27569 : ((16 == 64 || TARGET_AVX512VL
27570 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27571 : && ix86_pre_reload_split ()
27572 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27573 : STRIP_UNARY (operands[4]))
27574 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27575 : STRIP_UNARY (operands[4]))
27576 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27577 : STRIP_UNARY (operands[3]))
27578 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27579 : STRIP_UNARY (operands[3])))) &&
27580 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27581 : ( 1)))
27582 : return NULL;
27583 : return gen_split_1968 (insn, operands);
27584 :
27585 : case 9:
27586 : if (!((
27587 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27588 : ((64 == 64 || TARGET_AVX512VL
27589 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27590 : && ix86_pre_reload_split ()
27591 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27592 : STRIP_UNARY (operands[4]))
27593 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27594 : STRIP_UNARY (operands[4]))
27595 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27596 : STRIP_UNARY (operands[3]))
27597 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27598 : STRIP_UNARY (operands[3])))) &&
27599 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27600 : (TARGET_AVX512F)) &&
27601 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27602 : ( 1)))
27603 : return NULL;
27604 : return gen_split_1995 (insn, operands);
27605 :
27606 : case 10:
27607 : if (!((
27608 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27609 : ((32 == 64 || TARGET_AVX512VL
27610 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27611 : && ix86_pre_reload_split ()
27612 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27613 : STRIP_UNARY (operands[4]))
27614 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27615 : STRIP_UNARY (operands[4]))
27616 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27617 : STRIP_UNARY (operands[3]))
27618 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27619 : STRIP_UNARY (operands[3])))) &&
27620 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27621 : (TARGET_AVX)) &&
27622 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27623 : ( 1)))
27624 : return NULL;
27625 : return gen_split_2022 (insn, operands);
27626 :
27627 : case 11:
27628 : if (!(
27629 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27630 : ((16 == 64 || TARGET_AVX512VL
27631 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27632 : && ix86_pre_reload_split ()
27633 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27634 : STRIP_UNARY (operands[4]))
27635 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27636 : STRIP_UNARY (operands[4]))
27637 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27638 : STRIP_UNARY (operands[3]))
27639 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27640 : STRIP_UNARY (operands[3])))) &&
27641 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27642 : ( 1)))
27643 : return NULL;
27644 : return gen_split_2049 (insn, operands);
27645 :
27646 : case 12:
27647 : if (!((
27648 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27649 : ((64 == 64 || TARGET_AVX512VL
27650 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27651 : && ix86_pre_reload_split ()
27652 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27653 : STRIP_UNARY (operands[4]))
27654 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27655 : STRIP_UNARY (operands[4]))
27656 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27657 : STRIP_UNARY (operands[3]))
27658 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27659 : STRIP_UNARY (operands[3])))) &&
27660 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27661 : (TARGET_AVX512F)) &&
27662 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27663 : ( 1)))
27664 : return NULL;
27665 : return gen_split_1755 (insn, operands);
27666 :
27667 : case 13:
27668 : if (!((
27669 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27670 : ((32 == 64 || TARGET_AVX512VL
27671 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27672 : && ix86_pre_reload_split ()
27673 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27674 : STRIP_UNARY (operands[4]))
27675 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27676 : STRIP_UNARY (operands[4]))
27677 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27678 : STRIP_UNARY (operands[3]))
27679 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27680 : STRIP_UNARY (operands[3])))) &&
27681 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27682 : (TARGET_AVX)) &&
27683 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27684 : ( 1)))
27685 : return NULL;
27686 : return gen_split_1782 (insn, operands);
27687 :
27688 : case 14:
27689 : if (!(
27690 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27691 : ((16 == 64 || TARGET_AVX512VL
27692 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27693 : && ix86_pre_reload_split ()
27694 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27695 : STRIP_UNARY (operands[4]))
27696 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27697 : STRIP_UNARY (operands[4]))
27698 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27699 : STRIP_UNARY (operands[3]))
27700 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27701 : STRIP_UNARY (operands[3])))) &&
27702 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27703 : ( 1)))
27704 : return NULL;
27705 : return gen_split_1809 (insn, operands);
27706 :
27707 : case 15:
27708 : if (!((
27709 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27710 : ((64 == 64 || TARGET_AVX512VL
27711 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27712 : && ix86_pre_reload_split ()
27713 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27714 : STRIP_UNARY (operands[4]))
27715 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27716 : STRIP_UNARY (operands[4]))
27717 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27718 : STRIP_UNARY (operands[3]))
27719 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27720 : STRIP_UNARY (operands[3])))) &&
27721 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27722 : (TARGET_AVX512F)) &&
27723 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27724 : ( 1)))
27725 : return NULL;
27726 : return gen_split_1836 (insn, operands);
27727 :
27728 : case 16:
27729 : if (!((
27730 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27731 : ((32 == 64 || TARGET_AVX512VL
27732 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27733 : && ix86_pre_reload_split ()
27734 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27735 : STRIP_UNARY (operands[4]))
27736 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27737 : STRIP_UNARY (operands[4]))
27738 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27739 : STRIP_UNARY (operands[3]))
27740 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27741 : STRIP_UNARY (operands[3])))) &&
27742 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27743 : (TARGET_AVX)) &&
27744 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27745 : ( 1)))
27746 : return NULL;
27747 : return gen_split_1863 (insn, operands);
27748 :
27749 : case 17:
27750 : if (!(
27751 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27752 : ((16 == 64 || TARGET_AVX512VL
27753 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27754 : && ix86_pre_reload_split ()
27755 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27756 : STRIP_UNARY (operands[4]))
27757 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27758 : STRIP_UNARY (operands[4]))
27759 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27760 : STRIP_UNARY (operands[3]))
27761 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27762 : STRIP_UNARY (operands[3])))) &&
27763 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27764 : ( 1)))
27765 : return NULL;
27766 : return gen_split_1890 (insn, operands);
27767 :
27768 : case 18:
27769 : if (!((
27770 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27771 : ((64 == 64 || TARGET_AVX512VL
27772 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27773 : && ix86_pre_reload_split ()
27774 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27775 : STRIP_UNARY (operands[4]))
27776 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27777 : STRIP_UNARY (operands[4]))
27778 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27779 : STRIP_UNARY (operands[3]))
27780 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27781 : STRIP_UNARY (operands[3])))) &&
27782 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27783 : (TARGET_AVX512F)) &&
27784 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27785 : ( 1)))
27786 : return NULL;
27787 : return gen_split_1917 (insn, operands);
27788 :
27789 : case 19:
27790 : if (!((
27791 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27792 : ((32 == 64 || TARGET_AVX512VL
27793 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27794 : && ix86_pre_reload_split ()
27795 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27796 : STRIP_UNARY (operands[4]))
27797 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27798 : STRIP_UNARY (operands[4]))
27799 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27800 : STRIP_UNARY (operands[3]))
27801 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27802 : STRIP_UNARY (operands[3])))) &&
27803 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27804 : (TARGET_AVX)) &&
27805 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27806 : ( 1)))
27807 : return NULL;
27808 : return gen_split_1944 (insn, operands);
27809 :
27810 : case 20:
27811 : if (!(
27812 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27813 : ((16 == 64 || TARGET_AVX512VL
27814 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27815 : && ix86_pre_reload_split ()
27816 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27817 : STRIP_UNARY (operands[4]))
27818 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27819 : STRIP_UNARY (operands[4]))
27820 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27821 : STRIP_UNARY (operands[3]))
27822 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27823 : STRIP_UNARY (operands[3])))) &&
27824 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27825 : ( 1)))
27826 : return NULL;
27827 : return gen_split_1971 (insn, operands);
27828 :
27829 : case 21:
27830 : if (!((
27831 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27832 : ((64 == 64 || TARGET_AVX512VL
27833 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27834 : && ix86_pre_reload_split ()
27835 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27836 : STRIP_UNARY (operands[4]))
27837 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27838 : STRIP_UNARY (operands[4]))
27839 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27840 : STRIP_UNARY (operands[3]))
27841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27842 : STRIP_UNARY (operands[3])))) &&
27843 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27844 : (TARGET_AVX512F)) &&
27845 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27846 : ( 1)))
27847 : return NULL;
27848 : return gen_split_1998 (insn, operands);
27849 :
27850 : case 22:
27851 : if (!((
27852 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27853 : ((32 == 64 || TARGET_AVX512VL
27854 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27855 : && ix86_pre_reload_split ()
27856 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27857 : STRIP_UNARY (operands[4]))
27858 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27859 : STRIP_UNARY (operands[4]))
27860 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27861 : STRIP_UNARY (operands[3]))
27862 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27863 : STRIP_UNARY (operands[3])))) &&
27864 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27865 : (TARGET_AVX)) &&
27866 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27867 : ( 1)))
27868 : return NULL;
27869 : return gen_split_2025 (insn, operands);
27870 :
27871 : case 23:
27872 : if (!(
27873 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27874 : ((16 == 64 || TARGET_AVX512VL
27875 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27876 : && ix86_pre_reload_split ()
27877 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27878 : STRIP_UNARY (operands[4]))
27879 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27880 : STRIP_UNARY (operands[4]))
27881 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27882 : STRIP_UNARY (operands[3]))
27883 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27884 : STRIP_UNARY (operands[3])))) &&
27885 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27886 : ( 1)))
27887 : return NULL;
27888 : return gen_split_2052 (insn, operands);
27889 :
27890 : case 24:
27891 : if (!((
27892 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27893 : ((64 == 64 || TARGET_AVX512VL
27894 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27895 : && ix86_pre_reload_split ()
27896 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27897 : STRIP_UNARY (operands[4]))
27898 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27899 : STRIP_UNARY (operands[4]))
27900 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27901 : STRIP_UNARY (operands[3]))
27902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27903 : STRIP_UNARY (operands[3])))) &&
27904 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27905 : (TARGET_AVX512F)) &&
27906 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27907 : ( 1)))
27908 : return NULL;
27909 : return gen_split_1758 (insn, operands);
27910 :
27911 : case 25:
27912 : if (!((
27913 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27914 : ((32 == 64 || TARGET_AVX512VL
27915 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27916 : && ix86_pre_reload_split ()
27917 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27918 : STRIP_UNARY (operands[4]))
27919 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27920 : STRIP_UNARY (operands[4]))
27921 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27922 : STRIP_UNARY (operands[3]))
27923 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27924 : STRIP_UNARY (operands[3])))) &&
27925 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27926 : (TARGET_AVX)) &&
27927 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27928 : ( 1)))
27929 : return NULL;
27930 : return gen_split_1785 (insn, operands);
27931 :
27932 : case 26:
27933 : if (!(
27934 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27935 : ((16 == 64 || TARGET_AVX512VL
27936 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27937 : && ix86_pre_reload_split ()
27938 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27939 : STRIP_UNARY (operands[4]))
27940 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27941 : STRIP_UNARY (operands[4]))
27942 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27943 : STRIP_UNARY (operands[3]))
27944 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27945 : STRIP_UNARY (operands[3])))) &&
27946 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27947 : ( 1)))
27948 : return NULL;
27949 : return gen_split_1812 (insn, operands);
27950 :
27951 : case 27:
27952 : if (!((
27953 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27954 : ((64 == 64 || TARGET_AVX512VL
27955 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27956 : && ix86_pre_reload_split ()
27957 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27958 : STRIP_UNARY (operands[4]))
27959 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27960 : STRIP_UNARY (operands[4]))
27961 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27962 : STRIP_UNARY (operands[3]))
27963 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27964 : STRIP_UNARY (operands[3])))) &&
27965 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27966 : (TARGET_AVX512F)) &&
27967 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27968 : ( 1)))
27969 : return NULL;
27970 : return gen_split_1839 (insn, operands);
27971 :
27972 : case 28:
27973 : if (!((
27974 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27975 : ((32 == 64 || TARGET_AVX512VL
27976 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27977 : && ix86_pre_reload_split ()
27978 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
27979 : STRIP_UNARY (operands[4]))
27980 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27981 : STRIP_UNARY (operands[4]))
27982 : || rtx_equal_p (STRIP_UNARY (operands[1]),
27983 : STRIP_UNARY (operands[3]))
27984 : || rtx_equal_p (STRIP_UNARY (operands[2]),
27985 : STRIP_UNARY (operands[3])))) &&
27986 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27987 : (TARGET_AVX)) &&
27988 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27989 : ( 1)))
27990 : return NULL;
27991 : return gen_split_1866 (insn, operands);
27992 :
27993 : case 29:
27994 : if (!(
27995 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
27996 : ((16 == 64 || TARGET_AVX512VL
27997 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
27998 : && ix86_pre_reload_split ()
27999 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28000 : STRIP_UNARY (operands[4]))
28001 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28002 : STRIP_UNARY (operands[4]))
28003 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28004 : STRIP_UNARY (operands[3]))
28005 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28006 : STRIP_UNARY (operands[3])))) &&
28007 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28008 : ( 1)))
28009 : return NULL;
28010 : return gen_split_1893 (insn, operands);
28011 :
28012 : case 30:
28013 : if (!((
28014 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28015 : ((64 == 64 || TARGET_AVX512VL
28016 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28017 : && ix86_pre_reload_split ()
28018 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28019 : STRIP_UNARY (operands[4]))
28020 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28021 : STRIP_UNARY (operands[4]))
28022 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28023 : STRIP_UNARY (operands[3]))
28024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28025 : STRIP_UNARY (operands[3])))) &&
28026 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28027 : (TARGET_AVX512F)) &&
28028 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28029 : ( 1)))
28030 : return NULL;
28031 : return gen_split_1920 (insn, operands);
28032 :
28033 : case 31:
28034 : if (!((
28035 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28036 : ((32 == 64 || TARGET_AVX512VL
28037 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28038 : && ix86_pre_reload_split ()
28039 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28040 : STRIP_UNARY (operands[4]))
28041 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28042 : STRIP_UNARY (operands[4]))
28043 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28044 : STRIP_UNARY (operands[3]))
28045 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28046 : STRIP_UNARY (operands[3])))) &&
28047 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28048 : (TARGET_AVX)) &&
28049 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28050 : ( 1)))
28051 : return NULL;
28052 : return gen_split_1947 (insn, operands);
28053 :
28054 : case 32:
28055 : if (!(
28056 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28057 : ((16 == 64 || TARGET_AVX512VL
28058 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28059 : && ix86_pre_reload_split ()
28060 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28061 : STRIP_UNARY (operands[4]))
28062 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28063 : STRIP_UNARY (operands[4]))
28064 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28065 : STRIP_UNARY (operands[3]))
28066 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28067 : STRIP_UNARY (operands[3])))) &&
28068 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28069 : ( 1)))
28070 : return NULL;
28071 : return gen_split_1974 (insn, operands);
28072 :
28073 : case 33:
28074 : if (!((
28075 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28076 : ((64 == 64 || TARGET_AVX512VL
28077 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28078 : && ix86_pre_reload_split ()
28079 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28080 : STRIP_UNARY (operands[4]))
28081 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28082 : STRIP_UNARY (operands[4]))
28083 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28084 : STRIP_UNARY (operands[3]))
28085 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28086 : STRIP_UNARY (operands[3])))) &&
28087 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28088 : (TARGET_AVX512F)) &&
28089 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28090 : ( 1)))
28091 : return NULL;
28092 : return gen_split_2001 (insn, operands);
28093 :
28094 : case 34:
28095 : if (!((
28096 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28097 : ((32 == 64 || TARGET_AVX512VL
28098 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28099 : && ix86_pre_reload_split ()
28100 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28101 : STRIP_UNARY (operands[4]))
28102 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28103 : STRIP_UNARY (operands[4]))
28104 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28105 : STRIP_UNARY (operands[3]))
28106 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28107 : STRIP_UNARY (operands[3])))) &&
28108 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28109 : (TARGET_AVX)) &&
28110 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28111 : ( 1)))
28112 : return NULL;
28113 : return gen_split_2028 (insn, operands);
28114 :
28115 : case 35:
28116 : if (!(
28117 : #line 14102 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28118 : ((16 == 64 || TARGET_AVX512VL
28119 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28120 : && ix86_pre_reload_split ()
28121 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28122 : STRIP_UNARY (operands[4]))
28123 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28124 : STRIP_UNARY (operands[4]))
28125 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28126 : STRIP_UNARY (operands[3]))
28127 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28128 : STRIP_UNARY (operands[3])))) &&
28129 : #line 14114 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28130 : ( 1)))
28131 : return NULL;
28132 : return gen_split_2055 (insn, operands);
28133 :
28134 : case 36:
28135 : if (!((
28136 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28137 : ((64 == 64 || TARGET_AVX512VL
28138 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28139 : && ix86_pre_reload_split ()) &&
28140 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28141 : (TARGET_AVX512F)) &&
28142 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28143 : ( 1)))
28144 : return NULL;
28145 : return gen_split_3042 (insn, operands);
28146 :
28147 : case 37:
28148 : if (!((
28149 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28150 : ((32 == 64 || TARGET_AVX512VL
28151 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28152 : && ix86_pre_reload_split ()) &&
28153 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28154 : (TARGET_AVX)) &&
28155 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28156 : ( 1)))
28157 : return NULL;
28158 : return gen_split_3051 (insn, operands);
28159 :
28160 : case 38:
28161 : if (!(
28162 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28163 : ((16 == 64 || TARGET_AVX512VL
28164 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28165 : && ix86_pre_reload_split ()) &&
28166 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28167 : ( 1)))
28168 : return NULL;
28169 : return gen_split_3060 (insn, operands);
28170 :
28171 : case 39:
28172 : if (!((
28173 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28174 : ((64 == 64 || TARGET_AVX512VL
28175 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28176 : && ix86_pre_reload_split ()) &&
28177 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28178 : (TARGET_AVX512F)) &&
28179 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28180 : ( 1)))
28181 : return NULL;
28182 : return gen_split_3069 (insn, operands);
28183 :
28184 : case 40:
28185 : if (!((
28186 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28187 : ((32 == 64 || TARGET_AVX512VL
28188 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28189 : && ix86_pre_reload_split ()) &&
28190 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28191 : (TARGET_AVX)) &&
28192 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28193 : ( 1)))
28194 : return NULL;
28195 : return gen_split_3078 (insn, operands);
28196 :
28197 : case 41:
28198 : if (!(
28199 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28200 : ((16 == 64 || TARGET_AVX512VL
28201 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28202 : && ix86_pre_reload_split ()) &&
28203 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28204 : ( 1)))
28205 : return NULL;
28206 : return gen_split_3087 (insn, operands);
28207 :
28208 : case 42:
28209 : if (!((
28210 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28211 : ((64 == 64 || TARGET_AVX512VL
28212 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28213 : && ix86_pre_reload_split ()) &&
28214 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28215 : (TARGET_AVX512F)) &&
28216 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28217 : ( 1)))
28218 : return NULL;
28219 : return gen_split_3096 (insn, operands);
28220 :
28221 : case 43:
28222 : if (!((
28223 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28224 : ((32 == 64 || TARGET_AVX512VL
28225 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28226 : && ix86_pre_reload_split ()) &&
28227 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28228 : (TARGET_AVX)) &&
28229 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28230 : ( 1)))
28231 : return NULL;
28232 : return gen_split_3105 (insn, operands);
28233 :
28234 : case 44:
28235 : if (!(
28236 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28237 : ((16 == 64 || TARGET_AVX512VL
28238 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28239 : && ix86_pre_reload_split ()) &&
28240 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28241 : ( 1)))
28242 : return NULL;
28243 : return gen_split_3114 (insn, operands);
28244 :
28245 : case 45:
28246 : if (!((
28247 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28248 : ((64 == 64 || TARGET_AVX512VL
28249 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28250 : && ix86_pre_reload_split ()) &&
28251 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28252 : (TARGET_AVX512F)) &&
28253 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28254 : ( 1)))
28255 : return NULL;
28256 : return gen_split_3123 (insn, operands);
28257 :
28258 : case 46:
28259 : if (!((
28260 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28261 : ((32 == 64 || TARGET_AVX512VL
28262 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28263 : && ix86_pre_reload_split ()) &&
28264 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28265 : (TARGET_AVX)) &&
28266 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28267 : ( 1)))
28268 : return NULL;
28269 : return gen_split_3132 (insn, operands);
28270 :
28271 : case 47:
28272 : if (!(
28273 : #line 14271 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28274 : ((16 == 64 || TARGET_AVX512VL
28275 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28276 : && ix86_pre_reload_split ()) &&
28277 : #line 14275 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28278 : ( 1)))
28279 : return NULL;
28280 : return gen_split_3141 (insn, operands);
28281 :
28282 : default:
28283 : return NULL;
28284 : }
28285 :
28286 : case AND:
28287 : switch (pattern537 (x2))
28288 : {
28289 : case 0:
28290 : if (!((
28291 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28292 : ((64 == 64 || TARGET_AVX512VL
28293 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28294 : && ix86_pre_reload_split ()
28295 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28296 : STRIP_UNARY (operands[4]))
28297 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28298 : STRIP_UNARY (operands[4]))
28299 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28300 : STRIP_UNARY (operands[3]))
28301 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28302 : STRIP_UNARY (operands[3])))) &&
28303 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28304 : (TARGET_AVX512F)) &&
28305 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28306 : ( 1)))
28307 : return NULL;
28308 : return gen_split_2400 (insn, operands);
28309 :
28310 : case 1:
28311 : if (!((
28312 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28313 : ((32 == 64 || TARGET_AVX512VL
28314 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28315 : && ix86_pre_reload_split ()
28316 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28317 : STRIP_UNARY (operands[4]))
28318 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28319 : STRIP_UNARY (operands[4]))
28320 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28321 : STRIP_UNARY (operands[3]))
28322 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28323 : STRIP_UNARY (operands[3])))) &&
28324 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28325 : (TARGET_AVX)) &&
28326 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28327 : ( 1)))
28328 : return NULL;
28329 : return gen_split_2427 (insn, operands);
28330 :
28331 : case 2:
28332 : if (!(
28333 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28334 : ((16 == 64 || TARGET_AVX512VL
28335 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28336 : && ix86_pre_reload_split ()
28337 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28338 : STRIP_UNARY (operands[4]))
28339 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28340 : STRIP_UNARY (operands[4]))
28341 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28342 : STRIP_UNARY (operands[3]))
28343 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28344 : STRIP_UNARY (operands[3])))) &&
28345 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28346 : ( 1)))
28347 : return NULL;
28348 : return gen_split_2454 (insn, operands);
28349 :
28350 : case 3:
28351 : if (!((
28352 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28353 : ((64 == 64 || TARGET_AVX512VL
28354 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28355 : && ix86_pre_reload_split ()
28356 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28357 : STRIP_UNARY (operands[4]))
28358 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28359 : STRIP_UNARY (operands[4]))
28360 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28361 : STRIP_UNARY (operands[3]))
28362 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28363 : STRIP_UNARY (operands[3])))) &&
28364 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28365 : (TARGET_AVX512F)) &&
28366 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28367 : ( 1)))
28368 : return NULL;
28369 : return gen_split_2481 (insn, operands);
28370 :
28371 : case 4:
28372 : if (!((
28373 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28374 : ((32 == 64 || TARGET_AVX512VL
28375 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28376 : && ix86_pre_reload_split ()
28377 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28378 : STRIP_UNARY (operands[4]))
28379 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28380 : STRIP_UNARY (operands[4]))
28381 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28382 : STRIP_UNARY (operands[3]))
28383 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28384 : STRIP_UNARY (operands[3])))) &&
28385 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28386 : (TARGET_AVX)) &&
28387 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28388 : ( 1)))
28389 : return NULL;
28390 : return gen_split_2508 (insn, operands);
28391 :
28392 : case 5:
28393 : if (!(
28394 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28395 : ((16 == 64 || TARGET_AVX512VL
28396 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28397 : && ix86_pre_reload_split ()
28398 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28399 : STRIP_UNARY (operands[4]))
28400 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28401 : STRIP_UNARY (operands[4]))
28402 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28403 : STRIP_UNARY (operands[3]))
28404 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28405 : STRIP_UNARY (operands[3])))) &&
28406 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28407 : ( 1)))
28408 : return NULL;
28409 : return gen_split_2535 (insn, operands);
28410 :
28411 : case 6:
28412 : if (!((
28413 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28414 : ((64 == 64 || TARGET_AVX512VL
28415 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28416 : && ix86_pre_reload_split ()
28417 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28418 : STRIP_UNARY (operands[4]))
28419 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28420 : STRIP_UNARY (operands[4]))
28421 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28422 : STRIP_UNARY (operands[3]))
28423 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28424 : STRIP_UNARY (operands[3])))) &&
28425 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28426 : (TARGET_AVX512F)) &&
28427 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28428 : ( 1)))
28429 : return NULL;
28430 : return gen_split_2562 (insn, operands);
28431 :
28432 : case 7:
28433 : if (!((
28434 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28435 : ((32 == 64 || TARGET_AVX512VL
28436 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28437 : && ix86_pre_reload_split ()
28438 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28439 : STRIP_UNARY (operands[4]))
28440 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28441 : STRIP_UNARY (operands[4]))
28442 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28443 : STRIP_UNARY (operands[3]))
28444 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28445 : STRIP_UNARY (operands[3])))) &&
28446 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28447 : (TARGET_AVX)) &&
28448 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28449 : ( 1)))
28450 : return NULL;
28451 : return gen_split_2589 (insn, operands);
28452 :
28453 : case 8:
28454 : if (!(
28455 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28456 : ((16 == 64 || TARGET_AVX512VL
28457 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28458 : && ix86_pre_reload_split ()
28459 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28460 : STRIP_UNARY (operands[4]))
28461 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28462 : STRIP_UNARY (operands[4]))
28463 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28464 : STRIP_UNARY (operands[3]))
28465 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28466 : STRIP_UNARY (operands[3])))) &&
28467 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28468 : ( 1)))
28469 : return NULL;
28470 : return gen_split_2616 (insn, operands);
28471 :
28472 : case 9:
28473 : if (!((
28474 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28475 : ((64 == 64 || TARGET_AVX512VL
28476 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28477 : && ix86_pre_reload_split ()
28478 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28479 : STRIP_UNARY (operands[4]))
28480 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28481 : STRIP_UNARY (operands[4]))
28482 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28483 : STRIP_UNARY (operands[3]))
28484 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28485 : STRIP_UNARY (operands[3])))) &&
28486 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28487 : (TARGET_AVX512F)) &&
28488 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28489 : ( 1)))
28490 : return NULL;
28491 : return gen_split_2643 (insn, operands);
28492 :
28493 : case 10:
28494 : if (!((
28495 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28496 : ((32 == 64 || TARGET_AVX512VL
28497 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28498 : && ix86_pre_reload_split ()
28499 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28500 : STRIP_UNARY (operands[4]))
28501 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28502 : STRIP_UNARY (operands[4]))
28503 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28504 : STRIP_UNARY (operands[3]))
28505 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28506 : STRIP_UNARY (operands[3])))) &&
28507 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28508 : (TARGET_AVX)) &&
28509 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28510 : ( 1)))
28511 : return NULL;
28512 : return gen_split_2670 (insn, operands);
28513 :
28514 : case 11:
28515 : if (!(
28516 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28517 : ((16 == 64 || TARGET_AVX512VL
28518 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28519 : && ix86_pre_reload_split ()
28520 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28521 : STRIP_UNARY (operands[4]))
28522 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28523 : STRIP_UNARY (operands[4]))
28524 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28525 : STRIP_UNARY (operands[3]))
28526 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28527 : STRIP_UNARY (operands[3])))) &&
28528 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28529 : ( 1)))
28530 : return NULL;
28531 : return gen_split_2697 (insn, operands);
28532 :
28533 : default:
28534 : return NULL;
28535 : }
28536 :
28537 : case IOR:
28538 : switch (pattern537 (x2))
28539 : {
28540 : case 0:
28541 : if (!((
28542 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28543 : ((64 == 64 || TARGET_AVX512VL
28544 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28545 : && ix86_pre_reload_split ()
28546 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28547 : STRIP_UNARY (operands[4]))
28548 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28549 : STRIP_UNARY (operands[4]))
28550 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28551 : STRIP_UNARY (operands[3]))
28552 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28553 : STRIP_UNARY (operands[3])))) &&
28554 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28555 : (TARGET_AVX512F)) &&
28556 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28557 : ( 1)))
28558 : return NULL;
28559 : return gen_split_2403 (insn, operands);
28560 :
28561 : case 1:
28562 : if (!((
28563 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28564 : ((32 == 64 || TARGET_AVX512VL
28565 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28566 : && ix86_pre_reload_split ()
28567 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28568 : STRIP_UNARY (operands[4]))
28569 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28570 : STRIP_UNARY (operands[4]))
28571 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28572 : STRIP_UNARY (operands[3]))
28573 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28574 : STRIP_UNARY (operands[3])))) &&
28575 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28576 : (TARGET_AVX)) &&
28577 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28578 : ( 1)))
28579 : return NULL;
28580 : return gen_split_2430 (insn, operands);
28581 :
28582 : case 2:
28583 : if (!(
28584 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28585 : ((16 == 64 || TARGET_AVX512VL
28586 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28587 : && ix86_pre_reload_split ()
28588 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28589 : STRIP_UNARY (operands[4]))
28590 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28591 : STRIP_UNARY (operands[4]))
28592 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28593 : STRIP_UNARY (operands[3]))
28594 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28595 : STRIP_UNARY (operands[3])))) &&
28596 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28597 : ( 1)))
28598 : return NULL;
28599 : return gen_split_2457 (insn, operands);
28600 :
28601 : case 3:
28602 : if (!((
28603 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28604 : ((64 == 64 || TARGET_AVX512VL
28605 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28606 : && ix86_pre_reload_split ()
28607 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28608 : STRIP_UNARY (operands[4]))
28609 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28610 : STRIP_UNARY (operands[4]))
28611 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28612 : STRIP_UNARY (operands[3]))
28613 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28614 : STRIP_UNARY (operands[3])))) &&
28615 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28616 : (TARGET_AVX512F)) &&
28617 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28618 : ( 1)))
28619 : return NULL;
28620 : return gen_split_2484 (insn, operands);
28621 :
28622 : case 4:
28623 : if (!((
28624 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28625 : ((32 == 64 || TARGET_AVX512VL
28626 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28627 : && ix86_pre_reload_split ()
28628 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28629 : STRIP_UNARY (operands[4]))
28630 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28631 : STRIP_UNARY (operands[4]))
28632 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28633 : STRIP_UNARY (operands[3]))
28634 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28635 : STRIP_UNARY (operands[3])))) &&
28636 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28637 : (TARGET_AVX)) &&
28638 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28639 : ( 1)))
28640 : return NULL;
28641 : return gen_split_2511 (insn, operands);
28642 :
28643 : case 5:
28644 : if (!(
28645 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28646 : ((16 == 64 || TARGET_AVX512VL
28647 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28648 : && ix86_pre_reload_split ()
28649 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28650 : STRIP_UNARY (operands[4]))
28651 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28652 : STRIP_UNARY (operands[4]))
28653 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28654 : STRIP_UNARY (operands[3]))
28655 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28656 : STRIP_UNARY (operands[3])))) &&
28657 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28658 : ( 1)))
28659 : return NULL;
28660 : return gen_split_2538 (insn, operands);
28661 :
28662 : case 6:
28663 : if (!((
28664 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28665 : ((64 == 64 || TARGET_AVX512VL
28666 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28667 : && ix86_pre_reload_split ()
28668 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28669 : STRIP_UNARY (operands[4]))
28670 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28671 : STRIP_UNARY (operands[4]))
28672 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28673 : STRIP_UNARY (operands[3]))
28674 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28675 : STRIP_UNARY (operands[3])))) &&
28676 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28677 : (TARGET_AVX512F)) &&
28678 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28679 : ( 1)))
28680 : return NULL;
28681 : return gen_split_2565 (insn, operands);
28682 :
28683 : case 7:
28684 : if (!((
28685 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28686 : ((32 == 64 || TARGET_AVX512VL
28687 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28688 : && ix86_pre_reload_split ()
28689 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28690 : STRIP_UNARY (operands[4]))
28691 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28692 : STRIP_UNARY (operands[4]))
28693 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28694 : STRIP_UNARY (operands[3]))
28695 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28696 : STRIP_UNARY (operands[3])))) &&
28697 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28698 : (TARGET_AVX)) &&
28699 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28700 : ( 1)))
28701 : return NULL;
28702 : return gen_split_2592 (insn, operands);
28703 :
28704 : case 8:
28705 : if (!(
28706 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28707 : ((16 == 64 || TARGET_AVX512VL
28708 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28709 : && ix86_pre_reload_split ()
28710 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28711 : STRIP_UNARY (operands[4]))
28712 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28713 : STRIP_UNARY (operands[4]))
28714 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28715 : STRIP_UNARY (operands[3]))
28716 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28717 : STRIP_UNARY (operands[3])))) &&
28718 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28719 : ( 1)))
28720 : return NULL;
28721 : return gen_split_2619 (insn, operands);
28722 :
28723 : case 9:
28724 : if (!((
28725 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28726 : ((64 == 64 || TARGET_AVX512VL
28727 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28728 : && ix86_pre_reload_split ()
28729 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28730 : STRIP_UNARY (operands[4]))
28731 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28732 : STRIP_UNARY (operands[4]))
28733 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28734 : STRIP_UNARY (operands[3]))
28735 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28736 : STRIP_UNARY (operands[3])))) &&
28737 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28738 : (TARGET_AVX512F)) &&
28739 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28740 : ( 1)))
28741 : return NULL;
28742 : return gen_split_2646 (insn, operands);
28743 :
28744 : case 10:
28745 : if (!((
28746 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28747 : ((32 == 64 || TARGET_AVX512VL
28748 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28749 : && ix86_pre_reload_split ()
28750 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28751 : STRIP_UNARY (operands[4]))
28752 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28753 : STRIP_UNARY (operands[4]))
28754 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28755 : STRIP_UNARY (operands[3]))
28756 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28757 : STRIP_UNARY (operands[3])))) &&
28758 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28759 : (TARGET_AVX)) &&
28760 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28761 : ( 1)))
28762 : return NULL;
28763 : return gen_split_2673 (insn, operands);
28764 :
28765 : case 11:
28766 : if (!(
28767 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28768 : ((16 == 64 || TARGET_AVX512VL
28769 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28770 : && ix86_pre_reload_split ()
28771 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28772 : STRIP_UNARY (operands[4]))
28773 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28774 : STRIP_UNARY (operands[4]))
28775 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28776 : STRIP_UNARY (operands[3]))
28777 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28778 : STRIP_UNARY (operands[3])))) &&
28779 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28780 : ( 1)))
28781 : return NULL;
28782 : return gen_split_2700 (insn, operands);
28783 :
28784 : default:
28785 : return NULL;
28786 : }
28787 :
28788 : case XOR:
28789 : switch (pattern537 (x2))
28790 : {
28791 : case 0:
28792 : if (!((
28793 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28794 : ((64 == 64 || TARGET_AVX512VL
28795 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28796 : && ix86_pre_reload_split ()
28797 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28798 : STRIP_UNARY (operands[4]))
28799 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28800 : STRIP_UNARY (operands[4]))
28801 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28802 : STRIP_UNARY (operands[3]))
28803 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28804 : STRIP_UNARY (operands[3])))) &&
28805 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28806 : (TARGET_AVX512F)) &&
28807 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28808 : ( 1)))
28809 : return NULL;
28810 : return gen_split_2406 (insn, operands);
28811 :
28812 : case 1:
28813 : if (!((
28814 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28815 : ((32 == 64 || TARGET_AVX512VL
28816 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28817 : && ix86_pre_reload_split ()
28818 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28819 : STRIP_UNARY (operands[4]))
28820 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28821 : STRIP_UNARY (operands[4]))
28822 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28823 : STRIP_UNARY (operands[3]))
28824 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28825 : STRIP_UNARY (operands[3])))) &&
28826 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28827 : (TARGET_AVX)) &&
28828 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28829 : ( 1)))
28830 : return NULL;
28831 : return gen_split_2433 (insn, operands);
28832 :
28833 : case 2:
28834 : if (!(
28835 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28836 : ((16 == 64 || TARGET_AVX512VL
28837 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28838 : && ix86_pre_reload_split ()
28839 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28840 : STRIP_UNARY (operands[4]))
28841 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28842 : STRIP_UNARY (operands[4]))
28843 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28844 : STRIP_UNARY (operands[3]))
28845 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28846 : STRIP_UNARY (operands[3])))) &&
28847 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28848 : ( 1)))
28849 : return NULL;
28850 : return gen_split_2460 (insn, operands);
28851 :
28852 : case 3:
28853 : if (!((
28854 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28855 : ((64 == 64 || TARGET_AVX512VL
28856 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28857 : && ix86_pre_reload_split ()
28858 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28859 : STRIP_UNARY (operands[4]))
28860 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28861 : STRIP_UNARY (operands[4]))
28862 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28863 : STRIP_UNARY (operands[3]))
28864 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28865 : STRIP_UNARY (operands[3])))) &&
28866 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28867 : (TARGET_AVX512F)) &&
28868 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28869 : ( 1)))
28870 : return NULL;
28871 : return gen_split_2487 (insn, operands);
28872 :
28873 : case 4:
28874 : if (!((
28875 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28876 : ((32 == 64 || TARGET_AVX512VL
28877 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28878 : && ix86_pre_reload_split ()
28879 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28880 : STRIP_UNARY (operands[4]))
28881 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28882 : STRIP_UNARY (operands[4]))
28883 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28884 : STRIP_UNARY (operands[3]))
28885 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28886 : STRIP_UNARY (operands[3])))) &&
28887 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28888 : (TARGET_AVX)) &&
28889 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28890 : ( 1)))
28891 : return NULL;
28892 : return gen_split_2514 (insn, operands);
28893 :
28894 : case 5:
28895 : if (!(
28896 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28897 : ((16 == 64 || TARGET_AVX512VL
28898 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28899 : && ix86_pre_reload_split ()
28900 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28901 : STRIP_UNARY (operands[4]))
28902 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28903 : STRIP_UNARY (operands[4]))
28904 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28905 : STRIP_UNARY (operands[3]))
28906 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28907 : STRIP_UNARY (operands[3])))) &&
28908 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28909 : ( 1)))
28910 : return NULL;
28911 : return gen_split_2541 (insn, operands);
28912 :
28913 : case 6:
28914 : if (!((
28915 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28916 : ((64 == 64 || TARGET_AVX512VL
28917 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28918 : && ix86_pre_reload_split ()
28919 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28920 : STRIP_UNARY (operands[4]))
28921 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28922 : STRIP_UNARY (operands[4]))
28923 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28924 : STRIP_UNARY (operands[3]))
28925 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28926 : STRIP_UNARY (operands[3])))) &&
28927 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28928 : (TARGET_AVX512F)) &&
28929 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28930 : ( 1)))
28931 : return NULL;
28932 : return gen_split_2568 (insn, operands);
28933 :
28934 : case 7:
28935 : if (!((
28936 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28937 : ((32 == 64 || TARGET_AVX512VL
28938 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28939 : && ix86_pre_reload_split ()
28940 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28941 : STRIP_UNARY (operands[4]))
28942 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28943 : STRIP_UNARY (operands[4]))
28944 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28945 : STRIP_UNARY (operands[3]))
28946 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28947 : STRIP_UNARY (operands[3])))) &&
28948 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28949 : (TARGET_AVX)) &&
28950 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28951 : ( 1)))
28952 : return NULL;
28953 : return gen_split_2595 (insn, operands);
28954 :
28955 : case 8:
28956 : if (!(
28957 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28958 : ((16 == 64 || TARGET_AVX512VL
28959 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28960 : && ix86_pre_reload_split ()
28961 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28962 : STRIP_UNARY (operands[4]))
28963 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28964 : STRIP_UNARY (operands[4]))
28965 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28966 : STRIP_UNARY (operands[3]))
28967 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28968 : STRIP_UNARY (operands[3])))) &&
28969 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28970 : ( 1)))
28971 : return NULL;
28972 : return gen_split_2622 (insn, operands);
28973 :
28974 : case 9:
28975 : if (!((
28976 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28977 : ((64 == 64 || TARGET_AVX512VL
28978 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
28979 : && ix86_pre_reload_split ()
28980 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
28981 : STRIP_UNARY (operands[4]))
28982 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28983 : STRIP_UNARY (operands[4]))
28984 : || rtx_equal_p (STRIP_UNARY (operands[1]),
28985 : STRIP_UNARY (operands[3]))
28986 : || rtx_equal_p (STRIP_UNARY (operands[2]),
28987 : STRIP_UNARY (operands[3])))) &&
28988 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28989 : (TARGET_AVX512F)) &&
28990 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28991 : ( 1)))
28992 : return NULL;
28993 : return gen_split_2649 (insn, operands);
28994 :
28995 : case 10:
28996 : if (!((
28997 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
28998 : ((32 == 64 || TARGET_AVX512VL
28999 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29000 : && ix86_pre_reload_split ()
29001 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29002 : STRIP_UNARY (operands[4]))
29003 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29004 : STRIP_UNARY (operands[4]))
29005 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29006 : STRIP_UNARY (operands[3]))
29007 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29008 : STRIP_UNARY (operands[3])))) &&
29009 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29010 : (TARGET_AVX)) &&
29011 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29012 : ( 1)))
29013 : return NULL;
29014 : return gen_split_2676 (insn, operands);
29015 :
29016 : case 11:
29017 : if (!(
29018 : #line 14187 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29019 : ((16 == 64 || TARGET_AVX512VL
29020 : || (TARGET_AVX512F && !TARGET_PREFER_AVX256))
29021 : && ix86_pre_reload_split ()
29022 : && (rtx_equal_p (STRIP_UNARY (operands[1]),
29023 : STRIP_UNARY (operands[4]))
29024 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29025 : STRIP_UNARY (operands[4]))
29026 : || rtx_equal_p (STRIP_UNARY (operands[1]),
29027 : STRIP_UNARY (operands[3]))
29028 : || rtx_equal_p (STRIP_UNARY (operands[2]),
29029 : STRIP_UNARY (operands[3])))) &&
29030 : #line 14199 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29031 : ( 1)))
29032 : return NULL;
29033 : return gen_split_2703 (insn, operands);
29034 :
29035 : default:
29036 : return NULL;
29037 : }
29038 :
29039 : default:
29040 : return NULL;
29041 : }
29042 : }
29043 :
29044 : rtx_insn *
29045 : split_75 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29046 : {
29047 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29048 : rtx x2, x3, x4, x5, x6, x7;
29049 : rtx_insn *res ATTRIBUTE_UNUSED;
29050 : x2 = XEXP (x1, 1);
29051 : x3 = XEXP (x2, 0);
29052 : x4 = XEXP (x3, 1);
29053 : if (!rtx_equal_p (x4, operands[1]))
29054 : return NULL;
29055 : x5 = XEXP (x2, 1);
29056 : if (XVECLEN (x5, 0) != 2)
29057 : return NULL;
29058 : x6 = XVECEXP (x5, 0, 0);
29059 : if (GET_CODE (x6) != CONST_INT
29060 : || GET_MODE (x2) != E_V2DFmode
29061 : || GET_MODE (x3) != E_V4DFmode)
29062 : return NULL;
29063 : if (XWINT (x6, 0) == 0L)
29064 : {
29065 : x7 = XVECEXP (x5, 0, 1);
29066 : if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 2]
29067 : && memory_operand (operands[0], E_V2DFmode)
29068 : && register_operand (operands[1], E_V2DFmode)
29069 : &&
29070 : #line 13904 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29071 : (TARGET_SSE3 && reload_completed))
29072 : return gen_split_1667 (insn, operands);
29073 : }
29074 : if (!register_operand (operands[0], E_V2DFmode)
29075 : || !memory_operand (operands[1], E_V2DFmode))
29076 : return NULL;
29077 : operands[2] = x6;
29078 : if (!const_0_to_1_operand (operands[2], E_SImode))
29079 : return NULL;
29080 : x7 = XVECEXP (x5, 0, 1);
29081 : operands[3] = x7;
29082 : if (!const_int_operand (operands[3], E_SImode)
29083 : || !
29084 : #line 13922 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29085 : (TARGET_SSE3 && INTVAL (operands[2]) + 2 == INTVAL (operands[3])))
29086 : return NULL;
29087 : return gen_split_1668 (insn, operands);
29088 : }
29089 :
29090 : rtx_insn *
29091 : split_77 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29092 : {
29093 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29094 : rtx x2, x3;
29095 : rtx_insn *res ATTRIBUTE_UNUSED;
29096 : x2 = XEXP (x1, 1);
29097 : x3 = XEXP (x2, 1);
29098 : if (pattern845 (x3) != 0)
29099 : return NULL;
29100 : switch (GET_MODE (operands[0]))
29101 : {
29102 : case E_V4SFmode:
29103 : if (!nonimmediate_operand (operands[0], E_V4SFmode)
29104 : || GET_MODE (x2) != E_V4SFmode)
29105 : return NULL;
29106 : switch (GET_MODE (operands[1]))
29107 : {
29108 : case E_V16SFmode:
29109 : if (!register_operand (operands[1], E_V16SFmode)
29110 : || !
29111 : #line 12868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29112 : (TARGET_AVX512F
29113 : && reload_completed
29114 : && (TARGET_AVX512VL
29115 : || REG_P (operands[0])
29116 : || !EXT_REX_SSE_REG_P (operands[1]))))
29117 : return NULL;
29118 : return gen_split_1643 (insn, operands);
29119 :
29120 : case E_V8SFmode:
29121 : if (!nonimmediate_operand (operands[1], E_V8SFmode)
29122 : || !
29123 : #line 13267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29124 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29125 : && reload_completed))
29126 : return NULL;
29127 : return gen_split_1652 (insn, operands);
29128 :
29129 : default:
29130 : return NULL;
29131 : }
29132 :
29133 : case E_V4SImode:
29134 : if (!nonimmediate_operand (operands[0], E_V4SImode)
29135 : || GET_MODE (x2) != E_V4SImode)
29136 : return NULL;
29137 : switch (GET_MODE (operands[1]))
29138 : {
29139 : case E_V16SImode:
29140 : if (!register_operand (operands[1], E_V16SImode)
29141 : || !
29142 : #line 12868 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29143 : (TARGET_AVX512F
29144 : && reload_completed
29145 : && (TARGET_AVX512VL
29146 : || REG_P (operands[0])
29147 : || !EXT_REX_SSE_REG_P (operands[1]))))
29148 : return NULL;
29149 : return gen_split_1644 (insn, operands);
29150 :
29151 : case E_V8SImode:
29152 : if (!nonimmediate_operand (operands[1], E_V8SImode)
29153 : || !
29154 : #line 13267 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29155 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29156 : && reload_completed))
29157 : return NULL;
29158 : return gen_split_1651 (insn, operands);
29159 :
29160 : default:
29161 : return NULL;
29162 : }
29163 :
29164 : case E_V4DFmode:
29165 : if (!nonimmediate_operand (operands[0], E_V4DFmode)
29166 : || GET_MODE (x2) != E_V4DFmode
29167 : || !nonimmediate_operand (operands[1], E_V8DFmode)
29168 : || !
29169 : #line 12931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29170 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29171 : && reload_completed
29172 : && (TARGET_AVX512VL
29173 : || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
29174 : return NULL;
29175 : return gen_split_1645 (insn, operands);
29176 :
29177 : case E_V4DImode:
29178 : if (!nonimmediate_operand (operands[0], E_V4DImode)
29179 : || GET_MODE (x2) != E_V4DImode
29180 : || !nonimmediate_operand (operands[1], E_V8DImode)
29181 : || !
29182 : #line 12931 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29183 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))
29184 : && reload_completed
29185 : && (TARGET_AVX512VL
29186 : || (REG_P (operands[0]) && !EXT_REX_SSE_REG_P (operands[1])))))
29187 : return NULL;
29188 : return gen_split_1646 (insn, operands);
29189 :
29190 : default:
29191 : return NULL;
29192 : }
29193 : }
29194 :
29195 : rtx_insn *
29196 : split_79 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29197 : {
29198 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29199 : rtx x2, x3, x4, x5;
29200 : rtx_insn *res ATTRIBUTE_UNUSED;
29201 : x2 = XEXP (x1, 1);
29202 : x3 = XEXP (x2, 1);
29203 : switch (XVECLEN (x3, 0))
29204 : {
29205 : case 2:
29206 : res = split_76 (x1, insn);
29207 : if (res != NULL_RTX)
29208 : return res;
29209 : break;
29210 :
29211 : case 4:
29212 : res = split_77 (x1, insn);
29213 : if (res != NULL_RTX)
29214 : return res;
29215 : break;
29216 :
29217 : case 8:
29218 : res = split_78 (x1, insn);
29219 : if (res != NULL_RTX)
29220 : return res;
29221 : break;
29222 :
29223 : case 16:
29224 : if (pattern846 (x3,
29225 : 6,
29226 : 5,
29227 : 4) == 0
29228 : && pattern1514 (x3,
29229 : 11,
29230 : 10,
29231 : 9,
29232 : 8,
29233 : 7) == 0)
29234 : {
29235 : switch (pattern1804 (x2))
29236 : {
29237 : case 0:
29238 : if ((
29239 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29240 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29241 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29242 : ( reload_completed
29243 : && (TARGET_AVX512VL
29244 : || REG_P (operands[0])
29245 : || !EXT_REX_SSE_REG_P (operands[1])))))
29246 : return gen_split_1653 (insn, operands);
29247 : break;
29248 :
29249 : case 1:
29250 : if ((
29251 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29252 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29253 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29254 : ( reload_completed
29255 : && (TARGET_AVX512VL
29256 : || REG_P (operands[0])
29257 : || !EXT_REX_SSE_REG_P (operands[1])))))
29258 : return gen_split_1654 (insn, operands);
29259 : break;
29260 :
29261 : case 2:
29262 : if ((
29263 : #line 13350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29264 : (TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29265 : #line 13359 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29266 : ( reload_completed
29267 : && (TARGET_AVX512VL
29268 : || REG_P (operands[0])
29269 : || !EXT_REX_SSE_REG_P (operands[1])))))
29270 : return gen_split_1655 (insn, operands);
29271 : break;
29272 :
29273 : case 3:
29274 : if ((
29275 : #line 13520 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29276 : (TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29277 : #line 13522 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29278 : ( reload_completed)))
29279 : return gen_split_1660 (insn, operands);
29280 : break;
29281 :
29282 : default:
29283 : break;
29284 : }
29285 : }
29286 : break;
29287 :
29288 : case 32:
29289 : if (pattern848 (x3,
29290 : 11,
29291 : 10,
29292 : 9,
29293 : 8) == 0
29294 : && pattern1711 (x3,
29295 : 15,
29296 : 14,
29297 : 13,
29298 : 12,
29299 : 16) == 0
29300 : && pattern1831 (x3,
29301 : 21,
29302 : 20,
29303 : 19,
29304 : 18,
29305 : 17) == 0
29306 : && pattern1873 (x3,
29307 : 26,
29308 : 25,
29309 : 24,
29310 : 23,
29311 : 22) == 0)
29312 : {
29313 : x4 = XVECEXP (x3, 0, 27);
29314 : if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 27]
29315 : && pattern1891 (x3,
29316 : 31,
29317 : 30,
29318 : 29,
29319 : 28) == 0
29320 : && nonimmediate_operand (operands[0], E_V32QImode)
29321 : && GET_MODE (x2) == E_V32QImode
29322 : && nonimmediate_operand (operands[1], E_V64QImode)
29323 : && (
29324 : #line 13452 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29325 : (TARGET_AVX512F
29326 : && !(MEM_P (operands[0]) && MEM_P (operands[1]))) &&
29327 : #line 13462 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29328 : ( reload_completed
29329 : && (TARGET_AVX512VL
29330 : || REG_P (operands[0])
29331 : || !EXT_REX_SSE_REG_P (operands[1])))))
29332 : return gen_split_1659 (insn, operands);
29333 : }
29334 : break;
29335 :
29336 : default:
29337 : break;
29338 : }
29339 : if (XVECLEN (x3, 0) < 1)
29340 : return NULL;
29341 : operands[2] = x3;
29342 : if (!avx_vbroadcast_operand (operands[2], E_VOIDmode))
29343 : return NULL;
29344 : x5 = XVECEXP (x3, 0, 0);
29345 : operands[3] = x5;
29346 : if (!const_int_operand (operands[3], E_VOIDmode))
29347 : return NULL;
29348 : switch (GET_MODE (operands[0]))
29349 : {
29350 : case E_V8SFmode:
29351 : if (!register_operand (operands[0], E_V8SFmode)
29352 : || GET_MODE (x2) != E_V8SFmode
29353 : || !nonimmediate_operand (operands[1], E_V8SFmode)
29354 : || !(
29355 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29356 : (TARGET_AVX
29357 : && (V8SFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)) &&
29358 : #line 28081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29359 : ( reload_completed)))
29360 : return NULL;
29361 : return gen_split_3826 (insn, operands);
29362 :
29363 : case E_V4DFmode:
29364 : if (!register_operand (operands[0], E_V4DFmode)
29365 : || GET_MODE (x2) != E_V4DFmode
29366 : || !nonimmediate_operand (operands[1], E_V4DFmode)
29367 : || !(
29368 : #line 28078 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29369 : (TARGET_AVX
29370 : && (V4DFmode != V4DFmode || !TARGET_AVX2 || operands[3] == const0_rtx)) &&
29371 : #line 28081 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29372 : ( reload_completed)))
29373 : return NULL;
29374 : return gen_split_3827 (insn, operands);
29375 :
29376 : default:
29377 : return NULL;
29378 : }
29379 : }
29380 :
29381 : rtx_insn *
29382 : split_83 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
29383 : {
29384 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
29385 : rtx x2, x3, x4, x5, x6;
29386 : rtx_insn *res ATTRIBUTE_UNUSED;
29387 : x2 = XEXP (x1, 1);
29388 : x3 = XEXP (x2, 1);
29389 : if (GET_CODE (x3) != PARALLEL)
29390 : return NULL;
29391 : x4 = XEXP (x2, 0);
29392 : switch (GET_CODE (x4))
29393 : {
29394 : case VEC_CONCAT:
29395 : x5 = XEXP (x4, 0);
29396 : switch (GET_CODE (x5))
29397 : {
29398 : case MINUS:
29399 : switch (pattern732 (x2,
29400 : PLUS))
29401 : {
29402 : case 0:
29403 : if (pattern1683 (x4,
29404 : E_V8SFmode,
29405 : E_V16SFmode) != 0
29406 : || !(
29407 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29408 : (TARGET_SSE3
29409 : && can_create_pseudo_p ()
29410 : && ((rtx_equal_p (operands[1], operands[3])
29411 : && rtx_equal_p (operands[2], operands[4]))
29412 : || (rtx_equal_p (operands[1], operands[4])
29413 : && rtx_equal_p (operands[2], operands[3])))) &&
29414 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29415 : (TARGET_AVX)))
29416 : return NULL;
29417 : return gen_split_1366 (insn, operands);
29418 :
29419 : case 1:
29420 : if (pattern1683 (x4,
29421 : E_V4SFmode,
29422 : E_V8SFmode) != 0
29423 : || !
29424 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29425 : (TARGET_SSE3
29426 : && can_create_pseudo_p ()
29427 : && ((rtx_equal_p (operands[1], operands[3])
29428 : && rtx_equal_p (operands[2], operands[4]))
29429 : || (rtx_equal_p (operands[1], operands[4])
29430 : && rtx_equal_p (operands[2], operands[3])))))
29431 : return NULL;
29432 : return gen_split_1367 (insn, operands);
29433 :
29434 : case 2:
29435 : if (pattern1683 (x4,
29436 : E_V4DFmode,
29437 : E_V8DFmode) != 0
29438 : || !(
29439 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29440 : (TARGET_SSE3
29441 : && can_create_pseudo_p ()
29442 : && ((rtx_equal_p (operands[1], operands[3])
29443 : && rtx_equal_p (operands[2], operands[4]))
29444 : || (rtx_equal_p (operands[1], operands[4])
29445 : && rtx_equal_p (operands[2], operands[3])))) &&
29446 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29447 : (TARGET_AVX)))
29448 : return NULL;
29449 : return gen_split_1368 (insn, operands);
29450 :
29451 : case 3:
29452 : if (pattern1683 (x4,
29453 : E_V2DFmode,
29454 : E_V4DFmode) != 0
29455 : || !(
29456 : #line 3659 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29457 : (TARGET_SSE3
29458 : && can_create_pseudo_p ()
29459 : && ((rtx_equal_p (operands[1], operands[3])
29460 : && rtx_equal_p (operands[2], operands[4]))
29461 : || (rtx_equal_p (operands[1], operands[4])
29462 : && rtx_equal_p (operands[2], operands[3])))) &&
29463 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29464 : (TARGET_SSE2)))
29465 : return NULL;
29466 : return gen_split_1369 (insn, operands);
29467 :
29468 : default:
29469 : return NULL;
29470 : }
29471 :
29472 : case PLUS:
29473 : switch (pattern732 (x2,
29474 : MINUS))
29475 : {
29476 : case 0:
29477 : if (pattern1684 (x4,
29478 : E_V8SFmode,
29479 : E_V16SFmode) != 0
29480 : || !(
29481 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29482 : (TARGET_SSE3
29483 : && can_create_pseudo_p ()
29484 : && ((rtx_equal_p (operands[1], operands[3])
29485 : && rtx_equal_p (operands[2], operands[4]))
29486 : || (rtx_equal_p (operands[1], operands[4])
29487 : && rtx_equal_p (operands[2], operands[3])))) &&
29488 : #line 425 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29489 : (TARGET_AVX)))
29490 : return NULL;
29491 : return gen_split_1370 (insn, operands);
29492 :
29493 : case 1:
29494 : if (pattern1684 (x4,
29495 : E_V4SFmode,
29496 : E_V8SFmode) != 0
29497 : || !
29498 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29499 : (TARGET_SSE3
29500 : && can_create_pseudo_p ()
29501 : && ((rtx_equal_p (operands[1], operands[3])
29502 : && rtx_equal_p (operands[2], operands[4]))
29503 : || (rtx_equal_p (operands[1], operands[4])
29504 : && rtx_equal_p (operands[2], operands[3])))))
29505 : return NULL;
29506 : return gen_split_1371 (insn, operands);
29507 :
29508 : case 2:
29509 : if (pattern1684 (x4,
29510 : E_V4DFmode,
29511 : E_V8DFmode) != 0
29512 : || !(
29513 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29514 : (TARGET_SSE3
29515 : && can_create_pseudo_p ()
29516 : && ((rtx_equal_p (operands[1], operands[3])
29517 : && rtx_equal_p (operands[2], operands[4]))
29518 : || (rtx_equal_p (operands[1], operands[4])
29519 : && rtx_equal_p (operands[2], operands[3])))) &&
29520 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29521 : (TARGET_AVX)))
29522 : return NULL;
29523 : return gen_split_1372 (insn, operands);
29524 :
29525 : case 3:
29526 : if (pattern1684 (x4,
29527 : E_V2DFmode,
29528 : E_V4DFmode) != 0
29529 : || !(
29530 : #line 3693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29531 : (TARGET_SSE3
29532 : && can_create_pseudo_p ()
29533 : && ((rtx_equal_p (operands[1], operands[3])
29534 : && rtx_equal_p (operands[2], operands[4]))
29535 : || (rtx_equal_p (operands[1], operands[4])
29536 : && rtx_equal_p (operands[2], operands[3])))) &&
29537 : #line 426 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29538 : (TARGET_SSE2)))
29539 : return NULL;
29540 : return gen_split_1373 (insn, operands);
29541 :
29542 : default:
29543 : return NULL;
29544 : }
29545 :
29546 : case REG:
29547 : case SUBREG:
29548 : case MEM:
29549 : operands[1] = x5;
29550 : x6 = XEXP (x4, 1);
29551 : switch (GET_CODE (x6))
29552 : {
29553 : case REG:
29554 : case SUBREG:
29555 : case MEM:
29556 : res = split_75 (x1, insn);
29557 : if (res != NULL_RTX)
29558 : return res;
29559 : break;
29560 :
29561 : case CONST_INT:
29562 : case CONST_DOUBLE:
29563 : case CONST_VECTOR:
29564 : switch (pattern810 (x2))
29565 : {
29566 : case 0:
29567 : if ((
29568 : #line 24481 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29569 : (TARGET_AVX2) &&
29570 : #line 24483 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29571 : ( reload_completed)))
29572 : return gen_split_3600 (insn, operands);
29573 : break;
29574 :
29575 : case 1:
29576 : if ((
29577 : #line 24534 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29578 : (TARGET_AVX512BW) &&
29579 : #line 24536 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29580 : ( reload_completed)))
29581 : return gen_split_3604 (insn, operands);
29582 : break;
29583 :
29584 : case 2:
29585 : if ((
29586 : #line 24656 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29587 : (TARGET_SSE4_1) &&
29588 : #line 24658 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29589 : ( reload_completed)))
29590 : return gen_split_3612 (insn, operands);
29591 : break;
29592 :
29593 : case 3:
29594 : if ((
29595 : #line 24960 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29596 : (TARGET_AVX512F) &&
29597 : #line 24962 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29598 : ( reload_completed)))
29599 : return gen_split_3626 (insn, operands);
29600 : break;
29601 :
29602 : case 4:
29603 : if ((
29604 : #line 25014 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29605 : (TARGET_AVX2) &&
29606 : #line 25016 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29607 : ( reload_completed)))
29608 : return gen_split_3630 (insn, operands);
29609 : break;
29610 :
29611 : case 5:
29612 : if ((
29613 : #line 25144 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29614 : (TARGET_SSE4_1) &&
29615 : #line 25146 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29616 : ( reload_completed)))
29617 : return gen_split_3638 (insn, operands);
29618 : break;
29619 :
29620 : case 6:
29621 : if (pmovzx_parallel (operands[3], E_VOIDmode)
29622 : && (
29623 : #line 25649 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29624 : (TARGET_AVX512F) &&
29625 : #line 25651 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29626 : ( reload_completed)))
29627 : return gen_split_3661 (insn, operands);
29628 : if (movq_parallel (operands[3], E_VOIDmode)
29629 : && ((
29630 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29631 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29632 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29633 : (TARGET_AVX512F)) &&
29634 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29635 : ( 1)))
29636 : return gen_split_3884 (insn, operands);
29637 : break;
29638 :
29639 : case 7:
29640 : if (pmovzx_parallel (operands[3], E_VOIDmode)
29641 : && (
29642 : #line 25701 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29643 : (TARGET_AVX2) &&
29644 : #line 25703 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29645 : ( reload_completed)))
29646 : return gen_split_3663 (insn, operands);
29647 : if (movq_parallel (operands[3], E_VOIDmode)
29648 : && ((
29649 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29650 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29651 : #line 347 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29652 : (TARGET_AVX)) &&
29653 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29654 : ( 1)))
29655 : return gen_split_3885 (insn, operands);
29656 : break;
29657 :
29658 : case 8:
29659 : if (vector_operand (operands[1], E_V4SImode)
29660 : && pmovzx_parallel (operands[3], E_VOIDmode)
29661 : && (
29662 : #line 25809 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29663 : (TARGET_SSE4_1) &&
29664 : #line 25811 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29665 : ( reload_completed)))
29666 : return gen_split_3669 (insn, operands);
29667 : if (nonimmediate_operand (operands[1], E_V4SImode)
29668 : && movq_parallel (operands[3], E_VOIDmode)
29669 : && (
29670 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29671 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29672 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29673 : ( 1)))
29674 : return gen_split_3886 (insn, operands);
29675 : break;
29676 :
29677 : case 9:
29678 : if (((
29679 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29680 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29681 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29682 : (TARGET_AVX512F)) &&
29683 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29684 : ( 1)))
29685 : return gen_split_3887 (insn, operands);
29686 : break;
29687 :
29688 : case 10:
29689 : if (((
29690 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29691 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29692 : #line 348 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29693 : (TARGET_AVX)) &&
29694 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29695 : ( 1)))
29696 : return gen_split_3888 (insn, operands);
29697 : break;
29698 :
29699 : case 11:
29700 : if ((
29701 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29702 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29703 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29704 : ( 1)))
29705 : return gen_split_3889 (insn, operands);
29706 : break;
29707 :
29708 : case 12:
29709 : if (((
29710 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29711 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29712 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29713 : (TARGET_AVX512F)) &&
29714 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29715 : ( 1)))
29716 : return gen_split_3890 (insn, operands);
29717 : break;
29718 :
29719 : case 13:
29720 : if (((
29721 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29722 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29723 : #line 349 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29724 : (TARGET_AVX)) &&
29725 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29726 : ( 1)))
29727 : return gen_split_3891 (insn, operands);
29728 : break;
29729 :
29730 : case 14:
29731 : if ((
29732 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29733 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29734 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29735 : ( 1)))
29736 : return gen_split_3892 (insn, operands);
29737 : break;
29738 :
29739 : case 15:
29740 : if (((
29741 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29742 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29743 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29744 : (TARGET_AVX512F)) &&
29745 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29746 : ( 1)))
29747 : return gen_split_3893 (insn, operands);
29748 : break;
29749 :
29750 : case 16:
29751 : if (((
29752 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29753 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29754 : #line 350 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29755 : (TARGET_AVX)) &&
29756 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29757 : ( 1)))
29758 : return gen_split_3894 (insn, operands);
29759 : break;
29760 :
29761 : case 17:
29762 : if ((
29763 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29764 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29765 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29766 : ( 1)))
29767 : return gen_split_3895 (insn, operands);
29768 : break;
29769 :
29770 : case 18:
29771 : if (((
29772 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29773 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29774 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29775 : (TARGET_AVX512F)) &&
29776 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29777 : ( 1)))
29778 : return gen_split_3896 (insn, operands);
29779 : break;
29780 :
29781 : case 19:
29782 : if (((
29783 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29784 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29785 : #line 351 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29786 : (TARGET_AVX)) &&
29787 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29788 : ( 1)))
29789 : return gen_split_3897 (insn, operands);
29790 : break;
29791 :
29792 : case 20:
29793 : if ((
29794 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29795 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29796 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29797 : ( 1)))
29798 : return gen_split_3898 (insn, operands);
29799 : break;
29800 :
29801 : case 21:
29802 : if (((
29803 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29804 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29805 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29806 : (TARGET_AVX512F)) &&
29807 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29808 : ( 1)))
29809 : return gen_split_3899 (insn, operands);
29810 : break;
29811 :
29812 : case 22:
29813 : if (((
29814 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29815 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29816 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29817 : (TARGET_AVX)) &&
29818 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29819 : ( 1)))
29820 : return gen_split_3900 (insn, operands);
29821 : break;
29822 :
29823 : case 23:
29824 : if (((
29825 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29826 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
29827 : #line 352 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29828 : (TARGET_SSE2)) &&
29829 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29830 : ( 1)))
29831 : return gen_split_3901 (insn, operands);
29832 : break;
29833 :
29834 : default:
29835 : break;
29836 : }
29837 : break;
29838 :
29839 : default:
29840 : break;
29841 : }
29842 : if (XVECLEN (x3, 0) >= 1)
29843 : {
29844 : switch (pattern812 (x2))
29845 : {
29846 : case 0:
29847 : if ((
29848 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29849 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29850 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29851 : ( 1)))
29852 : return gen_split_3843 (insn, operands);
29853 : break;
29854 :
29855 : case 1:
29856 : if ((
29857 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29858 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29859 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29860 : ( 1)))
29861 : return gen_split_3844 (insn, operands);
29862 : break;
29863 :
29864 : case 2:
29865 : if ((
29866 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29867 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29868 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29869 : ( 1)))
29870 : return gen_split_3845 (insn, operands);
29871 : break;
29872 :
29873 : case 3:
29874 : if ((
29875 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29876 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29877 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29878 : ( 1)))
29879 : return gen_split_3846 (insn, operands);
29880 : break;
29881 :
29882 : case 4:
29883 : if ((
29884 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29885 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29886 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29887 : ( 1)))
29888 : return gen_split_3847 (insn, operands);
29889 : break;
29890 :
29891 : case 5:
29892 : if ((
29893 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29894 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29895 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29896 : ( 1)))
29897 : return gen_split_3848 (insn, operands);
29898 : break;
29899 :
29900 : case 6:
29901 : if ((
29902 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29903 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29904 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29905 : ( 1)))
29906 : return gen_split_3849 (insn, operands);
29907 : break;
29908 :
29909 : case 7:
29910 : if ((
29911 : #line 28719 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29912 : (TARGET_AVX && ix86_pre_reload_split ()) &&
29913 : #line 28721 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29914 : ( 1)))
29915 : return gen_split_3850 (insn, operands);
29916 : break;
29917 :
29918 : default:
29919 : break;
29920 : }
29921 : }
29922 : if (XVECLEN (x3, 0) < 1)
29923 : return NULL;
29924 : operands[4] = x3;
29925 : switch (pattern813 (x2))
29926 : {
29927 : case 0:
29928 : if ((
29929 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29930 : (TARGET_AVX2) &&
29931 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29932 : ( reload_completed)))
29933 : return gen_split_3601 (insn, operands);
29934 : break;
29935 :
29936 : case 1:
29937 : if ((
29938 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29939 : (TARGET_AVX2) &&
29940 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29941 : ( reload_completed)))
29942 : return gen_split_3602 (insn, operands);
29943 : break;
29944 :
29945 : case 2:
29946 : if ((
29947 : #line 24501 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29948 : (TARGET_AVX2) &&
29949 : #line 24503 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29950 : ( reload_completed)))
29951 : return gen_split_3603 (insn, operands);
29952 : break;
29953 :
29954 : case 3:
29955 : if ((
29956 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29957 : (TARGET_AVX512BW) &&
29958 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29959 : ( reload_completed)))
29960 : return gen_split_3605 (insn, operands);
29961 : break;
29962 :
29963 : case 4:
29964 : if ((
29965 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29966 : (TARGET_AVX512BW) &&
29967 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29968 : ( reload_completed)))
29969 : return gen_split_3606 (insn, operands);
29970 : break;
29971 :
29972 : case 5:
29973 : if ((
29974 : #line 24554 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29975 : (TARGET_AVX512BW) &&
29976 : #line 24556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29977 : ( reload_completed)))
29978 : return gen_split_3607 (insn, operands);
29979 : break;
29980 :
29981 : case 6:
29982 : if ((
29983 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29984 : (TARGET_SSE4_1) &&
29985 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29986 : ( reload_completed)))
29987 : return gen_split_3613 (insn, operands);
29988 : break;
29989 :
29990 : case 7:
29991 : if ((
29992 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29993 : (TARGET_SSE4_1) &&
29994 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
29995 : ( reload_completed)))
29996 : return gen_split_3614 (insn, operands);
29997 : break;
29998 :
29999 : case 8:
30000 : if ((
30001 : #line 24691 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30002 : (TARGET_SSE4_1) &&
30003 : #line 24693 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30004 : ( reload_completed)))
30005 : return gen_split_3615 (insn, operands);
30006 : break;
30007 :
30008 : case 9:
30009 : if ((
30010 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30011 : (TARGET_AVX512F) &&
30012 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30013 : ( reload_completed)))
30014 : return gen_split_3627 (insn, operands);
30015 : break;
30016 :
30017 : case 10:
30018 : if ((
30019 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30020 : (TARGET_AVX512F) &&
30021 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30022 : ( reload_completed)))
30023 : return gen_split_3628 (insn, operands);
30024 : break;
30025 :
30026 : case 11:
30027 : if ((
30028 : #line 24980 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30029 : (TARGET_AVX512F) &&
30030 : #line 24982 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30031 : ( reload_completed)))
30032 : return gen_split_3629 (insn, operands);
30033 : break;
30034 :
30035 : case 12:
30036 : if ((
30037 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30038 : (TARGET_AVX2) &&
30039 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30040 : ( reload_completed)))
30041 : return gen_split_3631 (insn, operands);
30042 : break;
30043 :
30044 : case 13:
30045 : if ((
30046 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30047 : (TARGET_AVX2) &&
30048 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30049 : ( reload_completed)))
30050 : return gen_split_3632 (insn, operands);
30051 : break;
30052 :
30053 : case 14:
30054 : if ((
30055 : #line 25034 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30056 : (TARGET_AVX2) &&
30057 : #line 25036 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30058 : ( reload_completed)))
30059 : return gen_split_3633 (insn, operands);
30060 : break;
30061 :
30062 : case 15:
30063 : if ((
30064 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30065 : (TARGET_SSE4_1) &&
30066 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30067 : ( reload_completed)))
30068 : return gen_split_3639 (insn, operands);
30069 : break;
30070 :
30071 : case 16:
30072 : if ((
30073 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30074 : (TARGET_SSE4_1) &&
30075 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30076 : ( reload_completed)))
30077 : return gen_split_3640 (insn, operands);
30078 : break;
30079 :
30080 : case 17:
30081 : if ((
30082 : #line 25177 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30083 : (TARGET_SSE4_1) &&
30084 : #line 25179 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30085 : ( reload_completed)))
30086 : return gen_split_3641 (insn, operands);
30087 : break;
30088 :
30089 : default:
30090 : break;
30091 : }
30092 : operands[3] = x3;
30093 : switch (pattern814 (x2))
30094 : {
30095 : case 0:
30096 : if (!((
30097 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30098 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30099 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30100 : (TARGET_AVX512F)) &&
30101 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30102 : ( 1)))
30103 : return NULL;
30104 : return gen_split_3878 (insn, operands);
30105 :
30106 : case 1:
30107 : if (!((
30108 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30109 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30110 : #line 345 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30111 : (TARGET_AVX)) &&
30112 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30113 : ( 1)))
30114 : return NULL;
30115 : return gen_split_3879 (insn, operands);
30116 :
30117 : case 2:
30118 : if (!(
30119 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30120 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30121 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30122 : ( 1)))
30123 : return NULL;
30124 : return gen_split_3880 (insn, operands);
30125 :
30126 : case 3:
30127 : if (!((
30128 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30129 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30130 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30131 : (TARGET_AVX512F)) &&
30132 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30133 : ( 1)))
30134 : return NULL;
30135 : return gen_split_3881 (insn, operands);
30136 :
30137 : case 4:
30138 : if (!((
30139 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30140 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30141 : #line 346 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30142 : (TARGET_AVX)) &&
30143 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30144 : ( 1)))
30145 : return NULL;
30146 : return gen_split_3882 (insn, operands);
30147 :
30148 : case 5:
30149 : if (!(
30150 : #line 29761 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30151 : (TARGET_SSE2 && ix86_pre_reload_split ()) &&
30152 : #line 29763 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30153 : ( 1)))
30154 : return NULL;
30155 : return gen_split_3883 (insn, operands);
30156 :
30157 : default:
30158 : return NULL;
30159 : }
30160 :
30161 : case VEC_CONCAT:
30162 : switch (pattern523 (x2))
30163 : {
30164 : case 0:
30165 : if (!(
30166 : #line 25668 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30167 : (TARGET_AVX512F) &&
30168 : #line 25670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30169 : ( reload_completed)))
30170 : return NULL;
30171 : return gen_split_3662 (insn, operands);
30172 :
30173 : case 1:
30174 : if (!(
30175 : #line 25720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30176 : (TARGET_AVX2) &&
30177 : #line 25722 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30178 : ( reload_completed)))
30179 : return NULL;
30180 : return gen_split_3664 (insn, operands);
30181 :
30182 : case 2:
30183 : if (!(
30184 : #line 25839 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30185 : (TARGET_SSE4_1) &&
30186 : #line 25841 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30187 : ( reload_completed)))
30188 : return NULL;
30189 : return gen_split_3670 (insn, operands);
30190 :
30191 : default:
30192 : return NULL;
30193 : }
30194 :
30195 : default:
30196 : return NULL;
30197 : }
30198 :
30199 : case REG:
30200 : case SUBREG:
30201 : case MEM:
30202 : operands[1] = x4;
30203 : res = split_79 (x1, insn);
30204 : if (res != NULL_RTX)
30205 : return res;
30206 : if (GET_CODE (x4) != SUBREG)
30207 : return NULL;
30208 : switch (pattern525 (x2))
30209 : {
30210 : case 0:
30211 : if (!(
30212 : #line 15360 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30213 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
30214 : #line 15362 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30215 : ( 1)))
30216 : return NULL;
30217 : return gen_split_3260 (insn, operands);
30218 :
30219 : case 1:
30220 : if (!(
30221 : #line 15413 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30222 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
30223 : #line 15415 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30224 : ( 1)))
30225 : return NULL;
30226 : return gen_split_3262 (insn, operands);
30227 :
30228 : default:
30229 : return NULL;
30230 : }
30231 :
30232 : case UNSPEC:
30233 : if (XVECLEN (x4, 0) != 2)
30234 : return NULL;
30235 : switch (pattern527 (x2))
30236 : {
30237 : case 0:
30238 : if (!(
30239 : #line 15335 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30240 : (TARGET_AVX512BW && ix86_pre_reload_split ()) &&
30241 : #line 15337 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30242 : ( 1)))
30243 : return NULL;
30244 : return gen_split_3259 (insn, operands);
30245 :
30246 : case 1:
30247 : if (!(
30248 : #line 15597 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30249 : (TARGET_AVX512VL && TARGET_AVX512VBMI
30250 : && ix86_pre_reload_split ()) &&
30251 : #line 15600 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30252 : ( 1)))
30253 : return NULL;
30254 : return gen_split_3265 (insn, operands);
30255 :
30256 : case 2:
30257 : if (!(
30258 : #line 15392 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30259 : (TARGET_AVX512VL && TARGET_AVX512BW && ix86_pre_reload_split ()) &&
30260 : #line 15394 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30261 : ( 1)))
30262 : return NULL;
30263 : return gen_split_3261 (insn, operands);
30264 :
30265 : case 3:
30266 : if (!(
30267 : #line 15444 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30268 : (TARGET_AVX512F && ix86_pre_reload_split ()) &&
30269 : #line 15446 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30270 : ( 1)))
30271 : return NULL;
30272 : return gen_split_3263 (insn, operands);
30273 :
30274 : case 4:
30275 : if (!(
30276 : #line 15516 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30277 : (TARGET_AVX512VBMI && ix86_pre_reload_split ()) &&
30278 : #line 15518 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30279 : ( 1)))
30280 : return NULL;
30281 : return gen_split_3264 (insn, operands);
30282 :
30283 : case 5:
30284 : if (!(
30285 : #line 15616 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30286 : (TARGET_AVX512VL && ix86_pre_reload_split ()) &&
30287 : #line 15618 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sse.md"
30288 : ( 1)))
30289 : return NULL;
30290 : return gen_split_3266 (insn, operands);
30291 :
30292 : default:
30293 : return NULL;
30294 : }
30295 :
30296 : default:
30297 : return NULL;
30298 : }
30299 : }
30300 :
30301 : rtx_insn *
30302 : peephole2_1 (rtx x1 ATTRIBUTE_UNUSED,
30303 : rtx_insn *insn ATTRIBUTE_UNUSED,
30304 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30305 : {
30306 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30307 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30308 : rtx x10, x11;
30309 : rtx_insn *res ATTRIBUTE_UNUSED;
30310 : x2 = XEXP (x1, 0);
30311 : if (GET_CODE (x2) != REG
30312 : || REGNO (x2) != 17)
30313 : return NULL;
30314 : x3 = XEXP (x1, 1);
30315 : x4 = XEXP (x3, 0);
30316 : switch (GET_CODE (x4))
30317 : {
30318 : case NEG:
30319 : if (GET_MODE (x4) != E_QImode)
30320 : return NULL;
30321 : x5 = XEXP (x4, 0);
30322 : if (GET_CODE (x5) != LTU
30323 : || GET_MODE (x5) != E_QImode)
30324 : return NULL;
30325 : x6 = XEXP (x5, 0);
30326 : if (GET_CODE (x6) != REG
30327 : || REGNO (x6) != 17
30328 : || GET_MODE (x6) != E_CCCmode)
30329 : return NULL;
30330 : x7 = XEXP (x5, 1);
30331 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30332 : return NULL;
30333 : x8 = XEXP (x3, 1);
30334 : if (GET_CODE (x8) != GEU
30335 : || GET_MODE (x8) != E_QImode)
30336 : return NULL;
30337 : x9 = XEXP (x8, 0);
30338 : if (GET_CODE (x9) != REG
30339 : || REGNO (x9) != 17
30340 : || GET_MODE (x9) != E_CCCmode)
30341 : return NULL;
30342 : x10 = XEXP (x8, 1);
30343 : if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30344 : || GET_MODE (x2) != E_CCCmode
30345 : || GET_MODE (x3) != E_CCCmode
30346 : || !
30347 : #line 2167 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30348 : (TARGET_SLOW_STC && !optimize_insn_for_size_p ()))
30349 : return NULL;
30350 : *pmatch_len_ = 0;
30351 : return gen_peephole2_2 (insn, operands);
30352 :
30353 : case AND:
30354 : x8 = XEXP (x3, 1);
30355 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
30356 : || GET_MODE (x2) != E_CCZmode
30357 : || GET_MODE (x3) != E_CCZmode)
30358 : return NULL;
30359 : x5 = XEXP (x4, 0);
30360 : operands[0] = x5;
30361 : x11 = XEXP (x4, 1);
30362 : operands[1] = x11;
30363 : if (!const_int_operand (operands[1], E_VOIDmode))
30364 : return NULL;
30365 : switch (GET_MODE (x4))
30366 : {
30367 : case E_HImode:
30368 : if (!memory_operand (operands[0], E_HImode)
30369 : || !
30370 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30371 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30372 : && !MEM_VOLATILE_P (operands[0])
30373 : && offsettable_memref_p (operands[0])))
30374 : return NULL;
30375 : *pmatch_len_ = 0;
30376 : return gen_peephole2_140 (insn, operands);
30377 :
30378 : case E_SImode:
30379 : if (!memory_operand (operands[0], E_SImode)
30380 : || !
30381 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30382 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30383 : && !MEM_VOLATILE_P (operands[0])
30384 : && offsettable_memref_p (operands[0])))
30385 : return NULL;
30386 : *pmatch_len_ = 0;
30387 : return gen_peephole2_141 (insn, operands);
30388 :
30389 : case E_DImode:
30390 : if (!memory_operand (operands[0], E_DImode)
30391 : || !(
30392 : #line 12754 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30393 : (!TARGET_PARTIAL_MEMORY_READ_STALL
30394 : && !MEM_VOLATILE_P (operands[0])
30395 : && offsettable_memref_p (operands[0])) &&
30396 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30397 : (TARGET_64BIT)))
30398 : return NULL;
30399 : *pmatch_len_ = 0;
30400 : return gen_peephole2_142 (insn, operands);
30401 :
30402 : default:
30403 : return NULL;
30404 : }
30405 :
30406 : default:
30407 : return NULL;
30408 : }
30409 : }
30410 :
30411 : rtx_insn *
30412 : peephole2_2 (rtx x1 ATTRIBUTE_UNUSED,
30413 : rtx_insn *insn ATTRIBUTE_UNUSED,
30414 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30415 : {
30416 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30417 : rtx x2, x3, x4;
30418 : rtx_insn *res ATTRIBUTE_UNUSED;
30419 : x2 = XEXP (x1, 0);
30420 : operands[0] = x2;
30421 : x3 = XEXP (x1, 1);
30422 : x4 = XEXP (x3, 0);
30423 : operands[1] = x4;
30424 : switch (GET_MODE (operands[0]))
30425 : {
30426 : case E_SImode:
30427 : switch (pattern417 (x3,
30428 : E_SImode))
30429 : {
30430 : case 0:
30431 : if (!
30432 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30433 : (TARGET_AVOID_VECTOR_DECODE
30434 : && SSE_FLOAT_MODE_P (SFmode)
30435 : && optimize_insn_for_speed_p ()))
30436 : return NULL;
30437 : *pmatch_len_ = 0;
30438 : return gen_peephole2_56 (insn, operands);
30439 :
30440 : case 1:
30441 : if (!
30442 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30443 : (TARGET_AVOID_VECTOR_DECODE
30444 : && SSE_FLOAT_MODE_P (DFmode)
30445 : && optimize_insn_for_speed_p ()))
30446 : return NULL;
30447 : *pmatch_len_ = 0;
30448 : return gen_peephole2_58 (insn, operands);
30449 :
30450 : default:
30451 : return NULL;
30452 : }
30453 :
30454 : case E_DImode:
30455 : switch (pattern417 (x3,
30456 : E_DImode))
30457 : {
30458 : case 0:
30459 : if (!(
30460 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30461 : (TARGET_AVOID_VECTOR_DECODE
30462 : && SSE_FLOAT_MODE_P (SFmode)
30463 : && optimize_insn_for_speed_p ()) &&
30464 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30465 : (TARGET_64BIT)))
30466 : return NULL;
30467 : *pmatch_len_ = 0;
30468 : return gen_peephole2_57 (insn, operands);
30469 :
30470 : case 1:
30471 : if (!(
30472 : #line 5974 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30473 : (TARGET_AVOID_VECTOR_DECODE
30474 : && SSE_FLOAT_MODE_P (DFmode)
30475 : && optimize_insn_for_speed_p ()) &&
30476 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30477 : (TARGET_64BIT)))
30478 : return NULL;
30479 : *pmatch_len_ = 0;
30480 : return gen_peephole2_59 (insn, operands);
30481 :
30482 : default:
30483 : return NULL;
30484 : }
30485 :
30486 : default:
30487 : return NULL;
30488 : }
30489 : }
30490 :
30491 : rtx_insn *
30492 : peephole2_3 (rtx x1 ATTRIBUTE_UNUSED,
30493 : rtx_insn *insn ATTRIBUTE_UNUSED,
30494 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30495 : {
30496 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30497 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30498 : rtx x10;
30499 : rtx_insn *res ATTRIBUTE_UNUSED;
30500 : if (peep2_current_count < 2
30501 : || peep2_current_count < 3)
30502 : return NULL;
30503 : x2 = XEXP (x1, 1);
30504 : operands[1] = x2;
30505 : if (!bt_comparison_operator (operands[1], E_QImode))
30506 : return NULL;
30507 : x3 = XEXP (x2, 0);
30508 : if (GET_CODE (x3) != REG
30509 : || REGNO (x3) != 17
30510 : || GET_MODE (x3) != E_CCZmode)
30511 : return NULL;
30512 : x4 = XEXP (x2, 1);
30513 : if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
30514 : return NULL;
30515 : x5 = XEXP (x1, 0);
30516 : operands[0] = x5;
30517 : if (!nonimmediate_operand (operands[0], E_QImode))
30518 : return NULL;
30519 : x6 = PATTERN (peep2_next_insn (1));
30520 : if (pattern1265 (x6,
30521 : 0) != 0)
30522 : return NULL;
30523 : x7 = PATTERN (peep2_next_insn (2));
30524 : x8 = XEXP (x7, 1);
30525 : x9 = XEXP (x8, 0);
30526 : operands[2] = x9;
30527 : if (pattern1805 (x7) != 0)
30528 : return NULL;
30529 : x10 = XEXP (x8, 1);
30530 : operands[3] = x10;
30531 : if (!
30532 : #line 20022 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30533 : (peep2_regno_dead_p (3, FLAGS_REG)))
30534 : return NULL;
30535 : *pmatch_len_ = 2;
30536 : return gen_peephole2_188 (insn, operands);
30537 : }
30538 :
30539 : rtx_insn *
30540 : peephole2_4 (rtx x1 ATTRIBUTE_UNUSED,
30541 : rtx_insn *insn ATTRIBUTE_UNUSED,
30542 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30543 : {
30544 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30545 : rtx x2;
30546 : rtx_insn *res ATTRIBUTE_UNUSED;
30547 : switch (GET_MODE (operands[0]))
30548 : {
30549 : case E_DImode:
30550 : if (register_operand (operands[0], E_DImode)
30551 : && const_int_operand (operands[1], E_DImode)
30552 : &&
30553 : #line 2814 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30554 : (TARGET_64BIT
30555 : && optimize_insn_for_size_p ()
30556 : && LEGACY_INT_REG_P (operands[0])
30557 : && !x86_64_immediate_operand (operands[1], DImode)
30558 : && !x86_64_zext_immediate_operand (operands[1], DImode)
30559 : && !((UINTVAL (operands[1]) >> ctz_hwi (UINTVAL (operands[1])))
30560 : & ~HOST_WIDE_INT_C (0xffffffff))
30561 : && peep2_regno_dead_p (0, FLAGS_REG)))
30562 : {
30563 : *pmatch_len_ = 0;
30564 : res = gen_peephole2_4 (insn, operands);
30565 : if (res != NULL_RTX)
30566 : return res;
30567 : }
30568 : if (!general_reg_operand (operands[0], E_DImode))
30569 : return NULL;
30570 : if (const_int_operand (operands[1], E_DImode))
30571 : {
30572 : if ((
30573 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30574 : (optimize_insn_for_size_p () && optimize_size > 1
30575 : && operands[1] != const0_rtx
30576 : && (operands[1] != constm1_rtx
30577 : || (DImode == DImode && LEGACY_INT_REG_P (operands[0])))
30578 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30579 : && !ix86_red_zone_used
30580 : && REGNO (operands[0]) != SP_REG) &&
30581 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30582 : (TARGET_64BIT)))
30583 : {
30584 : *pmatch_len_ = 0;
30585 : res = gen_peephole2_7 (insn, operands);
30586 : if (res != NULL_RTX)
30587 : return res;
30588 : }
30589 : if (peep2_current_count >= 2)
30590 : {
30591 : x2 = PATTERN (peep2_next_insn (1));
30592 : switch (pattern1074 (x2))
30593 : {
30594 : case 0:
30595 : if ((
30596 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30597 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30598 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30599 : (TARGET_64BIT)))
30600 : {
30601 : *pmatch_len_ = 1;
30602 : res = gen_peephole2_36 (insn, operands);
30603 : if (res != NULL_RTX)
30604 : return res;
30605 : }
30606 : break;
30607 :
30608 : case 1:
30609 : if ((
30610 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30611 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30612 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30613 : (TARGET_64BIT)))
30614 : {
30615 : *pmatch_len_ = 1;
30616 : res = gen_peephole2_38 (insn, operands);
30617 : if (res != NULL_RTX)
30618 : return res;
30619 : }
30620 : break;
30621 :
30622 : case 2:
30623 : if ((
30624 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30625 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30626 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30627 : (TARGET_64BIT)))
30628 : {
30629 : *pmatch_len_ = 1;
30630 : res = gen_peephole2_40 (insn, operands);
30631 : if (res != NULL_RTX)
30632 : return res;
30633 : }
30634 : break;
30635 :
30636 : default:
30637 : break;
30638 : }
30639 : }
30640 : }
30641 : if (peep2_current_count < 2)
30642 : return NULL;
30643 : x2 = PATTERN (peep2_next_insn (1));
30644 : if (pattern959 (x2,
30645 : E_DImode) != 0
30646 : || !(
30647 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30648 : (peep2_reg_dead_p (2, operands[0])
30649 : && (const0_operand (operands[1], DImode)
30650 : || (constm1_operand (operands[1], DImode)
30651 : && (8 > 1 || TARGET_AVX512DQ)))) &&
30652 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30653 : (TARGET_64BIT)))
30654 : return NULL;
30655 : *pmatch_len_ = 1;
30656 : return gen_peephole2_14 (insn, operands);
30657 :
30658 : case E_HImode:
30659 : if (!general_reg_operand (operands[0], E_HImode))
30660 : return NULL;
30661 : if (const_int_operand (operands[1], E_HImode)
30662 : &&
30663 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30664 : (optimize_insn_for_size_p () && optimize_size > 1
30665 : && operands[1] != const0_rtx
30666 : && (operands[1] != constm1_rtx
30667 : || (HImode == DImode && LEGACY_INT_REG_P (operands[0])))
30668 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30669 : && !ix86_red_zone_used
30670 : && REGNO (operands[0]) != SP_REG))
30671 : {
30672 : *pmatch_len_ = 0;
30673 : res = gen_peephole2_5 (insn, operands);
30674 : if (res != NULL_RTX)
30675 : return res;
30676 : }
30677 : if (peep2_current_count < 2)
30678 : return NULL;
30679 : x2 = PATTERN (peep2_next_insn (1));
30680 : if (pattern959 (x2,
30681 : E_HImode) != 0
30682 : || !
30683 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30684 : (peep2_reg_dead_p (2, operands[0])
30685 : && (const0_operand (operands[1], HImode)
30686 : || (constm1_operand (operands[1], HImode)
30687 : && (2 > 1 || TARGET_AVX512DQ)))))
30688 : return NULL;
30689 : *pmatch_len_ = 1;
30690 : return gen_peephole2_12 (insn, operands);
30691 :
30692 : case E_SImode:
30693 : if (!general_reg_operand (operands[0], E_SImode))
30694 : return NULL;
30695 : if (const_int_operand (operands[1], E_SImode))
30696 : {
30697 : if (
30698 : #line 2963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30699 : (optimize_insn_for_size_p () && optimize_size > 1
30700 : && operands[1] != const0_rtx
30701 : && (operands[1] != constm1_rtx
30702 : || (SImode == DImode && LEGACY_INT_REG_P (operands[0])))
30703 : && IN_RANGE (INTVAL (operands[1]), -128, 127)
30704 : && !ix86_red_zone_used
30705 : && REGNO (operands[0]) != SP_REG))
30706 : {
30707 : *pmatch_len_ = 0;
30708 : res = gen_peephole2_6 (insn, operands);
30709 : if (res != NULL_RTX)
30710 : return res;
30711 : }
30712 : if (peep2_current_count >= 2)
30713 : {
30714 : x2 = PATTERN (peep2_next_insn (1));
30715 : switch (pattern1074 (x2))
30716 : {
30717 : case 0:
30718 : if (
30719 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30720 : (REGNO (operands[0]) == REGNO (operands[2])))
30721 : {
30722 : *pmatch_len_ = 1;
30723 : res = gen_peephole2_35 (insn, operands);
30724 : if (res != NULL_RTX)
30725 : return res;
30726 : }
30727 : break;
30728 :
30729 : case 1:
30730 : if (
30731 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30732 : (REGNO (operands[0]) == REGNO (operands[2])))
30733 : {
30734 : *pmatch_len_ = 1;
30735 : res = gen_peephole2_37 (insn, operands);
30736 : if (res != NULL_RTX)
30737 : return res;
30738 : }
30739 : break;
30740 :
30741 : case 2:
30742 : if ((
30743 : #line 3669 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30744 : (REGNO (operands[0]) == REGNO (operands[2])) &&
30745 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30746 : (TARGET_64BIT)))
30747 : {
30748 : *pmatch_len_ = 1;
30749 : res = gen_peephole2_39 (insn, operands);
30750 : if (res != NULL_RTX)
30751 : return res;
30752 : }
30753 : break;
30754 :
30755 : default:
30756 : break;
30757 : }
30758 : }
30759 : }
30760 : if (peep2_current_count < 2)
30761 : return NULL;
30762 : x2 = PATTERN (peep2_next_insn (1));
30763 : if (pattern959 (x2,
30764 : E_SImode) != 0
30765 : || !
30766 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30767 : (peep2_reg_dead_p (2, operands[0])
30768 : && (const0_operand (operands[1], SImode)
30769 : || (constm1_operand (operands[1], SImode)
30770 : && (4 > 1 || TARGET_AVX512DQ)))))
30771 : return NULL;
30772 : *pmatch_len_ = 1;
30773 : return gen_peephole2_13 (insn, operands);
30774 :
30775 : case E_QImode:
30776 : if (peep2_current_count < 2
30777 : || !general_reg_operand (operands[0], E_QImode))
30778 : return NULL;
30779 : x2 = PATTERN (peep2_next_insn (1));
30780 : if (pattern959 (x2,
30781 : E_QImode) != 0
30782 : || !
30783 : #line 3300 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30784 : (peep2_reg_dead_p (2, operands[0])
30785 : && (const0_operand (operands[1], QImode)
30786 : || (constm1_operand (operands[1], QImode)
30787 : && (1 > 1 || TARGET_AVX512DQ)))))
30788 : return NULL;
30789 : *pmatch_len_ = 1;
30790 : return gen_peephole2_11 (insn, operands);
30791 :
30792 : default:
30793 : return NULL;
30794 : }
30795 : }
30796 :
30797 : rtx_insn *
30798 : peephole2_6 (rtx x1 ATTRIBUTE_UNUSED,
30799 : rtx_insn *insn ATTRIBUTE_UNUSED,
30800 : int *pmatch_len_ ATTRIBUTE_UNUSED)
30801 : {
30802 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
30803 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
30804 : rtx x10, x11, x12, x13;
30805 : rtx_insn *res ATTRIBUTE_UNUSED;
30806 : x2 = XEXP (x1, 1);
30807 : operands[1] = x2;
30808 : x3 = XEXP (x1, 0);
30809 : operands[0] = x3;
30810 : switch (GET_CODE (operands[0]))
30811 : {
30812 : case REG:
30813 : switch (GET_MODE (operands[0]))
30814 : {
30815 : case E_QImode:
30816 : x4 = PATTERN (peep2_next_insn (1));
30817 : switch (pattern733 (x4,
30818 : E_QImode))
30819 : {
30820 : case 0:
30821 : if (pattern1351 (x4,
30822 : E_QImode) != 0
30823 : || !
30824 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30825 : (peep2_reg_dead_p (3, operands[0])
30826 : && optimize_insn_for_size_p ()))
30827 : return NULL;
30828 : *pmatch_len_ = 2;
30829 : return gen_peephole2_15 (insn, operands);
30830 :
30831 : case 1:
30832 : if (XVECLEN (x4, 0) != 2)
30833 : return NULL;
30834 : x5 = XVECEXP (x4, 0, 0);
30835 : if (GET_CODE (x5) != SET)
30836 : return NULL;
30837 : x6 = XEXP (x5, 1);
30838 : if (GET_CODE (x6) != NEG
30839 : || pattern1355 (x4,
30840 : E_QImode) != 0)
30841 : return NULL;
30842 : *pmatch_len_ = 2;
30843 : return gen_peephole2_171 (insn, operands);
30844 :
30845 : default:
30846 : return NULL;
30847 : }
30848 :
30849 : case E_HImode:
30850 : x4 = PATTERN (peep2_next_insn (1));
30851 : switch (pattern733 (x4,
30852 : E_HImode))
30853 : {
30854 : case 0:
30855 : if (pattern1351 (x4,
30856 : E_HImode) != 0
30857 : || !
30858 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30859 : (peep2_reg_dead_p (3, operands[0])
30860 : && optimize_insn_for_size_p ()))
30861 : return NULL;
30862 : *pmatch_len_ = 2;
30863 : return gen_peephole2_16 (insn, operands);
30864 :
30865 : case 1:
30866 : if (XVECLEN (x4, 0) != 2)
30867 : return NULL;
30868 : x5 = XVECEXP (x4, 0, 0);
30869 : if (GET_CODE (x5) != SET)
30870 : return NULL;
30871 : x6 = XEXP (x5, 1);
30872 : if (GET_CODE (x6) == NEG
30873 : && pattern1355 (x4,
30874 : E_HImode) == 0)
30875 : {
30876 : *pmatch_len_ = 2;
30877 : res = gen_peephole2_172 (insn, operands);
30878 : if (res != NULL_RTX)
30879 : return res;
30880 : }
30881 : if (peep2_current_count < 4
30882 : || pattern1357 (x4,
30883 : E_HImode) != 0
30884 : || !
30885 : #line 26950 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30886 : (TARGET_CMOVE
30887 : && REGNO (operands[2]) != REGNO (operands[0])
30888 : && REGNO (operands[2]) != REGNO (operands[1])
30889 : && peep2_reg_dead_p (1, operands[1])
30890 : && peep2_reg_dead_p (4, operands[2])
30891 : && !reg_overlap_mentioned_p (operands[0], operands[3])))
30892 : return NULL;
30893 : *pmatch_len_ = 3;
30894 : return gen_peephole2_223 (insn, operands);
30895 :
30896 : default:
30897 : return NULL;
30898 : }
30899 :
30900 : case E_SImode:
30901 : if (!general_reg_operand (operands[0], E_SImode)
30902 : || !general_reg_operand (operands[1], E_SImode))
30903 : return NULL;
30904 : if (peep2_current_count >= 2)
30905 : {
30906 : x4 = PATTERN (peep2_next_insn (1));
30907 : if (pattern1075 (x4,
30908 : E_SImode) == 0
30909 : &&
30910 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30911 : (peep2_reg_dead_p (3, operands[0])
30912 : && optimize_insn_for_size_p ()))
30913 : {
30914 : *pmatch_len_ = 2;
30915 : res = gen_peephole2_17 (insn, operands);
30916 : if (res != NULL_RTX)
30917 : return res;
30918 : }
30919 : }
30920 : if (!
30921 : #line 3435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30922 : (optimize_size > 1
30923 : && ((REGNO (operands[0]) == AX_REG)
30924 : != (REGNO (operands[1]) == AX_REG))
30925 : && optimize_insn_for_size_p ()
30926 : && peep2_reg_dead_p (1, operands[1])))
30927 : return NULL;
30928 : *pmatch_len_ = 0;
30929 : return gen_peephole2_27 (insn, operands);
30930 :
30931 : case E_DImode:
30932 : if (!general_reg_operand (operands[0], E_DImode)
30933 : || !general_reg_operand (operands[1], E_DImode))
30934 : return NULL;
30935 : if (peep2_current_count >= 2)
30936 : {
30937 : x4 = PATTERN (peep2_next_insn (1));
30938 : if (pattern1075 (x4,
30939 : E_DImode) == 0
30940 : && (
30941 : #line 3402 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30942 : (peep2_reg_dead_p (3, operands[0])
30943 : && optimize_insn_for_size_p ()) &&
30944 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30945 : (TARGET_64BIT)))
30946 : {
30947 : *pmatch_len_ = 2;
30948 : res = gen_peephole2_18 (insn, operands);
30949 : if (res != NULL_RTX)
30950 : return res;
30951 : }
30952 : }
30953 : if ((
30954 : #line 3435 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30955 : (optimize_size > 1
30956 : && ((REGNO (operands[0]) == AX_REG)
30957 : != (REGNO (operands[1]) == AX_REG))
30958 : && optimize_insn_for_size_p ()
30959 : && peep2_reg_dead_p (1, operands[1])) &&
30960 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
30961 : (TARGET_64BIT)))
30962 : {
30963 : *pmatch_len_ = 0;
30964 : res = gen_peephole2_28 (insn, operands);
30965 : if (res != NULL_RTX)
30966 : return res;
30967 : }
30968 : if (peep2_current_count < 2
30969 : || peep2_current_count < 3
30970 : || peep2_current_count < 4)
30971 : return NULL;
30972 : x4 = PATTERN (peep2_next_insn (1));
30973 : if (GET_CODE (x4) != PARALLEL
30974 : || XVECLEN (x4, 0) != 2)
30975 : return NULL;
30976 : x5 = XVECEXP (x4, 0, 0);
30977 : if (GET_CODE (x5) != SET)
30978 : return NULL;
30979 : x6 = XEXP (x5, 1);
30980 : if (GET_CODE (x6) != ASHIFTRT
30981 : || GET_MODE (x6) != E_DImode)
30982 : return NULL;
30983 : x7 = XEXP (x6, 1);
30984 : if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 63]
30985 : || pattern1353 (x4) != 0)
30986 : return NULL;
30987 : x8 = PATTERN (peep2_next_insn (2));
30988 : if (GET_CODE (x8) != SET)
30989 : return NULL;
30990 : x9 = XEXP (x8, 0);
30991 : operands[2] = x9;
30992 : if (!general_reg_operand (operands[2], E_DImode))
30993 : return NULL;
30994 : x10 = XEXP (x8, 1);
30995 : if (!rtx_equal_p (x10, operands[1]))
30996 : return NULL;
30997 : x11 = PATTERN (peep2_next_insn (3));
30998 : if (GET_CODE (x11) != SET)
30999 : return NULL;
31000 : x12 = XEXP (x11, 0);
31001 : operands[3] = x12;
31002 : if (!general_reg_operand (operands[3], E_DImode))
31003 : return NULL;
31004 : x13 = XEXP (x11, 1);
31005 : if (!rtx_equal_p (x13, operands[0])
31006 : || !
31007 : #line 5127 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31008 : ((optimize_function_for_size_p (cfun) || TARGET_USE_CLTD)
31009 : && REGNO (operands[2]) == AX_REG
31010 : && REGNO (operands[3]) == DX_REG
31011 : && peep2_reg_dead_p (4, operands[0])
31012 : && !reg_mentioned_p (operands[0], operands[1])
31013 : && !reg_mentioned_p (operands[2], operands[0])))
31014 : return NULL;
31015 : *pmatch_len_ = 3;
31016 : return gen_peephole2_53 (insn, operands);
31017 :
31018 : default:
31019 : return NULL;
31020 : }
31021 :
31022 : case SUBREG:
31023 : case MEM:
31024 : if (peep2_current_count < 2
31025 : || peep2_current_count < 3)
31026 : return NULL;
31027 : switch (GET_MODE (operands[0]))
31028 : {
31029 : case E_SImode:
31030 : x4 = PATTERN (peep2_next_insn (1));
31031 : switch (pattern960 (x4,
31032 : E_SImode))
31033 : {
31034 : case 0:
31035 : if (!(
31036 : #line 5050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31037 : (REGNO (operands[1]) != REGNO (operands[2])
31038 : && INTVAL (operands[4]) == (4 * BITS_PER_UNIT - 1)
31039 : && peep2_reg_dead_p (2, operands[1])
31040 : && peep2_reg_dead_p (4, operands[2])
31041 : && !reg_mentioned_p (operands[2], operands[3])) &&
31042 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31043 : (!TARGET_64BIT)))
31044 : return NULL;
31045 : *pmatch_len_ = 3;
31046 : return gen_peephole2_49 (insn, operands);
31047 :
31048 : case 1:
31049 : if (!(
31050 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31051 : (/* cltd is shorter than sarl $31, %eax */
31052 : !optimize_function_for_size_p (cfun)
31053 : && REGNO (operands[1]) == AX_REG
31054 : && REGNO (operands[2]) == DX_REG
31055 : && INTVAL (operands[4]) == (4 * BITS_PER_UNIT - 1)
31056 : && peep2_reg_dead_p (2, operands[1])
31057 : && peep2_reg_dead_p (3, operands[2])
31058 : && !reg_mentioned_p (operands[2], operands[3])) &&
31059 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31060 : (!TARGET_64BIT)))
31061 : return NULL;
31062 : *pmatch_len_ = 2;
31063 : return gen_peephole2_51 (insn, operands);
31064 :
31065 : default:
31066 : return NULL;
31067 : }
31068 :
31069 : case E_DImode:
31070 : x4 = PATTERN (peep2_next_insn (1));
31071 : switch (pattern960 (x4,
31072 : E_DImode))
31073 : {
31074 : case 0:
31075 : if (!(
31076 : #line 5050 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31077 : (REGNO (operands[1]) != REGNO (operands[2])
31078 : && INTVAL (operands[4]) == (8 * BITS_PER_UNIT - 1)
31079 : && peep2_reg_dead_p (2, operands[1])
31080 : && peep2_reg_dead_p (4, operands[2])
31081 : && !reg_mentioned_p (operands[2], operands[3])) &&
31082 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31083 : (TARGET_64BIT)))
31084 : return NULL;
31085 : *pmatch_len_ = 3;
31086 : return gen_peephole2_50 (insn, operands);
31087 :
31088 : case 1:
31089 : if (!(
31090 : #line 5068 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31091 : (/* cltd is shorter than sarl $31, %eax */
31092 : !optimize_function_for_size_p (cfun)
31093 : && REGNO (operands[1]) == AX_REG
31094 : && REGNO (operands[2]) == DX_REG
31095 : && INTVAL (operands[4]) == (8 * BITS_PER_UNIT - 1)
31096 : && peep2_reg_dead_p (2, operands[1])
31097 : && peep2_reg_dead_p (3, operands[2])
31098 : && !reg_mentioned_p (operands[2], operands[3])) &&
31099 : #line 1237 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31100 : (TARGET_64BIT)))
31101 : return NULL;
31102 : *pmatch_len_ = 2;
31103 : return gen_peephole2_52 (insn, operands);
31104 :
31105 : default:
31106 : return NULL;
31107 : }
31108 :
31109 : default:
31110 : return NULL;
31111 : }
31112 :
31113 : default:
31114 : return NULL;
31115 : }
31116 : }
31117 :
31118 : rtx_insn *
31119 : peephole2_11 (rtx x1 ATTRIBUTE_UNUSED,
31120 : rtx_insn *insn ATTRIBUTE_UNUSED,
31121 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31122 : {
31123 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31124 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31125 : rtx x10, x11, x12, x13, x14;
31126 : rtx_insn *res ATTRIBUTE_UNUSED;
31127 : x2 = PATTERN (peep2_next_insn (1));
31128 : x3 = XEXP (x2, 1);
31129 : if (GET_CODE (x3) != IOR
31130 : || GET_MODE (x3) != E_SImode)
31131 : return NULL;
31132 : x4 = XEXP (x3, 0);
31133 : if (GET_CODE (x4) != AND
31134 : || GET_MODE (x4) != E_SImode)
31135 : return NULL;
31136 : x5 = XEXP (x4, 1);
31137 : if (GET_CODE (x5) != CONST_INT
31138 : || XWINT (x5, 0) != -65536L)
31139 : return NULL;
31140 : x6 = XEXP (x3, 1);
31141 : if (GET_CODE (x6) != LSHIFTRT
31142 : || GET_MODE (x6) != E_SImode)
31143 : return NULL;
31144 : x7 = XEXP (x6, 0);
31145 : if (GET_CODE (x7) != BSWAP
31146 : || GET_MODE (x7) != E_SImode)
31147 : return NULL;
31148 : x8 = XEXP (x6, 1);
31149 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
31150 : return NULL;
31151 : x9 = XEXP (x4, 0);
31152 : if (!rtx_equal_p (x9, operands[0]))
31153 : return NULL;
31154 : x10 = XEXP (x7, 0);
31155 : if (!rtx_equal_p (x10, operands[0]))
31156 : return NULL;
31157 : x11 = XEXP (x2, 0);
31158 : if (!rtx_equal_p (x11, operands[0]))
31159 : return NULL;
31160 : x12 = PATTERN (peep2_next_insn (2));
31161 : if (GET_CODE (x12) != SET)
31162 : return NULL;
31163 : x13 = XEXP (x12, 0);
31164 : operands[2] = x13;
31165 : if (!general_reg_operand (operands[2], E_SImode))
31166 : return NULL;
31167 : x14 = XEXP (x12, 1);
31168 : if (!rtx_equal_p (x14, operands[0])
31169 : || !
31170 : #line 23043 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31171 : (!(TARGET_USE_XCHGB ||
31172 : TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
31173 : && peep2_regno_dead_p (0, FLAGS_REG)
31174 : && peep2_reg_dead_p(3, operands[0])))
31175 : return NULL;
31176 : *pmatch_len_ = 2;
31177 : return gen_peephole2_212 (insn, operands);
31178 : }
31179 :
31180 : rtx_insn *
31181 : peephole2_12 (rtx x1 ATTRIBUTE_UNUSED,
31182 : rtx_insn *insn ATTRIBUTE_UNUSED,
31183 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31184 : {
31185 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31186 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31187 : rtx x10, x11, x12, x13, x14;
31188 : rtx_insn *res ATTRIBUTE_UNUSED;
31189 : x2 = XEXP (x1, 1);
31190 : operands[1] = x2;
31191 : if (register_operand (operands[0], E_SImode))
31192 : {
31193 : res = peephole2_10 (x1, insn, pmatch_len_);
31194 : if (res != NULL_RTX)
31195 : return res;
31196 : }
31197 : if (peep2_current_count < 2
31198 : || peep2_current_count < 3
31199 : || !general_reg_operand (operands[0], E_SImode))
31200 : return NULL;
31201 : x3 = PATTERN (peep2_next_insn (1));
31202 : if (GET_CODE (x3) == PARALLEL
31203 : && XVECLEN (x3, 0) == 2)
31204 : {
31205 : x4 = XVECEXP (x3, 0, 0);
31206 : if (GET_CODE (x4) == SET)
31207 : {
31208 : if (memory_operand (operands[1], E_SImode))
31209 : {
31210 : switch (pattern1205 (x3,
31211 : E_SImode,
31212 : E_DImode))
31213 : {
31214 : case 0:
31215 : if (
31216 : #line 8720 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31217 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31218 : && peep2_reg_dead_p (3, operands[0])
31219 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31220 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31221 : {
31222 : *pmatch_len_ = 2;
31223 : res = gen_peephole2_76 (insn, operands);
31224 : if (res != NULL_RTX)
31225 : return res;
31226 : }
31227 : break;
31228 :
31229 : case 1:
31230 : if (
31231 : #line 8747 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31232 : (TARGET_APX_NDD
31233 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31234 : && peep2_reg_dead_p (3, operands[0])
31235 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31236 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31237 : {
31238 : *pmatch_len_ = 2;
31239 : res = gen_peephole2_80 (insn, operands);
31240 : if (res != NULL_RTX)
31241 : return res;
31242 : }
31243 : break;
31244 :
31245 : case 2:
31246 : if (
31247 : #line 9250 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31248 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31249 : && peep2_reg_dead_p (3, operands[0])
31250 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31251 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31252 : {
31253 : *pmatch_len_ = 2;
31254 : res = gen_peephole2_96 (insn, operands);
31255 : if (res != NULL_RTX)
31256 : return res;
31257 : }
31258 : break;
31259 :
31260 : case 3:
31261 : x5 = PATTERN (peep2_next_insn (2));
31262 : x6 = XEXP (x5, 0);
31263 : if (rtx_equal_p (x6, operands[1])
31264 : &&
31265 : #line 9306 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31266 : (TARGET_APX_NDD
31267 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31268 : && peep2_reg_dead_p (3, operands[0])
31269 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31270 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31271 : {
31272 : *pmatch_len_ = 2;
31273 : res = gen_peephole2_98 (insn, operands);
31274 : if (res != NULL_RTX)
31275 : return res;
31276 : }
31277 : if (rtx_equal_p (x6, operands[2])
31278 : &&
31279 : #line 9361 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31280 : (TARGET_APX_NDD
31281 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31282 : && peep2_reg_dead_p (3, operands[0])
31283 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31284 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31285 : {
31286 : *pmatch_len_ = 2;
31287 : res = gen_peephole2_100 (insn, operands);
31288 : if (res != NULL_RTX)
31289 : return res;
31290 : }
31291 : break;
31292 :
31293 : case 4:
31294 : if (
31295 : #line 9918 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31296 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31297 : && peep2_reg_dead_p (3, operands[0])
31298 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31299 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31300 : {
31301 : *pmatch_len_ = 2;
31302 : res = gen_peephole2_112 (insn, operands);
31303 : if (res != NULL_RTX)
31304 : return res;
31305 : }
31306 : break;
31307 :
31308 : case 5:
31309 : if (
31310 : #line 9963 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31311 : (TARGET_APX_NDD
31312 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31313 : && peep2_reg_dead_p (3, operands[0])
31314 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31315 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31316 : {
31317 : *pmatch_len_ = 2;
31318 : res = gen_peephole2_114 (insn, operands);
31319 : if (res != NULL_RTX)
31320 : return res;
31321 : }
31322 : break;
31323 :
31324 : case 6:
31325 : if (
31326 : #line 10330 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31327 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31328 : && peep2_reg_dead_p (3, operands[0])
31329 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31330 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31331 : {
31332 : *pmatch_len_ = 2;
31333 : res = gen_peephole2_126 (insn, operands);
31334 : if (res != NULL_RTX)
31335 : return res;
31336 : }
31337 : break;
31338 :
31339 : case 7:
31340 : if (
31341 : #line 8865 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31342 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31343 : && peep2_reg_dead_p (3, operands[0])
31344 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31345 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31346 : {
31347 : *pmatch_len_ = 2;
31348 : res = gen_peephole2_88 (insn, operands);
31349 : if (res != NULL_RTX)
31350 : return res;
31351 : }
31352 : break;
31353 :
31354 : case 8:
31355 : if (
31356 : #line 8891 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31357 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31358 : && peep2_reg_dead_p (3, operands[0])
31359 : && peep2_reg_dead_p (4, operands[5])
31360 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31361 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31362 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31363 : {
31364 : *pmatch_len_ = 3;
31365 : res = gen_peephole2_92 (insn, operands);
31366 : if (res != NULL_RTX)
31367 : return res;
31368 : }
31369 : break;
31370 :
31371 : case 9:
31372 : if (
31373 : #line 9530 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31374 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31375 : && peep2_reg_dead_p (3, operands[0])
31376 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31377 : && !reg_overlap_mentioned_p (operands[0], operands[2])))
31378 : {
31379 : *pmatch_len_ = 2;
31380 : res = gen_peephole2_106 (insn, operands);
31381 : if (res != NULL_RTX)
31382 : return res;
31383 : }
31384 : break;
31385 :
31386 : case 10:
31387 : if (
31388 : #line 9556 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31389 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31390 : && peep2_reg_dead_p (3, operands[0])
31391 : && peep2_reg_dead_p (4, operands[5])
31392 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31393 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31394 : && !reg_overlap_mentioned_p (operands[5], operands[1])))
31395 : {
31396 : *pmatch_len_ = 3;
31397 : res = gen_peephole2_110 (insn, operands);
31398 : if (res != NULL_RTX)
31399 : return res;
31400 : }
31401 : break;
31402 :
31403 : default:
31404 : break;
31405 : }
31406 : }
31407 : if (peep2_current_count >= 4
31408 : && pattern1207 (x3,
31409 : E_SImode) == 0
31410 : &&
31411 : #line 14622 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31412 : (REGNO (operands[0]) != REGNO (operands[2])
31413 : && !reg_mentioned_p (operands[0], operands[1])
31414 : && !reg_mentioned_p (operands[2], operands[1])))
31415 : {
31416 : *pmatch_len_ = 3;
31417 : res = gen_peephole2_167 (insn, operands);
31418 : if (res != NULL_RTX)
31419 : return res;
31420 : }
31421 : if (general_reg_operand (operands[1], E_SImode))
31422 : {
31423 : x7 = XEXP (x4, 1);
31424 : if (GET_CODE (x7) == NEG
31425 : && GET_MODE (x7) == E_SImode
31426 : && pattern1353 (x3) == 0)
31427 : {
31428 : x5 = PATTERN (peep2_next_insn (2));
31429 : if (GET_CODE (x5) == SET
31430 : && pattern1354 (x5) == 0)
31431 : {
31432 : *pmatch_len_ = 2;
31433 : res = gen_peephole2_173 (insn, operands);
31434 : if (res != NULL_RTX)
31435 : return res;
31436 : }
31437 : }
31438 : }
31439 : }
31440 : }
31441 : if (GET_CODE (x3) != SET)
31442 : return NULL;
31443 : if (register_operand (operands[1], E_SImode))
31444 : {
31445 : res = peephole2_11 (x1, insn, pmatch_len_);
31446 : if (res != NULL_RTX)
31447 : return res;
31448 : }
31449 : if (!immediate_operand (operands[1], E_SImode))
31450 : return NULL;
31451 : switch (pattern961 (x3,
31452 : E_DImode,
31453 : E_SImode))
31454 : {
31455 : case 0:
31456 : if (!(
31457 : #line 11428 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31458 : (REGNO (operands[3]) != AX_REG
31459 : && REGNO (operands[0]) != REGNO (operands[2])
31460 : && REGNO (operands[0]) != REGNO (operands[3])
31461 : && (REGNO (operands[0]) == REGNO (operands[4])
31462 : || REGNO (operands[0]) == DX_REG
31463 : || peep2_reg_dead_p (3, operands[0]))) &&
31464 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31465 : (!TARGET_64BIT)))
31466 : return NULL;
31467 : *pmatch_len_ = 2;
31468 : return gen_peephole2_130 (insn, operands);
31469 :
31470 : case 1:
31471 : if (!(
31472 : #line 11450 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31473 : (REGNO (operands[3]) != DX_REG
31474 : && REGNO (operands[0]) != REGNO (operands[2])
31475 : && REGNO (operands[0]) != REGNO (operands[3])
31476 : && (REGNO (operands[0]) == REGNO (operands[4])
31477 : || REGNO (operands[0]) == REGNO (operands[5])
31478 : || peep2_reg_dead_p (3, operands[0]))
31479 : && (REGNO (operands[2]) == REGNO (operands[4])
31480 : || REGNO (operands[2]) == REGNO (operands[5])
31481 : || peep2_reg_dead_p (3, operands[2]))) &&
31482 : #line 1236 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31483 : (!TARGET_64BIT)))
31484 : return NULL;
31485 : *pmatch_len_ = 2;
31486 : return gen_peephole2_132 (insn, operands);
31487 :
31488 : case 2:
31489 : x5 = PATTERN (peep2_next_insn (2));
31490 : x8 = XVECEXP (x5, 0, 1);
31491 : x9 = XEXP (x8, 0);
31492 : if (!rtx_equal_p (x9, operands[2]))
31493 : return NULL;
31494 : x10 = XVECEXP (x5, 0, 0);
31495 : x11 = XEXP (x10, 1);
31496 : switch (GET_CODE (x11))
31497 : {
31498 : case SMUL_HIGHPART:
31499 : if (pattern1806 (x11) != 0
31500 : || !
31501 : #line 11589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31502 : (REGNO (operands[3]) != AX_REG
31503 : && REGNO (operands[0]) != REGNO (operands[2])
31504 : && REGNO (operands[0]) != REGNO (operands[3])
31505 : && (REGNO (operands[0]) == REGNO (operands[4])
31506 : || peep2_reg_dead_p (3, operands[0]))))
31507 : return NULL;
31508 : *pmatch_len_ = 2;
31509 : return gen_peephole2_134 (insn, operands);
31510 :
31511 : case UMUL_HIGHPART:
31512 : if (pattern1806 (x11) != 0
31513 : || !
31514 : #line 11589 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31515 : (REGNO (operands[3]) != AX_REG
31516 : && REGNO (operands[0]) != REGNO (operands[2])
31517 : && REGNO (operands[0]) != REGNO (operands[3])
31518 : && (REGNO (operands[0]) == REGNO (operands[4])
31519 : || peep2_reg_dead_p (3, operands[0]))))
31520 : return NULL;
31521 : *pmatch_len_ = 2;
31522 : return gen_peephole2_135 (insn, operands);
31523 :
31524 : case ZERO_EXTEND:
31525 : if (GET_MODE (x11) != E_DImode
31526 : || !general_reg_operand (operands[4], E_DImode))
31527 : return NULL;
31528 : x12 = XEXP (x11, 0);
31529 : if (GET_MODE (x12) != E_SImode)
31530 : return NULL;
31531 : switch (GET_CODE (x12))
31532 : {
31533 : case SMUL_HIGHPART:
31534 : x13 = XEXP (x12, 0);
31535 : if (!rtx_equal_p (x13, operands[2]))
31536 : return NULL;
31537 : x14 = XEXP (x12, 1);
31538 : if (!rtx_equal_p (x14, operands[0])
31539 : || !
31540 : #line 11610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31541 : (TARGET_64BIT
31542 : && REGNO (operands[3]) != AX_REG
31543 : && REGNO (operands[0]) != REGNO (operands[2])
31544 : && REGNO (operands[2]) != REGNO (operands[3])
31545 : && REGNO (operands[0]) != REGNO (operands[3])
31546 : && (REGNO (operands[0]) == REGNO (operands[4])
31547 : || peep2_reg_dead_p (3, operands[0]))))
31548 : return NULL;
31549 : *pmatch_len_ = 2;
31550 : return gen_peephole2_138 (insn, operands);
31551 :
31552 : case UMUL_HIGHPART:
31553 : x13 = XEXP (x12, 0);
31554 : if (!rtx_equal_p (x13, operands[2]))
31555 : return NULL;
31556 : x14 = XEXP (x12, 1);
31557 : if (!rtx_equal_p (x14, operands[0])
31558 : || !
31559 : #line 11610 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31560 : (TARGET_64BIT
31561 : && REGNO (operands[3]) != AX_REG
31562 : && REGNO (operands[0]) != REGNO (operands[2])
31563 : && REGNO (operands[2]) != REGNO (operands[3])
31564 : && REGNO (operands[0]) != REGNO (operands[3])
31565 : && (REGNO (operands[0]) == REGNO (operands[4])
31566 : || peep2_reg_dead_p (3, operands[0]))))
31567 : return NULL;
31568 : *pmatch_len_ = 2;
31569 : return gen_peephole2_139 (insn, operands);
31570 :
31571 : default:
31572 : return NULL;
31573 : }
31574 :
31575 : default:
31576 : return NULL;
31577 : }
31578 :
31579 : default:
31580 : return NULL;
31581 : }
31582 : }
31583 :
31584 : rtx_insn *
31585 : peephole2_21 (rtx x1 ATTRIBUTE_UNUSED,
31586 : rtx_insn *insn ATTRIBUTE_UNUSED,
31587 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31588 : {
31589 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31590 : rtx x2, x3, x4, x5, x6;
31591 : rtx_insn *res ATTRIBUTE_UNUSED;
31592 : x2 = PATTERN (peep2_next_insn (1));
31593 : if (GET_CODE (x2) != SET)
31594 : return NULL;
31595 : x3 = XEXP (x2, 1);
31596 : if (!binary_fp_operator (x3, E_VOIDmode))
31597 : return NULL;
31598 : operands[2] = x3;
31599 : x4 = XEXP (x2, 0);
31600 : if (!rtx_equal_p (x4, operands[0]))
31601 : return NULL;
31602 : x5 = XEXP (x3, 0);
31603 : switch (GET_CODE (x5))
31604 : {
31605 : case REG:
31606 : if (!rtx_equal_p (x5, operands[0]))
31607 : return NULL;
31608 : x6 = XEXP (x3, 1);
31609 : operands[3] = x6;
31610 : if (!memory_operand (operands[3], E_VOIDmode)
31611 : || !
31612 : #line 27292 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31613 : (REGNO (operands[0]) != REGNO (operands[1])))
31614 : return NULL;
31615 : *pmatch_len_ = 1;
31616 : return gen_peephole2_231 (insn, operands);
31617 :
31618 : case SUBREG:
31619 : case MEM:
31620 : operands[3] = x5;
31621 : if (!memory_operand (operands[3], E_VOIDmode))
31622 : return NULL;
31623 : x6 = XEXP (x3, 1);
31624 : if (!rtx_equal_p (x6, operands[0])
31625 : || !
31626 : #line 27314 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31627 : (REGNO (operands[0]) != REGNO (operands[1])))
31628 : return NULL;
31629 : *pmatch_len_ = 1;
31630 : return gen_peephole2_232 (insn, operands);
31631 :
31632 : default:
31633 : return NULL;
31634 : }
31635 : }
31636 :
31637 : rtx_insn *
31638 : peephole2_23 (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;
31645 : rtx_insn *res ATTRIBUTE_UNUSED;
31646 : x2 = PATTERN (peep2_next_insn (1));
31647 : if (pattern421 (x2,
31648 : CALL,
31649 : 2) != 0)
31650 : return NULL;
31651 : x3 = XVECEXP (x2, 0, 0);
31652 : x4 = XEXP (x3, 1);
31653 : x5 = XEXP (x4, 0);
31654 : if (GET_CODE (x5) != MEM
31655 : || GET_MODE (x5) != E_QImode)
31656 : return NULL;
31657 : x6 = XVECEXP (x2, 0, 1);
31658 : if (pattern1266 (x6) != 0)
31659 : return NULL;
31660 : x7 = XEXP (x6, 0);
31661 : if (GET_CODE (x7) != REG
31662 : || REGNO (x7) != 7
31663 : || GET_MODE (x7) != E_SImode)
31664 : return NULL;
31665 : x8 = XEXP (x3, 0);
31666 : operands[2] = x8;
31667 : x9 = XEXP (x4, 1);
31668 : operands[3] = x9;
31669 : x10 = XEXP (x6, 1);
31670 : x11 = XEXP (x10, 1);
31671 : operands[4] = x11;
31672 : if (!immediate_operand (operands[4], E_SImode))
31673 : return NULL;
31674 : x12 = XEXP (x5, 0);
31675 : if (!rtx_equal_p (x12, operands[0])
31676 : || !
31677 : #line 20840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31678 : (!TARGET_64BIT && SIBLING_CALL_P (peep2_next_insn (1))
31679 : && !reg_mentioned_p (operands[0],
31680 : CALL_INSN_FUNCTION_USAGE (peep2_next_insn (1)))))
31681 : return NULL;
31682 : *pmatch_len_ = 1;
31683 : return gen_peephole2_208 (insn, operands);
31684 : }
31685 :
31686 : rtx_insn *
31687 : peephole2_26 (rtx x1 ATTRIBUTE_UNUSED,
31688 : rtx_insn *insn ATTRIBUTE_UNUSED,
31689 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31690 : {
31691 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31692 : rtx x2, x3, x4, x5, x6;
31693 : rtx_insn *res ATTRIBUTE_UNUSED;
31694 : if (!memory_operand (operands[1], E_SImode)
31695 : || !register_operand (operands[0], E_SImode))
31696 : return NULL;
31697 : x2 = PATTERN (peep2_next_insn (1));
31698 : switch (GET_CODE (x2))
31699 : {
31700 : case PARALLEL:
31701 : if (XVECLEN (x2, 0) != 2)
31702 : return NULL;
31703 : x3 = XVECEXP (x2, 0, 0);
31704 : if (GET_CODE (x3) != SET)
31705 : return NULL;
31706 : x4 = PATTERN (peep2_next_insn (2));
31707 : if (GET_CODE (x4) != SET)
31708 : return NULL;
31709 : x5 = XEXP (x3, 1);
31710 : switch (GET_CODE (x5))
31711 : {
31712 : case PLUS:
31713 : case MINUS:
31714 : case AND:
31715 : case IOR:
31716 : case XOR:
31717 : if (peep2_current_count < 4)
31718 : return NULL;
31719 : operands[3] = x5;
31720 : res = peephole2_25 (x1, insn, pmatch_len_);
31721 : if (res != NULL_RTX)
31722 : return res;
31723 : if (GET_CODE (x5) != XOR
31724 : || pattern1362 (x2,
31725 : E_SImode) != 0
31726 : || pattern1832 (x4,
31727 : E_SImode) != 0
31728 : || !
31729 : #line 28840 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31730 : (TARGET_APX_NDD
31731 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31732 : && REGNO (operands[3]) == REGNO (operands[0])
31733 : && (rtx_equal_p (operands[0], operands[5])
31734 : ? rtx_equal_p (operands[2], operands[6])
31735 : : rtx_equal_p (operands[2], operands[5])
31736 : && rtx_equal_p (operands[0], operands[6]))
31737 : && peep2_reg_dead_p (3, operands[4])
31738 : && peep2_reg_dead_p (4, operands[0])
31739 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31740 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31741 : && (SImode != QImode
31742 : || immediate_operand (operands[2], QImode)
31743 : || any_QIreg_operand (operands[2], QImode))))
31744 : return NULL;
31745 : *pmatch_len_ = 3;
31746 : return gen_peephole2_341 (insn, operands);
31747 :
31748 : case COMPARE:
31749 : if (pattern1267 (x2,
31750 : E_SImode) != 0
31751 : || pattern1516 (x2) != 0)
31752 : return NULL;
31753 : x6 = XEXP (x4, 0);
31754 : if (rtx_equal_p (x6, operands[1])
31755 : &&
31756 : #line 28670 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31757 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31758 : && peep2_reg_dead_p (3, operands[0])
31759 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31760 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31761 : && ix86_match_ccmode (peep2_next_insn (1),
31762 : (GET_CODE (operands[3]) == PLUS
31763 : || GET_CODE (operands[3]) == MINUS)
31764 : ? CCGOCmode : CCNOmode)))
31765 : {
31766 : *pmatch_len_ = 2;
31767 : res = gen_peephole2_321 (insn, operands);
31768 : if (res != NULL_RTX)
31769 : return res;
31770 : }
31771 : if (peep2_current_count < 4
31772 : || pattern1833 (x6,
31773 : E_SImode) != 0
31774 : || !
31775 : #line 28993 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31776 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31777 : && peep2_reg_dead_p (3, operands[0])
31778 : && peep2_reg_dead_p (4, operands[4])
31779 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31780 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31781 : && !reg_overlap_mentioned_p (operands[4], operands[1])
31782 : && ix86_match_ccmode (peep2_next_insn (1),
31783 : (GET_CODE (operands[3]) == PLUS
31784 : || GET_CODE (operands[3]) == MINUS)
31785 : ? CCGOCmode : CCNOmode)))
31786 : return NULL;
31787 : *pmatch_len_ = 3;
31788 : return gen_peephole2_353 (insn, operands);
31789 :
31790 : default:
31791 : return NULL;
31792 : }
31793 :
31794 : case SET:
31795 : if (pattern852 (x2,
31796 : E_SImode) != 0
31797 : || !
31798 : #line 29029 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31799 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
31800 : && (REGNO (operands[4]) == REGNO (operands[0])
31801 : || REGNO (operands[4]) == REGNO (operands[3]))
31802 : && (rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31803 : ? 3 : 0], operands[5])
31804 : ? rtx_equal_p (operands[2], operands[6])
31805 : : rtx_equal_p (operands[2], operands[5])
31806 : && rtx_equal_p (operands[REGNO (operands[4]) == REGNO (operands[0])
31807 : ? 3 : 0], operands[6]))
31808 : && peep2_reg_dead_p (4, operands[4])
31809 : && peep2_reg_dead_p (5, operands[REGNO (operands[4]) == REGNO (operands[0])
31810 : ? 3 : 0])
31811 : && !reg_overlap_mentioned_p (operands[0], operands[1])
31812 : && !reg_overlap_mentioned_p (operands[0], operands[2])
31813 : && !reg_overlap_mentioned_p (operands[3], operands[0])
31814 : && !reg_overlap_mentioned_p (operands[3], operands[1])
31815 : && !reg_overlap_mentioned_p (operands[3], operands[2])
31816 : && (SImode != QImode
31817 : || immediate_operand (operands[2], QImode)
31818 : || any_QIreg_operand (operands[2], QImode))))
31819 : return NULL;
31820 : *pmatch_len_ = 4;
31821 : return gen_peephole2_357 (insn, operands);
31822 :
31823 : default:
31824 : return NULL;
31825 : }
31826 : }
31827 :
31828 : rtx_insn *
31829 : peephole2_30 (rtx x1 ATTRIBUTE_UNUSED,
31830 : rtx_insn *insn ATTRIBUTE_UNUSED,
31831 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31832 : {
31833 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31834 : rtx x2, x3, x4, x5, x6, x7;
31835 : rtx_insn *res ATTRIBUTE_UNUSED;
31836 : x2 = XEXP (x1, 1);
31837 : x3 = XEXP (x2, 0);
31838 : switch (GET_CODE (x3))
31839 : {
31840 : case NE:
31841 : case EQ:
31842 : case GE:
31843 : case GT:
31844 : case LE:
31845 : case LT:
31846 : case LTGT:
31847 : case GEU:
31848 : case GTU:
31849 : case LEU:
31850 : case LTU:
31851 : case UNORDERED:
31852 : case ORDERED:
31853 : case UNEQ:
31854 : case UNGE:
31855 : case UNGT:
31856 : case UNLE:
31857 : case UNLT:
31858 : operands[1] = x3;
31859 : switch (pattern247 (x1))
31860 : {
31861 : case 0:
31862 : switch (GET_MODE (operands[0]))
31863 : {
31864 : case E_HImode:
31865 : if (pattern1208 (x2,
31866 : E_HImode) != 0
31867 : || !
31868 : #line 26882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31869 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31870 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31871 : && optimize_insn_for_speed_p ()))
31872 : return NULL;
31873 : *pmatch_len_ = 0;
31874 : return gen_peephole2_219 (insn, operands);
31875 :
31876 : case E_SImode:
31877 : if (pattern1208 (x2,
31878 : E_SImode) != 0
31879 : || !
31880 : #line 26882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31881 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31882 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31883 : && optimize_insn_for_speed_p ()))
31884 : return NULL;
31885 : *pmatch_len_ = 0;
31886 : return gen_peephole2_220 (insn, operands);
31887 :
31888 : case E_DImode:
31889 : if (pattern1208 (x2,
31890 : E_DImode) != 0
31891 : || !(
31892 : #line 26882 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31893 : (TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31894 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31895 : && optimize_insn_for_speed_p ()) &&
31896 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31897 : (TARGET_64BIT)))
31898 : return NULL;
31899 : *pmatch_len_ = 0;
31900 : return gen_peephole2_221 (insn, operands);
31901 :
31902 : case E_SFmode:
31903 : if (!general_reg_operand (operands[0], E_SFmode)
31904 : || pattern1269 (x2,
31905 : E_SFmode) != 0
31906 : || !
31907 : #line 27134 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31908 : ((SFmode != DFmode || TARGET_64BIT)
31909 : && TARGET_80387 && TARGET_CMOVE
31910 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31911 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31912 : && optimize_insn_for_speed_p ()))
31913 : return NULL;
31914 : *pmatch_len_ = 0;
31915 : return gen_peephole2_229 (insn, operands);
31916 :
31917 : case E_DFmode:
31918 : if (!general_reg_operand (operands[0], E_DFmode)
31919 : || pattern1269 (x2,
31920 : E_DFmode) != 0
31921 : || !
31922 : #line 27134 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31923 : ((DFmode != DFmode || TARGET_64BIT)
31924 : && TARGET_80387 && TARGET_CMOVE
31925 : && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31926 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31927 : && optimize_insn_for_speed_p ()))
31928 : return NULL;
31929 : *pmatch_len_ = 0;
31930 : return gen_peephole2_230 (insn, operands);
31931 :
31932 : default:
31933 : return NULL;
31934 : }
31935 :
31936 : case 1:
31937 : if (!register_operand (operands[0], E_DImode)
31938 : || GET_MODE (x2) != E_DImode
31939 : || !ix86_comparison_operator (operands[1], E_VOIDmode))
31940 : return NULL;
31941 : x4 = XEXP (x2, 1);
31942 : x5 = XEXP (x4, 0);
31943 : operands[2] = x5;
31944 : if (!nonimmediate_operand (operands[2], E_SImode))
31945 : return NULL;
31946 : x6 = XEXP (x2, 2);
31947 : x7 = XEXP (x6, 0);
31948 : operands[3] = x7;
31949 : if (!nonimmediate_operand (operands[3], E_SImode)
31950 : || !
31951 : #line 26912 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31952 : (TARGET_64BIT
31953 : && TARGET_CMOVE && TARGET_AVOID_MEM_OPND_FOR_CMOVE
31954 : && (MEM_P (operands[2]) || MEM_P (operands[3]))
31955 : && optimize_insn_for_speed_p ()))
31956 : return NULL;
31957 : *pmatch_len_ = 0;
31958 : return gen_peephole2_222 (insn, operands);
31959 :
31960 : default:
31961 : return NULL;
31962 : }
31963 :
31964 : default:
31965 : return NULL;
31966 : }
31967 : }
31968 :
31969 : rtx_insn *
31970 : peephole2_37 (rtx x1 ATTRIBUTE_UNUSED,
31971 : rtx_insn *insn ATTRIBUTE_UNUSED,
31972 : int *pmatch_len_ ATTRIBUTE_UNUSED)
31973 : {
31974 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
31975 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
31976 : rtx x10, x11;
31977 : rtx_insn *res ATTRIBUTE_UNUSED;
31978 : x2 = XEXP (x1, 1);
31979 : if (XWINT (x2, 0) == -1L)
31980 : {
31981 : switch (GET_MODE (operands[0]))
31982 : {
31983 : case E_HImode:
31984 : if (general_reg_operand (operands[0], E_HImode)
31985 : &&
31986 : #line 29196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
31987 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
31988 : && peep2_regno_dead_p (0, FLAGS_REG)))
31989 : {
31990 : *pmatch_len_ = 0;
31991 : res = gen_peephole2_367 (insn, operands);
31992 : if (res != NULL_RTX)
31993 : return res;
31994 : }
31995 : break;
31996 :
31997 : case E_SImode:
31998 : if (general_reg_operand (operands[0], E_SImode)
31999 : &&
32000 : #line 29196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32001 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
32002 : && peep2_regno_dead_p (0, FLAGS_REG)))
32003 : {
32004 : *pmatch_len_ = 0;
32005 : res = gen_peephole2_368 (insn, operands);
32006 : if (res != NULL_RTX)
32007 : return res;
32008 : }
32009 : break;
32010 :
32011 : case E_DImode:
32012 : if (general_reg_operand (operands[0], E_DImode)
32013 : && (
32014 : #line 29196 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32015 : ((TARGET_MOVE_M1_VIA_OR || optimize_insn_for_size_p ())
32016 : && peep2_regno_dead_p (0, FLAGS_REG)) &&
32017 : #line 1165 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32018 : (TARGET_64BIT)))
32019 : {
32020 : *pmatch_len_ = 0;
32021 : res = gen_peephole2_369 (insn, operands);
32022 : if (res != NULL_RTX)
32023 : return res;
32024 : }
32025 : break;
32026 :
32027 : default:
32028 : break;
32029 : }
32030 : }
32031 : if (peep2_current_count < 2
32032 : || peep2_current_count < 3)
32033 : return NULL;
32034 : operands[2] = x2;
32035 : x3 = PATTERN (peep2_next_insn (1));
32036 : if (pattern608 (x3,
32037 : 2) != 0)
32038 : return NULL;
32039 : x4 = XVECEXP (x3, 0, 0);
32040 : x5 = XEXP (x4, 1);
32041 : if (XINT (x5, 1) != 110)
32042 : return NULL;
32043 : x6 = XVECEXP (x3, 0, 1);
32044 : if (GET_CODE (x6) != SET)
32045 : return NULL;
32046 : x7 = XEXP (x6, 1);
32047 : if (GET_CODE (x7) != PLUS
32048 : || pattern1518 (x3) != 0
32049 : || pattern1712 (x3) != 0)
32050 : return NULL;
32051 : x8 = PATTERN (peep2_next_insn (2));
32052 : x9 = XEXP (x8, 1);
32053 : x10 = XEXP (x9, 1);
32054 : operands[3] = x10;
32055 : x11 = XEXP (x9, 0);
32056 : if (!rtx_equal_p (x11, operands[0]))
32057 : return NULL;
32058 : switch (GET_MODE (operands[0]))
32059 : {
32060 : case E_HImode:
32061 : if (pattern1889 (x3,
32062 : E_HImode) != 0
32063 : || !
32064 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32065 : (peep2_reg_dead_p (3, operands[0])
32066 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32067 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32068 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32069 : return NULL;
32070 : *pmatch_len_ = 2;
32071 : return gen_peephole2_448 (insn, operands);
32072 :
32073 : case E_SImode:
32074 : if (pattern1889 (x3,
32075 : E_SImode) != 0
32076 : || !
32077 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32078 : (peep2_reg_dead_p (3, operands[0])
32079 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32080 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32081 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32082 : return NULL;
32083 : *pmatch_len_ = 2;
32084 : return gen_peephole2_449 (insn, operands);
32085 :
32086 : case E_DImode:
32087 : if (pattern1889 (x3,
32088 : E_DImode) != 0
32089 : || !(
32090 : #line 724 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/sync.md"
32091 : (peep2_reg_dead_p (3, operands[0])
32092 : && (unsigned HOST_WIDE_INT) INTVAL (operands[2])
32093 : == -(unsigned HOST_WIDE_INT) INTVAL (operands[3])
32094 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32095 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32096 : (TARGET_64BIT)))
32097 : return NULL;
32098 : *pmatch_len_ = 2;
32099 : return gen_peephole2_450 (insn, operands);
32100 :
32101 : default:
32102 : return NULL;
32103 : }
32104 : }
32105 :
32106 : rtx_insn *
32107 : peephole2_44 (rtx x1 ATTRIBUTE_UNUSED,
32108 : rtx_insn *insn ATTRIBUTE_UNUSED,
32109 : int *pmatch_len_ ATTRIBUTE_UNUSED)
32110 : {
32111 : rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
32112 : rtx x2, x3, x4, x5, x6, x7, x8, x9;
32113 : rtx x10, x11, x12, x13, x14, x15, x16, x17;
32114 : rtx x18, x19, x20, x21, x22, x23, x24, x25;
32115 : rtx x26;
32116 : rtx_insn *res ATTRIBUTE_UNUSED;
32117 : x2 = XVECEXP (x1, 0, 0);
32118 : x3 = XEXP (x2, 0);
32119 : if (GET_CODE (x3) != REG
32120 : || REGNO (x3) != 17)
32121 : return NULL;
32122 : x4 = XVECEXP (x1, 0, 1);
32123 : if (GET_CODE (x4) != SET)
32124 : return NULL;
32125 : x5 = XEXP (x2, 1);
32126 : x6 = XEXP (x5, 0);
32127 : switch (GET_CODE (x6))
32128 : {
32129 : case REG:
32130 : operands[0] = x6;
32131 : x7 = XEXP (x4, 1);
32132 : if (GET_CODE (x7) != MINUS
32133 : || GET_MODE (x3) != E_CCmode
32134 : || GET_MODE (x5) != E_CCmode)
32135 : return NULL;
32136 : x8 = XEXP (x5, 1);
32137 : operands[1] = x8;
32138 : x9 = XEXP (x7, 0);
32139 : if (!rtx_equal_p (x9, operands[0]))
32140 : return NULL;
32141 : x10 = XEXP (x7, 1);
32142 : if (!rtx_equal_p (x10, operands[1]))
32143 : return NULL;
32144 : x11 = XEXP (x4, 0);
32145 : if (!rtx_equal_p (x11, operands[0]))
32146 : return NULL;
32147 : switch (GET_MODE (operands[0]))
32148 : {
32149 : case E_QImode:
32150 : if (!general_reg_operand (operands[0], E_QImode)
32151 : || !general_gr_operand (operands[1], E_QImode)
32152 : || GET_MODE (x7) != E_QImode
32153 : || !
32154 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32155 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
32156 : return NULL;
32157 : *pmatch_len_ = 0;
32158 : return gen_peephole2_70 (insn, operands);
32159 :
32160 : case E_HImode:
32161 : if (!general_reg_operand (operands[0], E_HImode)
32162 : || !general_gr_operand (operands[1], E_HImode)
32163 : || GET_MODE (x7) != E_HImode
32164 : || !
32165 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32166 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
32167 : return NULL;
32168 : *pmatch_len_ = 0;
32169 : return gen_peephole2_71 (insn, operands);
32170 :
32171 : case E_SImode:
32172 : if (!general_reg_operand (operands[0], E_SImode)
32173 : || !general_gr_operand (operands[1], E_SImode)
32174 : || GET_MODE (x7) != E_SImode
32175 : || !
32176 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32177 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0))
32178 : return NULL;
32179 : *pmatch_len_ = 0;
32180 : return gen_peephole2_72 (insn, operands);
32181 :
32182 : case E_DImode:
32183 : if (!general_reg_operand (operands[0], E_DImode)
32184 : || !general_gr_operand (operands[1], E_DImode)
32185 : || GET_MODE (x7) != E_DImode
32186 : || !(
32187 : #line 8707 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32188 : (find_regno_note (peep2_next_insn (0), REG_UNUSED, REGNO (operands[0])) != 0) &&
32189 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32190 : (TARGET_64BIT)))
32191 : return NULL;
32192 : *pmatch_len_ = 0;
32193 : return gen_peephole2_73 (insn, operands);
32194 :
32195 : default:
32196 : return NULL;
32197 : }
32198 :
32199 : case ZERO_EXTEND:
32200 : if (peep2_current_count < 2)
32201 : return NULL;
32202 : x12 = XEXP (x6, 0);
32203 : if (GET_CODE (x12) != PLUS)
32204 : return NULL;
32205 : x13 = XEXP (x12, 0);
32206 : if (GET_CODE (x13) != PLUS)
32207 : return NULL;
32208 : x14 = XEXP (x13, 0);
32209 : switch (GET_CODE (x14))
32210 : {
32211 : case LTU:
32212 : case UNLT:
32213 : operands[4] = x14;
32214 : x15 = XEXP (x14, 1);
32215 : if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32216 : return NULL;
32217 : x8 = XEXP (x5, 1);
32218 : if (GET_CODE (x8) != PLUS)
32219 : return NULL;
32220 : x16 = XEXP (x8, 0);
32221 : switch (GET_CODE (x16))
32222 : {
32223 : case LTU:
32224 : case UNLT:
32225 : operands[3] = x16;
32226 : x17 = XEXP (x16, 1);
32227 : if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32228 : return NULL;
32229 : x18 = XEXP (x8, 1);
32230 : if (GET_CODE (x18) != ZERO_EXTEND)
32231 : return NULL;
32232 : x7 = XEXP (x4, 1);
32233 : if (pattern1328 (x7) != 0
32234 : || GET_MODE (x3) != E_CCCmode
32235 : || GET_MODE (x5) != E_CCCmode)
32236 : return NULL;
32237 : x19 = XEXP (x14, 0);
32238 : operands[2] = x19;
32239 : if (!flags_reg_operand (operands[2], E_VOIDmode))
32240 : return NULL;
32241 : x20 = XEXP (x13, 1);
32242 : operands[0] = x20;
32243 : x21 = XEXP (x12, 1);
32244 : operands[1] = x21;
32245 : x22 = XEXP (x16, 0);
32246 : if (!rtx_equal_p (x22, operands[2]))
32247 : return NULL;
32248 : x23 = XEXP (x18, 0);
32249 : if (!rtx_equal_p (x23, operands[1]))
32250 : return NULL;
32251 : x9 = XEXP (x7, 0);
32252 : x24 = XEXP (x9, 1);
32253 : if (!rtx_equal_p (x24, operands[0]))
32254 : return NULL;
32255 : x10 = XEXP (x7, 1);
32256 : if (!rtx_equal_p (x10, operands[1]))
32257 : return NULL;
32258 : x11 = XEXP (x4, 0);
32259 : if (!rtx_equal_p (x11, operands[0]))
32260 : return NULL;
32261 : x25 = PATTERN (peep2_next_insn (1));
32262 : if (GET_CODE (x25) != SET)
32263 : return NULL;
32264 : switch (GET_MODE (x6))
32265 : {
32266 : case E_DImode:
32267 : switch (pattern1893 (x1,
32268 : E_SImode,
32269 : E_DImode))
32270 : {
32271 : case 0:
32272 : if (!
32273 : #line 9205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32274 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32275 : && peep2_reg_dead_p (2, operands[0])
32276 : && !reg_overlap_mentioned_p (operands[0], operands[1])))
32277 : return NULL;
32278 : *pmatch_len_ = 1;
32279 : return gen_peephole2_94 (insn, operands);
32280 :
32281 : case 1:
32282 : if (!
32283 : #line 9411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32284 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32285 : && peep2_reg_dead_p (4, operands[0])
32286 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32287 : && !reg_overlap_mentioned_p (operands[0], operands[5])
32288 : && !reg_overlap_mentioned_p (operands[5], operands[1])
32289 : && !reg_overlap_mentioned_p (operands[0], operands[6])
32290 : && !reg_overlap_mentioned_p (operands[6], operands[1])))
32291 : return NULL;
32292 : *pmatch_len_ = 3;
32293 : return gen_peephole2_102 (insn, operands);
32294 :
32295 : default:
32296 : return NULL;
32297 : }
32298 :
32299 : case E_TImode:
32300 : switch (pattern1893 (x1,
32301 : E_DImode,
32302 : E_TImode))
32303 : {
32304 : case 0:
32305 : if (!(
32306 : #line 9205 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32307 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32308 : && peep2_reg_dead_p (2, operands[0])
32309 : && !reg_overlap_mentioned_p (operands[0], operands[1])) &&
32310 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32311 : (TARGET_64BIT)))
32312 : return NULL;
32313 : *pmatch_len_ = 1;
32314 : return gen_peephole2_95 (insn, operands);
32315 :
32316 : case 1:
32317 : if (!(
32318 : #line 9411 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32319 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32320 : && peep2_reg_dead_p (4, operands[0])
32321 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32322 : && !reg_overlap_mentioned_p (operands[0], operands[5])
32323 : && !reg_overlap_mentioned_p (operands[5], operands[1])
32324 : && !reg_overlap_mentioned_p (operands[0], operands[6])
32325 : && !reg_overlap_mentioned_p (operands[6], operands[1])) &&
32326 : #line 1168 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32327 : (TARGET_64BIT)))
32328 : return NULL;
32329 : *pmatch_len_ = 3;
32330 : return gen_peephole2_103 (insn, operands);
32331 :
32332 : default:
32333 : return NULL;
32334 : }
32335 :
32336 : default:
32337 : return NULL;
32338 : }
32339 :
32340 : default:
32341 : return NULL;
32342 : }
32343 :
32344 : default:
32345 : return NULL;
32346 : }
32347 :
32348 : case PLUS:
32349 : case MINUS:
32350 : case AND:
32351 : case IOR:
32352 : case XOR:
32353 : if (peep2_current_count < 2)
32354 : return NULL;
32355 : x12 = XEXP (x6, 0);
32356 : operands[0] = x12;
32357 : x26 = XEXP (x6, 1);
32358 : operands[1] = x26;
32359 : x25 = PATTERN (peep2_next_insn (1));
32360 : if (GET_CODE (x25) != SET)
32361 : return NULL;
32362 : if (GET_CODE (x6) == PLUS)
32363 : {
32364 : res = peephole2_43 (x1, insn, pmatch_len_);
32365 : if (res != NULL_RTX)
32366 : return res;
32367 : }
32368 : x8 = XEXP (x5, 1);
32369 : if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
32370 : return NULL;
32371 : operands[2] = x6;
32372 : x7 = XEXP (x4, 1);
32373 : if (!rtx_equal_p (x7, operands[2]))
32374 : return NULL;
32375 : switch (GET_MODE (operands[2]))
32376 : {
32377 : case E_QImode:
32378 : if (!plusminuslogic_operator (operands[2], E_QImode))
32379 : return NULL;
32380 : if (memory_operand (operands[0], E_QImode))
32381 : {
32382 : x11 = XEXP (x4, 0);
32383 : if (pattern1648 (x11,
32384 : E_QImode) == 0
32385 : &&
32386 : #line 28705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32387 : (TARGET_APX_NDD
32388 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32389 : && peep2_reg_dead_p (2, operands[3])
32390 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32391 : && ix86_match_ccmode (peep2_next_insn (0),
32392 : (GET_CODE (operands[2]) == PLUS
32393 : || GET_CODE (operands[2]) == MINUS)
32394 : ? CCGOCmode : CCNOmode)))
32395 : {
32396 : *pmatch_len_ = 1;
32397 : res = gen_peephole2_323 (insn, operands);
32398 : if (res != NULL_RTX)
32399 : return res;
32400 : }
32401 : }
32402 : if (!register_operand (operands[0], E_QImode))
32403 : return NULL;
32404 : x11 = XEXP (x4, 0);
32405 : if (pattern1649 (x11,
32406 : E_QImode) != 0
32407 : || !
32408 : #line 28799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32409 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32410 : && COMMUTATIVE_ARITH_P (operands[2])
32411 : && peep2_reg_dead_p (2, operands[0])
32412 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32413 : && ix86_match_ccmode (peep2_next_insn (0),
32414 : GET_CODE (operands[2]) == PLUS
32415 : ? CCGOCmode : CCNOmode)))
32416 : return NULL;
32417 : *pmatch_len_ = 1;
32418 : return gen_peephole2_335 (insn, operands);
32419 :
32420 : case E_HImode:
32421 : if (!plusminuslogic_operator (operands[2], E_HImode))
32422 : return NULL;
32423 : if (memory_operand (operands[0], E_HImode))
32424 : {
32425 : x11 = XEXP (x4, 0);
32426 : if (pattern1648 (x11,
32427 : E_HImode) == 0
32428 : &&
32429 : #line 28705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32430 : (TARGET_APX_NDD
32431 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32432 : && peep2_reg_dead_p (2, operands[3])
32433 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32434 : && ix86_match_ccmode (peep2_next_insn (0),
32435 : (GET_CODE (operands[2]) == PLUS
32436 : || GET_CODE (operands[2]) == MINUS)
32437 : ? CCGOCmode : CCNOmode)))
32438 : {
32439 : *pmatch_len_ = 1;
32440 : res = gen_peephole2_324 (insn, operands);
32441 : if (res != NULL_RTX)
32442 : return res;
32443 : }
32444 : }
32445 : if (!register_operand (operands[0], E_HImode))
32446 : return NULL;
32447 : x11 = XEXP (x4, 0);
32448 : if (pattern1649 (x11,
32449 : E_HImode) != 0
32450 : || !
32451 : #line 28799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32452 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32453 : && COMMUTATIVE_ARITH_P (operands[2])
32454 : && peep2_reg_dead_p (2, operands[0])
32455 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32456 : && ix86_match_ccmode (peep2_next_insn (0),
32457 : GET_CODE (operands[2]) == PLUS
32458 : ? CCGOCmode : CCNOmode)))
32459 : return NULL;
32460 : *pmatch_len_ = 1;
32461 : return gen_peephole2_336 (insn, operands);
32462 :
32463 : case E_SImode:
32464 : if (!plusminuslogic_operator (operands[2], E_SImode))
32465 : return NULL;
32466 : if (memory_operand (operands[0], E_SImode))
32467 : {
32468 : x11 = XEXP (x4, 0);
32469 : if (pattern1650 (x11,
32470 : E_SImode) == 0
32471 : &&
32472 : #line 28705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32473 : (TARGET_APX_NDD
32474 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32475 : && peep2_reg_dead_p (2, operands[3])
32476 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32477 : && ix86_match_ccmode (peep2_next_insn (0),
32478 : (GET_CODE (operands[2]) == PLUS
32479 : || GET_CODE (operands[2]) == MINUS)
32480 : ? CCGOCmode : CCNOmode)))
32481 : {
32482 : *pmatch_len_ = 1;
32483 : res = gen_peephole2_325 (insn, operands);
32484 : if (res != NULL_RTX)
32485 : return res;
32486 : }
32487 : }
32488 : if (!register_operand (operands[0], E_SImode))
32489 : return NULL;
32490 : x11 = XEXP (x4, 0);
32491 : if (pattern1649 (x11,
32492 : E_SImode) != 0
32493 : || !
32494 : #line 28799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32495 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32496 : && COMMUTATIVE_ARITH_P (operands[2])
32497 : && peep2_reg_dead_p (2, operands[0])
32498 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32499 : && ix86_match_ccmode (peep2_next_insn (0),
32500 : GET_CODE (operands[2]) == PLUS
32501 : ? CCGOCmode : CCNOmode)))
32502 : return NULL;
32503 : *pmatch_len_ = 1;
32504 : return gen_peephole2_337 (insn, operands);
32505 :
32506 : case E_DImode:
32507 : if (!plusminuslogic_operator (operands[2], E_DImode))
32508 : return NULL;
32509 : if (memory_operand (operands[0], E_DImode))
32510 : {
32511 : x11 = XEXP (x4, 0);
32512 : if (pattern1650 (x11,
32513 : E_DImode) == 0
32514 : && (
32515 : #line 28705 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32516 : (TARGET_APX_NDD
32517 : && (TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32518 : && peep2_reg_dead_p (2, operands[3])
32519 : && !reg_overlap_mentioned_p (operands[3], operands[0])
32520 : && ix86_match_ccmode (peep2_next_insn (0),
32521 : (GET_CODE (operands[2]) == PLUS
32522 : || GET_CODE (operands[2]) == MINUS)
32523 : ? CCGOCmode : CCNOmode)) &&
32524 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32525 : (TARGET_64BIT)))
32526 : {
32527 : *pmatch_len_ = 1;
32528 : res = gen_peephole2_326 (insn, operands);
32529 : if (res != NULL_RTX)
32530 : return res;
32531 : }
32532 : }
32533 : if (!register_operand (operands[0], E_DImode))
32534 : return NULL;
32535 : x11 = XEXP (x4, 0);
32536 : if (pattern1649 (x11,
32537 : E_DImode) != 0
32538 : || !(
32539 : #line 28799 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32540 : ((TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
32541 : && COMMUTATIVE_ARITH_P (operands[2])
32542 : && peep2_reg_dead_p (2, operands[0])
32543 : && !reg_overlap_mentioned_p (operands[0], operands[1])
32544 : && ix86_match_ccmode (peep2_next_insn (0),
32545 : GET_CODE (operands[2]) == PLUS
32546 : ? CCGOCmode : CCNOmode)) &&
32547 : #line 1162 "/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md"
32548 : (TARGET_64BIT)))
32549 : return NULL;
32550 : *pmatch_len_ = 1;
32551 : return gen_peephole2_338 (insn, operands);
32552 :
32553 : default:
32554 : return NULL;
32555 : }
32556 :
32557 : default:
32558 : return NULL;
32559 : }
32560 : }
|